#ifndef __USBSTORAGE_H__ #define __USBSTORAGE_H__ #if defined(HW_RVL) #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include #include #include #define USBSTORAGE_OK 0 #define USBSTORAGE_ENOINTERFACE -10000 #define USBSTORAGE_ESENSE -10001 #define USBSTORAGE_ESHORTWRITE -10002 #define USBSTORAGE_ESHORTREAD -10003 #define USBSTORAGE_ESIGNATURE -10004 #define USBSTORAGE_ETAG -10005 #define USBSTORAGE_ESTATUS -10006 #define USBSTORAGE_EDATARESIDUE -10007 #define USBSTORAGE_ETIMEDOUT -10008 #define USBSTORAGE_EINIT -10009 typedef struct { u8 configuration; u32 interface; u32 altInterface; u8 ep_in; u8 ep_out; u8 max_lun; u32 *sector_size; s32 usb_fd; mutex_t lock; cond_t cond; s32 retval; u32 tag; u8 suspended; u8 *buffer; } usbstorage_handle; s32 USBStorage_Initialize(); s32 USBStorage_Open(usbstorage_handle *dev, const char *bus, u16 vid, u16 pid); s32 USBStorage_Close(usbstorage_handle *dev); s32 USBStorage_Reset(usbstorage_handle *dev); s32 USBStorage_GetMaxLUN(usbstorage_handle *dev); s32 USBStorage_MountLUN(usbstorage_handle *dev, u8 lun); s32 USBStorage_Suspend(usbstorage_handle *dev); s32 USBStorage_ReadCapacity(usbstorage_handle *dev, u8 lun, u32 *sector_size, u32 *n_sectors); s32 USBStorage_Read(usbstorage_handle *dev, u8 lun, u32 sector, u16 n_sectors, u8 *buffer); s32 USBStorage_Write(usbstorage_handle *dev, u8 lun, u32 sector, u16 n_sectors, const u8 *buffer); #define DEVICE_TYPE_WII_USB (('W'<<24)|('U'<<16)|('S'<<8)|'B') extern const DISC_INTERFACE __io_usbstorage; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* HW_RVL */ #endif /* __USBSTORAGE_H__ */