summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/kernel/usbd.h26
-rw-r--r--nids/360/SceUsbd.yml1
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