iPXE
Data Structures | Modules | Defines | Functions | Variables
INT 13 floppy disk drive types

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...

Modules

 INT 13 disk types
 INT 13 disk parameter flags
 INT 13 extension flags
 INT 13 extension versions

Defines

#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_MAX_CHS_SECTORS   15482880
 Maximum number of sectors for which CHS geometry is allowed to be valid.
#define PART_HEAD(chs)   ( (chs).head )
#define PART_SECTOR(chs)   ( (chs).cyl_sector & 0x3f )
#define PART_CYLINDER(chs)   ( (chs).cyl | ( ( (chs).cyl_sector & 0xc0 ) << 2 ) )
#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)   ( (geometry)->tracks )
 Get floppy disk number of cylinders.
#define INT13_FDD_HEADS(geometry)   ( (geometry)->heads_spt >> 6 )
 Get floppy disk number of heads.
#define INT13_FDD_SECTORS(geometry)   ( (geometry)->heads_spt & 0x3f )
 Get floppy disk number of sectors per track.

Functions

struct int13_disk_address __attribute__ ((packed))

Variables

uint8_t int13_disk_address::bufsize
 Size of the packet, in bytes.
uint8_t int13_disk_address::reserved_a
 Reserved.
uint8_t int13_disk_address::count
 Block count.
uint8_t int13_disk_address::reserved_b
 Reserved.
struct segoff int13_disk_address::buffer
 Data buffer.
uint64_t int13_disk_address::lba
 Starting block number.
uint64_t int13_disk_address::buffer_phys
 Data buffer (EDD 3.0+ only)
uint32_t int13_disk_address::long_count
 Block count (EDD 4.0+ only)
uint32_t int13_disk_address::reserved_c
 Reserved.
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 int13_disk_parameters::bufsize
 Size of this structure.
uint16_t int13_disk_parameters::flags
 Flags.
uint32_t int13_disk_parameters::cylinders
 Number of cylinders.
uint32_t int13_disk_parameters::heads
 Number of heads.
uint32_t int13_disk_parameters::sectors_per_track
 Number of sectors per track.
uint64_t int13_disk_parameters::sectors
 Total number of sectors on drive.
uint16_t int13_disk_parameters::sector_size
 Bytes per sector.
struct segoff int13_disk_parameters::dpte
 Device parameter table extension.
struct edd_device_path_information int13_disk_parameters::dpi
 Device path information.
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 int13_cdrom_specification::size
 Size of packet in bytes.
uint8_t int13_cdrom_specification::media_type
 Boot media type.
uint8_t int13_cdrom_specification::drive
 Drive number.
uint8_t int13_cdrom_specification::controller
 CD-ROM controller number.
uint32_t int13_cdrom_specification::lba
 LBA of disk image to emulate.
uint16_t int13_cdrom_specification::device
 Device specification.
uint16_t int13_cdrom_specification::cache_segment
 Segment of 3K buffer for caching CD-ROM reads.
uint16_t int13_cdrom_specification::load_segment
 Load segment for initial boot image.
uint16_t int13_cdrom_specification::load_sectors
 Number of 512-byte sectors to load.
uint8_t int13_cdrom_specification::cyl
 Low 8 bits of cylinder number.
uint8_t int13_cdrom_specification::cyl_sector
 Sector number, plus high 2 bits of cylinder number.
uint8_t int13_cdrom_specification::head
 Head number.
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.
uint8_t int13_cdrom_boot_catalog_command::size
 Size of packet in bytes.
uint8_t int13_cdrom_boot_catalog_command::count
 Number of sectors of boot catalog to read.
uint32_t int13_cdrom_boot_catalog_command::buffer
 Buffer for boot catalog.
uint16_t int13_cdrom_boot_catalog_command::start
 First sector in boot catalog to transfer.
uint16_t start
 First sector in boot catalog to transfer.
uint8_t partition_chs::head
 Head number.
uint8_t partition_chs::cyl_sector
 Sector number, plus high 2 bits of cylinder number.
