summaryrefslogtreecommitdiff
path: root/include/kernel/udcd.h
diff options
context:
space:
mode:
authorSergi Granell2017-04-10 22:39:00 +0200
committerSergi Granell2017-04-10 22:39:00 +0200
commitb0d2f21166269ac7837868beaa152f5c503dfbc7 (patch)
tree87ec0121b56f0d1480209d196ee701027001b0c7 /include/kernel/udcd.h
parentFix UDCD error code (diff)
downloadvds-libraries-b0d2f21166269ac7837868beaa152f5c503dfbc7.tar.gz
Typedef udcd structures
Diffstat (limited to '')
-rw-r--r--include/kernel/udcd.h124
1 files changed, 69 insertions, 55 deletions
diff --git a/include/kernel/udcd.h b/include/kernel/udcd.h
index 610e5ea..899a6e6 100644
--- a/include/kernel/udcd.h
+++ b/include/kernel/udcd.h
@@ -191,16 +191,16 @@ extern "C" {
/*
* USB string descriptor
*/
-struct SceUdcdStringDescriptor {
+typedef struct SceUdcdStringDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
short bString[31];
-}; /* Size 64 */
+} SceUdcdStringDescriptor; /* Size 64 */
/*
* USB device descriptor
*/
-struct SceUdcdDeviceDescriptor {
+typedef struct SceUdcdDeviceDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
@@ -215,12 +215,12 @@ struct SceUdcdDeviceDescriptor {
unsigned char iProduct;
unsigned char iSerialNumber;
unsigned char bNumConfigurations;
-} __attribute__ ((aligned(4))); /* size 20 */
+} __attribute__ ((aligned(4))) SceUdcdDeviceDescriptor; /* size 20 */
/*
* USB device qualifier descriptor
*/
-struct UsbDeviceQualifierDescriptor {
+typedef struct SceUdcdDeviceQualifierDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short bcdUSB;
@@ -230,12 +230,12 @@ struct UsbDeviceQualifierDescriptor {
unsigned char bMaxPacketSize0;
unsigned char bNumConfigurations;
unsigned char bReserved;
-} __attribute__ ((aligned(4))); /* size 12 */
+} __attribute__ ((aligned(4))) SceUdcdDeviceQualifierDescriptor; /* size 12 */
/*
* USB configuration descriptor
*/
-struct SceUdcdConfigDescriptor {
+typedef struct SceUdcdConfigDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned short wTotalLength;
@@ -249,12 +249,12 @@ struct SceUdcdConfigDescriptor {
unsigned char *extra; /* Extra descriptors */
int extraLength;
-}; /* size 24 */
+} SceUdcdConfigDescriptor; /* size 24 */
/*
* USB driver interfaces structure
*/
-struct SceUdcdInterfaceSettings {
+typedef struct SceUdcdInterfaceSettings {
/* Pointers to the individual interface descriptors */
struct SceUdcdInterfaceDescriptor *descriptors;
@@ -262,12 +262,12 @@ struct SceUdcdInterfaceSettings {
/* Number of interface descriptors */
unsigned int numDescriptors;
-};
+} SceUdcdInterfaceSettings;
/*
* USB Interface descriptor
*/
-struct SceUdcdInterfaceDescriptor {
+typedef struct SceUdcdInterfaceDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bInterfaceNumber;
@@ -282,12 +282,12 @@ struct SceUdcdInterfaceDescriptor {
unsigned char *extra; /* Extra descriptors */
int extraLength;
-}; /* size 24 */
+} SceUdcdInterfaceDescriptor; /* size 24 */
/*
* USB endpoint descriptor
*/
-struct SceUdcdEndpointDescriptor {
+typedef struct SceUdcdEndpointDescriptor {
unsigned char bLength;
unsigned char bDescriptorType;
unsigned char bEndpointAddress;
@@ -297,24 +297,24 @@ struct SceUdcdEndpointDescriptor {
unsigned char *extra; /* Extra descriptors */
int extraLength;
-}; /* size 16 */
+} SceUdcdEndpointDescriptor; /* size 16 */
/*
* USB driver interface
*/
-struct SceUdcdInterface {
+typedef struct SceUdcdInterface {
/* Expectant interface number (interface number or -1) */
int expectNumber;
/* End interface */
int interfaceNumber;
/* Number of interfaces */
int numInterfaces;
-};
+} SceUdcdInterface;
/*
* USB driver endpoint
*/
-struct SceUdcdEndpoint {
+typedef struct SceUdcdEndpoint {
/* 0x80 = in, 0x00 = out */
int direction;
/* Driver Endpoint number (must be filled in sequentially) */
@@ -323,61 +323,61 @@ struct SceUdcdEndpoint {
int endpointNumber;
/* Number of transmitted bytes */
int transmittedBytes;
-};
+} SceUdcdEndpoint;
/*
* USB driver configuration
*/
-struct SceUdcdConfiguration {
+typedef struct SceUdcdConfiguration {
/* Pointer to the configuration descriptors */
- struct SceUdcdConfigDescriptor *configDescriptors;
+ SceUdcdConfigDescriptor *configDescriptors;
/* USB driver interface settings */
- struct SceUdcdInterfaceSettings *settings;
+ SceUdcdInterfaceSettings *settings;
/* Pointer to the first interface descriptor */
- struct SceUdcdInterfaceDescriptor *interfaceDescriptors;
+ SceUdcdInterfaceDescriptor *interfaceDescriptors;
/* Pointer to the first endpoint descriptor */
- struct SceUdcdEndpointDescriptor *endpointDescriptors;
-};
+ SceUdcdEndpointDescriptor *endpointDescriptors;
+} SceUdcdConfiguration;
/*
* USB EP0 Device Request
*/
-struct SceUdcdEP0DeviceRequest {
+typedef struct SceUdcdEP0DeviceRequest {
unsigned char bmRequestType;
unsigned char bRequest;
unsigned short wValue;
unsigned short wIndex;
unsigned short wLength;
-};
+} SceUdcdEP0DeviceRequest;
/*
* USB driver structure
*/
-struct SceUdcdDriver {
+typedef struct SceUdcdDriver {
/* Name of the USB driver */
const char *driverName;
/* Number of endpoints in this driver (including default control) */
int numEndpoints;
/* List of endpoint structures (used when calling other functions) */
- struct SceUdcdEndpoint *endpoints;
+ SceUdcdEndpoint *endpoints;
/* Interface list */
- struct SceUdcdInterface *interface;
+ SceUdcdInterface *interface;
/* Pointer to hi-speed device descriptor */
- struct SceUdcdDeviceDescriptor *descriptor_hi;
+ SceUdcdDeviceDescriptor *descriptor_hi;
/* Pointer to hi-speed device configuration */
- struct SceUdcdConfiguration *configuration_hi;
+ SceUdcdConfiguration *configuration_hi;
/* Pointer to full-speed device descriptor */
- struct SceUdcdDeviceDescriptor *descriptor;
+ SceUdcdDeviceDescriptor *descriptor;
/* Pointer to full-speed device configuration */
- struct SceUdcdConfiguration *configuration;
+ SceUdcdConfiguration *configuration;
/* Unk0 */
- struct SceUdcdStringDescriptor *stringDescriptorsUnk0;
+ SceUdcdStringDescriptor *stringDescriptorsUnk0;
/* Default String descriptor */
- struct SceUdcdStringDescriptor *stringDescriptorsUnk1;
+ SceUdcdStringDescriptor *stringDescriptorsUnk1;
/* String descriptors (unknown) */
- struct SceUdcdStringDescriptor *stringDescriptorsUnk2;
+ SceUdcdStringDescriptor *stringDescriptorsUnk2;
/* Received a control request */
- int (*processRequest) (int recipient, int arg /* endpoint number or interface number */, struct SceUdcdEP0DeviceRequest *req);
+ int (*processRequest) (int recipient, int arg /* endpoint number or interface number */, SceUdcdEP0DeviceRequest *req);
/* Change alternate setting */
int (*changeSetting) (int interfaceNumber, int alternateSetting);
/* Configuration set (attach) function */
@@ -385,7 +385,7 @@ struct SceUdcdDriver {
/* Configuration unset (detach) function */
void (*detach) (void);
/* Configure the device */
- void (*configure) (int usb_version, int desc_count, struct SceUdcdInterfaceSettings *settings);
+ void (*configure) (int usb_version, int desc_count, SceUdcdInterfaceSettings *settings);
/* Function called when the driver is started */
int (*start) (int size, void *args);
/* Function called when the driver is stopped */
@@ -395,14 +395,14 @@ struct SceUdcdDriver {
unsigned int unk2;
/* Link to next USB driver in the chain, set to NULL */
struct SceUdcdDriver *link;
-};
+} SceUdcdDriver;
/*
* USB device request
*/
-struct SceUdcdDeviceRequest {
+typedef struct SceUdcdDeviceRequest {
/* Pointer to the endpoint to queue request on */
- struct SceUdcdEndpoint *endpoint;
+ SceUdcdEndpoint *endpoint;
/* Pointer to the data buffer to use in the request */
void *data;
/* Unknown */
@@ -423,17 +423,23 @@ struct SceUdcdDeviceRequest {
void *unused;
/* Physical address */
void *physicalAddress;
-};
+} SceUdcdDeviceRequest;
/*
* USB driver name
*/
-struct SceUdcdDriverName {
+typedef struct SceUdcdDriverName {
int size;
char name[32];
int flags;
-} __attribute__ ((aligned(16))) /* size 48 */;
+} __attribute__ ((aligned(16))) SceUdcdDriverName; /* size 48 */
+/*
+ * USB device information
+ */
+typedef struct SceUdcdDeviceInfo {
+ unsigned char info[64];
+} SceUdcdDeviceInfo;
/**
* Start a USB driver.
@@ -481,6 +487,15 @@ int sceUdcdDeactivate(void);
int sceUdcdGetDeviceState(void);
/**
+ * Get device information
+ *
+ * @param[out] devInfo - Device information
+ *
+ * @return 0 on success, < 0 on error.
+*/
+int sceUdcdGetDeviceInfo(SceUdcdDeviceInfo *devInfo);
+
+/**
* Get state of a specific USB driver
*
* @param driverName - name of USB driver to get status from
@@ -496,7 +511,7 @@ int sceUdcdGetDrvState(const char *driverName);
* @param size - number of entries in the output list
* @return the number of drivers in the output or < 0 in case of error
*/
-int sceUdcdGetDrvList(unsigned int flags, struct SceUdcdDriverName *list, int size);
+int sceUdcdGetDrvList(unsigned int flags, SceUdcdDriverName *list, int size);
/**
* Wait for USB state
@@ -513,7 +528,6 @@ int sceUdcdWaitState(unsigned int state, unsigned int waitMode, SceUInt *timeout
*/
int sceUdcdWaitCancel(void);
-
/**
* Register a USB driver.
*
@@ -521,7 +535,7 @@ int sceUdcdWaitCancel(void);
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdRegister(struct SceUdcdDriver *drv);
+int sceUdcdRegister(SceUdcdDriver *drv);
/**
* Unregister a USB driver
@@ -530,7 +544,7 @@ int sceUdcdRegister(struct SceUdcdDriver *drv);
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdUnregister(struct SceUdcdDriver *drv);
+int sceUdcdUnregister(SceUdcdDriver *drv);
/**
* Clear the FIFO on an endpoint
@@ -539,7 +553,7 @@ int sceUdcdUnregister(struct SceUdcdDriver *drv);
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdClearFIFO(struct SceUdcdEndpoint *endp);
+int sceUdcdClearFIFO(SceUdcdEndpoint *endp);
/**
* Cancel any pending requests on an endpoint.
@@ -548,7 +562,7 @@ int sceUdcdClearFIFO(struct SceUdcdEndpoint *endp);
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdReqCancelAll(struct SceUdcdEndpoint *endp);
+int sceUdcdReqCancelAll(SceUdcdEndpoint *endp);
/**
* Stall an endpoint
@@ -557,25 +571,25 @@ int sceUdcdReqCancelAll(struct SceUdcdEndpoint *endp);
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdStall(struct SceUdcdEndpoint *endp);
+int sceUdcdStall(SceUdcdEndpoint *endp);
/**
* Queue a send request(IN from host pov)
*
- * @param req - Pointer to a filled out UsbbdDeviceRequest structure.
+ * @param req - Pointer to a filled out SceUdcdDeviceRequest structure.
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdReqSend(struct SceUdcdDeviceRequest *req);
+int sceUdcdReqSend(SceUdcdDeviceRequest *req);
/**
* Queue a receive request(OUT from host pov)
*
- * @param req - Pointer to a filled out UsbbdDeviceRequest structure
+ * @param req - Pointer to a filled out SceUdcdDeviceRequest structure
*
* @return 0 on success, < 0 on error
*/
-int sceUdcdReqRecv(struct SceUdcdDeviceRequest *req);
+int sceUdcdReqRecv(SceUdcdDeviceRequest *req);
#ifdef __cplusplus
}