vitasdk
Documentation of the vitasdk

Exports for Kernel. More...

Data Structures

struct  SceUdcdDeviceInfo
 
struct  SceUdcdWaitParam
 
struct  SceUdcdStringDescriptor
 USB string descriptor. More...
 
struct  SceUdcdConfigDescriptor
 USB configuration descriptor. More...
 
struct  SceUdcdInterfaceSettings
 USB driver interfaces structure. More...
 
struct  SceUdcdInterfaceDescriptor
 USB Interface descriptor. More...
 
struct  SceUdcdEndpointDescriptor
 USB endpoint descriptor. More...
 
struct  SceUdcdInterface
 USB driver interface. More...
 
struct  SceUdcdEndpoint
 USB driver endpoint. More...
 
struct  SceUdcdConfiguration
 USB driver configuration. More...
 
struct  SceUdcdEP0DeviceRequest
 USB EP0 Device Request. More...
 
struct  SceUdcdDriver
 USB driver structure. More...
 
struct  SceUdcdDeviceRequest
 USB device request. More...
 

Macros

#define USB_DT_DEVICE_SIZE   18
 Descriptor sizes per descriptor type.
 
#define USB_DT_CONFIG_SIZE   9
 
#define USB_DT_INTERFACE_SIZE   9
 
#define USB_DT_ENDPOINT_SIZE   7
 
#define USB_DT_ENDPOINT_AUDIO_SIZE   9
 Audio extension.
 
#define USB_DT_HUB_NONVAR_SIZE   7
 
#define USB_CTRLTYPE_DIR_MASK   0x80
 Control message request type bitmask.
 
#define USB_CTRLTYPE_DIR_HOST2DEVICE   (0 << 7)
 
#define USB_CTRLTYPE_DIR_DEVICE2HOST   (1 << 7)
 
#define USB_CTRLTYPE_TYPE_MASK   0x60
 
#define USB_CTRLTYPE_TYPE_STANDARD   (0 << 5)
 
#define USB_CTRLTYPE_TYPE_CLASS   (1 << 5)
 
#define USB_CTRLTYPE_TYPE_VENDOR   (2 << 5)
 
#define USB_CTRLTYPE_TYPE_RESERVED   (3 << 5)
 
#define USB_CTRLTYPE_REC_MASK   0x1f
 
#define USB_CTRLTYPE_REC_DEVICE   0
 
#define USB_CTRLTYPE_REC_INTERFACE   1
 
#define USB_CTRLTYPE_REC_ENDPOINT   2
 
#define USB_CTRLTYPE_REC_OTHER   3
 
#define USB_ENDPOINT_ADDRESS_MASK   0x0f /* in bEndpointAddress */
 Endpoint types and masks.
 
#define USB_ENDPOINT_DIR_MASK   0x80
 
#define USB_FEATURE_ENDPOINT_HALT   0
 
#define USB_ENDPOINT_IN   0x80
 
#define USB_ENDPOINT_OUT   0x00
 
#define USB_ENDPOINT_TYPE_MASK   0x03 /* in bmAttributes */
 
#define USB_ENDPOINT_TYPE_CONTROL   0
 
#define USB_ENDPOINT_TYPE_ISOCHRONOUS   1
 
#define USB_ENDPOINT_TYPE_BULK   2
 
#define USB_ENDPOINT_TYPE_INTERRUPT   3
 
#define HID_INTF   0x03
 HID Interface Class Code.
 
#define BOOT_INTF_SUBCLASS   0x01
 HID Interface Class SubClass Codes.
 
#define SCE_UDCD_MAX_INTERFACES   8
 USB limits.
 
#define SCE_UDCD_MAX_ENDPOINTS   9
 
#define SCE_UDCD_MAX_ALTERNATE   2
 

Enumerations

enum  SceUdcdStatus {
  SCE_UDCD_STATUS_CONNECTION_NEW = 0x0001 , SCE_UDCD_STATUS_CONNECTION_ESTABLISHED = 0x0002 , SCE_UDCD_STATUS_CONNECTION_SUSPENDED = 0x0004 , SCE_UDCD_STATUS_CABLE_DISCONNECTED = 0x0010 ,
  SCE_UDCD_STATUS_CABLE_CONNECTED = 0x0020 , SCE_UDCD_STATUS_DEACTIVATED = 0x0100 , SCE_UDCD_STATUS_ACTIVATED = 0x0200 , SCE_UDCD_STATUS_IS_CHARGING = 0x0400 ,
  SCE_UDCD_STATUS_USE_USB_CHARGING = 0x0800 , SCE_UDCD_STATUS_UNKNOWN_1000 = 0x1000 , SCE_UDCD_STATUS_UNKNOWN_2000 = 0x2000
}
 
enum  SceUdcdStatusDriver { SCE_UDCD_STATUS_DRIVER_STARTED = 0x01 , SCE_UDCD_STATUS_DRIVER_REGISTERED = 0x02 }
 
enum  SceUdcdUsbClass {
  USB_CLASS_PER_INTERFACE = 0x00 , USB_CLASS_AUDIO = 0x01 , USB_CLASS_COMM = 0x02 , USB_CLASS_HID = 0x03 ,
  USB_CLASS_PTP = 0x06 , USB_CLASS_PRINTER = 0x07 , USB_CLASS_MASS_STORAGE = 0x08 , USB_CLASS_HUB = 0x09 ,
  USB_CLASS_DATA = 0x0A , USB_CLASS_VIDEO = 0x0E , USB_CLASS_VENDOR_SPEC = 0xFF
}
 Enumeration for Device and/or Interface Class codes. More...
 
enum  SceUdcdUsbDt {
  USB_DT_DEVICE = 0x01 , USB_DT_CONFIG = 0x02 , USB_DT_STRING = 0x03 , USB_DT_INTERFACE = 0x04 ,
  USB_DT_ENDPOINT = 0x05
}
 Enumeration for descriptor types. More...
 
enum  SceUdcdUsbReq {
  USB_REQ_GET_STATUS = 0x00 , USB_REQ_CLEAR_FEATURE = 0x01 , USB_REQ_SET_FEATURE = 0x03 , USB_REQ_SET_ADDRESS = 0x05 ,
  USB_REQ_GET_DESCRIPTOR = 0x06 , USB_REQ_SET_DESCRIPTOR = 0x07 , USB_REQ_GET_CONFIG = 0x08 , USB_REQ_SET_CONFIG = 0x09 ,
  USB_REQ_GET_INTERFACE = 0x0A , USB_REQ_SET_INTERFACE = 0x0B , USB_REQ_SYNC_FRAME = 0x0C
}
 Enumeration for standard requests. More...
 
enum  SceUdcdHidRequest {
  HID_REQUEST_GET_REPORT = 0x01 , HID_REQUEST_GET_IDLE = 0x02 , HID_REQUEST_GET_PROTOCOL = 0x03 , HID_REQUEST_SET_REPORT = 0x09 ,
  HID_REQUEST_SET_IDLE = 0x0A , HID_REQUEST_SET_PROTOCOL = 0x0B
}
 Class-Specific Requests. More...
 
enum  SceUdcdHidDescriptor { HID_DESCRIPTOR_HID = 0x21 , HID_DESCRIPTOR_REPORT = 0x22 , HID_DESRIPTOR_PHY = 0x23 }
 Class Descriptor Types. More...
 
enum  SceUdcdProtocol { BOOT_PROTOCOL = 0x00 , RPT_PROTOCOL = 0x01 }
 Protocol Selection. More...
 
enum  SceUdcdHidProtocol { HID_PROTOCOL_NONE = 0x00 , HID_PROTOCOL_KEYBOARD = 0x01 , HID_PROTOCOL_MOUSE = 0x02 }
 HID Interface Class Protocol Codes. More...
 
