1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
|
#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[6];
unsigned short unk0;
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 */
typedef struct {
// mac0 is at *(unsigned int *)&data[0x08];
// mac1 is at *(unsigned int *)&data[0x0C];
union {
unsigned char data[0x10];
struct {
unsigned char id;
unsigned char unk1;
unsigned short unk2;
unsigned int unk3;
unsigned int mac0;
unsigned int mac1;
};
};
} 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(unsigned int mac0, unsigned int mac1);
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
|