X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fdevices%2Fcdrom.h;h=ea4d9c5b24b0a13662715ce697a4760c6971f0d1;hb=709ff8e4b1ca5412e4dd66101e25dc67751c8df7;hp=173c08d275fd38cf8f52ec222c17567dd06dc042;hpb=e70e95962c26832628d586e07f9cd1a2e1852d72;p=palacios.git diff --git a/palacios/include/devices/cdrom.h b/palacios/include/devices/cdrom.h index 173c08d..ea4d9c5 100644 --- a/palacios/include/devices/cdrom.h +++ b/palacios/include/devices/cdrom.h @@ -18,8 +18,11 @@ * redistribute, and modify it as specified in the file "V3VEE_LICENSE". */ -#ifndef __DEVICES_CDROM_H_ -#define __DEVICES_CDROM_H_ +#ifndef __DEVICES_CDROM_H__ +#define __DEVICES_CDROM_H__ + + +#ifdef __V3VEE__ #include #include @@ -28,58 +31,48 @@ -struct cdrom_interface; struct cdrom_ops { + /* + * Load CD-ROM. Returns false if CD is not ready. + */ + rd_bool (*insert_cdrom)(void * private_data); + + /* + * Logically eject the CD. + */ + void (*eject_cdrom)(void * private_data); - void (*init)(struct cdrom_interface *cdrom); - - /* - * Load CD-ROM. Returns false if CD is not ready. - */ - rd_bool (*insert_cdrom)(struct cdrom_interface *cdrom, char *dev /*= NULL*/); - - /* - * Logically eject the CD. - */ - void (*eject_cdrom)(struct cdrom_interface *cdrom); + /* + * Read CD TOC. Returns false if start track is out of bounds. + */ + rd_bool (*read_toc)(void * private_data, uchar_t * buf, int * length, rd_bool msf, int start_track); - /* - * Read CD TOC. Returns false if start track is out of bounds. - */ - rd_bool (*read_toc)(struct cdrom_interface * cdrom, uint8_t * buf, int* length, rd_bool msf, int start_track); + /* + * Return CD-ROM capacity (in 2048 byte frames) + */ + uint32_t (*capacity)(void * private_data); - /* - * Return CD-ROM capacity (in 2048 byte frames) - */ - uint32_t (*capacity)(struct cdrom_interface *cdrom); + /* + * Read a single block from the CD + */ + void (*read_block)(void * private_data, uchar_t * buf, int lba); - /* - * Read a single block from the CD - */ - void (*read_block)(struct cdrom_interface *cdrom, uint8_t* buf, int lba); - - /* - * Start (spin up) the CD. - */ - int (*start_cdrom)(struct cdrom_interface *cdrom); + /* + * Start (spin up) the CD. + */ + int (*start_cdrom)(void * private_data); + + void (*set_LBA)(void * private_data, uchar_t lba); }; -struct cdrom_interface { - struct cdrom_ops ops; - ulong_t fd; //memory address - ulong_t capacity_B; - ulong_t head; //current position +struct vm_device * v3_create_cdrom(struct vm_device * ramdisk_dev, void * ramdisk, uint_t ramdisk_size); - uchar_t lba; - char *path; //for ramdisk, NULL - int using_file; //no -}; -void init_cdrom(struct cdrom_interface *cdrom); +#endif // !__V3VEE__ #endif