enum  SceUdcdRetcode {
  SCE_UDCD_RETCODE_CANCEL = -1 , SCE_UDCD_RETCODE_CANCEL_ALL = -2 , SCE_UDCD_RETCODE_CANCEL_TRANSMISSION = -3 , SCE_UDCD_RETCODE_SUCCESS = 0 ,
  SCE_UDCD_RETCODE_SEND = 1 , SCE_UDCD_RETCODE_RECV = 2
}
 
enum  SceUdcdErrorCode {
  SCE_UDCD_ERROR_ILLEGAL_CONTEXT = 0x80000030 , SCE_UDCD_ERROR_INVALID_POINTER = 0x80000103 , SCE_UDCD_ERROR_INVALID_FLAG = 0x80000105 , SCE_UDCD_ERROR_INVALID_VALUE = 0x800001FE ,
  SCE_UDCD_ERROR_ALREADY_DONE = 0x80243001 , SCE_UDCD_ERROR_INVALID_ARGUMENT = 0x80243002 , SCE_UDCD_ERROR_ARGUMENT_EXCEEDED_LIMIT = 0x80243003 , SCE_UDCD_ERROR_MEMORY_EXHAUSTED = 0x80243004 ,
  SCE_UDCD_ERROR_DRIVER_NOT_FOUND = 0x80243005 , SCE_UDCD_ERROR_DRIVER_IN_PROGRESS = 0x80243006 , SCE_UDCD_ERROR_BUS_DRIVER_NOT_STARTED = 0x80243007 , SCE_UDCD_ERROR_WAIT_TIMEOUT = 0x80243008 ,
  SCE_UDCD_ERROR_WAIT_CANCEL = 0x80243009 , SCE_UDCD_ERROR_USBDRIVER_INVALID_DRIVER = 0x80243200 , SCE_UDCD_ERROR_USBDRIVER_INVALID_NAME = 0x80243201 , SCE_UDCD_ERROR_USBDRIVER_INVALID_FUNCS = 0x80243202
}
 Error codes. More...
 
enum  SceUdcdDeviceRequestAttr { SCE_UDCD_DEVICE_REQUEST_ATTR_PHYCONT = 0x00000001 }
 SceUdcdDeviceRequest Flags. More...
 

Functions

 VITASDK_BUILD_ASSERT_EQ (0x40, SceUdcdDeviceInfo)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceUdcdWaitParam)
 
 VITASDK_BUILD_ASSERT_EQ (0x40, SceUdcdStringDescriptor)
 
struct SCE_ALIGN (4) SceUdcdDeviceDescriptor
 USB device descriptor.
 
 VITASDK_BUILD_ASSERT_EQ (0x14, SceUdcdDeviceDescriptor)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceUdcdDeviceQualifierDescriptor)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceUdcdConfigDescriptor)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceUdcdInterfaceSettings)
 
 VITASDK_BUILD_ASSERT_EQ (0x18, SceUdcdInterfaceDescriptor)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceUdcdEndpointDescriptor)
 
 VITASDK_BUILD_ASSERT_EQ (0xC, SceUdcdInterface)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceUdcdEndpoint)
 
 VITASDK_BUILD_ASSERT_EQ (0x10, SceUdcdConfiguration)
 
 VITASDK_BUILD_ASSERT_EQ (8, SceUdcdEP0DeviceRequest)
 
 VITASDK_BUILD_ASSERT_EQ (0x54, SceUdcdDriver)
 
 VITASDK_BUILD_ASSERT_EQ (0x2C, SceUdcdDeviceRequest)
 
struct SCE_ALIGN (16) SceUdcdDriverName
 USB driver name.
 
 VITASDK_BUILD_ASSERT_EQ (((0x28+(0x10 - 1)) &~(0x10 - 1)), SceUdcdDriverName)
 
int ksceUdcdWaitBusInitialized (unsigned int timeout, int bus)
 Waits until an UDCD bus is initialized.
 
int ksceUdcdStart (const char *driverName, int size, void *args)
 Start a USB driver.
 
int ksceUdcdStartInternal (const char *driverName, int size, void *args, int bus)
 Start a USB driver for an UDCD bus.
 
int ksceUdcdStartCurrentInternal (int unused, int bus)
 Starts the current USB driver for an UDCD bus.
 
int ksceUdcdStop (const char *driverName, int size, void *args)
 Stop a USB driver.
 
int ksceUdcdStopInternal (const char *driverName, int size, void *args, int bus)
 Stop a USB driver for an UDCD bus.
 
int ksceUdcdStopCurrentInternal (int bus)
 Stops the current USB driver for an UDCD bus.
 
int ksceUdcdActivate (unsigned int productId)
 Activate a USB driver.
 
int ksceUdcdActivateInternal (unsigned int productId, unsigned int bus_powered, int bus)
 Activate a USB driver for an UDCD bus.
 
int ksceUdcdDeactivate (void)
 Deactivate USB driver.
 
int ksceUdcdDeactivateInternal (int bus)
 Deactivate USB driver for an UDCD bus.
 
int ksceUdcdGetDeviceState (void)
 Get USB state.
 
int ksceUdcdGetDeviceStateInternal (int bus)
 Get USB state for an UDCD bus.
 
int ksceUdcdGetDeviceInfo (SceUdcdDeviceInfo *devInfo)
 Get device information.
 
int ksceUdcdGetDeviceInfoInternal (SceUdcdDeviceInfo *devInfo, int bus)
 Get device information for an UDCD bus.
 
int ksceUdcdGetDrvState (const char *driverName)
 Get state of a specific USB driver.
 
int ksceUdcdGetDrvStateInternal (const char *driverName, int bus)
 Get state of a specific USB driver for an UDCD bus.
 
int ksceUdcdWaitState (SceUdcdWaitParam *waitParam, unsigned int timeout)
 Wait for state.
 
int ksceUdcdWaitStateInternal (SceUdcdWaitParam *waitParam, unsigned int timeout, int bus)
 Wait for state for an UDCD bus.
 
int ksceUdcdRegister (SceUdcdDriver *drv)
 Register a USB driver.
 
int ksceUdcdRegisterInternal (SceUdcdDriver *drv, int bus)
 Register a USB driver to a specific USB bus.
 
int ksceUdcdUnregister (SceUdcdDriver *drv)
 Unregister a USB driver.
 
int ksceUdcdUnregisterInternal (SceUdcdDriver *drv, int bus)
 Unregister a USB driver for an UDCD bus.
 
int ksceUdcdClearFIFO (SceUdcdEndpoint *endp)
 Clear the FIFO on an endpoint.
 
int ksceUdcdClearFIFOInternal (SceUdcdEndpoint *endp, int bus)
 Clear the FIFO on an endpoint for an UDCD bus.
 
int ksceUdcdReqCancelAll (SceUdcdEndpoint *endp)
 Cancel any pending requests on an endpoint.
 
int ksceUdcdStall (SceUdcdEndpoint *endp)
 Stall an endpoint.
 
int ksceUdcdStallInternal (SceUdcdEndpoint *endp, int bus)
 Stall an endpoint for an UDCD bus.
 
int ksceUdcdReqSend (SceUdcdDeviceRequest *req)
 Queue a send request (IN from host pov)
 
int ksceUdcdReqSendInternal (SceUdcdDeviceRequest *req, int bus)
 Queue a send request (IN from host pov) for an UDCD bus.
 
int ksceUdcdReqRecv (SceUdcdDeviceRequest *req)
 Queue a receive request (OUT from host pov)
 
int ksceUdcdReqRecvInternal (SceUdcdDeviceRequest *req, int bus)
 Queue a receive request (OUT from host pov) for an UDCD bus.
 

Variables

unsigned char SceUdcdDeviceInfo::info [64]
 
int SceUdcdWaitParam::unk_00
 
int SceUdcdWaitParam::status
 
int SceUdcdWaitParam::unk_08
 
int SceUdcdWaitParam::unk_0C
 
int SceUdcdWaitParam::unk_10
 
const char * SceUdcdWaitParam::driverName
 
unsigned char SceUdcdStringDescriptor::bLength
 
unsigned char SceUdcdStringDescriptor::bDescriptorType
 
short SceUdcdStringDescriptor::bString [31]
 
 SceUdcdDeviceDescriptor
 
 SceUdcdDeviceQualifierDescriptor
 
unsigned char SceUdcdConfigDescriptor::bLength
 
unsigned char SceUdcdConfigDescriptor::bDescriptorType
 
unsigned short SceUdcdConfigDescriptor::wTotalLength
 
unsigned char SceUdcdConfigDescriptor::bNumInterfaces
 
unsigned char SceUdcdConfigDescriptor::bConfigurationValue
 
unsigned char SceUdcdConfigDescriptor::iConfiguration
 
unsigned char SceUdcdConfigDescriptor::bmAttributes
 
unsigned char SceUdcdConfigDescriptor::bMaxPower
 
struct SceUdcdInterfaceSettingsSceUdcdConfigDescriptor::settings
 
unsigned char * SceUdcdConfigDescriptor::extra
 Extra descriptors.
 
int SceUdcdConfigDescriptor::extraLength
 
struct SceUdcdInterfaceDescriptorSceUdcdInterfaceSettings::descriptors
 Pointers to the individual interface descriptors.
 
unsigned int SceUdcdInterfaceSettings::alternateSetting
 
unsigned int SceUdcdInterfaceSettings::numDescriptors
 Number of interface descriptors.
 
unsigned char SceUdcdInterfaceDescriptor::bLength
 
unsigned char SceUdcdInterfaceDescriptor::bDescriptorType
 
unsigned char SceUdcdInterfaceDescriptor::bInterfaceNumber
 
unsigned char SceUdcdInterfaceDescriptor::bAlternateSetting
 
unsigned char SceUdcdInterfaceDescriptor::bNumEndpoints
 
unsigned char SceUdcdInterfaceDescriptor::bInterfaceClass
 
unsigned char SceUdcdInterfaceDescriptor::bInterfaceSubClass
 
unsigned char SceUdcdInterfaceDescriptor::bInterfaceProtocol
 
unsigned char SceUdcdInterfaceDescriptor::iInterface
 
struct SceUdcdEndpointDescriptorSceUdcdInterfaceDescriptor::endpoints
 
unsigned char * SceUdcdInterfaceDescriptor::extra
 Extra descriptors.
 
int SceUdcdInterfaceDescriptor::extraLength
 
unsigned char SceUdcdEndpointDescriptor::bLength
 
unsigned char SceUdcdEndpointDescriptor::bDescriptorType
 
unsigned char SceUdcdEndpointDescriptor::bEndpointAddress
 
unsigned char SceUdcdEndpointDescriptor::bmAttributes
 
unsigned short SceUdcdEndpointDescriptor::wMaxPacketSize
 
unsigned char SceUdcdEndpointDescriptor::bInterval
 
unsigned char * SceUdcdEndpointDescriptor::extra
 Extra descriptors.
 
int SceUdcdEndpointDescriptor::extraLength
 
int SceUdcdInterface::expectNumber
 Expectant interface number (interface number or -1)
 
int SceUdcdInterface::interfaceNumber
 End interface.
 
int SceUdcdInterface::numInterfaces
 Number of interfaces.
 
int SceUdcdEndpoint::direction
 USB_ENDPOINT_IN / USB_ENDPOINT_OUT.
 
int SceUdcdEndpoint::driverEndpointNumber
 Driver Endpoint number (must be filled in sequentially)
 
int SceUdcdEndpoint::endpointNumber
 Endpoint number (Filled in by the bus driver)
 
int SceUdcdEndpoint::transmittedBytes
 Number of transmitted bytes.
 
SceUdcdConfigDescriptorSceUdcdConfiguration::configDescriptors
 Pointer to the configuration descriptors.
 
SceUdcdInterfaceSettingsSceUdcdConfiguration::settings
 USB driver interface settings.
 
SceUdcdInterfaceDescriptorSceUdcdConfiguration::interfaceDescriptors
 Pointer to the first interface descriptor.
 
SceUdcdEndpointDescriptorSceUdcdConfiguration::endpointDescriptors
 Pointer to the first endpoint descriptor.
 
unsigned char SceUdcdEP0DeviceRequest::bmRequestType
 
unsigned char SceUdcdEP0DeviceRequest::bRequest
 
unsigned short SceUdcdEP0DeviceRequest::wValue
 
unsigned short SceUdcdEP0DeviceRequest::wIndex
 
unsigned short SceUdcdEP0DeviceRequest::wLength
 
const char * SceUdcdDriver::driverName
 Name of the USB driver.
 
int SceUdcdDriver::numEndpoints
 Number of endpoints in this driver (including default control)
 
SceUdcdEndpointSceUdcdDriver::endpoints
 List of endpoint structures (used when calling other functions)
 
SceUdcdInterfaceSceUdcdDriver::interface
 Interface list.
 
SceUdcdDeviceDescriptorSceUdcdDriver::descriptor_hi
 Pointer to hi-speed device descriptor.
 
SceUdcdConfigurationSceUdcdDriver::configuration_hi
 Pointer to hi-speed device configuration.
 
SceUdcdDeviceDescriptorSceUdcdDriver::descriptor
 Pointer to full-speed device descriptor.
 
SceUdcdConfigurationSceUdcdDriver::configuration
 Pointer to full-speed device configuration.
 
SceUdcdStringDescriptorSceUdcdDriver::stringDescriptors
 Default string descriptors.
 
SceUdcdStringDescriptorSceUdcdDriver::stringDescriptorProduct
 Product string descriptor (iProduct has to be 2)
 
SceUdcdStringDescriptorSceUdcdDriver::stringDescriptorSerial
 Serial string descriptor (iSerial has to be 3)
 
int(* SceUdcdDriver::processRequest )(int recipient, int arg, SceUdcdEP0DeviceRequest *req, void *user_data)
 Received a control request.
 
int(* SceUdcdDriver::changeSetting )(int interfaceNumber, int alternateSetting, int bus)
 Change alternate setting.
 
int(* SceUdcdDriver::attach )(int usb_version, void *user_data)
 Configuration set (attach) function.
 
void(* SceUdcdDriver::detach )(void *user_data)
 Configuration unset (detach) function.
 
void(* SceUdcdDriver::configure )(int usb_version, int desc_count, SceUdcdInterfaceSettings *settings, void *user_data)
 Configure the device.
 
int(* SceUdcdDriver::start )(int size, void *args, void *user_data)
 Function called when the driver is started.
 
int(* SceUdcdDriver::stop )(int size, void *args, void *user_data)
 Function called when the driver is stopped.
 
void * SceUdcdDriver::user_data
 User data.
 
int SceUdcdDriver::bus
 USB bus.
 
struct SceUdcdDriverSceUdcdDriver::link
 Link to next USB driver in the chain, set to NULL.
 
SceUdcdEndpointSceUdcdDeviceRequest::endpoint
 Pointer to the endpoint to queue request on.
 
void * SceUdcdDeviceRequest::data
 Pointer to the data buffer to use in the request.
 
