|
iPXE
|
INT 13 emulation. More...
Go to the source code of this file.
Data Structures | |
| struct | int13_disk_address |
| An INT 13 disk address packet. More... | |
| struct | int13_disk_parameters |
| INT 13 disk parameters. More... | |
| struct | int13_cdrom_specification |
| Bootable CD-ROM specification packet. More... | |
| struct | int13_cdrom_boot_catalog_command |
| Bootable CD-ROM boot catalog command packet. More... | |
| struct | partition_chs |
| A C/H/S address within a partition table entry. More... | |
| struct | partition_table_entry |
| A partition table entry within the MBR. More... | |
| struct | master_boot_record |
| A Master Boot Record. More... | |
| struct | int13_fdd_geometry |
| A floppy disk geometry. More... | |
| struct | int13_fdd_parameters |
| A floppy drive parameter table. More... | |
Macros | |
| #define | INT13_RESET 0x00 |
| Reset disk system. | |
| #define | INT13_GET_LAST_STATUS 0x01 |
| Get status of last operation. | |
| #define | INT13_READ_SECTORS 0x02 |
| Read sectors. | |
| #define | INT13_WRITE_SECTORS 0x03 |
| Write sectors. | |
| #define | INT13_GET_PARAMETERS 0x08 |
| Get drive parameters. | |
| #define | INT13_GET_DISK_TYPE 0x15 |
| Get disk type. | |
| #define | INT13_EXTENSION_CHECK 0x41 |
| Extensions installation check. | |
| #define | INT13_EXTENDED_READ 0x42 |
| Extended read. | |
| #define | INT13_EXTENDED_WRITE 0x43 |
| Extended write. | |
| #define | INT13_EXTENDED_VERIFY 0x44 |
| Verify sectors. | |
| #define | INT13_EXTENDED_SEEK 0x47 |
| Extended seek. | |
| #define | INT13_GET_EXTENDED_PARAMETERS 0x48 |
| Get extended drive parameters. | |
| #define | INT13_CDROM_STATUS_TERMINATE 0x4b |
| Get CD-ROM status / terminate emulation. | |
| #define | INT13_CDROM_READ_BOOT_CATALOG 0x4d |
| Read CD-ROM boot catalog. | |
| #define | INT13_STATUS_SUCCESS 0x00 |
| Operation completed successfully. | |
| #define | INT13_STATUS_INVALID 0x01 |
| Invalid function or parameter. | |
| #define | INT13_STATUS_READ_ERROR 0x04 |
| Read error. | |
| #define | INT13_STATUS_RESET_FAILED 0x05 |
| Reset failed. | |
| #define | INT13_STATUS_WRITE_ERROR 0xcc |
| Write error. | |
| #define | INT13_BLKSIZE 512 |
| Block size for non-extended INT 13 calls. | |
| #define | INT13_FDD_TYPE_360K 0x01 |
| 360K | |
| #define | INT13_FDD_TYPE_1M2 0x02 |
| 1.2M | |
| #define | INT13_FDD_TYPE_720K 0x03 |
| 720K | |
| #define | INT13_FDD_TYPE_1M44 0x04 |
| 1.44M | |
| #define | INT13_DISK_TYPE_NONE 0x00 |
| No such drive. | |
| #define | INT13_DISK_TYPE_FDD 0x01 |
| Floppy without change-line support. | |
| #define | INT13_DISK_TYPE_FDD_CL 0x02 |
| Floppy with change-line support. | |
| #define | INT13_DISK_TYPE_HDD 0x03 |
| Hard disk. | |
| #define | INT13_FL_DMA_TRANSPARENT 0x01 |
| DMA boundary errors handled transparently. | |
| #define | INT13_FL_CHS_VALID 0x02 |
| CHS information is valid. | |
| #define | INT13_FL_REMOVABLE 0x04 |
| Removable drive. | |
| #define | INT13_FL_VERIFIABLE 0x08 |
| Write with verify supported. | |
| #define | INT13_FL_CHANGE_LINE 0x10 |
| Has change-line supported (valid only for removable drives) | |
| #define | INT13_FL_LOCKABLE 0x20 |
| Drive can be locked (valid only for removable drives) | |
| #define | INT13_FL_CHS_MAX 0x40 |
| CHS is max possible, not current media (valid only for removable drives) | |
| #define | INT13_EXTENSION_LINEAR 0x01 |
| Extended disk access functions supported. | |
| #define | INT13_EXTENSION_REMOVABLE 0x02 |
| Removable drive functions supported. | |
| #define | INT13_EXTENSION_EDD 0x04 |
| EDD functions supported. | |
| #define | INT13_EXTENSION_64BIT 0x08 |
| 64-bit extensions are present | |
| #define | INT13_EXTENSION_VER_1_X 0x01 |
| INT13 extensions version 1.x. | |
| #define | INT13_EXTENSION_VER_2_0 0x20 |
| INT13 extensions version 2.0 (EDD-1.0) | |
| #define | INT13_EXTENSION_VER_2_1 0x21 |
| INT13 extensions version 2.1 (EDD-1.1) | |
| #define | INT13_EXTENSION_VER_3_0 0x30 |
| INT13 extensions version 3.0 (EDD-3.0) | |
| #define | INT13_MAX_CHS_SECTORS 15482880 |
| Maximum number of sectors for which CHS geometry is allowed to be valid. | |
| #define | PART_HEAD(chs) |
| #define | PART_SECTOR(chs) |
| #define | PART_CYLINDER(chs) |
| #define | INT13_MBR_MAGIC 0xaa55 |
| MBR magic signature. | |
| #define | INT13_FDD_GEOMETRY(cylinders, heads, sectors) |
| Define a floppy disk geometry. | |
| #define | INT13_FDD_CYLINDERS(geometry) |
| Get floppy disk number of cylinders. | |
| #define | INT13_FDD_HEADS(geometry) |
| Get floppy disk number of heads. | |
| #define | INT13_FDD_SECTORS(geometry) |
| Get floppy disk number of sectors per track. | |
Functions | |
| FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
| struct int13_disk_address | __attribute__ ((packed)) |
Variables | |
| uint8_t | bufsize |
| Size of the packet, in bytes. | |
| uint8_t | reserved_a |
| Reserved. | |
| uint8_t | count |
| Block count. | |
| uint8_t | reserved_b |
| Reserved. | |
| struct segoff | buffer |
| Data buffer. | |
| uint64_t | lba |
| Starting block number. | |
| uint64_t | buffer_phys |
| Data buffer (EDD 3.0+ only) | |
| uint32_t | long_count |
| Block count (EDD 4.0+ only) | |
| uint32_t | reserved_c |
| Reserved. | |
| uint16_t | flags |
| Flags. | |
| uint32_t | cylinders |
| Number of cylinders. | |
| uint32_t | heads |
| Number of heads. | |
| uint32_t | sectors_per_track |
| Number of sectors per track. | |
| uint64_t | sectors |
| Total number of sectors on drive. | |
| uint16_t | sector_size |
| Bytes per sector. | |
| struct segoff | dpte |
| Device parameter table extension. | |
| struct edd_device_path_information | dpi |
| Device path information. | |
| uint8_t | size |
| Size of packet in bytes. | |
| uint8_t | media_type |
| Boot media type. | |
| uint8_t | drive |
| Drive number. | |
| uint8_t | controller |
| CD-ROM controller number. | |
| uint16_t | device |
| Device specification. | |
| uint16_t | cache_segment |
| Segment of 3K buffer for caching CD-ROM reads. | |
| uint16_t | load_segment |
| Load segment for initial boot image. | |
| uint16_t | load_sectors |
| Number of 512-byte sectors to load. | |
| uint8_t | cyl |
| Low 8 bits of cylinder number. | |
| uint8_t | cyl_sector |
| Sector number, plus high 2 bits of cylinder number. | |
| uint8_t | head |
| Head number. | |
| uint16_t | start |
| First sector in boot catalog to transfer. | |
| uint8_t | bootable |
| Bootable flag. | |
| struct partition_chs | chs_start |
| C/H/S start address. | |
| uint8_t | type |
| System indicator (partition type) | |
| struct partition_chs | chs_end |
| C/H/S end address. | |
| uint32_t | length |
| Linear length. | |
| uint8_t | code [440] |
| Code area. | |
| uint32_t | signature |
| Disk signature. | |
| uint8_t | pad [2] |
| Padding. | |
| struct partition_table_entry | partitions [4] |
| Partition table. | |
| uint16_t | magic |
| 0x55aa MBR signature | |
| struct int13_fdd_geometry | __attribute__ |
| uint8_t | step_rate__head_unload |
| uint8_t | head_load__ndma |
| uint8_t | motor_off_delay |
| uint8_t | bytes_per_sector |
| uint8_t | gap_length |
| uint8_t | data_length |
| uint8_t | format_gap_length |
| uint8_t | format_filler |
| uint8_t | head_settle_time |
| uint8_t | motor_start_time |
INT 13 emulation.
Definition in file int13.h.
| #define INT13_BLKSIZE 512 |
Block size for non-extended INT 13 calls.
Definition at line 72 of file int13.h.
Referenced by __bss16_array(), int13_get_parameters(), int13_hook(), int13_rw_sectors(), and int13con_putchar().
| FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |