From 91d9a589d1288359b460e2a0d5d7bbb13bae5d51 Mon Sep 17 00:00:00 2001 From: Sergi Granell Date: Sun, 2 Apr 2017 16:59:01 +0200 Subject: Add ksceUsbdGetEndpointId and ksceUsbdControlTransfer NIDs --- include/kernel/usbd.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'include/kernel/usbd.h') 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 } -- cgit v1.2.3