unsigned int SceUdcdDeviceRequest::attributes
 Request attributes (See SceUdcdDeviceRequestAttr)
 
int SceUdcdDeviceRequest::size
 Size of the data buffer.
 
int SceUdcdDeviceRequest::isControlRequest
 Is a control request?
 
void(* SceUdcdDeviceRequest::onComplete )(struct SceUdcdDeviceRequest *req)
 Pointer to the function to call on completion.
 
int SceUdcdDeviceRequest::transmitted
 Number of transmitted bytes.
 
int SceUdcdDeviceRequest::returnCode
 Return code of the request (See SceUdcdRetcode)
 
struct SceUdcdDeviceRequestSceUdcdDeviceRequest::next
 Link pointer to next request used by the driver, set it to NULL.
 
void * SceUdcdDeviceRequest::unused
 An unused value (maybe an argument)
 
void * SceUdcdDeviceRequest::physicalAddress
 Physical address.
 
 SceUdcdDriverName
 

Detailed Description

Exports for Kernel.


Using this library in your project

Include the header file in your project:




Using this library in your project

Include the header file in your project:


Link the library to the executable:

SceUdcdForDriver_stub




Data Structure Documentation

◆ SceUdcdDeviceInfo

struct SceUdcdDeviceInfo
Data Fields
unsigned char info[64]

◆ SceUdcdWaitParam

struct SceUdcdWaitParam
Data Fields
int unk_00
int status
int unk_08
int unk_0C
int unk_10
const char * driverName

◆ SceUdcdStringDescriptor

struct SceUdcdStringDescriptor

USB string descriptor.

Data Fields
unsigned char bLength
unsigned char bDescriptorType
short bString[31]

◆ SceUdcdConfigDescriptor

struct SceUdcdConfigDescriptor

USB configuration descriptor.

Data Fields
unsigned char bLength
unsigned char bDescriptorType
unsigned short wTotalLength
unsigned char bNumInterfaces
unsigned char bConfigurationValue
unsigned char iConfiguration
unsigned char bmAttributes
unsigned char bMaxPower
struct SceUdcdInterfaceSettings * settings
unsigned char * extra Extra descriptors.
int extraLength

◆ SceUdcdInterfaceSettings

struct SceUdcdInterfaceSettings

USB driver interfaces structure.

Data Fields
struct SceUdcdInterfaceDescriptor * descriptors Pointers to the individual interface descriptors.
unsigned int alternateSetting
unsigned int numDescriptors Number of interface descriptors.

◆ SceUdcdInterfaceDescriptor

struct SceUdcdInterfaceDescriptor

USB Interface descriptor.

Data Fields
unsigned char bLength
unsigned char bDescriptorType
unsigned char bInterfaceNumber
unsigned char bAlternateSetting
unsigned char bNumEndpoints
unsigned char bInterfaceClass
unsigned char bInterfaceSubClass
unsigned char bInterfaceProtocol
unsigned char iInterface
struct SceUdcdEndpointDescriptor * endpoints
unsigned char * extra Extra descriptors.
int extraLength

◆ SceUdcdEndpointDescriptor

struct SceUdcdEndpointDescriptor

USB endpoint descriptor.

Data Fields
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

◆ SceUdcdInterface

struct SceUdcdInterface

USB driver interface.

Data Fields
int expectNumber Expectant interface number (interface number or -1)
int interfaceNumber End interface.
int numInterfaces Number of interfaces.

◆ SceUdcdEndpoint

struct SceUdcdEndpoint

USB driver endpoint.

Data Fields
int direction USB_ENDPOINT_IN / USB_ENDPOINT_OUT.
int driverEndpointNumber Driver Endpoint number (must be filled in sequentially)
int endpointNumber Endpoint number (Filled in by the bus driver)
int transmittedBytes Number of transmitted bytes.

◆ SceUdcdConfiguration

struct SceUdcdConfiguration

USB driver configuration.

Data Fields
SceUdcdConfigDescriptor * configDescriptors Pointer to the configuration descriptors.
SceUdcdInterfaceSettings * settings USB driver interface settings.
SceUdcdInterfaceDescriptor * interfaceDescriptors Pointer to the first interface descriptor.
SceUdcdEndpointDescriptor * endpointDescriptors Pointer to the first endpoint descriptor.

◆ SceUdcdEP0DeviceRequest

struct SceUdcdEP0DeviceRequest

USB EP0 Device Request.

Data Fields
unsigned char bmRequestType
unsigned char bRequest
unsigned short wValue
unsigned short wIndex
unsigned short wLength

◆ SceUdcdDriver

struct SceUdcdDriver

USB driver structure.

Data Fields

const char * driverName
 Name of the USB driver.
 
int numEndpoints
 Number of endpoints in this driver (including default control)
 
SceUdcdEndpointendpoints
 List of endpoint structures (used when calling other functions)
 
SceUdcdInterfaceinterface
 Interface list.
 
SceUdcdDeviceDescriptordescriptor_hi
 Pointer to hi-speed device descriptor.
 
SceUdcdConfigurationconfiguration_hi
 Pointer to hi-speed device configuration.
 
SceUdcdDeviceDescriptordescriptor
 Pointer to full-speed device descriptor.
 
SceUdcdConfigurationconfiguration
 Pointer to full-speed device configuration.
 
SceUdcdStringDescriptorstringDescriptors
 Default string descriptors.
 
SceUdcdStringDescriptorstringDescriptorProduct
 Product string descriptor (iProduct has to be 2)
 
SceUdcdStringDescriptorstringDescriptorSerial
 Serial string descriptor (iSerial has to be 3)
 
int(* processRequest )(int recipient, int arg, SceUdcdEP0DeviceRequest *req, void *user_data)
 Received a control request.
 
int(* changeSetting )(int interfaceNumber, int alternateSetting, int bus)
 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.
 
int bus
 USB bus.
 
struct SceUdcdDriverlink
 Link to next USB driver in the chain, set to NULL.
 

◆ SceUdcdDeviceRequest

struct SceUdcdDeviceRequest

USB device request.

Data Fields

SceUdcdEndpointendpoint
 Pointer to the endpoint to queue request on.
 
void * data
 Pointer to the data buffer to use in the request.
 
unsigned int attributes
 Request attributes (See SceUdcdDeviceRequestAttr)
 
int size
 Size of the data buffer.
 
int isControlRequest
 Is a control request?
 
void(* onComplete )(struct SceUdcdDeviceRequest *req)
 Pointer to the function to call on completion.
 
int transmitted
 Number of transmitted bytes.
 
int returnCode
 Return code of the request (See SceUdcdRetcode)
 
struct SceUdcdDeviceRequestnext
 Link pointer to next request used by the driver, set it to NULL.
 
void * unused
 An unused value (maybe an argument)
 
void * physicalAddress
 Physical address.
 

Macro Definition Documentation

◆ USB_DT_DEVICE_SIZE

#define USB_DT_DEVICE_SIZE   18

Descriptor sizes per descriptor type.

◆ USB_DT_CONFIG_SIZE

#define USB_DT_CONFIG_SIZE   9

◆ USB_DT_INTERFACE_SIZE

#define USB_DT_INTERFACE_SIZE   9

◆ USB_DT_ENDPOINT_SIZE

#define USB_DT_ENDPOINT_SIZE   7

◆ USB_DT_ENDPOINT_AUDIO_SIZE

#define USB_DT_ENDPOINT_AUDIO_SIZE   9

Audio extension.

◆ USB_DT_HUB_NONVAR_SIZE

#define USB_DT_HUB_NONVAR_SIZE   7

