#define __DEVICES_IDE_H__
#ifdef __V3VEE__
-#include <palacios/vm_dev.h>
+#include <devices/block_dev.h>
-typedef enum {IDE_DISK, IDE_CDROM, IDE_NONE} 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);
-
-};
-
-
-struct v3_ide_hd_ops {
-
-
+struct ide_cfg {
+ char pci[32];
+ char southbridge[32];
};
uint_t bus_num,
uint_t drive_num,
char * drive_name,
- struct v3_ide_cd_ops * ops,
+ struct v3_cd_ops * ops,
void * private_data);
int v3_ide_register_harddisk(struct vm_device * ide,
uint_t bus_num,
uint_t drive_num,
char * drive_name,
- struct v3_ide_hd_ops * ops,
+ struct v3_hd_ops * ops,
void * private_data);
-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__