uint8_t partition_chs::cyl
 Low 8 bits of cylinder number.
uint8_t partition_table_entry::bootable
 Bootable flag.
struct partition_chs partition_table_entry::chs_start
 C/H/S start address.
uint8_t partition_table_entry::type
 System indicator (partition type)
struct partition_chs partition_table_entry::chs_end
 C/H/S end address.
uint32_t partition_table_entry::start
 Linear start address.
uint32_t partition_table_entry::length
 Linear length.
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 master_boot_record::code [440]
 Code area.
uint32_t master_boot_record::signature
 Disk signature.
uint8_t master_boot_record::pad [2]
 Padding.
struct partition_table_entry master_boot_record::partitions [4]
 Partition table.
uint16_t master_boot_record::magic
 0x55aa MBR signature
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
uint8_t int13_fdd_geometry::tracks
 Number of tracks.
uint8_t int13_fdd_geometry::heads_spt
 Number of heads and sectors per track.
struct int13_fdd_geometry __attribute__
uint8_t int13_fdd_parameters::step_rate__head_unload
uint8_t int13_fdd_parameters::head_load__ndma
uint8_t int13_fdd_parameters::motor_off_delay
uint8_t int13_fdd_parameters::bytes_per_sector
uint8_t int13_fdd_parameters::sectors_per_track
uint8_t int13_fdd_parameters::gap_length
uint8_t int13_fdd_parameters::data_length
uint8_t int13_fdd_parameters::format_gap_length
uint8_t int13_fdd_parameters::format_filler
uint8_t int13_fdd_parameters::head_settle_time
uint8_t int13_fdd_parameters::motor_start_time
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
uint32_t lba
 Start address.
int int size_t size
 Size of packet in bytes.
static unsigned int count
 Number of sections (must be 1)
uint32_t buffer
 Buffer index (or NETVSC_RNDIS_NO_BUFFER)
uint32_t start
 Starting offset.

Define Documentation

#define INT13_FDD_TYPE_360K   0x01

360K

Definition at line 79 of file int13.h.

#define INT13_FDD_TYPE_1M2   0x02

1.2M

Definition at line 81 of file int13.h.

#define INT13_FDD_TYPE_720K   0x03

720K

Definition at line 83 of file int13.h.

#define INT13_FDD_TYPE_1M44   0x04

1.44M

Definition at line 85 of file int13.h.

Referenced by int13_get_parameters().

#define INT13_MAX_CHS_SECTORS   15482880

Maximum number of sectors for which CHS geometry is allowed to be valid.

This number is taken from the EDD specification.

Definition at line 205 of file int13.h.

Referenced by int13_get_extended_parameters().

#define PART_HEAD (   chs)    ( (chs).head )

Definition at line 257 of file int13.h.

Referenced by int13_guess_geometry_hdd().

#define PART_SECTOR (   chs)    ( (chs).cyl_sector & 0x3f )

Definition at line 258 of file int13.h.

Referenced by int13_guess_geometry_hdd().

#define PART_CYLINDER (   chs)    ( (chs).cyl | ( ( (chs).cyl_sector & 0xc0 ) << 2 ) )

Definition at line 259 of file int13.h.

Referenced by int13_guess_geometry_hdd().

#define INT13_MBR_MAGIC   0xaa55

MBR magic signature.

Definition at line 292 of file int13.h.

Referenced by int13_load_mbr(), and int13con_find().

#define INT13_FDD_GEOMETRY (   cylinders,
  heads,
  sectors 
)
Value:
{                                                               \
                .tracks = (cylinders),                                  \
                .heads_spt = ( ( (heads) << 6 ) | (sectors) ),          \
        }

Define a floppy disk geometry.

Definition at line 303 of file int13.h.

#define INT13_FDD_CYLINDERS (   geometry)    ( (geometry)->tracks )

Get floppy disk number of cylinders.

Definition at line 310 of file int13.h.

Referenced by int13_guess_geometry_fdd().