◆ USB_CTRLTYPE_DIR_MASK

#define USB_CTRLTYPE_DIR_MASK   0x80

Control message request type bitmask.

◆ USB_CTRLTYPE_DIR_HOST2DEVICE

#define USB_CTRLTYPE_DIR_HOST2DEVICE   (0 << 7)

◆ USB_CTRLTYPE_DIR_DEVICE2HOST

#define USB_CTRLTYPE_DIR_DEVICE2HOST   (1 << 7)

◆ USB_CTRLTYPE_TYPE_MASK

#define USB_CTRLTYPE_TYPE_MASK   0x60

◆ USB_CTRLTYPE_TYPE_STANDARD

#define USB_CTRLTYPE_TYPE_STANDARD   (0 << 5)

◆ USB_CTRLTYPE_TYPE_CLASS

#define USB_CTRLTYPE_TYPE_CLASS   (1 << 5)

◆ USB_CTRLTYPE_TYPE_VENDOR

#define USB_CTRLTYPE_TYPE_VENDOR   (2 << 5)

◆ USB_CTRLTYPE_TYPE_RESERVED

#define USB_CTRLTYPE_TYPE_RESERVED   (3 << 5)

◆ USB_CTRLTYPE_REC_MASK

#define USB_CTRLTYPE_REC_MASK   0x1f

◆ USB_CTRLTYPE_REC_DEVICE

#define USB_CTRLTYPE_REC_DEVICE   0

◆ USB_CTRLTYPE_REC_INTERFACE

#define USB_CTRLTYPE_REC_INTERFACE   1

◆ USB_CTRLTYPE_REC_ENDPOINT

#define USB_CTRLTYPE_REC_ENDPOINT   2

◆ USB_CTRLTYPE_REC_OTHER

#define USB_CTRLTYPE_REC_OTHER   3

◆ USB_ENDPOINT_ADDRESS_MASK

#define USB_ENDPOINT_ADDRESS_MASK   0x0f /* in bEndpointAddress */

Endpoint types and masks.

◆ USB_ENDPOINT_DIR_MASK

#define USB_ENDPOINT_DIR_MASK   0x80

◆ USB_FEATURE_ENDPOINT_HALT

#define USB_FEATURE_ENDPOINT_HALT   0

◆ USB_ENDPOINT_IN

#define USB_ENDPOINT_IN   0x80

◆ USB_ENDPOINT_OUT

#define USB_ENDPOINT_OUT   0x00

◆ USB_ENDPOINT_TYPE_MASK

#define USB_ENDPOINT_TYPE_MASK   0x03 /* in bmAttributes */

◆ USB_ENDPOINT_TYPE_CONTROL

#define USB_ENDPOINT_TYPE_CONTROL   0

◆ USB_ENDPOINT_TYPE_ISOCHRONOUS

#define USB_ENDPOINT_TYPE_ISOCHRONOUS   1

◆ USB_ENDPOINT_TYPE_BULK

#define USB_ENDPOINT_TYPE_BULK   2

◆ USB_ENDPOINT_TYPE_INTERRUPT

#define USB_ENDPOINT_TYPE_INTERRUPT   3

◆ HID_INTF

#define HID_INTF   0x03

HID Interface Class Code.

◆ BOOT_INTF_SUBCLASS

#define BOOT_INTF_SUBCLASS   0x01

HID Interface Class SubClass Codes.

◆ SCE_UDCD_MAX_INTERFACES

#define SCE_UDCD_MAX_INTERFACES   8

USB limits.

◆ SCE_UDCD_MAX_ENDPOINTS

#define SCE_UDCD_MAX_ENDPOINTS   9

◆ SCE_UDCD_MAX_ALTERNATE

#define SCE_UDCD_MAX_ALTERNATE   2

Enumeration Type Documentation

◆ SceUdcdStatus

Enumerator
SCE_UDCD_STATUS_CONNECTION_NEW 
SCE_UDCD_STATUS_CONNECTION_ESTABLISHED 
SCE_UDCD_STATUS_CONNECTION_SUSPENDED 
SCE_UDCD_STATUS_CABLE_DISCONNECTED 
SCE_UDCD_STATUS_CABLE_CONNECTED 
SCE_UDCD_STATUS_DEACTIVATED 
SCE_UDCD_STATUS_ACTIVATED 
SCE_UDCD_STATUS_IS_CHARGING 
SCE_UDCD_STATUS_USE_USB_CHARGING 
SCE_UDCD_STATUS_UNKNOWN_1000 
SCE_UDCD_STATUS_UNKNOWN_2000 

◆ SceUdcdStatusDriver

Enumerator
SCE_UDCD_STATUS_DRIVER_STARTED 
SCE_UDCD_STATUS_DRIVER_REGISTERED 

◆ SceUdcdUsbClass

Enumeration for Device and/or Interface Class codes.

Enumerator
USB_CLASS_PER_INTERFACE 

for DeviceClass

USB_CLASS_AUDIO 
USB_CLASS_COMM 
USB_CLASS_HID 
USB_CLASS_PTP 
USB_CLASS_PRINTER 
USB_CLASS_MASS_STORAGE 
USB_CLASS_HUB 
USB_CLASS_DATA 
USB_CLASS_VIDEO 
USB_CLASS_VENDOR_SPEC 

◆ SceUdcdUsbDt

Enumeration for descriptor types.

Enumerator
USB_DT_DEVICE 
USB_DT_CONFIG 
USB_DT_STRING 
USB_DT_INTERFACE 
USB_DT_ENDPOINT 

◆ SceUdcdUsbReq

Enumeration for standard requests.

Enumerator
USB_REQ_GET_STATUS 
USB_REQ_CLEAR_FEATURE 
USB_REQ_SET_FEATURE 
USB_REQ_SET_ADDRESS 
USB_REQ_GET_DESCRIPTOR 
USB_REQ_SET_DESCRIPTOR 
USB_REQ_GET_CONFIG 
USB_REQ_SET_CONFIG 
USB_REQ_GET_INTERFACE 
USB_REQ_SET_INTERFACE 
USB_REQ_SYNC_FRAME 

◆ SceUdcdHidRequest

Class-Specific Requests.

Enumerator
HID_REQUEST_GET_REPORT 
HID_REQUEST_GET_IDLE 
HID_REQUEST_GET_PROTOCOL 
HID_REQUEST_SET_REPORT 
HID_REQUEST_SET_IDLE 
HID_REQUEST_SET_PROTOCOL 

◆ SceUdcdHidDescriptor

Class Descriptor Types.

Enumerator
HID_DESCRIPTOR_HID 
HID_DESCRIPTOR_REPORT 
HID_DESRIPTOR_PHY 

◆ SceUdcdProtocol

Protocol Selection.

Enumerator
BOOT_PROTOCOL 
RPT_PROTOCOL 

◆ SceUdcdHidProtocol

HID Interface Class Protocol Codes.

Enumerator
HID_PROTOCOL_NONE 
HID_PROTOCOL_KEYBOARD 
HID_PROTOCOL_MOUSE 

◆ SceUdcdRetcode

Enumerator
SCE_UDCD_RETCODE_CANCEL 
SCE_UDCD_RETCODE_CANCEL_ALL 
SCE_UDCD_RETCODE_CANCEL_TRANSMISSION 
SCE_UDCD_RETCODE_SUCCESS 
SCE_UDCD_RETCODE_SEND 
SCE_UDCD_RETCODE_RECV 

◆ SceUdcdErrorCode

Error codes.

