diff options
Diffstat (limited to '')
-rw-r--r-- | include/kernel/usbd.h | 26 | ||||
-rw-r--r-- | nids/360/SceUsbd.yml | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/kernel/usbd.h b/include/kernel/usbd.h index 8e19375..90715ae 100644 --- a/include/kernel/usbd.h +++ b/include/kernel/usbd.h @@ -38,6 +38,18 @@ typedef struct SceUsbdDeviceDescriptor { unsigned char bNumConfigurations; } SceUsbdDeviceDescriptor; /* size = 20 */ +struct SceUsbdEndpointDescriptor { + unsigned char bLength; + unsigned char bDescriptorType; + unsigned char bEndpointAddress; + unsigned char bmAttributes; + unsigned short wMaxPacketSize; + unsigned char bInterval; + + unsigned char *extra; /* Extra descriptors */ + int extraLength; +} SceUsbdEndpointDescriptor; /* size 16 */ + typedef struct SceUsbdDeviceAddress { unsigned int unk0; unsigned short unk1; @@ -51,10 +63,24 @@ typedef struct SceUsbdDriver { struct SceUsbdDriver *next; } SceUsbdDriver; /* size = 0x14 */ +typedef struct SceUsbdControlTransferRequest { + unsigned char bmRequestType; + unsigned char bRequest; + unsigned short wValue; + unsigned short wIndex; + unsigned short wLength; +} SceUsbdControlTransferRequest; /* size = 0x08 */ + int sceUsbdRegisterDriver(const SceUsbdDriver *driver); int sceUsbdRegisterCompositeLdd(const SceUsbdDriver *driver); int sceUsbdUnregisterDriver(const SceUsbdDriver *driver); void *sceUsbdGetDescriptor(int device_id, int index, unsigned char bDescriptorType); +int sceUsbdGetEndpointId(int device_id, SceUsbdEndpointDescriptor *endpoint); +int sceUsbdControlTransfer(int endpoint_id, + const SceUsbdControlTransferRequest *req, + unsigned char *buffer, + int (*cb)(int, int, int), + void *user_data); #ifdef __cplusplus } diff --git a/nids/360/SceUsbd.yml b/nids/360/SceUsbd.yml index 50f6a4a..b0e4b44 100644 --- a/nids/360/SceUsbd.yml +++ b/nids/360/SceUsbd.yml @@ -5,6 +5,7 @@ modules: SceUsbdForDriver: nid: 0xA0EBCA41 functions: + sceUsbdControlTransfer: 0x2E05660F sceUsbdGetDescriptor: 0xBC3EF82B sceUsbdRegisterCompositeLdd: 0x6E53D7F4 sceUsbdRegisterDriver: 0x1EC94F18 |