#define INT13_FDD_HEADS (   geometry)    ( (geometry)->heads_spt >> 6 )

Get floppy disk number of heads.

Definition at line 313 of file int13.h.

Referenced by int13_guess_geometry_fdd().

#define INT13_FDD_SECTORS (   geometry)    ( (geometry)->heads_spt & 0x3f )

Get floppy disk number of sectors per track.

Definition at line 316 of file int13.h.

Referenced by int13_guess_geometry_fdd().


Function Documentation

struct int13_disk_address __attribute__ ( (packed)  )

Variable Documentation

Size of the packet, in bytes.

Definition at line 90 of file int13.h.

Reserved.

Definition at line 92 of file int13.h.

Block count.

Definition at line 94 of file int13.h.

Referenced by int13_extended_rw(), int13_extended_seek(), and int13_extended_verify().

Reserved.

Definition at line 96 of file int13.h.

Data buffer.

Definition at line 98 of file int13.h.

Referenced by int13_extended_rw().

Starting block number.

Definition at line 100 of file int13.h.

Referenced by int13_extended_rw(), int13_extended_seek(), and int13_extended_verify().

Data buffer (EDD 3.0+ only)

Definition at line 102 of file int13.h.

Referenced by int13_extended_rw().

Block count (EDD 4.0+ only)

Definition at line 104 of file int13.h.

Referenced by int13_extended_rw().

Reserved.

Definition at line 106 of file int13.h.

Size of the packet, in bytes.

Size of this structure.

Definition at line 109 of file int13.h.

Referenced by int13_extended_rw(), int13_get_extended_parameters(), linda_post_recv(), qib7322_post_recv(), and skge_rx_setup().

Reserved.

Definition at line 111 of file int13.h.

Block count.

Number of sectors of boot catalog to read.

Definition at line 113 of file int13.h.

Reserved.

Definition at line 115 of file int13.h.

Data buffer.

Buffer for boot catalog.

Definition at line 117 of file int13.h.

Starting block number.

LBA of disk image to emulate.

Definition at line 119 of file int13.h.

Data buffer (EDD 3.0+ only)

Definition at line 121 of file int13.h.

Referenced by int13_extended_rw(), and int13_load_eltorito().

Block count (EDD 4.0+ only)

Definition at line 123 of file int13.h.

Reserved.

Definition at line 125 of file int13.h.

Size of this structure.

Definition at line 112 of file int13.h.

Referenced by int13_get_extended_parameters().

Flags.

Definition at line 114 of file int13.h.

Referenced by int13_get_extended_parameters().

Number of cylinders.

Definition at line 116 of file int13.h.

Referenced by int13_get_extended_parameters().

Number of heads.

Definition at line 118 of file int13.h.

Referenced by int13_get_extended_parameters().

Number of sectors per track.

Definition at line 120 of file int13.h.

Referenced by int13_get_extended_parameters().

Total number of sectors on drive.

Definition at line 122 of file int13.h.

Referenced by int13_get_extended_parameters().

Bytes per sector.

Definition at line 124 of file int13.h.

Referenced by int13_get_extended_parameters().

Device parameter table extension.

Definition at line 126 of file int13.h.

Referenced by int13_get_extended_parameters().

Device path information.

Definition at line 128 of file int13.h.

Referenced by int13_get_extended_parameters().

Flags.

Definition at line 133 of file int13.h.

Number of cylinders.

Definition at line 135 of file int13.h.

Referenced by int13_guess_geometry_fdd().

Number of heads.

Definition at line 137 of file int13.h.

Number of sectors per track.

Definition at line 139 of file int13.h.

Total number of sectors on drive.

Definition at line 141 of file int13.h.

Bytes per sector.

Definition at line 143 of file int13.h.

struct segoff dpte

Device parameter table extension.

Definition at line 145 of file int13.h.

Referenced by int13_get_extended_parameters().

Device path information.

Definition at line 147 of file int13.h.

Referenced by int13_get_extended_parameters().

