summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergi Granell2017-10-25 22:40:52 +0200
committerSergi Granell2017-10-25 22:44:36 +0200
commitc31a24195014accdaddad21a0feb2855a0cf2f67 (patch)
tree877c82eeafcda943c225ab04b083ec9f15fb265e
parentFix typo (diff)
downloadvds-libraries-c31a24195014accdaddad21a0feb2855a0cf2f67.tar.gz
Add more NIDs, update udcd.h
Diffstat (limited to '')
-rw-r--r--include/kernel/udcd.h26
-rw-r--r--nids/360/SceSysmem.yml1
-rw-r--r--nids/360/SceUdcd.yml1
3 files changed, 20 insertions, 8 deletions
diff --git a/include/kernel/udcd.h b/include/kernel/udcd.h
index fef2bf6..bdb6e56 100644
--- a/include/kernel/udcd.h
+++ b/include/kernel/udcd.h
@@ -338,14 +338,14 @@ typedef struct SceUdcdDriver {
SceUdcdStringDescriptor *stringDescriptorsUnk0; //!< Unknown string descriptors
SceUdcdStringDescriptor *stringDescriptorsUnk1; //!< Default String descriptor
SceUdcdStringDescriptor *stringDescriptorsUnk2; //!< String descriptors (unknown)
- int (*processRequest) (int recipient, int arg /* endpoint number or interface number */, SceUdcdEP0DeviceRequest *req); //!< Received a control request
- int (*changeSetting) (int interfaceNumber, int alternateSetting); //!< Change alternate setting
- int (*attach) (int usb_version); //!< Configuration set (attach) function
- void (*detach) (void); //!< Configuration unset (detach) function
- void (*configure) (int usb_version, int desc_count, SceUdcdInterfaceSettings *settings); //!< Configure the device
- int (*start) (int size, void *args); //!< Function called when the driver is started
- int (*stop) (int size, void *args); //!< Function called when the driver is stopped
- unsigned int unk1; //!< Unknown data
+ int (*processRequest)(int recipient, int arg /* endpoint number or interface number */, SceUdcdEP0DeviceRequest *req, void *user_data); //!< Received a control request
+ int (*changeSetting)(int interfaceNumber, int alternateSetting); //!< Change alternate setting
+ int (*attach)(int usb_version, void *user_data); //!< Configuration set (attach) function
+ void (*detach)(void *user_data); //!< Configuration unset (detach) function
+ void (*configure)(int usb_version, int desc_count, SceUdcdInterfaceSettings *settings, void *user_data); //!< Configure the device
+ int (*start)(int size, void *args, void *user_data); //!< Function called when the driver is started
+ int (*stop)(int size, void *args, void *user_data); //!< Function called when the driver is stopped
+ void *user_data; //!< User data
unsigned int unk2; //!< Unknown data
struct SceUdcdDriver *link; //!< Link to next USB driver in the chain, set to NULL
} SceUdcdDriver;
@@ -477,6 +477,16 @@ int sceUdcdWaitCancel(void);
int sceUdcdRegister(SceUdcdDriver *drv);
/**
+ * Register a USB driver to a specific USB bus.
+ *
+ * @param drv - Pointer to a filled out USB driver
+ * @param bus - The USB bus index (usually 2)
+ *
+ * @return 0 on success, < 0 on error
+ */
+int sceUdcdRegisterToBus(SceUdcdDriver *drv, int bus);
+
+/**
* Unregister a USB driver
*
* @param drv - Pointer to a filled out USB driver
diff --git a/nids/360/SceSysmem.yml b/nids/360/SceSysmem.yml
index b4a1507..165226a 100644
--- a/nids/360/SceSysmem.yml
+++ b/nids/360/SceSysmem.yml
@@ -152,6 +152,7 @@ modules:
sceKernelDeleteUid: 0x047D32F2
sceKernelDeleteUserUid: 0x84A4AF5E
sceKernelFindMemBlockByAddr: 0x8A1742F6
+ sceKernelFindMemBlockByAddrForPid: 0x857F1D5A
sceKernelFirstDifferentIntUserForPid: 0x8334454F
sceKernelFreeHeapMemory: 0x3EBCE343
sceKernelFreeMemBlock: 0x009E1C61
diff --git a/nids/360/SceUdcd.yml b/nids/360/SceUdcd.yml
index 6225c0d..a537b22 100644
--- a/nids/360/SceUdcd.yml
+++ b/nids/360/SceUdcd.yml
@@ -21,6 +21,7 @@ modules:
sceUdcdGetDeviceState: 0xE054B5E4
sceUdcdGetDrvState: 0xC0CA5DDB
sceUdcdRegister: 0x4E55244D
+ sceUdcdRegisterToBus: 0x64675918
sceUdcdReqCancelAll: 0x38787672
sceUdcdReqRecv: 0xC60A74B2
sceUdcdReqSend: 0x1ED0E89E