add ahci support
[seabios.git] / src / disk.h
index d87d71aa81805b3dc72514c7a2e6392cdc4a872c..c1ba6ae44c0ad468fbd4c618865da83e8c661722 100644 (file)
@@ -177,17 +177,14 @@ 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)
 
     // Info for EDD calls
+    u8 translation;     // type of translation
     u16 blksize;        // block size
     struct chs_s pchs;  // Physical CHS
-    u8 translation;     // type of translation
-
-    // Driver specific
-    u32 cntl_id;
-    u32 cntl_info;
-    u8 removable;       // Removable device flag
-    char model[41];
 };
 
 #define DISK_SECTOR_SIZE  512
@@ -200,6 +197,10 @@ struct drive_s {
 #define DTYPE_RAMDISK  0x04
 #define DTYPE_CDEMU    0x05
 #define DTYPE_USB      0x06
+#define DTYPE_VIRTIO   0x07
+#define DTYPE_AHCI     0x08
+
+#define MAXDESCSIZE 80
 
 #define TRANSLATION_NONE  0
 #define TRANSLATION_LBA   1
@@ -232,29 +233,25 @@ void setup_translation(struct drive_s *drive_g);
 void map_floppy_drive(struct drive_s *drive_g);
 void map_hd_drive(struct drive_s *drive_g);
 void map_cd_drive(struct drive_s *drive_g);
-void describe_drive(struct drive_s *drive_g);
 int process_op(struct disk_op_s *op);
 int send_disk_op(struct disk_op_s *op);
-void drive_setup(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);
-void describe_floppy(struct drive_s *drive_g);
 int find_floppy_type(u32 size);
 int process_floppy_op(struct disk_op_s *op);
 void floppy_tick(void);
 
 // cdrom.c
-extern struct drive_s *cdemu_drive;
+extern struct drive_s *cdemu_drive_gf;
 int process_cdemu_op(struct disk_op_s *op);
 void cdemu_setup(void);
 void cdemu_134b(struct bregs *regs);
 int cdrom_boot(int cdid);
 
 // ramdisk.c
-void describe_ramdisk(struct drive_s *drive_g);
 void ramdisk_setup(void);
 int process_ramdisk_op(struct disk_op_s *op);