Size of packet in bytes.

Definition at line 210 of file int13.h.

Referenced by int13_cdrom_status_terminate().

Boot media type.

Definition at line 212 of file int13.h.

Drive number.

Definition at line 214 of file int13.h.

Referenced by int13_cdrom_status_terminate().

CD-ROM controller number.

Definition at line 216 of file int13.h.

LBA of disk image to emulate.

Definition at line 218 of file int13.h.

Device specification.

Definition at line 220 of file int13.h.

Segment of 3K buffer for caching CD-ROM reads.

Definition at line 222 of file int13.h.

Load segment for initial boot image.

Definition at line 224 of file int13.h.

Number of 512-byte sectors to load.

Definition at line 226 of file int13.h.

Low 8 bits of cylinder number.

Definition at line 228 of file int13.h.

Sector number, plus high 2 bits of cylinder number.

Definition at line 230 of file int13.h.

Head number.

Definition at line 232 of file int13.h.

Size of packet in bytes.

Definition at line 235 of file int13.h.

Boot media type.

Definition at line 237 of file int13.h.

Drive number.

Definition at line 239 of file int13.h.

Referenced by dummy_san_hook(), efi_block_hook(), int13_hook(), register_sandev(), san_default_drive(), and uriboot().

CD-ROM controller number.

Definition at line 241 of file int13.h.

Referenced by vesafb_mode_list().

Segment of 3K buffer for caching CD-ROM reads.

Definition at line 247 of file int13.h.

Load segment for initial boot image.

Definition at line 249 of file int13.h.

Number of 512-byte sectors to load.

Definition at line 251 of file int13.h.

Low 8 bits of cylinder number.

Definition at line 253 of file int13.h.

Sector number, plus high 2 bits of cylinder number.

Definition at line 255 of file int13.h.

Size of packet in bytes.

Definition at line 238 of file int13.h.

Number of sectors of boot catalog to read.

Definition at line 240 of file int13.h.

Referenced by int13_cdrom_read_boot_catalog().

Buffer for boot catalog.

Definition at line 242 of file int13.h.

Referenced by int13_cdrom_read_boot_catalog().

First sector in boot catalog to transfer.

Definition at line 244 of file int13.h.

Referenced by int13_cdrom_read_boot_catalog().

First sector in boot catalog to transfer.

Linear start address.

Definition at line 253 of file int13.h.

Head number.

Definition at line 250 of file int13.h.

Sector number, plus high 2 bits of cylinder number.

Definition at line 252 of file int13.h.

Low 8 bits of cylinder number.

Definition at line 254 of file int13.h.

Bootable flag.

Definition at line 264 of file int13.h.

C/H/S start address.

Definition at line 266 of file int13.h.

Referenced by int13_guess_geometry_hdd().

System indicator (partition type)

Definition at line 268 of file int13.h.

Referenced by int13_guess_geometry_hdd().

C/H/S end address.

Definition at line 270 of file int13.h.

Referenced by int13_guess_geometry_hdd().

Linear start address.

Definition at line 272 of file int13.h.

Referenced by int13_guess_geometry_hdd(), and int13con_find().

Linear length.

Definition at line 274 of file int13.h.

Referenced by int13con_find().

Bootable flag.

Definition at line 277 of file int13.h.

C/H/S start address.

Definition at line 279 of file int13.h.

System indicator (partition type)

Definition at line 281 of file int13.h.

C/H/S end address.

Definition at line 283 of file int13.h.

Linear length.

Definition at line 287 of file int13.h.

Code area.

Definition at line 280 of file int13.h.

Disk signature.

Definition at line 282 of file int13.h.

Referenced by int13_guess_geometry_hdd().

Padding.

Definition at line 284 of file int13.h.

Partition table.

Definition at line 286 of file int13.h.

Referenced by int13_guess_geometry_hdd(), and int13con_find().

0x55aa MBR signature

Definition at line 288 of file int13.h.

Referenced by int13con_find().

uint8_t code[440]

