X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Fide.h;h=8a68222a47d2e0ae88628230a8d7efd70a2ef9a1;hb=d0886c953a9e5969ee0f54f11bb146bfe888bfe3;hp=e0356b215f62e5648064a36aa1306e36a1f68868;hpb=4659d019e2f65b9397e2289a9add28a3adf47cf8;p=palacios.git diff --git a/palacios/include/devices/ide.h b/palacios/include/devices/ide.h index e0356b2..8a68222 100644 --- a/palacios/include/devices/ide.h +++ b/palacios/include/devices/ide.h @@ -27,20 +27,20 @@ #define ATAPI_BLOCK_SIZE 2048 #define IDE_SECTOR_SIZE 512 -typedef enum {IDE_DISK, IDE_CDROM, IDE_NONE} v3_ide_dev_type_t; +typedef enum {IDE_NONE, IDE_DISK, IDE_CDROM} v3_ide_dev_type_t; struct v3_ide_cd_ops { uint32_t (*get_capacity)(void * private_data); // Reads always operate on 2048 byte blocks - int (*read)(uint8_t * buf, int count, int lba, void * private_data); + int (*read)(uint8_t * buf, int block_count, uint64_t lba, void * private_data); }; struct v3_ide_hd_ops { - uint32_t (*get_capacity)(void * private_data); + uint64_t (*get_capacity)(void * private_data); // Reads always operate on 2048 byte blocks - int (*read)(uint8_t * buf, int count, int lba, void * private_data); + int (*read)(uint8_t * buf, int sector_count, uint64_t lba, void * private_data); }; @@ -65,6 +65,10 @@ struct vm_device * v3_create_ide(); +int v3_ide_get_geometry(struct vm_device * ide_dev, int channel_num, int drive_num, + uint32_t * cylinders, uint32_t * heads, uint32_t * sectors); + + #endif // ! __V3VEE__