summaryrefslogtreecommitdiff
path: root/include/kernel/bt.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/kernel/bt.h')
-rw-r--r--include/kernel/bt.h324
1 files changed, 324 insertions, 0 deletions
diff --git a/include/kernel/bt.h b/include/kernel/bt.h
new file mode 100644
index 0000000..ea79015
--- /dev/null
+++ b/include/kernel/bt.h
@@ -0,0 +1,324 @@
+#ifndef _PSP2_KERNEL_BT_H_
+#define _PSP2_KERNEL_BT_H_
+
+#include <psp2/types.h>
+
+#ifdef __cplusplus
+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 struct {
+ unsigned char mac[5];
+ unsigned char unk1[32 - 5];
+ char name[128];
+ unsigned char unk2[128];
+} SceBtRegisteredInfo; /* size = 0x100 */
+
+typedef struct {
+ // mac0 is at *(unsigned int *)&data[0x08];
+ // mac1 is at *(unsigned int *)&data[0x0C];
+ unsigned char data[0x10];
+} SceBtEvent;
+
+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 */
+
+int sceBtAvrcpReadVolume(int r0, int r1, int r2, int r3);
+int sceBtAvrcpSendButton(int r0, int r1, int r2, int r3);
+int sceBtAvrcpSendVolume(int r0, int r1, int r2, int r3);
+int sceBtAvrcpSetPlayStatus(int r0, int r1, int r2, int r3);
+int sceBtAvrcpSetTitle(int r0, int r1, int r2, int r3);
+int sceBtDeleteRegisteredInfo(int r0, int r1, int r2, int r3);
+int sceBtFreqAudio(int r0, int r1, int r2, int r3);
+int sceBtGetConfiguration(void); // returns 0x0 BT disabled, 0x9 if enabled
+int sceBtGetConnectingInfo(unsigned int mac0, unsigned int mac1); // 1 = disconnected?, 2 = connecting?, 5 = connected?
+int sceBtGetDeviceName(unsigned int mac0, unsigned int mac1, char name[0x79]);
+int sceBtGetInfoForTest(int r0, int r1, int r2, int r3);
+int sceBtGetLastError(void);
+int sceBtGetRegisteredInfo(int device, int unk, SceBtRegisteredInfo *info, unsigned int info_size);
+int sceBtGetStatusForTest(int r0, int r1, int r2, int r3);
+int sceBtGetVidPid(unsigned int mac0, unsigned int mac1, unsigned short vid_pid[2]);
+int sceBtHfpGetCurrentPhoneNumber(int r0, int r1, int r2, int r3);
+int sceBtHfpRequest(int r0, int r1, int r2, int r3);
+int sceBtHidGetReportDescriptor(unsigned int mac0, unsigned int mac1, void *buffer, unsigned int size);
+int sceBtHidTransfer(unsigned int mac0, unsigned int mac1, SceBtHidRequest *request);
+int sceBtPairingOOB(int r0, int r1, int r2, int r3);
+int sceBtPushBip(int r0, int r1, int r2, int r3);
+int sceBtPushOpp(int r0, int r1, int r2, int r3);
+int sceBtReadEvent(SceBtEvent *events, int num_events);
+int sceBtRecvAudio(int r0, int r1, int r2, int r3);
+int sceBtRecvBip(int r0, int r1, int r2, int r3);
+int sceBtRecvOpp(int r0, int r1, int r2, int r3);
+int sceBtRecvSpp(int r0, int r1, int r2, int r3);
+int sceBtRegisterCallback(SceUID cb, int unused, int flags1, int flags2); // looks like flags1 is a mask for permitted MACs
+int sceBtReplyPinCode(unsigned int mac0, unsigned int mac1, unsigned char *code, unsigned int length);
+int sceBtReplyUserConfirmation(unsigned int mac0, unsigned int mac1, int unk);
+int sceBtSendAudio(int r0, int r1, int r2, int r3);
+int sceBtSendL2capEchoRequestForTest(int r0, int r1, int r2, int r3);
+int sceBtSendSpp(int r0, int r1, int r2, int r3);
+int sceBtSetConfiguration(int r0); //0 = disable bt, 1 = enabling, 2 = enabled 3 = disabling?
+int sceBtSetContentProtection(int r0);
+int sceBtSetInquiryResultForTest(unsigned char *);
+int sceBtSetInquiryScan(int r0);
+int sceBtSetL2capEchoResponseBufferForTest(int r0, int r1, int r2, int r3);
+int sceBtSetStatusForTest(int r0, int r1, int r2, int r3);
+int sceBtStartAudio(int r0, int r1, int r2, int r3);
+int sceBtStartConnect(unsigned int mac0, unsigned int mac1); // mac0 can be used as a device index (already paired devices)?
+int sceBtStartDisconnect(unsigned int mac0, unsigned int mac1);
+int sceBtStartInquiry(void);
+int sceBtStopAudio(int r0, int r1, int r2, int r3);
+int sceBtStopInquiry(void);
+int sceBtUnregisterCallback(SceUID cb);
+
+#ifdef __cplusplus
+}
+#endif
+#endif