diff options
author | Rinnegatamante | 2017-10-05 19:20:28 +0200 |
---|---|---|
committer | Rinnegatamante | 2017-10-05 19:20:28 +0200 |
commit | e42bb51b42456f1f80bd58fe46a774086f8fcd08 (patch) | |
tree | 0e67037326e09dea019fc0b3691c55e46bac7ae8 | |
parent | Update SceFiber and SceDeci4p (#226) (diff) | |
download | vds-libraries-e42bb51b42456f1f80bd58fe46a774086f8fcd08.tar.gz |
Named anonymous enums in psp2kern
Named anonymous enums in psp2kern
-rw-r--r-- | include/kernel/bt.h | 523 | ||||
-rw-r--r-- | include/kernel/ctrl.h | 26 | ||||
-rw-r--r-- | include/kernel/display.h | 48 | ||||
-rw-r--r-- | include/kernel/kernel/cpu.h | 6 | ||||
-rw-r--r-- | include/kernel/kernel/modulemgr.h | 20 | ||||
-rw-r--r-- | include/kernel/kernel/processmgr.h | 8 | ||||
-rw-r--r-- | include/kernel/kernel/sysmem.h | 34 | ||||
-rw-r--r-- | include/kernel/kernel/threadmgr.h | 39 | ||||
-rw-r--r-- | include/kernel/lowio/gpio.h | 12 | ||||
-rw-r--r-- | include/kernel/net/net.h | 802 | ||||
-rw-r--r-- | include/kernel/udcd.h | 469 | ||||
-rw-r--r-- | include/kernel/usbd.h | 43 |
12 files changed, 904 insertions, 1126 deletions
diff --git a/include/kernel/bt.h b/include/kernel/bt.h index f0b0102..a5324f8 100644 --- a/include/kernel/bt.h +++ b/include/kernel/bt.h @@ -7,269 +7,268 @@ extern "C" { #endif -#define SCE_BT_ERROR_ACL_TX_BUF_OVERFLOW 0x802f0b03 -#define SCE_BT_ERROR_ACL_TX_CB_OVERFLOW 0x802f0b04 -#define SCE_BT_ERROR_ATT_APPLICATION_ERROR_HI 0x802f23ff -#define SCE_BT_ERROR_ATT_APPLICATION_ERROR_LO 0x802f2380 -#define SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_FOUND 0x802f230a -#define SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_LONG 0x802f230b -#define SCE_BT_ERROR_ATT_BASE 0x802f2300 -#define SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHENTICATION 0x802f2305 -#define SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHORIZATION 0x802f2308 -#define SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION 0x802f230f -#define SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE 0x802f230c -#define SCE_BT_ERROR_ATT_INSUFFICIENT_RESOURCES 0x802f2311 -#define SCE_BT_ERROR_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH 0x802f230d -#define SCE_BT_ERROR_ATT_INVALID_HANDLE 0x802f2301 -#define SCE_BT_ERROR_ATT_INVALID_OFFSET 0x802f2307 -#define SCE_BT_ERROR_ATT_INVALID_PDU 0x802f2304 -#define SCE_BT_ERROR_ATT_NOT_YET 0x802f2a07 -#define SCE_BT_ERROR_ATT_PEPARE_QUEUE_FULL 0x802f2309 -#define SCE_BT_ERROR_ATT_READ_INVALID_INTERNAL 0x802f2a03 -#define SCE_BT_ERROR_ATT_READ_INVALID_LENGTH 0x802f2a02 -#define SCE_BT_ERROR_ATT_READ_INVALID_NO 0x802f2a01 -#define SCE_BT_ERROR_ATT_READ_NOT_PERMITTED 0x802f2302 -#define SCE_BT_ERROR_ATT_REQUEST_NOT_SUPPORTED 0x802f2306 -#define SCE_BT_ERROR_ATT_UNLIKELY_ERROR 0x802f230e -#define SCE_BT_ERROR_ATT_UNSUPPORTED_GROUP_TYPE 0x802f2310 -#define SCE_BT_ERROR_ATT_WRITE_INVALID_INTERNAL 0x802f2a06 -#define SCE_BT_ERROR_ATT_WRITE_INVALID_LENGTH 0x802f2a05 -#define SCE_BT_ERROR_ATT_WRITE_INVALID_NO 0x802f2a04 -#define SCE_BT_ERROR_ATT_WRITE_NOT_PERMITTED 0x802f2303 -#define SCE_BT_ERROR_AUDIO_COMBI_NOT_FOUND 0x802f0d16 -#define SCE_BT_ERROR_AUDIO_FREQ_IS_LE 0x802f2209 -#define SCE_BT_ERROR_AUDIO_FREQ_NOT_CONNECTED 0x802f0d0f -#define SCE_BT_ERROR_AUDIO_INTERNAL_1 0x802f0d18 -#define SCE_BT_ERROR_AUDIO_RECV_BAD_TYPE 0x802f0d12 -#define SCE_BT_ERROR_AUDIO_RECV_BUSY 0x802f0d1a -#define SCE_BT_ERROR_AUDIO_RECV_INVALID_LENGTH 0x802f0d0a -#define SCE_BT_ERROR_AUDIO_RECV_IS_LE 0x802f2208 -#define SCE_BT_ERROR_AUDIO_RECV_NO_CAP 0x802f0d1d -#define SCE_BT_ERROR_AUDIO_RECV_NOT_CONNECTED 0x802f0d08 -#define SCE_BT_ERROR_AUDIO_RECV_NOT_STARTED 0x802f0d09 -#define SCE_BT_ERROR_AUDIO_RECV_SERV_FAILED 0x802f0d1e -#define SCE_BT_ERROR_AUDIO_SEND_BAD_TYPE 0x802f0d11 -#define SCE_BT_ERROR_AUDIO_SEND_BUSY 0x802f0d19 -#define SCE_BT_ERROR_AUDIO_SEND_INVALID_LENGTH 0x802f0d07 -#define SCE_BT_ERROR_AUDIO_SEND_IS_LE 0x802f2207 -#define SCE_BT_ERROR_AUDIO_SEND_NO_CAP 0x802f0d1b -#define SCE_BT_ERROR_AUDIO_SEND_NO_CP 0x802f0d10 -#define SCE_BT_ERROR_AUDIO_SEND_NO_L2C 0x802f0d17 -#define SCE_BT_ERROR_AUDIO_SEND_NOT_CONNECTED 0x802f0d05 -#define SCE_BT_ERROR_AUDIO_SEND_NOT_STARTED 0x802f0d06 -#define SCE_BT_ERROR_AUDIO_SEND_SERV_FAILED 0x802f0d1c -#define SCE_BT_ERROR_AUDIO_START_INVALID_SERV 0x802f0d0b -#define SCE_BT_ERROR_AUDIO_START_IS_LE 0x802f2205 -#define SCE_BT_ERROR_AUDIO_START_NO_CAP 0x802f0d02 -#define SCE_BT_ERROR_AUDIO_START_NOT_CONNECTED 0x802f0d01 -#define SCE_BT_ERROR_AUDIO_START_SERV_FAILED 0x802f0d0d -#define SCE_BT_ERROR_AUDIO_STOP_INVALID_SERV 0x802f0d0c -#define SCE_BT_ERROR_AUDIO_STOP_IS_LE 0x802f2206 -#define SCE_BT_ERROR_AUDIO_STOP_NO_CAP 0x802f0d04 -#define SCE_BT_ERROR_AUDIO_STOP_NOT_CONNECTED 0x802f0d03 -#define SCE_BT_ERROR_AUDIO_STOP_SERV_FAILED 0x802f0d0e -#define SCE_BT_ERROR_AVCTP_CLOSE_NO_L2C 0x802f0602 -#define SCE_BT_ERROR_AVCTP_IS_LE 0x802f2203 -#define SCE_BT_ERROR_AVCTP_NOT_CONNECTED 0x802f0604 -#define SCE_BT_ERROR_AVCTP_OPEN_NO_L2C 0x802f0601 -#define SCE_BT_ERROR_AVCTP_READ_NO_VOLUME 0x802f0608 -#define SCE_BT_ERROR_AVCTP_SEND_BUSY 0x802f0605 -#define SCE_BT_ERROR_AVCTP_SEND_NO_L2C 0x802f0603 -#define SCE_BT_ERROR_AVCTP_SEND_NO_PRESS 0x802f0606 -#define SCE_BT_ERROR_AVCTP_SEND_NO_RELEASE 0x802f0607 -#define SCE_BT_ERROR_AVCTP_SEND_NOT_RUBY 0x802f0609 -#define SCE_BT_ERROR_AVDTP_CLOSE_BAD_SERV 0x802f0502 -#define SCE_BT_ERROR_AVDTP_CLOSE_BAD_STATE 0x802f0503 -#define SCE_BT_ERROR_AVDTP_OPEN_NO_L2C 0x802f0501 -#define SCE_BT_ERROR_AVDTP_RECONF_BAD_SERV 0x802f0509 -#define SCE_BT_ERROR_AVDTP_RECONF_BAD_STATE 0x802f050a -#define SCE_BT_ERROR_AVDTP_SEND_BAD_STATE 0x802f0508 -#define SCE_BT_ERROR_AVDTP_START_BAD_SERV 0x802f0504 -#define SCE_BT_ERROR_AVDTP_START_BAD_STATE 0x802f0505 -#define SCE_BT_ERROR_AVDTP_STOP_BAD_SERV 0x802f0506 -#define SCE_BT_ERROR_AVDTP_STOP_BAD_STATE 0x802f0507 -#define SCE_BT_ERROR_AVRCP_INVALID_PLAY_STATUS 0x802f1202 -#define SCE_BT_ERROR_AVRCP_TOO_LONG_TITLE 0x802f1201 -#define SCE_BT_ERROR_CB_NOT_REGISTERED 0x802f0c03 -#define SCE_BT_ERROR_CB_OVERFLOW 0x802f0c04 -#define SCE_BT_ERROR_CB_TOO_MANY 0x802f0c02 -#define SCE_BT_ERROR_CONF_BT_INACTIVE 0x802f1503 -#define SCE_BT_ERROR_CONF_CANT_DISABLE_FUNCTION 0x802f1508 -#define SCE_BT_ERROR_CONF_CANT_ENABLE_FUNCTION 0x802f1507 -#define SCE_BT_ERROR_CONF_CANT_ENTER 0x802f1520 -#define SCE_BT_ERROR_CONF_CARD_NOT_FOUND 0x802f1505 -#define SCE_BT_ERROR_CONF_DISABLE_SUBINTR 0x802f150c -#define SCE_BT_ERROR_CONF_ENABLE_SUBINTR 0x802f150b -#define SCE_BT_ERROR_CONF_FUNCTION_NOT_FOUND 0x802f1506 -#define SCE_BT_ERROR_CONF_INVALID_VALUE 0x802f1502 -#define SCE_BT_ERROR_CONF_NOT_READY 0x802f1501 -#define SCE_BT_ERROR_CONF_OFF_TIMEOUT 0x802f150e -#define SCE_BT_ERROR_CONF_ON_TIMEOUT 0x802f150d -#define SCE_BT_ERROR_CONF_REGISTER_SUBINTR_HANDLER 0x802f1509 -#define SCE_BT_ERROR_CONF_RELEASE_SUBINTR_HANDLER 0x802f150a -#define SCE_BT_ERROR_CONF_SUSPEND_TIMEOUT 0x802f150f -#define SCE_BT_ERROR_CONF_TIMEOUT 0x802f1504 -#define SCE_BT_ERROR_CONNECT_START_BUSY 0x802f0204 -#define SCE_BT_ERROR_CONNECT_START_CONNECTED 0x802f020a -#define SCE_BT_ERROR_CONNECT_START_DELETING 0x802f020e -#define SCE_BT_ERROR_CONNECT_START_IS_LE 0x802f2202 -#define SCE_BT_ERROR_CONNECT_START_NO_REG 0x802f0202 -#define SCE_BT_ERROR_CONNECT_START_NOT_CONNECTABLE 0x802f0203 -#define SCE_BT_ERROR_CONNECT_START_REG_FULL 0x802f0209 -#define SCE_BT_ERROR_CONNECT_START_TOO_MANY 0x802f020d -#define SCE_BT_ERROR_COPYIN_FAILED 0x802f0b09 -#define SCE_BT_ERROR_COPYOUT_FAILED 0x802f0b0a -#define SCE_BT_ERROR_DISCONNECT_START_NOT_CONNECTED 0x802f0205 -#define SCE_BT_ERROR_GATT_BUSY 0x802f2403 -#define SCE_BT_ERROR_GATT_DISCONNECT 0x802f240a -#define SCE_BT_ERROR_GATT_ENTER 0x802f240c -#define SCE_BT_ERROR_GATT_INVALID_FLAGS 0x802f2405 -#define SCE_BT_ERROR_GATT_INVALID_HANDLE 0x802f2404 -#define SCE_BT_ERROR_GATT_INVALID_NO 0x802f2401 -#define SCE_BT_ERROR_GATT_INVALID_SIZE 0x802f2406 -#define SCE_BT_ERROR_GATT_NOT_CONNECTED 0x802f2402 -#define SCE_BT_ERROR_GATT_NOT_LE 0x802f2407 -#define SCE_BT_ERROR_GATT_NOT_YET 0x802f2409 -#define SCE_BT_ERROR_GATT_TOO_BIG_BUFFER 0x802f240d -#define SCE_BT_ERROR_GATT_TOO_BIG_RECORD 0x802f2408 -#define SCE_BT_ERROR_GATT_TSLEEP 0x802f240b -#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_ARGUMENT 0x802f2105 -#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_REQUEST 0x802f2101 -#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_SIZE 0x802f2103 -#define SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_STATE 0x802f2107 -#define SCE_BT_ERROR_GET_DEBUG_INFO_NOT_CONNECTED 0x802f2109 -#define SCE_BT_ERROR_GET_JACK_STATUS_NOT_CONNECTED 0x802f3301 -#define SCE_BT_ERROR_GET_NAME_NO_DEVICE 0x802f0c01 -#define SCE_BT_ERROR_HCI_TX_OVERFLOW 0x802f0b02 -#define SCE_BT_ERROR_HID_CLOSE_NO_L2C 0x802f0902 -#define SCE_BT_ERROR_HID_INVALID_BUFFER_ADDRESS 0x802f0907 -#define SCE_BT_ERROR_HID_INVALID_IDLE 0x802f0909 -#define SCE_BT_ERROR_HID_INVALID_LENGTH 0x802f090d -#define SCE_BT_ERROR_HID_INVALID_PROTOCOL 0x802f0908 -#define SCE_BT_ERROR_HID_INVALID_REPORT_ID 0x802f090e -#define SCE_BT_ERROR_HID_INVALID_REQUEST_TYPE 0x802f0906 -#define SCE_BT_ERROR_HID_IS_LE 0x802f2204 -#define SCE_BT_ERROR_HID_NO_CAP 0x802f0905 -#define SCE_BT_ERROR_HID_NOT_CONNECTED 0x802f0904 -#define SCE_BT_ERROR_HID_NOT_YET 0x802f090c -#define SCE_BT_ERROR_HID_OPEN_NO_L2C 0x802f0901 -#define SCE_BT_ERROR_HID_OVERWRITE_REQ 0x802f090f -#define SCE_BT_ERROR_HID_RECV_INVALID_LENGTH 0x802f0e02 -#define SCE_BT_ERROR_HID_RECV_NOT_CONNECTED 0x802f0e01 -#define SCE_BT_ERROR_HID_SEND_NO_L2C 0x802f0903 -#define SCE_BT_ERROR_INQUIRY_START_BUSY 0x802f0201 -#define SCE_BT_ERROR_JEDI_SNIFF_NOT_CONNECTED 0x802f3601 -#define SCE_BT_ERROR_JEDI_SNIFF_NOT_JEDI 0x802f3602 -#define SCE_BT_ERROR_JEDI_VOLUME_GAIN_NOT_CONNECTED 0x802f3501 -#define SCE_BT_ERROR_JUMBO_UNLOCK_NOT_OWNER 0x802f0b01 -#define SCE_BT_ERROR_KPROC_CREATE 0x802f2002 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_BUSY 0x802f290d -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_CONNECTED 0x802f290b -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_FULL 0x802f290c -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MAX 0x802f2906 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MIN 0x802f2905 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_LATENCY 0x802f2907 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_OWN_ADDRESS_TYPE 0x802f2904 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_PEER_ADDRESS 0x802f2903 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_INTERVAL 0x802f2901 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_WINDOW 0x802f2902 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_TIMEOUT 0x802f2908 -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_ERROR 0x802f290a -#define SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_FULL 0x802f2909 -#define SCE_BT_ERROR_LE_GET_ADVERTISING_NOT_FOUND 0x802f2801 -#define SCE_BT_ERROR_LE_NOT_SUPPORTED 0x802f2b01 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS 0x802f2607 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS_TYPE 0x802f2606 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MAX 0x802f2604 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MIN 0x802f2603 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_LENGTH 0x802f2602 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_OWN_ADDRESS_TYPE 0x802f2605 -#define SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_REQ 0x802f2601 -#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_INTERVAL 0x802f2703 -#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_LENGTH 0x802f2702 -#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_OWN_ADDRESS_TYPE 0x802f2705 -#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_REQ 0x802f2701 -#define SCE_BT_ERROR_LE_SET_SCAN_INVALID_WINDOW 0x802f2704 -#define SCE_BT_ERROR_NOT_READY 0x802f3201 -#define SCE_BT_ERROR_NOT_SUPPORTED_DEVICE 0x802f3403 -#define SCE_BT_ERROR_NOTIMP 0x802f2001 -#define SCE_BT_ERROR_PAIRING_OOB_CAN_NOT_DISCONNECT 0x802f3103 -#define SCE_BT_ERROR_PAIRING_OOB_FULL 0x802f3102 -#define SCE_BT_ERROR_PAIRING_OOB_INTERNAL_ERROR 0x802f3104 -#define SCE_BT_ERROR_PAIRING_OOB_TIMEOUT 0x802f3101 -#define SCE_BT_ERROR_PIN_INVALID_LENGTH 0x802f0206 -#define SCE_BT_ERROR_PIN_IS_LE 0x802f2201 -#define SCE_BT_ERROR_REG_CANNOT_LOAD 0x802f010a -#define SCE_BT_ERROR_REG_CANNOT_OPEN 0x802f010b -#define SCE_BT_ERROR_REG_CANNOT_READ 0x802f010c -#define SCE_BT_ERROR_REG_CANNOT_WRITE 0x802f010d -#define SCE_BT_ERROR_REG_DELETE_CONNECTING 0x802f0109 -#define SCE_BT_ERROR_REG_DELETE_NO_ENTRY 0x802f0102 -#define SCE_BT_ERROR_REG_GET_HID_DESC_NO_REG 0x802f0107 -#define SCE_BT_ERROR_REG_GET_HID_DESC_TOO_SHORT 0x802f0108 -#define SCE_BT_ERROR_REG_NOT_READY 0x802f0101 -#define SCE_BT_ERROR_REG_SET_HID_DESC_BAD_ARG 0x802f0105 -#define SCE_BT_ERROR_REG_SET_HID_DESC_NO_REG 0x802f0106 -#define SCE_BT_ERROR_REG_UPDATE_CANNOT_SAVE 0x802f0103 -#define SCE_BT_ERROR_SDIO_DISABLE_FUNCTION 0x802f2009 -#define SCE_BT_ERROR_SDIO_ENABLE_FUNCTION 0x802f2008 -#define SCE_BT_ERROR_SDIO_GET_FUNCTION 0x802f2003 -#define SCE_BT_ERROR_SDIO_LOCK 0x802f2006 -#define SCE_BT_ERROR_SDIO_READ_DIR 0x802f200c -#define SCE_BT_ERROR_SDIO_READ_FIX 0x802f200e -#define SCE_BT_ERROR_SDIO_REGISTER_INTR_HANDLER 0x802f2004 -#define SCE_BT_ERROR_SDIO_SET_BLOCK_LEN 0x802f200a -#define SCE_BT_ERROR_SDIO_SET_BUS_SPEED 0x802f200b -#define SCE_BT_ERROR_SDIO_UNLOCK 0x802f2007 -#define SCE_BT_ERROR_SDIO_UNREGISTER_INTR_HANDLER 0x802f2005 -#define SCE_BT_ERROR_SDIO_WRITE_DIR 0x802f200d -#define SCE_BT_ERROR_SDIO_WRITE_FIX 0x802f200f -#define SCE_BT_ERROR_SDP_OPEN_NO_L2C 0x802f0208 -#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_ARGUMENT 0x802f2106 -#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_REQUEST 0x802f2102 -#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_SIZE 0x802f2104 -#define SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_STATE 0x802f2108 -#define SCE_BT_ERROR_SET_DEBUG_INFO_NOT_CONNECTED 0x802f210a -#define SCE_BT_ERROR_SM_INVALID_CONFIRM_REPLY 0x802f2505 -#define SCE_BT_ERROR_SM_INVALID_KEY_LENGTH 0x802f2501 -#define SCE_BT_ERROR_SM_NO_REQ 0x802f2503 -#define SCE_BT_ERROR_SM_NOT_DIGIT 0x802f2502 -#define SCE_BT_ERROR_SM_NOT_NEEDED_PIN 0x802f2504 -#define SCE_BT_ERROR_TIMER_CANCEL_BAD_ID 0x802f0b05 -#define SCE_BT_ERROR_TIMER_CANCEL_NOT_INITIALIZED 0x802f0b06 -#define SCE_BT_ERROR_TIMER_SET_NO_SPACE 0x802f0b08 -#define SCE_BT_ERROR_TIMER_SET_NOT_INITIALIZED 0x802f0b07 -#define SCE_BT_ERROR_TOO_MANY_CONNECTION 0x802f3401 -#define SCE_BT_ERROR_TOO_MANY_HID 0x802f3402 -#define SCE_BT_ERROR_TSLEEP 0x802f2010 -#define SCE_BT_ERROR_USER_CONFIRM_NOT_CONNECTED 0x802f0207 +typedef enum SceBtErrorCode { + SCE_BT_ERROR_REG_NOT_READY = 0x802f0101, + SCE_BT_ERROR_REG_DELETE_NO_ENTRY = 0x802f0102, + SCE_BT_ERROR_REG_UPDATE_CANNOT_SAVE = 0x802f0103, + SCE_BT_ERROR_REG_SET_HID_DESC_BAD_ARG = 0x802f0105, + SCE_BT_ERROR_REG_SET_HID_DESC_NO_REG = 0x802f0106, + SCE_BT_ERROR_REG_GET_HID_DESC_NO_REG = 0x802f0107, + SCE_BT_ERROR_REG_GET_HID_DESC_TOO_SHORT = 0x802f0108, + SCE_BT_ERROR_REG_DELETE_CONNECTING = 0x802f0109, + SCE_BT_ERROR_REG_CANNOT_LOAD = 0x802f010a, + SCE_BT_ERROR_REG_CANNOT_OPEN = 0x802f010b, + SCE_BT_ERROR_REG_CANNOT_READ = 0x802f010c, + SCE_BT_ERROR_REG_CANNOT_WRITE = 0x802f010d, + SCE_BT_ERROR_INQUIRY_START_BUSY = 0x802f0201, + SCE_BT_ERROR_CONNECT_START_NO_REG = 0x802f0202, + SCE_BT_ERROR_CONNECT_START_NOT_CONNECTABLE = 0x802f0203, + SCE_BT_ERROR_CONNECT_START_BUSY = 0x802f0204, + SCE_BT_ERROR_DISCONNECT_START_NOT_CONNECTED = 0x802f0205, + SCE_BT_ERROR_PIN_INVALID_LENGTH = 0x802f0206, + SCE_BT_ERROR_USER_CONFIRM_NOT_CONNECTED = 0x802f0207, + SCE_BT_ERROR_SDP_OPEN_NO_L2C = 0x802f0208, + SCE_BT_ERROR_CONNECT_START_REG_FULL = 0x802f0209, + SCE_BT_ERROR_CONNECT_START_CONNECTED = 0x802f020a, + SCE_BT_ERROR_CONNECT_START_TOO_MANY = 0x802f020d, + SCE_BT_ERROR_CONNECT_START_DELETING = 0x802f020e, + SCE_BT_ERROR_AVDTP_OPEN_NO_L2C = 0x802f0501, + SCE_BT_ERROR_AVDTP_CLOSE_BAD_SERV = 0x802f0502, + SCE_BT_ERROR_AVDTP_CLOSE_BAD_STATE = 0x802f0503, + SCE_BT_ERROR_AVDTP_START_BAD_SERV = 0x802f0504, + SCE_BT_ERROR_AVDTP_START_BAD_STATE = 0x802f0505, + SCE_BT_ERROR_AVDTP_STOP_BAD_SERV = 0x802f0506, + SCE_BT_ERROR_AVDTP_STOP_BAD_STATE = 0x802f0507, + SCE_BT_ERROR_AVDTP_SEND_BAD_STATE = 0x802f0508, + SCE_BT_ERROR_AVDTP_RECONF_BAD_SERV = 0x802f0509, + SCE_BT_ERROR_AVDTP_RECONF_BAD_STATE = 0x802f050a, + SCE_BT_ERROR_AVCTP_OPEN_NO_L2C = 0x802f0601, + SCE_BT_ERROR_AVCTP_SEND_NO_L2C = 0x802f0603, + SCE_BT_ERROR_AVCTP_NOT_CONNECTED = 0x802f0604, + SCE_BT_ERROR_AVCTP_SEND_BUSY = 0x802f0605, + SCE_BT_ERROR_AVCTP_SEND_NO_PRESS = 0x802f0606, + SCE_BT_ERROR_AVCTP_SEND_NO_RELEASE = 0x802f0607, + SCE_BT_ERROR_AVCTP_READ_NO_VOLUME = 0x802f0608, + SCE_BT_ERROR_AVCTP_SEND_NOT_RUBY = 0x802f0609, + SCE_BT_ERROR_HID_OPEN_NO_L2C = 0x802f0901, + SCE_BT_ERROR_HID_CLOSE_NO_L2C = 0x802f0902, + SCE_BT_ERROR_HID_SEND_NO_L2C = 0x802f0903, + SCE_BT_ERROR_HID_NOT_CONNECTED = 0x802f0904, + SCE_BT_ERROR_HID_NO_CAP = 0x802f0905, + SCE_BT_ERROR_HID_INVALID_REQUEST_TYPE = 0x802f0906, + SCE_BT_ERROR_HID_INVALID_BUFFER_ADDRESS = 0x802f0907, + SCE_BT_ERROR_HID_INVALID_PROTOCOL = 0x802f0908, + SCE_BT_ERROR_HID_INVALID_IDLE = 0x802f0909, + SCE_BT_ERROR_HID_NOT_YET = 0x802f090c, + SCE_BT_ERROR_HID_INVALID_LENGTH = 0x802f090d, + SCE_BT_ERROR_HID_INVALID_REPORT_ID = 0x802f090e, + SCE_BT_ERROR_HID_OVERWRITE_REQ = 0x802f090f, + SCE_BT_ERROR_JUMBO_UNLOCK_NOT_OWNER = 0x802f0b01, + SCE_BT_ERROR_HCI_TX_OVERFLOW = 0x802f0b02, + SCE_BT_ERROR_ACL_TX_BUF_OVERFLOW = 0x802f0b03, + SCE_BT_ERROR_ACL_TX_CB_OVERFLOW = 0x802f0b04, + SCE_BT_ERROR_TIMER_CANCEL_BAD_ID = 0x802f0b05, + SCE_BT_ERROR_TIMER_CANCEL_NOT_INITIALIZED = 0x802f0b06, + SCE_BT_ERROR_TIMER_SET_NOT_INITIALIZED = 0x802f0b07, + SCE_BT_ERROR_TIMER_SET_NO_SPACE = 0x802f0b08, + SCE_BT_ERROR_COPYIN_FAILED = 0x802f0b09, + SCE_BT_ERROR_COPYOUT_FAILED = 0x802f0b0a, + SCE_BT_ERROR_GET_NAME_NO_DEVICE = 0x802f0c01, + SCE_BT_ERROR_CB_TOO_MANY = 0x802f0c02, + SCE_BT_ERROR_CB_NOT_REGISTERED = 0x802f0c03, + SCE_BT_ERROR_CB_OVERFLOW = 0x802f0c04, + SCE_BT_ERROR_AUDIO_START_NOT_CONNECTED = 0x802f0d01, + SCE_BT_ERROR_AUDIO_START_NO_CAP = 0x802f0d02, + SCE_BT_ERROR_AUDIO_STOP_NOT_CONNECTED = 0x802f0d03, + SCE_BT_ERROR_AUDIO_STOP_NO_CAP = 0x802f0d04, + SCE_BT_ERROR_AUDIO_SEND_NOT_CONNECTED = 0x802f0d05, + SCE_BT_ERROR_AUDIO_SEND_NOT_STARTED = 0x802f0d06, + SCE_BT_ERROR_AUDIO_SEND_INVALID_LENGTH = 0x802f0d07, + SCE_BT_ERROR_AUDIO_RECV_NOT_CONNECTED = 0x802f0d08, + SCE_BT_ERROR_AUDIO_RECV_NOT_STARTED = 0x802f0d09, + SCE_BT_ERROR_AUDIO_RECV_INVALID_LENGTH = 0x802f0d0a, + SCE_BT_ERROR_AUDIO_START_INVALID_SERV = 0x802f0d0b, + SCE_BT_ERROR_AUDIO_STOP_INVALID_SERV = 0x802f0d0c, + SCE_BT_ERROR_AUDIO_START_SERV_FAILED = 0x802f0d0d, + SCE_BT_ERROR_AUDIO_STOP_SERV_FAILED = 0x802f0d0e, + SCE_BT_ERROR_AUDIO_FREQ_NOT_CONNECTED = 0x802f0d0f, + SCE_BT_ERROR_AUDIO_SEND_NO_CP = 0x802f0d10, + SCE_BT_ERROR_AUDIO_SEND_BAD_TYPE = 0x802f0d11, + SCE_BT_ERROR_AUDIO_RECV_BAD_TYPE = 0x802f0d12, + SCE_BT_ERROR_AUDIO_COMBI_NOT_FOUND = 0x802f0d16, + SCE_BT_ERROR_AUDIO_SEND_NO_L2C = 0x802f0d17, + SCE_BT_ERROR_AUDIO_INTERNAL_1 = 0x802f0d18, + SCE_BT_ERROR_AUDIO_SEND_BUSY = 0x802f0d19, + SCE_BT_ERROR_AUDIO_RECV_BUSY = 0x802f0d1a, + SCE_BT_ERROR_AUDIO_SEND_NO_CAP = 0x802f0d1b, + SCE_BT_ERROR_AUDIO_SEND_SERV_FAILED = 0x802f0d1c, + SCE_BT_ERROR_AUDIO_RECV_NO_CAP = 0x802f0d1d, + SCE_BT_ERROR_AUDIO_RECV_SERV_FAILED = 0x802f0d1e, + SCE_BT_ERROR_HID_RECV_NOT_CONNECTED = 0x802f0e01, + SCE_BT_ERROR_HID_RECV_INVALID_LENGTH = 0x802f0e02, + SCE_BT_ERROR_AVRCP_TOO_LONG_TITLE = 0x802f1201, + SCE_BT_ERROR_AVRCP_INVALID_PLAY_STATUS = 0x802f1202, + SCE_BT_ERROR_CONF_NOT_READY = 0x802f1501, + SCE_BT_ERROR_CONF_INVALID_VALUE = 0x802f1502, + SCE_BT_ERROR_CONF_BT_INACTIVE = 0x802f1503, + SCE_BT_ERROR_CONF_TIMEOUT = 0x802f1504, + SCE_BT_ERROR_CONF_CARD_NOT_FOUND = 0x802f1505, + SCE_BT_ERROR_CONF_FUNCTION_NOT_FOUND = 0x802f1506, + SCE_BT_ERROR_CONF_CANT_ENABLE_FUNCTION = 0x802f1507, + SCE_BT_ERROR_CONF_CANT_DISABLE_FUNCTION = 0x802f1508, + SCE_BT_ERROR_CONF_REGISTER_SUBINTR_HANDLER = 0x802f1509, + SCE_BT_ERROR_CONF_RELEASE_SUBINTR_HANDLER = 0x802f150a, + SCE_BT_ERROR_CONF_ENABLE_SUBINTR = 0x802f150b, + SCE_BT_ERROR_CONF_DISABLE_SUBINTR = 0x802f150c, + SCE_BT_ERROR_CONF_ON_TIMEOUT = 0x802f150d, + SCE_BT_ERROR_CONF_OFF_TIMEOUT = 0x802f150e, + SCE_BT_ERROR_CONF_SUSPEND_TIMEOUT = 0x802f150f, + SCE_BT_ERROR_CONF_CANT_ENTER = 0x802f1520, + SCE_BT_ERROR_NOTIMP = 0x802f2001, + SCE_BT_ERROR_KPROC_CREATE = 0x802f2002, + SCE_BT_ERROR_SDIO_GET_FUNCTION = 0x802f2003, + SCE_BT_ERROR_SDIO_REGISTER_INTR_HANDLER = 0x802f2004, + SCE_BT_ERROR_SDIO_UNREGISTER_INTR_HANDLER = 0x802f2005, + SCE_BT_ERROR_SDIO_LOCK = 0x802f2006, + SCE_BT_ERROR_SDIO_UNLOCK = 0x802f2007, + SCE_BT_ERROR_SDIO_ENABLE_FUNCTION = 0x802f2008, + SCE_BT_ERROR_SDIO_DISABLE_FUNCTION = 0x802f2009, + SCE_BT_ERROR_SDIO_SET_BLOCK_LEN = 0x802f200a, + SCE_BT_ERROR_SDIO_SET_BUS_SPEED = 0x802f200b, + SCE_BT_ERROR_SDIO_READ_DIR = 0x802f200c, + SCE_BT_ERROR_SDIO_WRITE_DIR = 0x802f200d, + SCE_BT_ERROR_SDIO_READ_FIX = 0x802f200e, + SCE_BT_ERROR_SDIO_WRITE_FIX = 0x802f200f, + SCE_BT_ERROR_TSLEEP = 0x802f2010, + SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_REQUEST = 0x802f2101, + SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_REQUEST = 0x802f2102, + SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_SIZE = 0x802f2103, + SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_SIZE = 0x802f2104, + SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_ARGUMENT = 0x802f2105, + SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_ARGUMENT = 0x802f2106, + SCE_BT_ERROR_GET_DEBUG_INFO_INVALID_STATE = 0x802f2107, + SCE_BT_ERROR_SET_DEBUG_INFO_INVALID_STATE = 0x802f2108, + SCE_BT_ERROR_GET_DEBUG_INFO_NOT_CONNECTED = 0x802f2109, + SCE_BT_ERROR_SET_DEBUG_INFO_NOT_CONNECTED = 0x802f210a, + SCE_BT_ERROR_PIN_IS_LE = 0x802f2201, + SCE_BT_ERROR_CONNECT_START_IS_LE = 0x802f2202, + SCE_BT_ERROR_AVCTP_IS_LE = 0x802f2203, + SCE_BT_ERROR_HID_IS_LE = 0x802f2204, + SCE_BT_ERROR_AUDIO_START_IS_LE = 0x802f2205, + SCE_BT_ERROR_AUDIO_STOP_IS_LE = 0x802f2206, + SCE_BT_ERROR_AUDIO_SEND_IS_LE = 0x802f2207, + SCE_BT_ERROR_AUDIO_RECV_IS_LE = 0x802f2208, + SCE_BT_ERROR_AUDIO_FREQ_IS_LE = 0x802f2209, + SCE_BT_ERROR_ATT_BASE = 0x802f2300, + SCE_BT_ERROR_ATT_INVALID_HANDLE = 0x802f2301, + SCE_BT_ERROR_ATT_READ_NOT_PERMITTED = 0x802f2302, + SCE_BT_ERROR_ATT_WRITE_NOT_PERMITTED = 0x802f2303, + SCE_BT_ERROR_ATT_INVALID_PDU = 0x802f2304, + SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHENTICATION = 0x802f2305, + SCE_BT_ERROR_ATT_REQUEST_NOT_SUPPORTED = 0x802f2306, + SCE_BT_ERROR_ATT_INVALID_OFFSET = 0x802f2307, + SCE_BT_ERROR_ATT_INSUFFICIENT_AUTHORIZATION = 0x802f2308, + SCE_BT_ERROR_ATT_PEPARE_QUEUE_FULL = 0x802f2309, + SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_FOUND = 0x802f230a, + SCE_BT_ERROR_ATT_ATTRIBUTE_NOT_LONG = 0x802f230b, + SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0x802f230c, + SCE_BT_ERROR_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0x802f230d, + SCE_BT_ERROR_ATT_UNLIKELY_ERROR = 0x802f230e, + SCE_BT_ERROR_ATT_INSUFFICIENT_ENCRYPTION = 0x802f230f, + SCE_BT_ERROR_ATT_UNSUPPORTED_GROUP_TYPE = 0x802f2310, + SCE_BT_ERROR_ATT_INSUFFICIENT_RESOURCES = 0x802f2311, + SCE_BT_ERROR_ATT_APPLICATION_ERROR_LO = 0x802f2380, + SCE_BT_ERROR_ATT_APPLICATION_ERROR_HI = 0x802f23ff, + SCE_BT_ERROR_GATT_INVALID_NO = 0x802f2401, + SCE_BT_ERROR_GATT_NOT_CONNECTED = 0x802f2402, + SCE_BT_ERROR_GATT_BUSY = 0x802f2403, + SCE_BT_ERROR_GATT_INVALID_HANDLE = 0x802f2404, + SCE_BT_ERROR_GATT_INVALID_FLAGS = 0x802f2405, + SCE_BT_ERROR_GATT_INVALID_SIZE = 0x802f2406, + SCE_BT_ERROR_GATT_NOT_LE = 0x802f2407, + SCE_BT_ERROR_GATT_TOO_BIG_RECORD = 0x802f2408, + SCE_BT_ERROR_GATT_NOT_YET = 0x802f2409, + SCE_BT_ERROR_GATT_DISCONNECT = 0x802f240a, + SCE_BT_ERROR_GATT_TSLEEP = 0x802f240b, + SCE_BT_ERROR_GATT_ENTER = 0x802f240c, + SCE_BT_ERROR_GATT_TOO_BIG_BUFFER = 0x802f240d, + SCE_BT_ERROR_SM_INVALID_KEY_LENGTH = 0x802f2501, + SCE_BT_ERROR_SM_NOT_DIGIT = 0x802f2502, + SCE_BT_ERROR_SM_NO_REQ = 0x802f2503, + SCE_BT_ERROR_SM_NOT_NEEDED_PIN = 0x802f2504, + SCE_BT_ERROR_SM_INVALID_CONFIRM_REPLY = 0x802f2505, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_REQ = 0x802f2601, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_LENGTH = 0x802f2602, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MIN = 0x802f2603, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_INTERVAL_MAX = 0x802f2604, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_OWN_ADDRESS_TYPE = 0x802f2605, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS_TYPE = 0x802f2606, + SCE_BT_ERROR_LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS = 0x802f2607, + SCE_BT_ERROR_LE_SET_SCAN_INVALID_REQ = 0x802f2701, + SCE_BT_ERROR_LE_SET_SCAN_INVALID_LENGTH = 0x802f2702, + SCE_BT_ERROR_LE_SET_SCAN_INVALID_INTERVAL = 0x802f2703, + SCE_BT_ERROR_LE_SET_SCAN_INVALID_WINDOW = 0x802f2704, + SCE_BT_ERROR_LE_SET_SCAN_INVALID_OWN_ADDRESS_TYPE = 0x802f2705, + SCE_BT_ERROR_LE_GET_ADVERTISING_NOT_FOUND = 0x802f2801, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_INTERVAL = 0x802f2901, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_SCAN_WINDOW = 0x802f2902, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_PEER_ADDRESS = 0x802f2903, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_OWN_ADDRESS_TYPE = 0x802f2904, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MIN = 0x802f2905, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_INTERVAL_MAX = 0x802f2906, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_LATENCY = 0x802f2907, + SCE_BT_ERROR_LE_CREATE_CONNECTION_INVALID_TIMEOUT = 0x802f2908, + SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_FULL = 0x802f2909, + SCE_BT_ERROR_LE_CREATE_CONNECTION_REG_ERROR = 0x802f290a, + SCE_BT_ERROR_LE_CREATE_CONNECTION_CONNECTED = 0x802f290b, + SCE_BT_ERROR_LE_CREATE_CONNECTION_FULL = 0x802f290c, + SCE_BT_ERROR_LE_CREATE_CONNECTION_BUSY = 0x802f290d, + SCE_BT_ERROR_ATT_READ_INVALID_NO = 0x802f2a01, + SCE_BT_ERROR_ATT_READ_INVALID_LENGTH = 0x802f2a02, + SCE_BT_ERROR_ATT_READ_INVALID_INTERNAL = 0x802f2a03, + SCE_BT_ERROR_ATT_WRITE_INVALID_NO = 0x802f2a04, + SCE_BT_ERROR_ATT_WRITE_INVALID_LENGTH = 0x802f2a05, + SCE_BT_ERROR_ATT_WRITE_INVALID_INTERNAL = 0x802f2a06, + SCE_BT_ERROR_ATT_NOT_YET = 0x802f2a07, + SCE_BT_ERROR_LE_NOT_SUPPORTED = 0x802f2b01, + SCE_BT_ERROR_PAIRING_OOB_TIMEOUT = 0x802f3101, + SCE_BT_ERROR_PAIRING_OOB_FULL = 0x802f3102, + SCE_BT_ERROR_PAIRING_OOB_CAN_NOT_DISCONNECT = 0x802f3103, + SCE_BT_ERROR_PAIRING_OOB_INTERNAL_ERROR = 0x802f3104, + SCE_BT_ERROR_NOT_READY = 0x802f3201, + SCE_BT_ERROR_GET_JACK_STATUS_NOT_CONNECTED = 0x802f3301, + SCE_BT_ERROR_TOO_MANY_CONNECTION = 0x802f3401, + SCE_BT_ERROR_TOO_MANY_HID = 0x802f3402, + SCE_BT_ERROR_NOT_SUPPORTED_DEVICE = 0x802f3403, + SCE_BT_ERROR_JEDI_VOLUME_GAIN_NOT_CONNECTED = 0x802f3501, + SCE_BT_ERROR_JEDI_SNIFF_NOT_CONNECTED = 0x802f3601, + SCE_BT_ERROR_JEDI_SNIFF_NOT_JEDI = 0x802f3602 +} SceBtErrorCode; -typedef struct { - unsigned char mac[6]; +typedef struct SceBtRegisteredInfo { + unsigned char mac[6]; unsigned short unk0; - unsigned int bt_class; - unsigned int unk1; - unsigned int unk2; + unsigned int bt_class; + unsigned int unk1; + unsigned int unk2; unsigned short vid; unsigned short pid; - unsigned int unk3; - unsigned int unk4; - char name[128]; - unsigned char unk5[0x60]; -} SceBtRegisteredInfo; /* size = 0x100 */ + unsigned int unk3; + unsigned int unk4; + char name[128]; + unsigned char unk5[0x60]; +} SceBtRegisteredInfo; -typedef struct { - // mac0 is at *(unsigned int *)&data[0x08]; - // mac1 is at *(unsigned int *)&data[0x0C]; +typedef struct SceBtEvent { union { unsigned char data[0x10]; struct { - unsigned char id; - unsigned char unk1; + unsigned char id; + unsigned char unk1; unsigned short unk2; - unsigned int unk3; - unsigned int mac0; - unsigned int mac1; + unsigned int unk3; + unsigned int mac0; + unsigned int mac1; }; }; } SceBtEvent; @@ -279,14 +278,14 @@ typedef void (*SceBtCallback)(int r0, int r1, int r2, int r3); typedef struct _SceBtHidRequest { uint32_t unk00; uint32_t unk04; - uint8_t type; //@0x08, 0 = read?, 1 = write?, 2 = feature?, 3 = ? - uint8_t unk09; - uint8_t unk0A; - uint8_t unk0B; - void *buffer; // 0x0C - uint32_t length; // 0x10 - struct _SceBtHidRequest *next; -} __attribute__((packed)) SceBtHidRequest; /* size = 0x18 */ + uint8_t type; // 0 = read?, 1 = write?, 2 = feature?, 3 = ? + uint8_t unk09; + uint8_t unk0A; + uint8_t unk0B; + void *buffer; + uint32_t length; + struct _SceBtHidRequest *next; +} __attribute__((packed)) SceBtHidRequest; int sceBtAvrcpReadVolume(int r0, int r1, int r2, int r3); int sceBtAvrcpSendButton(int r0, int r1, int r2, int r3); diff --git a/include/kernel/ctrl.h b/include/kernel/ctrl.h index bfc29a8..b1013f3 100644 --- a/include/kernel/ctrl.h +++ b/include/kernel/ctrl.h @@ -7,11 +7,11 @@ extern "C" { #endif -enum { - SCE_CTRL_ERROR_INVALID_ARG = 0x80340001, - SCE_CTRL_ERROR_PRIV_REQUIRED = 0x80340002, - SCE_CTRL_ERROR_FATAL = 0x803400FF -}; +typedef enum SceCtrlErrorCode { + SCE_CTRL_ERROR_INVALID_ARG = 0x80340001, + SCE_CTRL_ERROR_PRIV_REQUIRED = 0x80340002, + SCE_CTRL_ERROR_FATAL = 0x803400FF +} SceCtrlErrorCode; /** Enumeration for the digital controller buttons. * @note - L1/R1/L3/R3 only can bind using ::sceCtrlReadBufferPositiveExt2 @@ -43,7 +43,7 @@ typedef enum SceCtrlButtons { /** Enumeration for the controller types. */ enum SceCtrlExternalInputMode { - SCE_CTRL_TYPE_UNPAIRED = 0, + SCE_CTRL_TYPE_UNPAIRED = 0, //!< Unpaired controller SCE_CTRL_TYPE_PHY = 1, //!< Physical controller for VITA SCE_CTRL_TYPE_VIRT = 2, //!< Virtual controller for PSTV SCE_CTRL_TYPE_DS3 = 4, //!< DualShock 3 @@ -51,14 +51,14 @@ enum SceCtrlExternalInputMode { }; /** Controller mode. */ -enum SceCtrlPadInputMode { +typedef enum SceCtrlPadInputMode { /** Digital buttons only. */ SCE_CTRL_MODE_DIGITAL = 0, /** Digital buttons + Analog support. */ SCE_CTRL_MODE_ANALOG = 1, /** Same as ::SCE_CTRL_MODE_ANALOG, but with larger range for analog sticks. */ SCE_CTRL_MODE_ANALOG_WIDE = 2 -}; +} SceCtrlPadInputMode; /** Returned controller data */ typedef struct SceCtrlData { @@ -96,9 +96,9 @@ typedef struct SceCtrlRapidFireRule { /** Structure to pass as argument to ::sceCtrlSetActuator */ typedef struct SceCtrlActuator { - unsigned char small; //!< Vibration strength of the small motor - unsigned char large; //!< Vibration strength of the large motor - uint8_t unk[6]; //!< Unknown + unsigned char small; //!< Vibration strength of the small motor + unsigned char large; //!< Vibration strength of the large motor + uint8_t unk[6]; //!< Unknown } SceCtrlActuator; /** Structure to pass as argument to ::sceCtrlGetControllerPortInfo */ @@ -127,7 +127,7 @@ typedef struct SceCtrlVirtualControllerDriver { /** * Set the controller mode. * - * @param[in] mode - One of ::CtrlMode. + * @param[in] mode - One of ::SceCtrlPadInputMode. * * @return The previous mode, <0 on error. */ @@ -136,7 +136,7 @@ int sceCtrlSetSamplingMode(int mode); /** * Get the current controller mode. * - * @param[out] pMode - Return value, see ::CtrlMode. + * @param[out] pMode - Return value, see ::SceCtrlPadInputMode. * * @return The current mode, <0 on error. */ diff --git a/include/kernel/display.h b/include/kernel/display.h index c1236a6..abf0d2b 100644 --- a/include/kernel/display.h +++ b/include/kernel/display.h @@ -7,43 +7,45 @@ extern "C" { #endif -enum { - SCE_DISPLAY_ERROR_OK = 0, - SCE_DISPLAY_ERROR_INVALID_HEAD = 0x80290000, - SCE_DISPLAY_ERROR_INVALID_VALUE = 0x80290001, - SCE_DISPLAY_ERROR_INVALID_ADDR = 0x80290002, - SCE_DISPLAY_ERROR_INVALID_PIXELFORMAT = 0x80290003, - SCE_DISPLAY_ERROR_INVALID_PITCH = 0x80290004, - SCE_DISPLAY_ERROR_INVALID_RESOLUTION = 0x80290005, - SCE_DISPLAY_ERROR_INVALID_UPDATETIMING = 0x80290006, - SCE_DISPLAY_ERROR_NO_FRAME_BUFFER = 0x80290007, - SCE_DISPLAY_ERROR_NO_PIXEL_DATA = 0x80290008 -}; +typedef enum SceDisplayErrorCode { + SCE_DISPLAY_ERROR_OK = 0, + SCE_DISPLAY_ERROR_INVALID_HEAD = 0x80290000, + SCE_DISPLAY_ERROR_INVALID_VALUE = 0x80290001, + SCE_DISPLAY_ERROR_INVALID_ADDR = 0x80290002, + SCE_DISPLAY_ERROR_INVALID_PIXELFORMAT = 0x80290003, + SCE_DISPLAY_ERROR_INVALID_PITCH = 0x80290004, + SCE_DISPLAY_ERROR_INVALID_RESOLUTION = 0x80290005, + SCE_DISPLAY_ERROR_INVALID_UPDATETIMING = 0x80290006, + SCE_DISPLAY_ERROR_NO_FRAME_BUFFER = 0x80290007, + SCE_DISPLAY_ERROR_NO_PIXEL_DATA = 0x80290008 +} SceDisplayErrorCode; -#define SCE_DISPLAY_PIXELFORMAT_A8B8G8R8 0x00000000U +typedef enum SceDisplayPixelFormat { + SCE_DISPLAY_PIXELFORMAT_A8B8G8R8 = 0x00000000U +} SceDisplayPixelFormat; -enum { +typedef enum SceDisplaySetBufSync { /** Buffer change effective immediately */ SCE_DISPLAY_SETBUF_IMMEDIATE = 0, /** Buffer change effective next frame */ SCE_DISPLAY_SETBUF_NEXTFRAME = 1 -}; +} SceDisplaySetBufSync; /** - * Structure used with sceDisplaySetFrameBuf to set/update framebuffer. + * Structure used with ::sceDisplaySetFrameBuf to set/update framebuffer. * Original screen resolution is 960x544, but the following resolutions * can also be supplied as width and height : * 480x272, 640x368, 720x408 * - * @note - This structure is returned by sceDisplayGetFrameBuf + * @note - This structure is returned by ::sceDisplayGetFrameBuf */ typedef struct SceDisplayFrameBuf { - SceSize size; //!< sizeof(SceDisplayFrameBuf) - void *base; //!< Pointer to framebuffer - unsigned int pitch; //!< pitch pixels - unsigned int pixelformat; //!< use SCE_DISPLAY_PIXELFORMAT_A8B8G8R8 - unsigned int width; //!< framebuffer width - unsigned int height; //!< framebuffer height + SceSize size; //!< sizeof(SceDisplayFrameBuf) + void *base; //!< Pointer to framebuffer + unsigned int pitch; //!< pitch pixels + unsigned int pixelformat; //!< pixel format (one of ::SceDisplayPixelFormat) + unsigned int width; //!< framebuffer width + unsigned int height; //!< framebuffer height } SceDisplayFrameBuf; /** diff --git a/include/kernel/kernel/cpu.h b/include/kernel/kernel/cpu.h index f7c4c52..cdc075f 100644 --- a/include/kernel/kernel/cpu.h +++ b/include/kernel/kernel/cpu.h @@ -40,7 +40,7 @@ static inline void sceKernelCpuSaveContext(int context[3]) { /** * @brief Restore process context * - * @param context The context, can be from `sceKernelGetPidContext` + * @param context The context, can be from ::sceKernelGetPidContext */ static inline void sceKernelCpuRestoreContext(int context[3]) { int cpsr; @@ -205,7 +205,7 @@ int sceKernelCpuUnrestrictedMemcpy(void *dst, const void *src, size_t len); * * @param[in] addr Mutex associated to the suspend-resume pair * - * @return The current state of the interrupt controller, to be used with sceKernelCpuResumeIntr. + * @return The current state of the interrupt controller, to be used with ::sceKernelCpuResumeIntr. */ int sceKernelCpuSuspendIntr(int *addr); @@ -213,7 +213,7 @@ int sceKernelCpuSuspendIntr(int *addr); * @brief Resume all interrupts (enables IRQs) * * @param[in] addr Mutex associated to the suspend-resume pair - * @param[in] prev_state State obtained from sceKernelCpuSuspendIntr + * @param[in] prev_state State obtained from ::sceKernelCpuSuspendIntr. * * @return The previous state of the interrupt controller. */ diff --git a/include/kernel/kernel/modulemgr.h b/include/kernel/kernel/modulemgr.h index 77257bd..89d29d6 100644 --- a/include/kernel/kernel/modulemgr.h +++ b/include/kernel/kernel/modulemgr.h @@ -23,19 +23,19 @@ extern "C" { typedef struct { - SceUInt size; //< this structure size (0x18) - SceUInt perms; //< probably rwx in low bits - void *vaddr; //< address in memory - SceUInt memsz; //< size in memory - SceUInt flags; //< meaning unknown - SceUInt res; //< unused? + SceUInt size; //!< this structure size (0x18) + SceUInt perms; //!< probably rwx in low bits + void *vaddr; //!< address in memory + SceUInt memsz; //!< size in memory + SceUInt flags; //!< meaning unknown + SceUInt res; //!< unused? } SceKernelSegmentInfo; typedef struct { - SceUInt size; //< 0x1B8 for Vita 1.x - SceUInt handle; //< kernel module handle? - SceUInt flags; //< some bits. could be priority or whatnot + SceUInt size; //!< 0x1B8 for Vita 1.x + SceUInt handle; //!< kernel module handle? + SceUInt flags; //!< some bits. could be priority or whatnot char module_name[28]; SceUInt unk28; void *module_start; @@ -50,7 +50,7 @@ typedef struct SceSize tlsAreaSize; char path[256]; SceKernelSegmentInfo segments[4]; - SceUInt type; //< 6 = user-mode PRX? + SceUInt type; //!< 6 = user-mode PRX? } SceKernelModuleInfo; typedef struct { diff --git a/include/kernel/kernel/processmgr.h b/include/kernel/kernel/processmgr.h index fcf4ea4..58f1eee 100644 --- a/include/kernel/kernel/processmgr.h +++ b/include/kernel/kernel/processmgr.h @@ -8,13 +8,13 @@ extern "C" { #endif typedef struct SceKernelProcessInfo { - SceSize size; // size of this struct, make sure it's 0xE8 - SceUID pid; // our process ID + SceSize size; //!< size of this struct, make sure it's 0xE8 + SceUID pid; //!< our process ID int unk1; int unk2; int unk3; - SceUID ppid; // parent process ID - int unk[0xE8 / 4 - 6]; // the rest is unknown + SceUID ppid; //!< parent process ID + int unk[0xE8 / 4 - 6]; //!< the rest is unknown } SceKernelProcessInfo; void *sceKernelGetProcessKernelBuf(SceUID pid); diff --git a/include/kernel/kernel/sysmem.h b/include/kernel/kernel/sysmem.h index b32742a..6373324 100644 --- a/include/kernel/kernel/sysmem.h +++ b/include/kernel/kernel/sysmem.h @@ -7,20 +7,18 @@ extern "C" { #endif -typedef int SceKernelMemBlockType; - -enum { - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW = 0x0c20d060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_RW_UNCACHE = 0x0c208060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_RW = 0x0c80d060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_NC_RW = 0x0d808060, - SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW = 0x09408060, - SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RX = 0x1020D005, - SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RW = 0x1020D006, - SCE_KERNEL_MEMBLOCK_TYPE_SHARED_RX = 0x390D050, - SCE_KERNEL_MEMBLOCK_TYPE_USER_RX = 0xC20D050, - SCE_KERNEL_MEMBLOCK_TYPE_RW_UNK0 = 0x6020D006 -}; +typedef enum SceKernelMemBlockType { + SCE_KERNEL_MEMBLOCK_TYPE_SHARED_RX = 0x0390D050, + SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW = 0x09408060, + SCE_KERNEL_MEMBLOCK_TYPE_USER_RW_UNCACHE = 0x0C208060, + SCE_KERNEL_MEMBLOCK_TYPE_USER_RX = 0x0C20D050, + SCE_KERNEL_MEMBLOCK_TYPE_USER_RW = 0x0C20D060, + SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_RW = 0x0C80D060, + SCE_KERNEL_MEMBLOCK_TYPE_USER_MAIN_PHYCONT_NC_RW = 0x0D808060, + SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RX = 0x1020D005, + SCE_KERNEL_MEMBLOCK_TYPE_KERNEL_RW = 0x1020D006, + SCE_KERNEL_MEMBLOCK_TYPE_RW_UNK0 = 0x6020D006 +} SceKernelMemBlockType; // specific to 3.60 typedef struct SceKernelAllocMemBlockKernelOpt { @@ -68,10 +66,10 @@ typedef struct SceCreateUidObjOpt { SceUInt32 field_18; } SceCreateUidObjOpt; -enum { - SCE_KERNEL_MODEL_VITA = 0x10000, - SCE_KERNEL_MODEL_VITATV = 0x20000 -}; +typedef enum SceKernelModel { + SCE_KERNEL_MODEL_VITA = 0x10000, + SCE_KERNEL_MODEL_VITATV = 0x20000 +} SceKernelModel; #define SCE_KERNEL_ALLOC_MEMBLOCK_ATTR_HAS_ALIGNMENT 0x00000004U diff --git a/include/kernel/kernel/threadmgr.h b/include/kernel/kernel/threadmgr.h index 9ae804c..b4814e2 100644 --- a/include/kernel/kernel/threadmgr.h +++ b/include/kernel/kernel/threadmgr.h @@ -89,8 +89,7 @@ typedef struct SceKernelThreadRunStatus { } SceKernelThreadRunStatus; /* Sure there must be more than this, but haven't seen them */ -typedef enum SceThreadStatus -{ +typedef enum SceThreadStatus { SCE_THREAD_RUNNING = 1, SCE_THREAD_READY = 2, SCE_THREAD_WAITING = 4, @@ -134,7 +133,7 @@ int sceKernelDeleteThread(SceUID thid); /** * Start a created thread * - * @param thid - Thread id from sceKernelCreateThread + * @param thid - Thread id from ::sceKernelCreateThread * @param arglen - Length of the data pointed to by argp, in bytes * @param argp - Pointer to the arguments. */ @@ -213,7 +212,7 @@ int sceKernelChangeCurrentThreadAttr(int unknown, SceUInt attr); /** * Change the threads current priority. * - * @param thid - The ID of the thread (from sceKernelCreateThread or sceKernelGetThreadId) + * @param thid - The ID of the thread (from ::sceKernelCreateThread or ::sceKernelGetThreadId) * @param priority - The new priority (the lower the number the higher the priority) * * @par Example: @@ -371,7 +370,7 @@ int sceKernelDeleteSema(SceUID semaid); * sceKernelSignalSema(semaid, 1); * @endcode * - * @param semaid - The sema id returned from sceKernelCreateSema + * @param semaid - The sema id returned from ::sceKernelCreateSema * @param signal - The amount to signal the sema (i.e. if 2 then increment the sema by 2) * * @return < 0 On error. @@ -386,7 +385,7 @@ int sceKernelSignalSema(SceUID semaid, int signal); * sceKernelWaitSema(semaid, 1, 0); * @endcode * - * @param semaid - The sema id returned from sceKernelCreateSema + * @param semaid - The sema id returned from ::sceKernelCreateSema * @param signal - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1) * @param timeout - Timeout in microseconds (assumed). * @@ -402,7 +401,7 @@ int sceKernelWaitSema(SceUID semaid, int signal, SceUInt *timeout); * sceKernelWaitSemaCB(semaid, 1, 0); * @endcode * - * @param semaid - The sema id returned from sceKernelCreateSema + * @param semaid - The sema id returned from ::sceKernelCreateSema * @param signal - The value to wait for (i.e. if 1 then wait till reaches a signal state of 1) * @param timeout - Timeout in microseconds (assumed). * @@ -423,7 +422,7 @@ int sceKernelPollSema(SceUID semaid, int signal); /** * Cancels a semaphore * - * @param semaid - The sema id returned from sceKernelCreateSema + * @param semaid - The sema id returned from ::sceKernelCreateSema * @param setCount - The new lock count of the semaphore * @param numWaitThreads - Number of threads waiting for the semaphore * @return < 0 On error. @@ -492,7 +491,7 @@ SceUID sceKernelCreateMutex(const char *name, SceUInt attr, int initCount, SceKe /** * Destroy a mutex * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @return Returns the value 0 if it's successful, otherwise -1 */ int sceKernelDeleteMutex(SceUID mutexid); @@ -508,7 +507,7 @@ int sceKernelOpenMutex(const char *name); /** * Close a mutex * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @return Returns the value 0 if it's successful, otherwise -1 */ int sceKernelCloseMutex(SceUID mutexid); @@ -516,7 +515,7 @@ int sceKernelCloseMutex(SceUID mutexid); /** * Lock a mutex * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @param lockCount - The value to increment to the lock count of the mutex * @param timeout - Timeout in microseconds (assumed) * @return < 0 On error. @@ -526,7 +525,7 @@ int sceKernelLockMutex(SceUID mutexid, int lockCount, unsigned int *timeout); /** * Lock a mutex and handle callbacks if necessary. * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @param lockCount - The value to increment to the lock count of the mutex * @param timeout - Timeout in microseconds (assumed) * @return < 0 On error. @@ -536,7 +535,7 @@ int sceKernelLockMutexCB(SceUID mutexid, int lockCount, unsigned int *timeout); /** * Try to lock a mutex (non-blocking) * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @param lockCount - The value to increment to the lock count of the mutex * @return < 0 On error. */ @@ -545,7 +544,7 @@ int sceKernelTryLockMutex(SceUID mutexid, int lockCount); /** * Try to unlock a mutex (non-blocking) * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @param unlockCount - The value to decrement to the lock count of the mutex * @return < 0 On error. */ @@ -554,7 +553,7 @@ int sceKernelUnlockMutex(SceUID mutexid, int unlockCount); /** * Cancels a mutex * - * @param mutexid - The mutex id returned from sceKernelCreateMutex + * @param mutexid - The mutex id returned from ::sceKernelCreateMutex * @param newCount - The new lock count of the mutex * @param numWaitThreads - Number of threads waiting for the mutex * @return < 0 On error. @@ -629,7 +628,7 @@ SceUID sceKernelCreateEventFlag(const char *name, int attr, int bits, SceKernelE /** * Set an event flag bit pattern. * - * @param evid - The event id returned by sceKernelCreateEventFlag. + * @param evid - The event id returned by ::sceKernelCreateEventFlag. * @param bits - The bit pattern to set. * * @return < 0 On error @@ -649,7 +648,7 @@ int sceKernelClearEventFlag(SceUID evid, unsigned int bits); /** * Poll an event flag for a given bit pattern. * - * @param evid - The event id returned by sceKernelCreateEventFlag. + * @param evid - The event id returned by ::sceKernelCreateEventFlag. * @param bits - The bit pattern to poll for. * @param wait - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together * @param outBits - The bit pattern that was matched. @@ -660,7 +659,7 @@ int sceKernelPollEventFlag(int evid, unsigned int bits, unsigned int wait, unsig /** * Wait for an event flag for a given bit pattern. * - * @param evid - The event id returned by sceKernelCreateEventFlag. + * @param evid - The event id returned by ::sceKernelCreateEventFlag. * @param bits - The bit pattern to poll for. * @param wait - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together * @param outBits - The bit pattern that was matched. @@ -672,7 +671,7 @@ int sceKernelWaitEventFlag(int evid, unsigned int bits, unsigned int wait, unsig /** * Wait for an event flag for a given bit pattern with callback. * - * @param evid - The event id returned by sceKernelCreateEventFlag. + * @param evid - The event id returned by ::sceKernelCreateEventFlag. * @param bits - The bit pattern to poll for. * @param wait - Wait type, one or more of ::SceEventFlagWaitTypes or'ed together * @param outBits - The bit pattern that was matched. @@ -684,7 +683,7 @@ int sceKernelWaitEventFlagCB(int evid, unsigned int bits, unsigned int wait, uns /** * Delete an event flag * - * @param evid - The event id returned by sceKernelCreateEventFlag. + * @param evid - The event id returned by ::sceKernelCreateEventFlag. * * @return < 0 On error */ diff --git a/include/kernel/lowio/gpio.h b/include/kernel/lowio/gpio.h index 2850494..9141d08 100644 --- a/include/kernel/lowio/gpio.h +++ b/include/kernel/lowio/gpio.h @@ -7,21 +7,21 @@ extern "C" { #endif -enum { +typedef enum SceGpioErrorCode { SCE_GPIO_ERROR_INVALID_BUS = 0x803F0100, SCE_GPIO_ERROR_INVALID_PORT = 0x803F0101, SCE_GPIO_ERROR_INVALID_MODE = 0x803F0102 -}; +} SceGpioErrorCode; -enum SceGpioPortMasks { +typedef enum SceGpioPortMasks { SCE_GPIO_PORT_MASK_LED_GAMECARD = 1 << 6, SCE_GPIO_PORT_MASK_LED_PS_BUTTON = 1 << 7 -}; +} SceGpioPortMasks; -enum SceGpioPortMode { +typedef enum SceGpioPortMode { SCE_GPIO_PORT_MODE_OUTPUT = 0, SCE_GPIO_PORT_MODE_INPUT = 1 -}; +} SceGpioPortMode; int sceGpioPortRead(int bus, int port); int sceGpioPortSet(int bus, int port); diff --git a/include/kernel/net/net.h b/include/kernel/net/net.h index f3ebd77..5db139d 100644 --- a/include/kernel/net/net.h +++ b/include/kernel/net/net.h @@ -6,282 +6,238 @@ extern "C" { #endif /** Net Error Codes */ -enum { - SCE_NET_ERROR_EPERM = 0x80410101, - SCE_NET_ERROR_ENOENT = 0x80410102, - SCE_NET_ERROR_ESRCH = 0x80410103, - SCE_NET_ERROR_EINTR = 0x80410104, - SCE_NET_ERROR_EIO = 0x80410105, - SCE_NET_ERROR_ENXIO = 0x80410106, - SCE_NET_ERROR_E2BIG = 0x80410107, - SCE_NET_ERROR_ENOEXEC = 0x80410108, - SCE_NET_ERROR_EBADF = 0x80410109, - SCE_NET_ERROR_ECHILD = 0x8041010A, - SCE_NET_ERROR_EDEADLK = 0x8041010B, - SCE_NET_ERROR_ENOMEM = 0x8041010C, - SCE_NET_ERROR_EACCES = 0x8041010D, - SCE_NET_ERROR_EFAULT = 0x8041010E, - SCE_NET_ERROR_ENOTBLK = 0x8041010F, - SCE_NET_ERROR_EBUSY = 0x80410110, - SCE_NET_ERROR_EEXIST = 0x80410111, - SCE_NET_ERROR_EXDEV = 0x80410112, - SCE_NET_ERROR_ENODEV = 0x80410113, - SCE_NET_ERROR_ENOTDIR = 0x80410114, - SCE_NET_ERROR_EISDIR = 0x80410115, - SCE_NET_ERROR_EINVAL = 0x80410116, - SCE_NET_ERROR_ENFILE = 0x80410117, - SCE_NET_ERROR_EMFILE = 0x80410118, - SCE_NET_ERROR_ENOTTY = 0x80410119, - SCE_NET_ERROR_ETXTBSY = 0x8041011A, - SCE_NET_ERROR_EFBIG = 0x8041011B, - SCE_NET_ERROR_ENOSPC = 0x8041011C, - SCE_NET_ERROR_ESPIPE = 0x8041011D, - SCE_NET_ERROR_EROFS = 0x8041011E, - SCE_NET_ERROR_EMLINK = 0x8041011F, - SCE_NET_ERROR_EPIPE = 0x80410120, - SCE_NET_ERROR_EDOM = 0x80410121, - SCE_NET_ERROR_ERANGE = 0x80410122, - SCE_NET_ERROR_EAGAIN = 0x80410123, - SCE_NET_ERROR_EWOULDBLOCK = 0x80410123, - SCE_NET_ERROR_EINPROGRESS = 0x80410124, - SCE_NET_ERROR_EALREADY = 0x80410125, - SCE_NET_ERROR_ENOTSOCK = 0x80410126, - SCE_NET_ERROR_EDESTADDRREQ = 0x80410127, - SCE_NET_ERROR_EMSGSIZE = 0x80410128, - SCE_NET_ERROR_EPROTOTYPE = 0x80410129, - SCE_NET_ERROR_ENOPROTOOPT = 0x8041012A, - SCE_NET_ERROR_EPROTONOSUPPORT = 0x8041012B, - SCE_NET_ERROR_ESOCKTNOSUPPOR = 0x8041012C, - SCE_NET_ERROR_EOPNOTSUPP = 0x8041012D, - SCE_NET_ERROR_EPFNOSUPPORT = 0x8041012E, - SCE_NET_ERROR_EAFNOSUPPORT = 0x8041012F, - SCE_NET_ERROR_EADDRINUSE = 0x80410130, - SCE_NET_ERROR_EADDRNOTAVAIL = 0x80410131, - SCE_NET_ERROR_ENETDOWN = 0x80410132, - SCE_NET_ERROR_ENETUNREACH = 0x80410133, - SCE_NET_ERROR_ENETRESET = 0x80410134, - SCE_NET_ERROR_ECONNABORTED = 0x80410135, - SCE_NET_ERROR_ECONNRESET = 0x80410136, - SCE_NET_ERROR_ENOBUFS = 0x80410137, - SCE_NET_ERROR_EISCONN = 0x80410138, - SCE_NET_ERROR_ENOTCONN = 0x80410139, - SCE_NET_ERROR_ESHUTDOWN = 0x8041013A, - SCE_NET_ERROR_ETOOMANYREFS = 0x8041013B, - SCE_NET_ERROR_ETIMEDOUT = 0x8041013C, - SCE_NET_ERROR_ECONNREFUSED = 0x8041013D, - SCE_NET_ERROR_ELOOP = 0x8041013E, - SCE_NET_ERROR_ENAMETOOLONG = 0x8041013F, - SCE_NET_ERROR_EHOSTDOWN = 0x80410140, - SCE_NET_ERROR_EHOSTUNREACH = 0x80410141, - SCE_NET_ERROR_ENOTEMPTY = 0x80410142, - SCE_NET_ERROR_EPROCLIM = 0x80410143, - SCE_NET_ERROR_EUSERS = 0x80410144, - SCE_NET_ERROR_EDQUOT = 0x80410145, - SCE_NET_ERROR_ESTALE = 0x80410146, - SCE_NET_ERROR_EREMOTE = 0x80410147, - SCE_NET_ERROR_EBADRPC = 0x80410148, - SCE_NET_ERROR_ERPCMISMATCH = 0x80410149, - SCE_NET_ERROR_EPROGUNAVAIL = 0x8041014A, - SCE_NET_ERROR_EPROGMISMATCH = 0x8041014B, - SCE_NET_ERROR_EPROCUNAVAIL = 0x8041014C, - SCE_NET_ERROR_ENOLCK = 0x8041014D, - SCE_NET_ERROR_ENOSYS = 0x8041014E, - SCE_NET_ERROR_EFTYPE = 0x8041014F, - SCE_NET_ERROR_EAUTH = 0x80410150, - SCE_NET_ERROR_ENEEDAUTH = 0x80410151, - SCE_NET_ERROR_EIDRM = 0x80410152, - SCE_NET_ERROR_ENOMS = 0x80410153, - SCE_NET_ERROR_EOVERFLOW = 0x80410154, - SCE_NET_ERROR_EILSEQ = 0x80410155, - SCE_NET_ERROR_ENOTSUP = 0x80410156, - SCE_NET_ERROR_ECANCELED = 0x80410157, - SCE_NET_ERROR_EBADMSG = 0x80410158, - SCE_NET_ERROR_ENODATA = 0x80410159, - SCE_NET_ERROR_ENOSR = 0x8041015A, - SCE_NET_ERROR_ENOSTR = 0x8041015B, - SCE_NET_ERROR_ETIME = 0x8041015C, - SCE_NET_ERROR_EADHOC = 0x804101A0, - SCE_NET_ERROR_EDISABLEDIF = 0x804101A1, - SCE_NET_ERROR_ERESUME = 0x804101A2, - SCE_NET_ERROR_ENOTINIT = 0x804101C8, - SCE_NET_ERROR_ENOLIBMEM = 0x804101C9, - SCE_NET_ERROR_ERESERVED202 = 0x804101CA, - SCE_NET_ERROR_ECALLBACK = 0x804101CB, - SCE_NET_ERROR_EINTERNAL = 0x804101CC, - SCE_NET_ERROR_ERETURN = 0x804101CD, - SCE_NET_ERROR_RESOLVER_EINTERNAL = 0x804101DC, - SCE_NET_ERROR_RESOLVER_EBUSY = 0x804101DD, - SCE_NET_ERROR_RESOLVER_ENOSPACE = 0x804101DE, - SCE_NET_ERROR_RESOLVER_EPACKET = 0x804101DF, - SCE_NET_ERROR_RESOLVER_ERESERVED22 = 0x804101E0, - SCE_NET_ERROR_RESOLVER_ENODNS = 0x804101E1, - SCE_NET_ERROR_RESOLVER_ETIMEDOUT = 0x804101E2, - SCE_NET_ERROR_RESOLVER_ENOSUPPORT = 0x804101E3, - SCE_NET_ERROR_RESOLVER_EFORMAT = 0x804101E4, - SCE_NET_ERROR_RESOLVER_ESERVERFAILURE = 0x804101E5, - SCE_NET_ERROR_RESOLVER_ENOHOST = 0x804101E6, - SCE_NET_ERROR_RESOLVER_ENOTIMPLEMENTED = 0x804101E7, - SCE_NET_ERROR_RESOLVER_ESERVERREFUSED = 0x804101E8, - SCE_NET_ERROR_RESOLVER_ENORECORD = 0x804101E9, - SCE_NET_ERROR_RESOLVER_EALIGNMENT = 0x804101EA -}; +typedef enum SceNetErrorCode { + SCE_NET_ERROR_EPERM = 0x80410101, + SCE_NET_ERROR_ENOENT = 0x80410102, + SCE_NET_ERROR_ESRCH = 0x80410103, + SCE_NET_ERROR_EINTR = 0x80410104, + SCE_NET_ERROR_EIO = 0x80410105, + SCE_NET_ERROR_ENXIO = 0x80410106, + SCE_NET_ERROR_E2BIG = 0x80410107, + SCE_NET_ERROR_ENOEXEC = 0x80410108, + SCE_NET_ERROR_EBADF = 0x80410109, + SCE_NET_ERROR_ECHILD = 0x8041010A, + SCE_NET_ERROR_EDEADLK = 0x8041010B, + SCE_NET_ERROR_ENOMEM = 0x8041010C, + SCE_NET_ERROR_EACCES = 0x8041010D, + SCE_NET_ERROR_EFAULT = 0x8041010E, + SCE_NET_ERROR_ENOTBLK = 0x8041010F, + SCE_NET_ERROR_EBUSY = 0x80410110, + SCE_NET_ERROR_EEXIST = 0x80410111, + SCE_NET_ERROR_EXDEV = 0x80410112, + SCE_NET_ERROR_ENODEV = 0x80410113, + SCE_NET_ERROR_ENOTDIR = 0x80410114, + SCE_NET_ERROR_EISDIR = 0x80410115, + SCE_NET_ERROR_EINVAL = 0x80410116, + SCE_NET_ERROR_ENFILE = 0x80410117, + SCE_NET_ERROR_EMFILE = 0x80410118, + SCE_NET_ERROR_ENOTTY = 0x80410119, + SCE_NET_ERROR_ETXTBSY = 0x8041011A, + SCE_NET_ERROR_EFBIG = 0x8041011B, + SCE_NET_ERROR_ENOSPC = 0x8041011C, + SCE_NET_ERROR_ESPIPE = 0x8041011D, + SCE_NET_ERROR_EROFS = 0x8041011E, + SCE_NET_ERROR_EMLINK = 0x8041011F, + SCE_NET_ERROR_EPIPE = 0x80410120, + SCE_NET_ERROR_EDOM = 0x80410121, + SCE_NET_ERROR_ERANGE = 0x80410122, + SCE_NET_ERROR_EAGAIN = 0x80410123, + SCE_NET_ERROR_EWOULDBLOCK = 0x80410123, + SCE_NET_ERROR_EINPROGRESS = 0x80410124, + SCE_NET_ERROR_EALREADY = 0x80410125, + SCE_NET_ERROR_ENOTSOCK = 0x80410126, + SCE_NET_ERROR_EDESTADDRREQ = 0x80410127, + SCE_NET_ERROR_EMSGSIZE = 0x80410128, + SCE_NET_ERROR_EPROTOTYPE = 0x80410129, + SCE_NET_ERROR_ENOPROTOOPT = 0x8041012A, + SCE_NET_ERROR_EPROTONOSUPPORT = 0x8041012B, + SCE_NET_ERROR_ESOCKTNOSUPPORT = 0x8041012C, + SCE_NET_ERROR_EOPNOTSUPP = 0x8041012D, + SCE_NET_ERROR_EPFNOSUPPORT = 0x8041012E, + SCE_NET_ERROR_EAFNOSUPPORT = 0x8041012F, + SCE_NET_ERROR_EADDRINUSE = 0x80410130, + SCE_NET_ERROR_EADDRNOTAVAIL = 0x80410131, + SCE_NET_ERROR_ENETDOWN = 0x80410132, + SCE_NET_ERROR_ENETUNREACH = 0x80410133, + SCE_NET_ERROR_ENETRESET = 0x80410134, + SCE_NET_ERROR_ECONNABORTED = 0x80410135, + SCE_NET_ERROR_ECONNRESET = 0x80410136, + SCE_NET_ERROR_ENOBUFS = 0x80410137, + SCE_NET_ERROR_EISCONN = 0x80410138, + SCE_NET_ERROR_ENOTCONN = 0x80410139, + SCE_NET_ERROR_ESHUTDOWN = 0x8041013A, + SCE_NET_ERROR_ETOOMANYREFS = 0x8041013B, + SCE_NET_ERROR_ETIMEDOUT = 0x8041013C, + SCE_NET_ERROR_ECONNREFUSED = 0x8041013D, + SCE_NET_ERROR_ELOOP = 0x8041013E, + SCE_NET_ERROR_ENAMETOOLONG = 0x8041013F, + SCE_NET_ERROR_EHOSTDOWN = 0x80410140, + SCE_NET_ERROR_EHOSTUNREACH = 0x80410141, + SCE_NET_ERROR_ENOTEMPTY = 0x80410142, + SCE_NET_ERROR_EPROCLIM = 0x80410143, + SCE_NET_ERROR_EUSERS = 0x80410144, + SCE_NET_ERROR_EDQUOT = 0x80410145, + SCE_NET_ERROR_ESTALE = 0x80410146, + SCE_NET_ERROR_EREMOTE = 0x80410147, + SCE_NET_ERROR_EBADRPC = 0x80410148, + SCE_NET_ERROR_ERPCMISMATCH = 0x80410149, + SCE_NET_ERROR_EPROGUNAVAIL = 0x8041014A, + SCE_NET_ERROR_EPROGMISMATCH = 0x8041014B, + SCE_NET_ERROR_EPROCUNAVAIL = 0x8041014C, + SCE_NET_ERROR_ENOLCK = 0x8041014D, + SCE_NET_ERROR_ENOSYS = 0x8041014E, + SCE_NET_ERROR_EFTYPE = 0x8041014F, + SCE_NET_ERROR_EAUTH = 0x80410150, + SCE_NET_ERROR_ENEEDAUTH = 0x80410151, + SCE_NET_ERROR_EIDRM = 0x80410152, + SCE_NET_ERROR_ENOMS = 0x80410153, + SCE_NET_ERROR_EOVERFLOW = 0x80410154, + SCE_NET_ERROR_EILSEQ = 0x80410155, + SCE_NET_ERROR_ENOTSUP = 0x80410156, + SCE_NET_ERROR_ECANCELED = 0x80410157, + SCE_NET_ERROR_EBADMSG = 0x80410158, + SCE_NET_ERROR_ENODATA = 0x80410159, + SCE_NET_ERROR_ENOSR = 0x8041015A, + SCE_NET_ERROR_ENOSTR = 0x8041015B, + SCE_NET_ERROR_ETIME = 0x8041015C, + SCE_NET_ERROR_EADHOC = 0x804101A0, + SCE_NET_ERROR_EDISABLEDIF = 0x804101A1, + SCE_NET_ERROR_ERESUME = 0x804101A2, + SCE_NET_ERROR_ENOTINIT = 0x804101C8, + SCE_NET_ERROR_ENOLIBMEM = 0x804101C9, + SCE_NET_ERROR_ERESERVED202 = 0x804101CA, + SCE_NET_ERROR_ECALLBACK = 0x804101CB, + SCE_NET_ERROR_EINTERNAL = 0x804101CC, + SCE_NET_ERROR_ERETURN = 0x804101CD, + SCE_NET_ERROR_RESOLVER_EINTERNAL = 0x804101DC, + SCE_NET_ERROR_RESOLVER_EBUSY = 0x804101DD, + SCE_NET_ERROR_RESOLVER_ENOSPACE = 0x804101DE, + SCE_NET_ERROR_RESOLVER_EPACKET = 0x804101DF, + SCE_NET_ERROR_RESOLVER_ERESERVED22 = 0x804101E0, + SCE_NET_ERROR_RESOLVER_ENODNS = 0x804101E1, + SCE_NET_ERROR_RESOLVER_ETIMEDOUT = 0x804101E2, + SCE_NET_ERROR_RESOLVER_ENOSUPPORT = 0x804101E3, + SCE_NET_ERROR_RESOLVER_EFORMAT = 0x804101E4, + SCE_NET_ERROR_RESOLVER_ESERVERFAILURE = 0x804101E5, + SCE_NET_ERROR_RESOLVER_ENOHOST = 0x804101E6, + SCE_NET_ERROR_RESOLVER_ENOTIMPLEMENTED = 0x804101E7, + SCE_NET_ERROR_RESOLVER_ESERVERREFUSED = 0x804101E8, + SCE_NET_ERROR_RESOLVER_ENORECORD = 0x804101E9, + SCE_NET_ERROR_RESOLVER_EALIGNMENT = 0x804101EA +} SceNetErrorCode; /** Specific kernel and libnet error codes */ -enum { - SCE_NET_EPERM = 1, - SCE_NET_ENOENT = 2, - SCE_NET_ESRCH = 3, - SCE_NET_EINTR = 4, - SCE_NET_EIO = 5, - SCE_NET_ENXIO = 6, - SCE_NET_E2BIG = 7, - SCE_NET_ENOEXEC = 8, - SCE_NET_EBADF = 9, - SCE_NET_ECHILD = 10, - SCE_NET_EDEADLK = 11, - SCE_NET_ENOMEM = 12, - SCE_NET_EACCES = 13, - SCE_NET_EFAULT = 14, - SCE_NET_ENOTBLK = 15, - SCE_NET_EBUSY = 16, - SCE_NET_EEXIST = 17, - SCE_NET_EXDEV = 18, - SCE_NET_ENODEV = 19, - SCE_NET_ENOTDIR = 20, - SCE_NET_EISDIR = 21, - SCE_NET_EINVAL = 22, - SCE_NET_ENFILE = 23, - SCE_NET_EMFILE = 24, - SCE_NET_ENOTTY = 25, - SCE_NET_ETXTBSY = 26, - SCE_NET_EFBIG = 27, - SCE_NET_ENOSPC = 28, - SCE_NET_ESPIPE = 29, - SCE_NET_EROFS = 30, - SCE_NET_EMLINK = 31, - SCE_NET_EPIPE = 32, - SCE_NET_EDOM = 33, - SCE_NET_ERANGE = 34, - SCE_NET_EAGAIN = 35, - SCE_NET_EWOULDBLOCK = 35, - SCE_NET_EINPROGRESS = 36, - SCE_NET_EALREADY = 37, - SCE_NET_ENOTSOCK = 38, - SCE_NET_EDESTADDRREQ = 39, - SCE_NET_EMSGSIZE = 40, - SCE_NET_EPROTOTYPE = 41, - SCE_NET_ENOPROTOOPT = 42, - SCE_NET_EPROTONOSUPPORT = 43, - SCE_NET_ESOCKTNOSUPPORT = 44, - SCE_NET_EOPNOTSUPP = 45, - SCE_NET_EPFNOSUPPORT = 46, - SCE_NET_EAFNOSUPPORT = 47, - SCE_NET_EADDRINUSE = 48, - SCE_NET_EADDRNOTAVAIL = 49, - SCE_NET_ENETDOWN = 50, - SCE_NET_ENETUNREACH = 51, - SCE_NET_ENETRESET = 52, - SCE_NET_ECONNABORTED = 53, - SCE_NET_ECONNRESET = 54, - SCE_NET_ENOBUFS = 55, - SCE_NET_EISCONN = 56, - SCE_NET_ENOTCONN = 57, - SCE_NET_ESHUTDOWN = 58, - SCE_NET_ETOOMANYREFS = 59, - SCE_NET_ETIMEDOUT = 60, - SCE_NET_ECONNREFUSED = 61, - SCE_NET_ELOOP = 62, - SCE_NET_ENAMETOOLONG = 63, - SCE_NET_EHOSTDOWN = 64, - SCE_NET_EHOSTUNREACH = 65, - SCE_NET_ENOTEMPTY = 66, - SCE_NET_EPROCLIM = 67, - SCE_NET_EUSERS = 68, - SCE_NET_EDQUOT = 69, - SCE_NET_ESTALE = 70, - SCE_NET_EREMOTE = 71, - SCE_NET_EBADRPC = 72, - SCE_NET_ERPCMISMATCH = 73, - SCE_NET_EPROGUNAVAIL = 74, - SCE_NET_EPROGMISMATCH = 75, - SCE_NET_EPROCUNAVAIL = 76, - SCE_NET_ENOLCK = 77, - SCE_NET_ENOSYS = 78, - SCE_NET_EFTYPE = 79, - SCE_NET_EAUTH = 80, - SCE_NET_ENEEDAUTH = 81, - SCE_NET_EIDRM = 82, - SCE_NET_ENOMSG = 83, - SCE_NET_EOVERFLOW = 84, - SCE_NET_EILSEQ = 85, - SCE_NET_ENOTSUP = 86, - SCE_NET_ECANCELED = 87, - SCE_NET_EBADMSG = 88, - SCE_NET_ENODATA = 89, - SCE_NET_ENOSR = 90, - SCE_NET_ENOSTR = 91, - SCE_NET_ETIME = 92, - SCE_NET_EADHOC = 160, - SCE_NET_EDISABLEDIF = 161, - SCE_NET_ERESUME = 162 -}; - +typedef enum SceNetKernelErrorCode { + SCE_NET_EPERM = 1, + SCE_NET_ENOENT = 2, + SCE_NET_ESRCH = 3, + SCE_NET_EINTR = 4, + SCE_NET_EIO = 5, + SCE_NET_ENXIO = 6, + SCE_NET_E2BIG = 7, + SCE_NET_ENOEXEC = 8, + SCE_NET_EBADF = 9, + SCE_NET_ECHILD = 10, + SCE_NET_EDEADLK = 11, + SCE_NET_ENOMEM = 12, + SCE_NET_EACCES = 13, + SCE_NET_EFAULT = 14, + SCE_NET_ENOTBLK = 15, + SCE_NET_EBUSY = 16, + SCE_NET_EEXIST = 17, + SCE_NET_EXDEV = 18, + SCE_NET_ENODEV = 19, + SCE_NET_ENOTDIR = 20, + SCE_NET_EISDIR = 21, + SCE_NET_EINVAL = 22, + SCE_NET_ENFILE = 23, + SCE_NET_EMFILE = 24, + SCE_NET_ENOTTY = 25, + SCE_NET_ETXTBSY = 26, + SCE_NET_EFBIG = 27, + SCE_NET_ENOSPC = 28, + SCE_NET_ESPIPE = 29, + SCE_NET_EROFS = 30, + SCE_NET_EMLINK = 31, + SCE_NET_EPIPE = 32, + SCE_NET_EDOM = 33, + SCE_NET_ERANGE = 34, + SCE_NET_EAGAIN = 35, + SCE_NET_EWOULDBLOCK = 35, + SCE_NET_EINPROGRESS = 36, + SCE_NET_EALREADY = 37, + SCE_NET_ENOTSOCK = 38, + SCE_NET_EDESTADDRREQ = 39, + SCE_NET_EMSGSIZE = 40, + SCE_NET_EPROTOTYPE = 41, + SCE_NET_ENOPROTOOPT = 42, + SCE_NET_EPROTONOSUPPORT = 43, + SCE_NET_ESOCKTNOSUPPORT = 44, + SCE_NET_EOPNOTSUPP = 45, + SCE_NET_EPFNOSUPPORT = 46, + SCE_NET_EAFNOSUPPORT = 47, + SCE_NET_EADDRINUSE = 48, + SCE_NET_EADDRNOTAVAIL = 49, + SCE_NET_ENETDOWN = 50, + SCE_NET_ENETUNREACH = 51, + SCE_NET_ENETRESET = 52, + SCE_NET_ECONNABORTED = 53, + SCE_NET_ECONNRESET = 54, + SCE_NET_ENOBUFS = 55, + SCE_NET_EISCONN = 56, + SCE_NET_ENOTCONN = 57, + SCE_NET_ESHUTDOWN = 58, + SCE_NET_ETOOMANYREFS = 59, + SCE_NET_ETIMEDOUT = 60, + SCE_NET_ECONNREFUSED = 61, + SCE_NET_ELOOP = 62, + SCE_NET_ENAMETOOLONG = 63, + SCE_NET_EHOSTDOWN = 64, + SCE_NET_EHOSTUNREACH = 65, + SCE_NET_ENOTEMPTY = 66, + SCE_NET_EPROCLIM = 67, + SCE_NET_EUSERS = 68, + SCE_NET_EDQUOT = 69, + SCE_NET_ESTALE = 70, + SCE_NET_EREMOTE = 71, + SCE_NET_EBADRPC = 72, + SCE_NET_ERPCMISMATCH = 73, + SCE_NET_EPROGUNAVAIL = 74, + SCE_NET_EPROGMISMATCH = 75, + SCE_NET_EPROCUNAVAIL = 76, + SCE_NET_ENOLCK = 77, + SCE_NET_ENOSYS = 78, + SCE_NET_EFTYPE = 79, + SCE_NET_EAUTH = 80, + SCE_NET_ENEEDAUTH = 81, + SCE_NET_EIDRM = 82, + SCE_NET_ENOMSG = 83, + SCE_NET_EOVERFLOW = 84, + SCE_NET_EILSEQ = 85, + SCE_NET_ENOTSUP = 86, + SCE_NET_ECANCELED = 87, + SCE_NET_EBADMSG = 88, + SCE_NET_ENODATA = 89, + SCE_NET_ENOSR = 90, + SCE_NET_ENOSTR = 91, + SCE_NET_ETIME = 92, + SCE_NET_EADHOC = 160, + SCE_NET_EDISABLEDIF = 161, + SCE_NET_ERESUME = 162 +} SceNetKernelErrorCode; /** libnet specific error codes */ -enum { +typedef enum SceNetLibnetErrorCode { SCE_NET_ENOTINIT = 200, SCE_NET_ENOLIBMEM, SCE_NET_ETLS, SCE_NET_ECALLBACK, SCE_NET_EINTERNAL, SCE_NET_ERETURN -}; - -/** Resolver specific error codes */ -enum { - SCE_NET_RESOLVER_EINTERNAL = 220, - SCE_NET_RESOLVER_EBUSY, - SCE_NET_RESOLVER_ENOSPACE, - SCE_NET_RESOLVER_EPACKET, - SCE_NET_RESOLVER_ERESERVED224, - SCE_NET_RESOLVER_ENODNS, - SCE_NET_RESOLVER_ETIMEDOUT, - SCE_NET_RESOLVER_ENOSUPPORT, - SCE_NET_RESOLVER_EFORMAT, - SCE_NET_RESOLVER_ESERVERFAILURE, - SCE_NET_RESOLVER_ENOHOST, - SCE_NET_RESOLVER_ENOTIMPLEMENTED, - SCE_NET_RESOLVER_ESERVERREFUSED, - SCE_NET_RESOLVER_ENORECORD, - SCE_NET_RESOLVER_EALIGNMENT -}; - -/** Flags to specify as argument to ::sceNetDumpRead() */ -enum { - SCE_NET_DUMP_PEEK = 0x00000010, - SCE_NET_DUMP_DONTWAIT = 0x00000020, - SCE_NET_DUMP_OVERFLOW = 0x00000040, - SCE_NET_DUMP_ABORT_FLAG_PRESERVATION = 0x00000001 -}; - -/** Events for ::SceNetEpollEvent */ -enum { - SCE_NET_EPOLLIN = 0x00000001, - SCE_NET_EPOLLOUT = 0x00000002, - SCE_NET_EPOLLERR = 0x00000008, - SCE_NET_EPOLLHUP = 0x00000010, - SCE_NET_EPOLLDESCID = 0x00010000 -}; - -/** Flags to specify as argument to ::sceNetEpollControl() */ -enum { - SCE_NET_EPOLL_CTL_ADD = 1, - SCE_NET_EPOLL_CTL_MOD, - SCE_NET_EPOLL_CTL_DEL -}; +} SceNetLibnetErrorCode; /** state for ::SceNetSockInfo structure */ -enum { +typedef enum SceNetSockInfoState { SCE_NET_SOCKINFO_STATE_UNKNOWN, SCE_NET_SOCKINFO_STATE_CLOSED, SCE_NET_SOCKINFO_STATE_OPENED, @@ -295,159 +251,126 @@ enum { SCE_NET_SOCKINFO_STATE_CLOSING, SCE_NET_SOCKINFO_STATE_LAST_ACK, SCE_NET_SOCKINFO_STATE_TIME_WAIT -}; +} SceNetSockInfoState; /** flags for ::SceNetSockInfo structure */ -enum { - SCE_NET_SOCKINFO_F_SELF = 0x00000001, - SCE_NET_SOCKINFO_F_KERNEL = 0x00000002, - SCE_NET_SOCKINFO_F_OTHERS = 0x00000004, - SCE_NET_SOCKINFO_F_RECV_WAIT = 0x00010000, - SCE_NET_SOCKINFO_F_SEND_WAIT = 0x00020000, - SCE_NET_SOCKINFO_F_RECV_EWAIT = 0x00040000, - SCE_NET_SOCKINFO_F_SEND_EWAIT = 0x00080000, - SCE_NET_SOCKINFO_F_WAKEUP_SIGNAL = 0x00100000, - SCE_NET_SOCKINFO_F_ALL = 0x001F0007 -}; - -/** Flags to specify as argument to ::sceNetEmulationGet() / ::sceNetEmulationSet() */ -enum { - SCE_NET_EMULATION_FLAG_ETH0 = 1, - SCE_NET_EMULATION_FLAG_WLAN0 -}; - -/** Flags to specify as argument to ::sceNetResolverStartNtoa() / ::sceNetResolverStartAton() */ -enum { - SCE_NET_RESOLVER_ASYNC = 0x00000001, - SCE_NET_RESOLVER_START_NTOA_DISABLE_IPADDRESS = 0x00010000 -}; - -/** Flags to specify as argument to ::sceNetResolverAbort() */ -enum { - SCE_NET_RESOLVER_ABORT_FLAG_NTOA_PRESERVATION = 0x00000001, - SCE_NET_RESOLVER_ABORT_FLAG_ATON_PRESERVATION = 0x00000002 -}; - -/** Flags to specify as argument to ::sceNetSocketAbort() */ -enum { - SCE_NET_SOCKET_ABORT_FLAG_RCV_PRESERVATION = 0x00000001, - SCE_NET_SOCKET_ABORT_FLAG_SND_PRESERVATION = 0x00000002 -}; +typedef enum SceNetSockInfoFlag { + SCE_NET_SOCKINFO_F_SELF = 0x00000001, + SCE_NET_SOCKINFO_F_KERNEL = 0x00000002, + SCE_NET_SOCKINFO_F_OTHERS = 0x00000004, + SCE_NET_SOCKINFO_F_RECV_WAIT = 0x00010000, + SCE_NET_SOCKINFO_F_SEND_WAIT = 0x00020000, + SCE_NET_SOCKINFO_F_RECV_EWAIT = 0x00040000, + SCE_NET_SOCKINFO_F_SEND_EWAIT = 0x00080000, + SCE_NET_SOCKINFO_F_WAKEUP_SIGNAL = 0x00100000, + SCE_NET_SOCKINFO_F_ALL = 0x001F0007 +} SceNetSockInfoFlag; /** Net Protocols */ -enum { - SCE_NET_IPPROTO_IP = 0, - SCE_NET_IPPROTO_ICMP = 1, - SCE_NET_IPPROTO_IGMP = 2, - SCE_NET_IPPROTO_TCP = 6, - SCE_NET_IPPROTO_UDP = 17, - SCE_NET_SOL_SOCKET = 0xffff -}; +typedef enum SceNetProtocol { + SCE_NET_IPPROTO_IP = 0, + SCE_NET_IPPROTO_ICMP = 1, + SCE_NET_IPPROTO_IGMP = 2, + SCE_NET_IPPROTO_TCP = 6, + SCE_NET_IPPROTO_UDP = 17, + SCE_NET_SOL_SOCKET = 0xffff +} SceNetProtocol; /** Socket Options */ -enum { +typedef enum SceNetSocketOption { /* IP */ - SCE_NET_IP_HDRINCL = 2, - SCE_NET_IP_TOS = 3, - SCE_NET_IP_TTL = 4, - SCE_NET_IP_MULTICAST_IF = 9, - SCE_NET_IP_MULTICAST_TTL = 10, - SCE_NET_IP_MULTICAST_LOOP = 11, - SCE_NET_IP_ADD_MEMBERSHIP = 12, - SCE_NET_IP_DROP_MEMBERSHIP = 13, - SCE_NET_IP_TTLCHK = 23, - SCE_NET_IP_MAXTTL = 24, + SCE_NET_IP_HDRINCL = 2, + SCE_NET_IP_TOS = 3, + SCE_NET_IP_TTL = 4, + SCE_NET_IP_MULTICAST_IF = 9, + SCE_NET_IP_MULTICAST_TTL = 10, + SCE_NET_IP_MULTICAST_LOOP = 11, + SCE_NET_IP_ADD_MEMBERSHIP = 12, + SCE_NET_IP_DROP_MEMBERSHIP = 13, + SCE_NET_IP_TTLCHK = 23, + SCE_NET_IP_MAXTTL = 24, /* TCP */ - SCE_NET_TCP_NODELAY = 1, - SCE_NET_TCP_MAXSEG = 2, - SCE_NET_TCP_MSS_TO_ADVERTISE = 3, + SCE_NET_TCP_NODELAY = 1, + SCE_NET_TCP_MAXSEG = 2, + SCE_NET_TCP_MSS_TO_ADVERTISE = 3, /* SOCKET */ - SCE_NET_SO_REUSEADDR = 0x00000004, - SCE_NET_SO_KEEPALIVE = 0x00000008, - SCE_NET_SO_BROADCAST = 0x00000020, - SCE_NET_SO_LINGER = 0x00000080, - SCE_NET_SO_OOBINLINE = 0x00000100, - SCE_NET_SO_REUSEPORT = 0x00000200, - SCE_NET_SO_ONESBCAST = 0x00000800, - SCE_NET_SO_USECRYPTO = 0x00001000, - SCE_NET_SO_USESIGNATURE = 0x00002000, - SCE_NET_SO_SNDBUF = 0x1001, - SCE_NET_SO_RCVBUF = 0x1002, - SCE_NET_SO_SNDLOWAT = 0x1003, - SCE_NET_SO_RCVLOWAT = 0x1004, - SCE_NET_SO_SNDTIMEO = 0x1005, - SCE_NET_SO_RCVTIMEO = 0x1006, - SCE_NET_SO_ERROR = 0x1007, - SCE_NET_SO_TYPE = 0x1008, - SCE_NET_SO_NBIO = 0x1100, - SCE_NET_SO_TPPOLICY = 0x1101, - SCE_NET_SO_NAME = 0x1102 -}; + SCE_NET_SO_REUSEADDR = 0x00000004, + SCE_NET_SO_KEEPALIVE = 0x00000008, + SCE_NET_SO_BROADCAST = 0x00000020, + SCE_NET_SO_LINGER = 0x00000080, + SCE_NET_SO_OOBINLINE = 0x00000100, + SCE_NET_SO_REUSEPORT = 0x00000200, + SCE_NET_SO_ONESBCAST = 0x00000800, + SCE_NET_SO_USECRYPTO = 0x00001000, + SCE_NET_SO_USESIGNATURE = 0x00002000, + SCE_NET_SO_SNDBUF = 0x1001, + SCE_NET_SO_RCVBUF = 0x1002, + SCE_NET_SO_SNDLOWAT = 0x1003, + SCE_NET_SO_RCVLOWAT = 0x1004, + SCE_NET_SO_SNDTIMEO = 0x1005, + SCE_NET_SO_RCVTIMEO = 0x1006, + SCE_NET_SO_ERROR = 0x1007, + SCE_NET_SO_TYPE = 0x1008, + SCE_NET_SO_NBIO = 0x1100, + SCE_NET_SO_TPPOLICY = 0x1101, + SCE_NET_SO_NAME = 0x1102 +} SceNetSocketOption; /** Socket types */ -enum { - SCE_NET_SOCK_STREAM = 1, - SCE_NET_SOCK_DGRAM = 2, - SCE_NET_SOCK_RAW = 3, - SCE_NET_SOCK_DGRAM_P2P = 6, - SCE_NET_SOCK_STREAM_P2P = 10 -}; +typedef enum SceNetSocketType { + SCE_NET_SOCK_STREAM = 1, + SCE_NET_SOCK_DGRAM = 2, + SCE_NET_SOCK_RAW = 3, + SCE_NET_SOCK_DGRAM_P2P = 6, + SCE_NET_SOCK_STREAM_P2P = 10 +} SceNetSocketType; /** MSG Flags */ -enum { - SCE_NET_MSG_PEEK = 0x00000002, - SCE_NET_MSG_WAITALL = 0x00000040, - SCE_NET_MSG_DONTWAIT = 0x00000080, - SCE_NET_MSG_USECRYPTO = 0x00000400, - SCE_NET_MSG_USESIGNATURE = 0x00000800 -}; - -/** Flags to specify as argument to ::sceNetShutdown() */ -enum { - SCE_NET_SHUT_RD, - SCE_NET_SHUT_WR, - SCE_NET_SHUT_RDWR -}; +typedef enum SceNetMsgFlag { + SCE_NET_MSG_PEEK = 0x00000002, + SCE_NET_MSG_WAITALL = 0x00000040, + SCE_NET_MSG_DONTWAIT = 0x00000080, + SCE_NET_MSG_USECRYPTO = 0x00000400, + SCE_NET_MSG_USESIGNATURE = 0x00000800 +} SceNetMsgFlag; /** Types to specify to ::SceNetIcmpHeader structure */ -enum { - SCE_NET_ICMP_TYPE_ECHO_REPLY = 0, - SCE_NET_ICMP_TYPE_DEST_UNREACH = 3, - SCE_NET_ICMP_TYPE_SOURCE_QUENCH = 4, - SCE_NET_ICMP_TYPE_REDIRECT = 5, - SCE_NET_ICMP_TYPE_ECHO_REQUEST = 8, - SCE_NET_ICMP_TYPE_TIME_EXCEEDED = 11, - SCE_NET_ICMP_TYPE_PARAMETER_PROBLEM = 12, - SCE_NET_ICMP_TYPE_TIMESTAMP_REQUEST = 13, - SCE_NET_ICMP_TYPE_TIMESTAMP_REPLY = 14, - SCE_NET_ICMP_TYPE_INFORMATION_REQUEST = 15, - SCE_NET_ICMP_TYPE_INFORMATION_REPLY = 16, - SCE_NET_ICMP_TYPE_ADDRESS_MASK_REQUEST = 17, - SCE_NET_ICMP_TYPE_ADDRESS_MASK_REPLY = 18 -}; +typedef enum SceNetIcmpType { + SCE_NET_ICMP_TYPE_ECHO_REPLY = 0, + SCE_NET_ICMP_TYPE_DEST_UNREACH = 3, + SCE_NET_ICMP_TYPE_SOURCE_QUENCH = 4, + SCE_NET_ICMP_TYPE_REDIRECT = 5, + SCE_NET_ICMP_TYPE_ECHO_REQUEST = 8, + SCE_NET_ICMP_TYPE_TIME_EXCEEDED = 11, + SCE_NET_ICMP_TYPE_PARAMETER_PROBLEM = 12, + SCE_NET_ICMP_TYPE_TIMESTAMP_REQUEST = 13, + SCE_NET_ICMP_TYPE_TIMESTAMP_REPLY = 14, + SCE_NET_ICMP_TYPE_INFORMATION_REQUEST = 15, + SCE_NET_ICMP_TYPE_INFORMATION_REPLY = 16, + SCE_NET_ICMP_TYPE_ADDRESS_MASK_REQUEST = 17, + SCE_NET_ICMP_TYPE_ADDRESS_MASK_REPLY = 18 +} SceNetIcmpType; /** Codes to specify to ::SceNetIcmpHeader structure */ -enum { - SCE_NET_ICMP_CODE_DEST_UNREACH_NET_UNREACH = 0, - SCE_NET_ICMP_CODE_DEST_UNREACH_HOST_UNREACH = 1, - SCE_NET_ICMP_CODE_DEST_UNREACH_PROTO_UNREACH = 2, - SCE_NET_ICMP_CODE_DEST_UNREACH_PORT_UNREACH = 3, - SCE_NET_ICMP_CODE_DEST_UNREACH_FRAG_AND_DF = 4, - SCE_NET_ICMP_CODE_DEST_UNREACH_SRC_HOST_FAILED = 5, - SCE_NET_ICMP_CODE_DEST_UNREACH_DST_NET_UNKNOWN = 6, - SCE_NET_ICMP_CODE_DEST_UNREACH_DST_HOST_UNKNOWN = 7, - SCE_NET_ICMP_CODE_DEST_UNREACH_SRC_HOST_ISOLATED = 8, - SCE_NET_ICMP_CODE_DEST_UNREACH_NET_ADMIN_PROHIBITED = 9, - SCE_NET_ICMP_CODE_DEST_UNREACH_NET_HOST_PROHIBITED = 10, - SCE_NET_ICMP_CODE_DEST_UNREACH_NET_TOS = 11, - SCE_NET_ICMP_CODE_DEST_UNREACH_HOST_TOS = 12, - SCE_NET_ICMP_CODE_TIME_EXCEEDED_TTL_EXCEEDED = 0, - SCE_NET_ICMP_CODE_TIME_EXCEEDED_FRT_EXCEEDED = 1 -}; +typedef enum SceNetIcmpCode { + SCE_NET_ICMP_CODE_DEST_UNREACH_NET_UNREACH = 0, + SCE_NET_ICMP_CODE_DEST_UNREACH_HOST_UNREACH = 1, + SCE_NET_ICMP_CODE_DEST_UNREACH_PROTO_UNREACH = 2, + SCE_NET_ICMP_CODE_DEST_UNREACH_PORT_UNREACH = 3, + SCE_NET_ICMP_CODE_DEST_UNREACH_FRAG_AND_DF = 4, + SCE_NET_ICMP_CODE_DEST_UNREACH_SRC_HOST_FAILED = 5, + SCE_NET_ICMP_CODE_DEST_UNREACH_DST_NET_UNKNOWN = 6, + SCE_NET_ICMP_CODE_DEST_UNREACH_DST_HOST_UNKNOWN = 7, + SCE_NET_ICMP_CODE_DEST_UNREACH_SRC_HOST_ISOLATED = 8, + SCE_NET_ICMP_CODE_DEST_UNREACH_NET_ADMIN_PROHIBITED = 9, + SCE_NET_ICMP_CODE_DEST_UNREACH_NET_HOST_PROHIBITED = 10, + SCE_NET_ICMP_CODE_DEST_UNREACH_NET_TOS = 11, + SCE_NET_ICMP_CODE_DEST_UNREACH_HOST_TOS = 12, + SCE_NET_ICMP_CODE_TIME_EXCEEDED_TTL_EXCEEDED = 0, + SCE_NET_ICMP_CODE_TIME_EXCEEDED_FRT_EXCEEDED = 1 +} SceNetIcmpCode; /* Defines */ -#define SCE_NET_EPOLL_ABORT_FLAG_PRESERVATION 0x00000001 - #define SCE_NET_IP_DEFAULT_MULTICAST_TTL 1 #define SCE_NET_IP_DEFAULT_MULTICAST_LOOP 1 @@ -473,25 +396,9 @@ enum { #define SCE_NET_DEBUG_NAME_LEN_MAX 31 -#define SCE_NET_RESOLVER_PORT 53 -#define SCE_NET_RESOLVER_HOSTNAME_LEN_MAX 255 - #define SCE_NET_ID_SOCKET_MIN 0 #define SCE_NET_ID_SOCKET_MAX 1023 -/* callback */ - -typedef void *(*SceNetResolverFunctionAllocate)( - unsigned int size, - int rid, - const char *name, - void *user); -typedef void (*SceNetResolverFunctionFree)( - void *ptr, - int rid, - const char *name, - void *user); - /* struct */ typedef struct SceNetFdSet { @@ -516,43 +423,6 @@ typedef struct SceNetIpMreq { SceNetInAddr imr_interface; } SceNetIpMreq; -typedef struct SceNetInitParam { - void *memory; - int size; - int flags; -} SceNetInitParam; - -typedef struct SceNetEmulationData { - unsigned short int drop_rate; - unsigned short int drop_duration; - unsigned short int pass_duration; - unsigned short int delay_time; - unsigned short int delay_jitter; - unsigned short int order_rate; - unsigned short int order_delay_time; - unsigned short int duplication_rate; - unsigned int bps_limit; - unsigned short int lower_size_limit; - unsigned short int upper_size_limit; - unsigned int system_policy_pattern; - unsigned int game_policy_pattern; - unsigned short int policy_flags[64]; - unsigned char reserved[64]; -} SceNetEmulationData; - -typedef struct SceNetEmulationParam { - unsigned short int version; - unsigned short int option_number; - unsigned short int current_version; - unsigned short int result; - unsigned int flags; - unsigned int reserved1; - SceNetEmulationData send; - SceNetEmulationData recv; - unsigned int seed; - unsigned char reserved[44]; -} SceNetEmulationParam; - typedef struct SceNetEtherAddr { unsigned char data[6]; } SceNetEtherAddr; @@ -561,36 +431,6 @@ typedef struct SceNetDnsInfo { SceNetInAddr dns_addr[2]; } SceNetDnsInfo; -typedef struct SceNetEpollDataExt { - int id; - unsigned int u32; -} SceNetEpollDataExt; - -typedef union SceNetEpollData { - void *ptr; - int fd; - unsigned int u32; - unsigned long long int u64; - SceNetEpollDataExt ext; -} SceNetEpollData; - -typedef struct SceNetEpollSystemData { - unsigned int system[4]; -} SceNetEpollSystemData; - -typedef struct SceNetEpollEvent { - unsigned int events; - unsigned int reserved; - SceNetEpollSystemData system; - SceNetEpollData data; -} SceNetEpollEvent; - -typedef struct SceNetResolverParam { - SceNetResolverFunctionAllocate allocate; - SceNetResolverFunctionFree free; - void *user; -} SceNetResolverParam; - typedef struct SceNetLinger { int l_onoff; int l_linger; diff --git a/include/kernel/udcd.h b/include/kernel/udcd.h index 899a6e6..46eb51f 100644 --- a/include/kernel/udcd.h +++ b/include/kernel/udcd.h @@ -7,56 +7,58 @@ extern "C" { #endif -/* - * Device and/or Interface Class codes - */ -#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */ -#define USB_CLASS_AUDIO 1 -#define USB_CLASS_COMM 2 -#define USB_CLASS_HID 3 -#define USB_CLASS_PRINTER 7 -#define USB_CLASS_PTP 6 -#define USB_CLASS_MASS_STORAGE 8 -#define USB_CLASS_HUB 9 -#define USB_CLASS_DATA 10 -#define USB_CLASS_VENDOR_SPEC 0xff - -/* - * Descriptor types - */ -#define USB_DT_DEVICE 0x01 -#define USB_DT_CONFIG 0x02 -#define USB_DT_STRING 0x03 -#define USB_DT_INTERFACE 0x04 -#define USB_DT_ENDPOINT 0x05 - -/* - * Standard requests - */ -#define USB_REQ_GET_STATUS 0x00 -#define USB_REQ_CLEAR_FEATURE 0x01 -#define USB_REQ_SET_FEATURE 0x03 -#define USB_REQ_SET_ADDRESS 0x05 -#define USB_REQ_GET_DESCRIPTOR 0x06 -#define USB_REQ_SET_DESCRIPTOR 0x07 -#define USB_REQ_GET_CONFIG 0x08 -#define USB_REQ_SET_CONFIG 0x09 -#define USB_REQ_GET_INTERFACE 0x0a -#define USB_REQ_SET_INTERFACE 0x0b -#define USB_REQ_SYNC_FRAME 0x0c - -/* +/** Enumeration for Device and/or Interface Class codes + */ +typedef enum SceUdcdUsbClass { + USB_CLASS_PER_INTERFACE 0x00, //!< for DeviceClass + 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_VENDOR_SPEC 0xFF +} SceUdcdUsbClass; + +/** Enumeration for descriptor types + */ +typedef enum SceUdcdUsbDt { + USB_DT_DEVICE = 0x01, + USB_DT_CONFIG = 0x02, + USB_DT_STRING = 0x03, + USB_DT_INTERFACE = 0x04, + USB_DT_ENDPOINT = 0x05 +} SceUdcdUsbDt; + +/** Enumeration for standard requests + */ +typedef 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 +} SceUdcdUsbReq; + +/** * Descriptor sizes per descriptor type */ #define USB_DT_DEVICE_SIZE 18 #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_ENDPOINT_AUDIO_SIZE 9 //!< Audio extension #define USB_DT_HUB_NONVAR_SIZE 7 -/* - * Control message request type bitmask +/** Control message request type bitmask */ #define USB_CTRLTYPE_DIR_MASK 0x80 #define USB_CTRLTYPE_DIR_HOST2DEVICE (0 << 7) @@ -72,8 +74,7 @@ extern "C" { #define USB_CTRLTYPE_REC_ENDPOINT 2 #define USB_CTRLTYPE_REC_OTHER 3 -/* - * Endpoint types and masks +/** Endpoint types and masks */ #define USB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */ #define USB_ENDPOINT_DIR_MASK 0x80 @@ -91,114 +92,116 @@ extern "C" { /* HID constants. Not part of chapter 9 */ -/* - * Class-Specific Requests +/** Class-Specific Requests */ -#define HID_REQUEST_GET_REPORT 0x01 -#define HID_REQUEST_GET_IDLE 0x02 -#define HID_REQUEST_GET_PROTOCOL 0x03 -#define HID_REQUEST_SET_REPORT 0x09 -#define HID_REQUEST_SET_IDLE 0x0A -#define HID_REQUEST_SET_PROTOCOL 0x0B +typedef 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 +} SceUdcdHidRequest; -/* - * Class Descriptor Types +/** Class Descriptor Types */ -#define HID_DESCRIPTOR_HID 0x21 -#define HID_DESCRIPTOR_REPORT 0x22 -#define HID_DESRIPTOR_PHY 0x23 +typedef enum SceUdcdHidDescriptor { + HID_DESCRIPTOR_HID = 0x21, + HID_DESCRIPTOR_REPORT = 0x22, + HID_DESRIPTOR_PHY = 0x23 +} SceUdcdHidDescriptor; -/* - * Protocol Selection +/** Protocol Selection */ -#define BOOT_PROTOCOL 0x00 -#define RPT_PROTOCOL 0x01 +typedef enum SceUdcdProtocol { + BOOT_PROTOCOL = 0x00, + RPT_PROTOCOL = 0x01 +} SceUdcdProtocol; -/* - * HID Interface Class Code +/** HID Interface Class Code */ #define HID_INTF 0x03 -/* - * HID Interface Class SubClass Codes +/** HID Interface Class SubClass Codes */ #define BOOT_INTF_SUBCLASS 0x01 -/* - * HID Interface Class Protocol Codes +/** HID Interface Class Protocol Codes */ -#define HID_PROTOCOL_NONE 0x00 -#define HID_PROTOCOL_KEYBOARD 0x01 -#define HID_PROTOCOL_MOUSE 0x02 - +typedef enum SceUdcdHidProtocol { + HID_PROTOCOL_NONE = 0x00, + HID_PROTOCOL_KEYBOARD = 0x01, + HID_PROTOCOL_MOUSE = 0x02 +} SceUdcdHidProtocol; -/* - * USB Status +/** USB Status */ -#define SCE_UDCD_STATUS_CONNECTION_NEW 0x0001 -#define SCE_UDCD_STATUS_CONNECTION_ESTABLISHED 0x0002 -#define SCE_UDCD_STATUS_CONNECTION_SUSPENDED 0x0004 -#define SCE_UDCD_STATUS_CABLE_DISCONNECTED 0x0010 -#define SCE_UDCD_STATUS_CABLE_CONNECTED 0x0020 -#define SCE_UDCD_STATUS_DEACTIVATED 0x0100 -#define SCE_UDCD_STATUS_ACTIVATED 0x0200 -#define SCE_UDCD_STATUS_IS_CHARGING 0x0400 -#define SCE_UDCD_STATUS_USE_USB_CHARGING 0x0800 -#define SCE_UDCD_STATUS_UNKNOWN_1000 0x1000 -#define SCE_UDCD_STATUS_UNKNOWN_2000 0x2000 +typedef 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 +} SceUdcdStatus; -/* - * USB Driver status +/** USB Driver status */ -#define SCE_UDCD_STATUS_DRIVER_STARTED 0x01 -#define SCE_UDCD_STATUS_DRIVER_REGISTERED 0x02 +typedef enum SceUdcdStatusDriver { + SCE_UDCD_STATUS_DRIVER_STARTED = 0x01, + SCE_UDCD_STATUS_DRIVER_REGISTERED = 0x02 +} SceUdcdStatusDriver; -/* - * USB limits +/** USB limits */ #define SCE_UDCD_MAX_INTERFACES 8 #define SCE_UDCD_MAX_ENDPOINTS 9 #define SCE_UDCD_MAX_ALTERNATE 2 -#define SCE_UDCD_RETCODE_CANCEL -1 -#define SCE_UDCD_RETCODE_CANCEL_ALL -2 -#define SCE_UDCD_RETCODE_CANCELTRANSMISSION -3 -#define SCE_UDCD_RETCODE_SUCCESS 0 -#define SCE_UDCD_RETCODE_SEND 1 -#define SCE_UDCD_RETCODE_RECV 2 - -/* - * Error codes - */ -#define SCE_UDCD_ERROR_ALREADY_DONE 0x80243001 -#define SCE_UDCD_ERROR_INVALID_ARGUMENT 0x80243002 -#define SCE_UDCD_ERROR_ARGUMENT_EXCEEDED_LIMIT 0x80243003 -#define SCE_UDCD_ERROR_MEMORY_EXHAUSTED 0x80243004 -#define SCE_UDCD_ERROR_DRIVER_NOT_FOUND 0x80243005 -#define SCE_UDCD_ERROR_DRIVER_IN_PROGRESS 0x80243006 -#define SCE_UDCD_ERROR_BUS_DRIVER_NOT_STARTED 0x80243007 -#define SCE_UDCD_ERROR_WAIT_TIMEOUT 0x80243008 -#define SCE_UDCD_ERROR_WAIT_CANCEL 0x80243009 -#define SCE_UDCD_ERROR_INVALID_POINTER 0x80000103 -#define SCE_UDCD_ERROR_INVALID_FLAG 0x80000105 -#define SCE_UDCD_ERROR_INVALID_VALUE 0x800001FE -#define SCE_UDCD_ERROR_ILLEGAL_CONTEXT 0x80000030 -#define SCE_UDCD_ERROR_USBDRIVER_INVALID_DRIVER 0x80243200 -#define SCE_UDCD_ERROR_USBDRIVER_INVALID_NAME 0x80243201 -#define SCE_UDCD_ERROR_USBDRIVER_INVALID_FUNCS 0x80243202 - - -/* - * USB string descriptor +typedef 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 +} SceUdcdRetcode; + +/** Error codes + */ +typedef 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 +} SceUdcdErrorCode; + +/** USB string descriptor */ typedef struct SceUdcdStringDescriptor { unsigned char bLength; unsigned char bDescriptorType; short bString[31]; -} SceUdcdStringDescriptor; /* Size 64 */ +} SceUdcdStringDescriptor; -/* - * USB device descriptor +/** USB device descriptor */ typedef struct SceUdcdDeviceDescriptor { unsigned char bLength; @@ -215,10 +218,9 @@ typedef struct SceUdcdDeviceDescriptor { unsigned char iProduct; unsigned char iSerialNumber; unsigned char bNumConfigurations; -} __attribute__ ((aligned(4))) SceUdcdDeviceDescriptor; /* size 20 */ +} __attribute__ ((aligned(4))) SceUdcdDeviceDescriptor; -/* - * USB device qualifier descriptor +/** USB device qualifier descriptor */ typedef struct SceUdcdDeviceQualifierDescriptor { unsigned char bLength; @@ -230,10 +232,9 @@ typedef struct SceUdcdDeviceQualifierDescriptor { unsigned char bMaxPacketSize0; unsigned char bNumConfigurations; unsigned char bReserved; -} __attribute__ ((aligned(4))) SceUdcdDeviceQualifierDescriptor; /* size 12 */ +} __attribute__ ((aligned(4))) SceUdcdDeviceQualifierDescriptor; -/* - * USB configuration descriptor +/** USB configuration descriptor */ typedef struct SceUdcdConfigDescriptor { unsigned char bLength; @@ -244,28 +245,20 @@ typedef struct SceUdcdConfigDescriptor { unsigned char iConfiguration; unsigned char bmAttributes; unsigned char bMaxPower; - struct SceUdcdInterfaceSettings *settings; - - unsigned char *extra; /* Extra descriptors */ + unsigned char *extra; //!< Extra descriptors int extraLength; -} SceUdcdConfigDescriptor; /* size 24 */ +} SceUdcdConfigDescriptor; -/* - * USB driver interfaces structure +/** USB driver interfaces structure */ typedef struct SceUdcdInterfaceSettings { - /* Pointers to the individual interface descriptors */ - struct SceUdcdInterfaceDescriptor *descriptors; - + struct SceUdcdInterfaceDescriptor *descriptors; //!< Pointers to the individual interface descriptors unsigned int alternateSetting; - - /* Number of interface descriptors */ - unsigned int numDescriptors; + unsigned int numDescriptors; //!< Number of interface descriptors } SceUdcdInterfaceSettings; -/* - * USB Interface descriptor +/** USB Interface descriptor */ typedef struct SceUdcdInterfaceDescriptor { unsigned char bLength; @@ -277,15 +270,12 @@ typedef struct SceUdcdInterfaceDescriptor { unsigned char bInterfaceSubClass; unsigned char bInterfaceProtocol; unsigned char iInterface; - struct SceUdcdEndpointDescriptor *endpoints; - - unsigned char *extra; /* Extra descriptors */ + unsigned char *extra; //!< Extra descriptors int extraLength; -} SceUdcdInterfaceDescriptor; /* size 24 */ +} SceUdcdInterfaceDescriptor; -/* - * USB endpoint descriptor +/** USB endpoint descriptor */ typedef struct SceUdcdEndpointDescriptor { unsigned char bLength; @@ -294,53 +284,37 @@ typedef struct SceUdcdEndpointDescriptor { unsigned char bmAttributes; unsigned short wMaxPacketSize; unsigned char bInterval; - - unsigned char *extra; /* Extra descriptors */ + unsigned char *extra; //!< Extra descriptors int extraLength; -} SceUdcdEndpointDescriptor; /* size 16 */ +} SceUdcdEndpointDescriptor; -/* - * USB driver interface +/** USB driver interface */ typedef struct SceUdcdInterface { - /* Expectant interface number (interface number or -1) */ - int expectNumber; - /* End interface */ - int interfaceNumber; - /* Number of interfaces */ - int numInterfaces; + int expectNumber; //!< Expectant interface number (interface number or -1) + int interfaceNumber; //!< End interface + int numInterfaces; //!< Number of interfaces } SceUdcdInterface; -/* - * USB driver endpoint +/** USB driver endpoint */ typedef struct SceUdcdEndpoint { - /* 0x80 = in, 0x00 = out */ - int direction; - /* Driver Endpoint number (must be filled in sequentially) */ - int driverEndpointNumber; - /* Endpoint number (Filled in by the bus driver) */ - int endpointNumber; - /* Number of transmitted bytes */ - int transmittedBytes; + 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 } SceUdcdEndpoint; -/* - * USB driver configuration +/** USB driver configuration */ typedef struct SceUdcdConfiguration { - /* Pointer to the configuration descriptors */ - SceUdcdConfigDescriptor *configDescriptors; - /* USB driver interface settings */ - SceUdcdInterfaceSettings *settings; - /* Pointer to the first interface descriptor */ - SceUdcdInterfaceDescriptor *interfaceDescriptors; - /* Pointer to the first endpoint descriptor */ - SceUdcdEndpointDescriptor *endpointDescriptors; + 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 } SceUdcdConfiguration; -/* - * USB EP0 Device Request +/** USB EP0 Device Request */ typedef struct SceUdcdEP0DeviceRequest { unsigned char bmRequestType; @@ -350,92 +324,57 @@ typedef struct SceUdcdEP0DeviceRequest { unsigned short wLength; } SceUdcdEP0DeviceRequest; -/* - * USB driver structure +/** USB driver structure */ 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) */ - SceUdcdEndpoint *endpoints; - /* Interface list */ - SceUdcdInterface *interface; - /* Pointer to hi-speed device descriptor */ - SceUdcdDeviceDescriptor *descriptor_hi; - /* Pointer to hi-speed device configuration */ - SceUdcdConfiguration *configuration_hi; - /* Pointer to full-speed device descriptor */ - SceUdcdDeviceDescriptor *descriptor; - /* Pointer to full-speed device configuration */ - SceUdcdConfiguration *configuration; - /* Unk0 */ - SceUdcdStringDescriptor *stringDescriptorsUnk0; - /* Default String descriptor */ - SceUdcdStringDescriptor *stringDescriptorsUnk1; - /* String descriptors (unknown) */ - SceUdcdStringDescriptor *stringDescriptorsUnk2; - /* Received a control request */ - 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 */ - int (*attach) (int usb_version); - /* Configuration unset (detach) function */ - void (*detach) (void); - /* Configure the device */ - 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 */ - int (*stop) (int size, void *args); - /* Unk */ - unsigned int unk1; - unsigned int unk2; - /* Link to next USB driver in the chain, set to NULL */ - struct SceUdcdDriver *link; + const char *driverName; //!< Name of the USB driver + int numEndpoints; //!< Number of endpoints in this driver (including default control) + SceUdcdEndpoint *endpoints; //!< List of endpoint structures (used when calling other functions) + SceUdcdInterface *interface; //!< Interface list + SceUdcdDeviceDescriptor *descriptor_hi; //!< Pointer to hi-speed device descriptor + SceUdcdConfiguration *configuration_hi; //!< Pointer to hi-speed device configuration + SceUdcdDeviceDescriptor *descriptor; //!< Pointer to full-speed device descriptor + SceUdcdConfiguration *configuration; //!< Pointer to full-speed device configuration + 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 + unsigned int unk2; //!< Unknown data + struct SceUdcdDriver *link; //!< Link to next USB driver in the chain, set to NULL } SceUdcdDriver; -/* - * USB device request +/** USB device request */ typedef struct SceUdcdDeviceRequest { - /* Pointer to the endpoint to queue request on */ - SceUdcdEndpoint *endpoint; - /* Pointer to the data buffer to use in the request */ - void *data; - /* Unknown */ - unsigned int unk; - /* Size of the data buffer */ - int size; - /* Is a control request? */ - int isControlRequest; - /* Pointer to the function to call on completion */ - void (*onComplete)(struct SceUdcdDeviceRequest *req); - /* Number of transmitted bytes */ - int transmitted; - /* Return code of the request, 0 == success, -3 == canceled */ - int returnCode; - /* Link pointer to next request used by the driver, set it to NULL */ - struct SceUdcdDeviceRequest *next; - /* An unused value (maybe an argument) */ - void *unused; - /* Physical address */ - void *physicalAddress; + SceUdcdEndpoint *endpoint; //!< Pointer to the endpoint to queue request on + void *data; //!< Pointer to the data buffer to use in the request + unsigned int unk; //!< Unknown data + 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 SceUdcdDeviceRequest *next; //!< 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 } SceUdcdDeviceRequest; -/* - * USB driver name +/** USB driver name */ typedef struct SceUdcdDriverName { int size; char name[32]; int flags; -} __attribute__ ((aligned(16))) SceUdcdDriverName; /* size 48 */ +} __attribute__ ((aligned(16))) SceUdcdDriverName; -/* - * USB device information +/** USB device information */ typedef struct SceUdcdDeviceInfo { unsigned char info[64]; @@ -444,22 +383,22 @@ typedef struct SceUdcdDeviceInfo { /** * Start a USB driver. * - * @param driverName - name of the USB driver to start + * @param driverName - Name of the USB driver to start * @param size - Size of arguments to pass to USB driver start * @param args - Arguments to pass to USB driver start * - * @return 0 on success + * @return 0 on success, < 0 on error. */ int sceUdcdStart(const char *driverName, int size, void *args); /** * Stop a USB driver. * - * @param driverName - name of the USB driver to stop + * @param driverName - Name of the USB driver to stop * @param size - Size of arguments to pass to USB driver start * @param args - Arguments to pass to USB driver start * - * @return 0 on success + * @return 0 on success, < 0 on error. */ int sceUdcdStop(const char *driverName, int size, void *args); @@ -468,21 +407,21 @@ int sceUdcdStop(const char *driverName, int size, void *args); * * @param pid - Product ID for the default USB Driver * - * @return 0 on success + * @return 0 on success, < 0 on error. */ int sceUdcdActivate(unsigned int productId); /** * Deactivate USB driver. * - * @return 0 on success + * @return 0 on success, < 0 on error. */ int sceUdcdDeactivate(void); /** * Get USB state * - * @return OR'd SCE_UDCD_STATUS_* constants + * @return One or more ::SceUdcdStatus. */ int sceUdcdGetDeviceState(void); @@ -506,7 +445,7 @@ int sceUdcdGetDrvState(const char *driverName); /** * Get the list of drivers - * @param flags - combination of SCE_UDCD_STATUS_DRIVER_STARTED or SCE_UDCD_STATUS_DRIVER_REGISTERED + * @param flags - One or more ::SceUdcdStatusDriver * @param list - points to the output list * @param size - number of entries in the output list * @return the number of drivers in the output or < 0 in case of error @@ -515,7 +454,7 @@ int sceUdcdGetDrvList(unsigned int flags, SceUdcdDriverName *list, int size); /** * Wait for USB state - * @param state - combination of states(returned by sceUdcdGetState) + * @param state - combination of states (returned by ::sceUdcdGetDeviceState) * @param waitMode - one of the ::SceEventFlagWaitTypes * @param timeout - pointer to timeout * @return the usb state or < 0 in case of error @@ -576,7 +515,7 @@ int sceUdcdStall(SceUdcdEndpoint *endp); /** * Queue a send request(IN from host pov) * - * @param req - Pointer to a filled out SceUdcdDeviceRequest structure. + * @param req - Pointer to a filled out ::SceUdcdDeviceRequest structure. * * @return 0 on success, < 0 on error */ @@ -585,7 +524,7 @@ int sceUdcdReqSend(SceUdcdDeviceRequest *req); /** * Queue a receive request(OUT from host pov) * - * @param req - Pointer to a filled out SceUdcdDeviceRequest structure + * @param req - Pointer to a filled out ::SceUdcdDeviceRequest structure * * @return 0 on success, < 0 on error */ diff --git a/include/kernel/usbd.h b/include/kernel/usbd.h index d71468e..facaea0 100644 --- a/include/kernel/usbd.h +++ b/include/kernel/usbd.h @@ -7,19 +7,21 @@ extern "C" { #endif -#define SCE_USBD_ERROR_ACCESS 0x80240003 -#define SCE_USBD_ERROR_BUSY 0x80240006 -#define SCE_USBD_ERROR_FATAL 0x802400ff -#define SCE_USBD_ERROR_INTERRUPTED 0x8024000a -#define SCE_USBD_ERROR_INVALID_ARG 0x80240002 -#define SCE_USBD_ERROR_IO 0x80240001 -#define SCE_USBD_ERROR_NO_DEVICE 0x80240004 -#define SCE_USBD_ERROR_NO_MEM 0x8024000b -#define SCE_USBD_ERROR_NOT_FOUND 0x80240005 -#define SCE_USBD_ERROR_NOT_SUPPORTED 0x8024000c -#define SCE_USBD_ERROR_OVERFLOW 0x80240008 -#define SCE_USBD_ERROR_PIPE 0x80240009 -#define SCE_USBD_ERROR_TIMEOUT 0x80240007 +typedef enum SceUsbdErrorCode { + SCE_USBD_ERROR_IO = 0x80240001 + SCE_USBD_ERROR_INVALID_ARG = 0x80240002 + SCE_USBD_ERROR_ACCESS = 0x80240003 + SCE_USBD_ERROR_NO_DEVICE = 0x80240004 + SCE_USBD_ERROR_NOT_FOUND = 0x80240005 + SCE_USBD_ERROR_BUSY = 0x80240006 + SCE_USBD_ERROR_TIMEOUT = 0x80240007 + SCE_USBD_ERROR_OVERFLOW = 0x80240008 + SCE_USBD_ERROR_PIPE = 0x80240009 + SCE_USBD_ERROR_INTERRUPTED = 0x8024000a + SCE_USBD_ERROR_NO_MEM = 0x8024000b + SCE_USBD_ERROR_NOT_SUPPORTED = 0x8024000c + SCE_USBD_ERROR_FATAL = 0x802400ff +} SceUsbdErrorCode; typedef struct SceUsbdDeviceDescriptor { unsigned char bLength; @@ -36,7 +38,7 @@ typedef struct SceUsbdDeviceDescriptor { unsigned char iProduct; unsigned char iSerialNumber; unsigned char bNumConfigurations; -} SceUsbdDeviceDescriptor; /* size = 20 */ +} SceUsbdDeviceDescriptor; typedef struct SceUsbdEndpointDescriptor { unsigned char bLength; @@ -45,22 +47,21 @@ typedef struct SceUsbdEndpointDescriptor { unsigned char bmAttributes; unsigned short wMaxPacketSize; unsigned char bInterval; - - unsigned char *extra; /* Extra descriptors */ + unsigned char *extra; //!< Extra descriptors int extraLength; -} SceUsbdEndpointDescriptor; /* size 16 */ +} SceUsbdEndpointDescriptor; typedef struct SceUsbdDeviceAddress { - unsigned int unk0; + unsigned int unk0; unsigned short unk1; -} SceUsbdDeviceAddress; /* size = 0x6 */ +} SceUsbdDeviceAddress; typedef struct SceUsbdDriver { const char *name; int (*probe)(int device_id); int (*attach)(int device_id); int (*detach)(int device_id); -} SceUsbdDriver; /* size = 0x10 */ +} SceUsbdDriver; typedef struct SceUsbdControlTransferRequest { unsigned char bmRequestType; @@ -68,7 +69,7 @@ typedef struct SceUsbdControlTransferRequest { unsigned short wValue; unsigned short wIndex; unsigned short wLength; -} SceUsbdControlTransferRequest; /* size = 0x08 */ +} SceUsbdControlTransferRequest; int sceUsbdRegisterDriver(const SceUsbdDriver *driver); int sceUsbdRegisterCompositeLdd(const SceUsbdDriver *driver); |