Code area.

Definition at line 291 of file int13.h.

Disk signature.

Definition at line 293 of file int13.h.

Padding.

Definition at line 295 of file int13.h.

Partition table.

Definition at line 297 of file int13.h.

0x55aa MBR signature

Definition at line 299 of file int13.h.

Number of tracks.

Definition at line 297 of file int13.h.

Number of heads and sectors per track.

Definition at line 299 of file int13.h.

Definition at line 320 of file int13.h.

Definition at line 321 of file int13.h.

Definition at line 322 of file int13.h.

Definition at line 323 of file int13.h.

Definition at line 324 of file int13.h.

Definition at line 325 of file int13.h.

Definition at line 326 of file int13.h.

Definition at line 327 of file int13.h.

Definition at line 328 of file int13.h.

Definition at line 329 of file int13.h.

Definition at line 330 of file int13.h.

Definition at line 332 of file int13.h.

Definition at line 333 of file int13.h.

Definition at line 334 of file int13.h.

Definition at line 335 of file int13.h.

Definition at line 337 of file int13.h.

Definition at line 338 of file int13.h.

Definition at line 339 of file int13.h.

Definition at line 340 of file int13.h.

Definition at line 341 of file int13.h.

Definition at line 342 of file int13.h.

Start address.

LBA of disk image to emulate.

Maximum logical block number.

Logical block address.

This is a logical block number, in big-endian order.

Applicable only if the PMI bit is set.

Definition at line 80 of file scsi.h.

Referenced by atadev_command(), int13_extended_rw(), int13_extended_seek(), int13_extended_verify(), int13_rw_sectors(), int13con_rw(), sandev_parse_iso9660(), and scsidev_command().

Number of sections (must be 1)

Number of sectors of boot catalog to read.

Number of ranges.

Definition at line 241 of file intel.h.

Referenced by acpi_find(), alloc_sandev(), ansiesc_process(), ar9300_read_otp(), atadev_command(), ath5k_copy_channels(), ath9k_hw_check_alive(), ath_hw_pll_rx_hang_check(), axge_in_complete(), bios_handle_sgr(), cert_exec(), cms_verify(), dbg_efi_openers(), dbg_efi_protocols(), deflate_alphabet(), deflate_consume(), efab_init_mac(), efi_block_boot(), efi_block_rw(), efi_handle_name(), efi_handle_sgr(), ehci_endpoint_count(), ehci_endpoint_stream(), ehci_enqueue(), falcon_gmii_wait(), falcon_init_sram(), falcon_init_xmac(), falcon_reset_xaui(), falcon_reset_xmac(), falcon_spi_wait(), falcon_tenxpress_check_c11(), fbcon_handle_sgr(), find_smbios_structure(), hex_decode(), hfa384x_wait_for_event(), ibft_set_ipaddr_setting(), int13_extended_rw(), int13_extended_seek(), int13_extended_verify(), int13_rw_sectors(), ioremap_pages(), memmap_settings_fetch(), mlx_pci_config(), ncm_in_prefill(), netfront_pull(), parse_eeprom(), peerdist_discovery_reply(), qib7322_create_send_bufs(), rtl818x_handle_rx(), rtl818x_handle_tx(), sanboot_core_exec(), sandev_parse_iso9660(), scsidev_command(), select_setting_row(), sfe4001_init(), shuffle(), sis190_process_rx(), sky2_receive(), split_command(), system(), txnic_bgx_detect(), txnic_lmac_probe_all(), uhci_endpoint_message(), uhci_endpoint_stream(), uhci_enqueue(), uri_decode(), usb_used(), usbio_config(), usbio_interfaces(), xcm_list(), xengrant_alloc(), xengrant_free(), xhci_endpoint_count(), xhci_endpoint_stream(), xhci_event_alloc(), xhci_event_free(), xhci_event_poll(), xhci_ring_alloc(), xhci_ring_free(), xhci_ring_reset(), and xhci_supported_protocol().

SEGOFF16_t buffer