Enumerator
SCE_UDCD_ERROR_ILLEGAL_CONTEXT 
SCE_UDCD_ERROR_INVALID_POINTER 
SCE_UDCD_ERROR_INVALID_FLAG 
SCE_UDCD_ERROR_INVALID_VALUE 
SCE_UDCD_ERROR_ALREADY_DONE 
SCE_UDCD_ERROR_INVALID_ARGUMENT 
SCE_UDCD_ERROR_ARGUMENT_EXCEEDED_LIMIT 
SCE_UDCD_ERROR_MEMORY_EXHAUSTED 
SCE_UDCD_ERROR_DRIVER_NOT_FOUND 
SCE_UDCD_ERROR_DRIVER_IN_PROGRESS 
SCE_UDCD_ERROR_BUS_DRIVER_NOT_STARTED 
SCE_UDCD_ERROR_WAIT_TIMEOUT 
SCE_UDCD_ERROR_WAIT_CANCEL 
SCE_UDCD_ERROR_USBDRIVER_INVALID_DRIVER 
SCE_UDCD_ERROR_USBDRIVER_INVALID_NAME 
SCE_UDCD_ERROR_USBDRIVER_INVALID_FUNCS 

◆ SceUdcdDeviceRequestAttr

SceUdcdDeviceRequest Flags.

Enumerator
SCE_UDCD_DEVICE_REQUEST_ATTR_PHYCONT 

Function Documentation

◆ VITASDK_BUILD_ASSERT_EQ() [1/16]

VITASDK_BUILD_ASSERT_EQ ( 0x40  ,
SceUdcdDeviceInfo   
)

◆ VITASDK_BUILD_ASSERT_EQ() [2/16]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceUdcdWaitParam   
)

◆ VITASDK_BUILD_ASSERT_EQ() [3/16]

VITASDK_BUILD_ASSERT_EQ ( 0x40  ,
SceUdcdStringDescriptor   
)

◆ SCE_ALIGN() [1/2]

struct SCE_ALIGN ( )

USB device descriptor.

USB device qualifier descriptor.

◆ VITASDK_BUILD_ASSERT_EQ() [4/16]

VITASDK_BUILD_ASSERT_EQ ( 0x14  ,
SceUdcdDeviceDescriptor   
)

◆ VITASDK_BUILD_ASSERT_EQ() [5/16]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceUdcdDeviceQualifierDescriptor   
)

◆ VITASDK_BUILD_ASSERT_EQ() [6/16]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceUdcdConfigDescriptor   
)

◆ VITASDK_BUILD_ASSERT_EQ() [7/16]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceUdcdInterfaceSettings   
)

◆ VITASDK_BUILD_ASSERT_EQ() [8/16]

VITASDK_BUILD_ASSERT_EQ ( 0x18  ,
SceUdcdInterfaceDescriptor   
)

◆ VITASDK_BUILD_ASSERT_EQ() [9/16]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceUdcdEndpointDescriptor   
)

◆ VITASDK_BUILD_ASSERT_EQ() [10/16]

VITASDK_BUILD_ASSERT_EQ ( 0xC  ,
SceUdcdInterface   
)

◆ VITASDK_BUILD_ASSERT_EQ() [11/16]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceUdcdEndpoint   
)

◆ VITASDK_BUILD_ASSERT_EQ() [12/16]

VITASDK_BUILD_ASSERT_EQ ( 0x10  ,
SceUdcdConfiguration   
)

◆ VITASDK_BUILD_ASSERT_EQ() [13/16]

VITASDK_BUILD_ASSERT_EQ ( ,
SceUdcdEP0DeviceRequest   
)

◆ VITASDK_BUILD_ASSERT_EQ() [14/16]

VITASDK_BUILD_ASSERT_EQ ( 0x54  ,
SceUdcdDriver   
)

◆ VITASDK_BUILD_ASSERT_EQ() [15/16]

VITASDK_BUILD_ASSERT_EQ ( 0x2C  ,
SceUdcdDeviceRequest   
)

◆ SCE_ALIGN() [2/2]

struct SCE_ALIGN ( 16  )

USB driver name.

◆ VITASDK_BUILD_ASSERT_EQ() [16/16]

VITASDK_BUILD_ASSERT_EQ ( ((0x28+(0x10 - 1)) &~(0x10 - 1))  ,
SceUdcdDriverName   
)

◆ ksceUdcdWaitBusInitialized()

int ksceUdcdWaitBusInitialized ( unsigned int  timeout,
int  bus 
)

Waits until an UDCD bus is initialized.

Parameters
[in]timeout- Timeout
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdStart()

int ksceUdcdStart ( const char *  driverName,
int  size,
void *  args 
)

Start a USB driver.

Parameters
driverName- Name of the USB driver to start
size- Size of arguments to pass to USB driver start
args- Arguments to pass to USB driver start
Returns
0 on success, < 0 on error.

◆ ksceUdcdStartInternal()

int ksceUdcdStartInternal ( const char *  driverName,
int  size,
void *  args,
int  bus 
)

Start a USB driver for an UDCD bus.

Parameters
driverName- Name of the USB driver to start
size- Size of arguments to pass to USB driver start
args- Arguments to pass to USB driver start
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdStartCurrentInternal()

int ksceUdcdStartCurrentInternal ( int  unused,
int  bus 
)

Starts the current USB driver for an UDCD bus.

Parameters
[in]unused- Unused
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdStop()

int ksceUdcdStop ( const char *  driverName,
int  size,
void *  args 
)

Stop a USB driver.

Parameters
driverName- Name of the USB driver to stop
size- Size of arguments to pass to USB driver start
args- Arguments to pass to USB driver start
Returns
0 on success, < 0 on error.

◆ ksceUdcdStopInternal()

int ksceUdcdStopInternal ( const char *  driverName,
int  size,
void *  args,
int  bus 
)

Stop a USB driver for an UDCD bus.

Parameters
driverName- Name of the USB driver to stop
size- Size of arguments to pass to USB driver start
args- Arguments to pass to USB driver start
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdStopCurrentInternal()

int ksceUdcdStopCurrentInternal ( int  bus)

Stops the current USB driver for an UDCD bus.

Parameters
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdActivate()

int ksceUdcdActivate ( unsigned int  productId)

Activate a USB driver.

Parameters
pid- Product ID for the default USB Driver
Returns
0 on success, < 0 on error.

◆ ksceUdcdActivateInternal()

int ksceUdcdActivateInternal ( unsigned int  productId,
unsigned int  bus_powered,
int  bus 
)

Activate a USB driver for an UDCD bus.

Parameters
pid- Product ID for the default USB Driver
[in]bus_powered- Enable USB bus power
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdDeactivate()

int ksceUdcdDeactivate ( void  )

Deactivate USB driver.

Returns
0 on success, < 0 on error.

◆ ksceUdcdDeactivateInternal()

int ksceUdcdDeactivateInternal ( int  bus)

Deactivate USB driver for an UDCD bus.

Parameters
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdGetDeviceState()

int ksceUdcdGetDeviceState ( void  )

Get USB state.

Returns
One or more SceUdcdStatus.

◆ ksceUdcdGetDeviceStateInternal()

int ksceUdcdGetDeviceStateInternal ( int  bus)

Get USB state for an UDCD bus.

Parameters
[in]bus- UDCD bus (default is 2)
Returns
One or more SceUdcdStatus.

◆ ksceUdcdGetDeviceInfo()

int ksceUdcdGetDeviceInfo ( SceUdcdDeviceInfo devInfo)

Get device information.

Parameters
[out]devInfo- Device information
Returns
0 on success, < 0 on error.

◆ ksceUdcdGetDeviceInfoInternal()

int ksceUdcdGetDeviceInfoInternal ( SceUdcdDeviceInfo devInfo,
int  bus 
)

