X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fdisk.h;h=dd7c46aec3c19913d6cf257d62b5a2f706580cd3;hb=3339c05f19468f87da84ab059cf4ee5375abfa55;hp=b85a62d78603df59ad79547e78246e597e7d48e3;hpb=a0842f8d49c7f02cecd029a0023a97253a7a8b06;p=seabios.git diff --git a/src/disk.h b/src/disk.h index b85a62d..dd7c46a 100644 --- a/src/disk.h +++ b/src/disk.h @@ -63,9 +63,18 @@ struct int13dpt_s { u8 host_bus[4]; u8 iface_type[8]; u64 iface_path; - u64 device_path; - u8 reserved3; - u8 checksum; + union { + struct { + u64 device_path; + u8 reserved3; + u8 checksum; + } phoenix; + struct { + u64 device_path[2]; + u8 reserved3; + u8 checksum; + } t13; + }; } PACKED; #define GET_INT13DPT(regs,var) \ @@ -177,7 +186,6 @@ struct drive_s { u8 floppy_type; // Type of floppy (only for floppy drives). struct chs_s lchs; // Logical CHS u64 sectors; // Total sectors count - char *desc; // Drive description (only available during POST) u32 cntl_id; // Unique id for a given driver type. u8 removable; // Is media removable (currently unused) @@ -190,15 +198,15 @@ struct drive_s { #define DISK_SECTOR_SIZE 512 #define CDROM_SECTOR_SIZE 2048 -#define DTYPE_NONE 0x00 -#define DTYPE_FLOPPY 0x01 -#define DTYPE_ATA 0x02 -#define DTYPE_ATAPI 0x03 -#define DTYPE_RAMDISK 0x04 -#define DTYPE_CDEMU 0x05 -#define DTYPE_USB 0x06 -#define DTYPE_VIRTIO 0x07 -#define DTYPE_AHCI 0x08 +#define DTYPE_NONE 0x00 +#define DTYPE_FLOPPY 0x01 +#define DTYPE_ATA 0x02 +#define DTYPE_ATAPI 0x03 +#define DTYPE_RAMDISK 0x04 +#define DTYPE_CDEMU 0x05 +#define DTYPE_USB 0x06 +#define DTYPE_VIRTIO_BLK 0x07 +#define DTYPE_AHCI 0x08 #define MAXDESCSIZE 80 @@ -221,6 +229,7 @@ struct drive_s { // block.c extern u8 FloppyCount, CDCount; +extern u8 *bounce_buf_fl; struct drive_s *getDrive(u8 exttype, u8 extdriveoffset); int getDriveId(u8 exttype, struct drive_s *drive_g); void map_floppy_drive(struct drive_s *drive_g); @@ -228,11 +237,12 @@ void map_hd_drive(struct drive_s *drive_g); void map_cd_drive(struct drive_s *drive_g); int process_op(struct disk_op_s *op); int send_disk_op(struct disk_op_s *op); +int bounce_buf_init(void); // floppy.c extern struct floppy_ext_dbt_s diskette_param_table2; void floppy_setup(void); -struct drive_s *addFloppy(int floppyid, int ftype, int driver); +struct drive_s *init_floppy(int floppyid, int ftype); int find_floppy_type(u32 size); int process_floppy_op(struct disk_op_s *op); void floppy_tick(void);