Get device information for an UDCD bus.

Parameters
[out]devInfo- Device information
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdGetDrvState()

int ksceUdcdGetDrvState ( const char *  driverName)

Get state of a specific USB driver.

Parameters
driverName- name of USB driver to get status from
Returns
SCE_UDCD_STATUS_DRIVER_STARTED if the driver has been started, SCE_UDCD_STATUS_DRIVER_REGISTERED if it is stopped

◆ ksceUdcdGetDrvStateInternal()

int ksceUdcdGetDrvStateInternal ( const char *  driverName,
int  bus 
)

Get state of a specific USB driver for an UDCD bus.

Parameters
driverName- name of USB driver to get status from
[in]bus- UDCD bus (default is 2)
Returns
SCE_UDCD_STATUS_DRIVER_STARTED if the driver has been started, SCE_UDCD_STATUS_DRIVER_REGISTERED if it is stopped

◆ ksceUdcdWaitState()

int ksceUdcdWaitState ( SceUdcdWaitParam waitParam,
unsigned int  timeout 
)

Wait for state.

Parameters
[in]waitParam- Wait parameter
[in]timeout- Timeout
Returns
0 on success, < 0 on error.

◆ ksceUdcdWaitStateInternal()

int ksceUdcdWaitStateInternal ( SceUdcdWaitParam waitParam,
unsigned int  timeout,
int  bus 
)

Wait for state for an UDCD bus.

Parameters
[in]waitParam- Wait parameter
[in]timeout- Timeout
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error.

◆ ksceUdcdRegister()

int ksceUdcdRegister ( SceUdcdDriver drv)

Register a USB driver.

Parameters
drv- Pointer to a filled out USB driver
Returns
0 on success, < 0 on error

◆ ksceUdcdRegisterInternal()

int ksceUdcdRegisterInternal ( SceUdcdDriver drv,
int  bus 
)

Register a USB driver to a specific USB bus.

Parameters
drv- Pointer to a filled out USB driver
bus- The USB bus index (usually 2)
Returns
0 on success, < 0 on error

◆ ksceUdcdUnregister()

int ksceUdcdUnregister ( SceUdcdDriver drv)

Unregister a USB driver.

Parameters
drv- Pointer to a filled out USB driver
Returns
0 on success, < 0 on error

◆ ksceUdcdUnregisterInternal()

int ksceUdcdUnregisterInternal ( SceUdcdDriver drv,
int  bus 
)

Unregister a USB driver for an UDCD bus.

Parameters
drv- Pointer to a filled out USB driver
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error

◆ ksceUdcdClearFIFO()

int ksceUdcdClearFIFO ( SceUdcdEndpoint endp)

Clear the FIFO on an endpoint.

Parameters
endp- The endpoint to clear
Returns
0 on success, < 0 on error

◆ ksceUdcdClearFIFOInternal()

int ksceUdcdClearFIFOInternal ( SceUdcdEndpoint endp,
int  bus 
)

Clear the FIFO on an endpoint for an UDCD bus.

Parameters
endp- The endpoint to clear
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error

◆ ksceUdcdReqCancelAll()

int ksceUdcdReqCancelAll ( SceUdcdEndpoint endp)

Cancel any pending requests on an endpoint.

Parameters
endp- The endpoint to cancel
Returns
0 on success, < 0 on error

◆ ksceUdcdStall()

int ksceUdcdStall ( SceUdcdEndpoint endp)

Stall an endpoint.

Parameters
endp- The endpoint to stall
Returns
0 on success, < 0 on error

◆ ksceUdcdStallInternal()

int ksceUdcdStallInternal ( SceUdcdEndpoint endp,
int  bus 
)

Stall an endpoint for an UDCD bus.

Parameters
endp- The endpoint to stall
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error

◆ ksceUdcdReqSend()

int ksceUdcdReqSend ( SceUdcdDeviceRequest req)

Queue a send request (IN from host pov)

Parameters
req- Pointer to a filled out SceUdcdDeviceRequest structure.
Returns
0 on success, < 0 on error

◆ ksceUdcdReqSendInternal()

int ksceUdcdReqSendInternal ( SceUdcdDeviceRequest req,
int  bus 
)

Queue a send request (IN from host pov) for an UDCD bus.

Parameters
req- Pointer to a filled out SceUdcdDeviceRequest structure.
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error

◆ ksceUdcdReqRecv()

int ksceUdcdReqRecv ( SceUdcdDeviceRequest req)

Queue a receive request (OUT from host pov)

Parameters
req- Pointer to a filled out SceUdcdDeviceRequest structure
Returns
0 on success, < 0 on error

◆ ksceUdcdReqRecvInternal()

int ksceUdcdReqRecvInternal ( SceUdcdDeviceRequest req,
int  bus 
)

Queue a receive request (OUT from host pov) for an UDCD bus.

Parameters
req- Pointer to a filled out SceUdcdDeviceRequest structure
[in]bus- UDCD bus (default is 2)
Returns
0 on success, < 0 on error

Variable Documentation

◆ info

unsigned char SceUdcdDeviceInfo::info[64]

◆ unk_00

int SceUdcdWaitParam::unk_00

◆ status

int SceUdcdWaitParam::status

◆ unk_08

int SceUdcdWaitParam::unk_08

◆ unk_0C

int SceUdcdWaitParam::unk_0C

◆ unk_10

int SceUdcdWaitParam::unk_10

◆ driverName [1/2]

const char* SceUdcdWaitParam::driverName

◆ bLength [1/4]

unsigned char SceUdcdStringDescriptor::bLength

◆ bDescriptorType [1/4]

unsigned char SceUdcdStringDescriptor::bDescriptorType

◆ bString

short SceUdcdStringDescriptor::bString[31]

◆ SceUdcdDeviceDescriptor

SceUdcdDeviceDescriptor

◆ SceUdcdDeviceQualifierDescriptor

SceUdcdDeviceQualifierDescriptor

◆ bLength [2/4]

unsigned char SceUdcdConfigDescriptor::bLength

◆ bDescriptorType [2/4]

unsigned char SceUdcdConfigDescriptor::bDescriptorType

◆ wTotalLength

unsigned short SceUdcdConfigDescriptor::wTotalLength

◆ bNumInterfaces

unsigned char SceUdcdConfigDescriptor::bNumInterfaces

◆ bConfigurationValue

unsigned char SceUdcdConfigDescriptor::bConfigurationValue

◆ iConfiguration

unsigned char SceUdcdConfigDescriptor::iConfiguration

◆ bmAttributes [1/2]

unsigned char SceUdcdConfigDescriptor::bmAttributes

◆ bMaxPower

unsigned char SceUdcdConfigDescriptor::bMaxPower

◆ settings [1/2]

struct SceUdcdInterfaceSettings* SceUdcdConfigDescriptor::settings

◆ extra [1/3]

unsigned char* SceUdcdConfigDescriptor::extra

Extra descriptors.

◆ extraLength [1/3]

int SceUdcdConfigDescriptor::extraLength

◆ descriptors

struct SceUdcdInterfaceDescriptor* SceUdcdInterfaceSettings::descriptors

Pointers to the individual interface descriptors.

◆ alternateSetting

unsigned int SceUdcdInterfaceSettings::alternateSetting

◆ numDescriptors

unsigned int SceUdcdInterfaceSettings::numDescriptors

Number of interface descriptors.

◆ bLength [3/4]

unsigned char SceUdcdInterfaceDescriptor::bLength

◆ bDescriptorType [3/4]

unsigned char SceUdcdInterfaceDescriptor::bDescriptorType

◆ bInterfaceNumber

unsigned char SceUdcdInterfaceDescriptor::bInterfaceNumber

◆ bAlternateSetting

unsigned char SceUdcdInterfaceDescriptor::bAlternateSetting

◆ bNumEndpoints

unsigned char SceUdcdInterfaceDescriptor::bNumEndpoints

◆ bInterfaceClass

unsigned char SceUdcdInterfaceDescriptor::bInterfaceClass

◆ bInterfaceSubClass

unsigned char SceUdcdInterfaceDescriptor::bInterfaceSubClass

◆ bInterfaceProtocol

unsigned char SceUdcdInterfaceDescriptor::bInterfaceProtocol

◆ iInterface

unsigned char SceUdcdInterfaceDescriptor::iInterface

◆ endpoints [1/2]

struct SceUdcdEndpointDescriptor* SceUdcdInterfaceDescriptor::endpoints

◆ extra [2/3]

unsigned char* SceUdcdInterfaceDescriptor::extra

Extra descriptors.

◆ extraLength [2/3]

int SceUdcdInterfaceDescriptor::extraLength

◆ bLength [4/4]

unsigned char SceUdcdEndpointDescriptor::bLength

◆ bDescriptorType [4/4]

unsigned char SceUdcdEndpointDescriptor::bDescriptorType

◆ bEndpointAddress

unsigned char SceUdcdEndpointDescriptor::bEndpointAddress

◆ bmAttributes [2/2]

unsigned char SceUdcdEndpointDescriptor::bmAttributes

◆ wMaxPacketSize

unsigned short SceUdcdEndpointDescriptor::wMaxPacketSize

◆ bInterval

unsigned char SceUdcdEndpointDescriptor::bInterval

◆ extra [3/3]

unsigned char* SceUdcdEndpointDescriptor::extra

Extra descriptors.

◆ extraLength [3/3]

int SceUdcdEndpointDescriptor::extraLength

◆ expectNumber

int SceUdcdInterface::expectNumber

Expectant interface number (interface number or -1)

◆ interfaceNumber

int SceUdcdInterface::interfaceNumber

End interface.

◆ numInterfaces

int SceUdcdInterface::numInterfaces

Number of interfaces.

◆ direction

int SceUdcdEndpoint::direction

USB_ENDPOINT_IN / USB_ENDPOINT_OUT.

◆ driverEndpointNumber

int SceUdcdEndpoint::driverEndpointNumber

Driver Endpoint number (must be filled in sequentially)

◆ endpointNumber

int SceUdcdEndpoint::endpointNumber

Endpoint number (Filled in by the bus driver)

◆ transmittedBytes

int SceUdcdEndpoint::transmittedBytes

Number of transmitted bytes.

◆ configDescriptors

SceUdcdConfigDescriptor* SceUdcdConfiguration::configDescriptors

Pointer to the configuration descriptors.

◆ settings [2/2]

SceUdcdInterfaceSettings* SceUdcdConfiguration::settings

USB driver interface settings.

◆ interfaceDescriptors

SceUdcdInterfaceDescriptor* SceUdcdConfiguration::interfaceDescriptors

Pointer to the first interface descriptor.

◆ endpointDescriptors

SceUdcdEndpointDescriptor* SceUdcdConfiguration::endpointDescriptors

Pointer to the first endpoint descriptor.

◆ bmRequestType

unsigned char SceUdcdEP0DeviceRequest::bmRequestType

◆ bRequest

unsigned char SceUdcdEP0DeviceRequest::bRequest

◆ wValue

unsigned short SceUdcdEP0DeviceRequest::wValue

◆ wIndex

unsigned short SceUdcdEP0DeviceRequest::wIndex

◆ wLength

unsigned short SceUdcdEP0DeviceRequest::wLength

◆ driverName [2/2]

const char* SceUdcdDriver::driverName

Name of the USB driver.

◆ numEndpoints

int SceUdcdDriver::numEndpoints

Number of endpoints in this driver (including default control)

◆ endpoints [2/2]

SceUdcdEndpoint* SceUdcdDriver::endpoints

List of endpoint structures (used when calling other functions)

◆ interface

SceUdcdInterface* SceUdcdDriver::interface

Interface list.

◆ descriptor_hi

SceUdcdDeviceDescriptor* SceUdcdDriver::descriptor_hi

Pointer to hi-speed device descriptor.

◆ configuration_hi

SceUdcdConfiguration* SceUdcdDriver::configuration_hi

Pointer to hi-speed device configuration.

◆ descriptor

SceUdcdDeviceDescriptor* SceUdcdDriver::descriptor

Pointer to full-speed device descriptor.

◆ configuration

SceUdcdConfiguration* SceUdcdDriver::configuration

Pointer to full-speed device configuration.

◆ stringDescriptors

SceUdcdStringDescriptor* SceUdcdDriver::stringDescriptors

Default string descriptors.

◆ stringDescriptorProduct

SceUdcdStringDescriptor* SceUdcdDriver::stringDescriptorProduct

Product string descriptor (iProduct has to be 2)

◆ stringDescriptorSerial

SceUdcdStringDescriptor* SceUdcdDriver::stringDescriptorSerial

Serial string descriptor (iSerial has to be 3)

◆ processRequest

int(* SceUdcdDriver::processRequest) (int recipient, int arg, SceUdcdEP0DeviceRequest *req, void *user_data)

Received a control request.

◆ changeSetting

int(* SceUdcdDriver::changeSetting) (int interfaceNumber, int alternateSetting, int bus)

Change alternate setting.

◆ attach

int(* SceUdcdDriver::attach) (int usb_version, void *user_data)

Configuration set (attach) function.

◆ detach

void(* SceUdcdDriver::detach) (void *user_data)

Configuration unset (detach) function.

◆ configure

void(* SceUdcdDriver::configure) (int usb_version, int desc_count, SceUdcdInterfaceSettings *settings, void *user_data)

Configure the device.

◆ start

int(* SceUdcdDriver::start) (int size, void *args, void *user_data)

Function called when the driver is started.

◆ stop

int(* SceUdcdDriver::stop) (int size, void *args, void *user_data)

Function called when the driver is stopped.

◆ user_data

void* SceUdcdDriver::user_data

User data.

◆ bus

int SceUdcdDriver::bus

USB bus.

◆ link

struct SceUdcdDriver* SceUdcdDriver::link

Link to next USB driver in the chain, set to NULL.

◆ endpoint

SceUdcdEndpoint* SceUdcdDeviceRequest::endpoint

Pointer to the endpoint to queue request on.

◆ data

void* SceUdcdDeviceRequest::data

Pointer to the data buffer to use in the request.

◆ attributes

unsigned int SceUdcdDeviceRequest::attributes

Request attributes (See SceUdcdDeviceRequestAttr)

◆ size

int SceUdcdDeviceRequest::size

Size of the data buffer.

◆ isControlRequest

int SceUdcdDeviceRequest::isControlRequest

Is a control request?

◆ onComplete

void(* SceUdcdDeviceRequest::onComplete) (struct SceUdcdDeviceRequest *req)

Pointer to the function to call on completion.

◆ transmitted

int SceUdcdDeviceRequest::transmitted

Number of transmitted bytes.

◆ returnCode

int SceUdcdDeviceRequest::returnCode

Return code of the request (See SceUdcdRetcode)

◆ next

struct SceUdcdDeviceRequest* SceUdcdDeviceRequest::next

Link pointer to next request used by the driver, set it to NULL.

◆ unused

void* SceUdcdDeviceRequest::unused

An unused value (maybe an argument)

◆ physicalAddress

void* SceUdcdDeviceRequest::physicalAddress

Physical address.

◆ SceUdcdDriverName

SceUdcdDriverName