mirror of
https://github.com/IllusionMan1212/vitasdk-odin.git
synced 2026-10-24 02:12:38 +00:00
added kernel libraries bindings and cleaned up todos
This commit is contained in:
+286
@@ -0,0 +1,286 @@
|
||||
package bt
|
||||
|
||||
import "core:c"
|
||||
|
||||
SceBtErrorCode :: enum c.uint {
|
||||
REG_NOT_READY = 0x802F0101,
|
||||
REG_DELETE_NO_ENTRY = 0x802F0102,
|
||||
REG_UPDATE_CANNOT_SAVE = 0x802F0103,
|
||||
REG_SET_HID_DESC_BAD_ARG = 0x802F0105,
|
||||
REG_SET_HID_DESC_NO_REG = 0x802F0106,
|
||||
REG_GET_HID_DESC_NO_REG = 0x802F0107,
|
||||
REG_GET_HID_DESC_TOO_SHORT = 0x802F0108,
|
||||
REG_DELETE_CONNECTING = 0x802F0109,
|
||||
REG_CANNOT_LOAD = 0x802F010A,
|
||||
REG_CANNOT_OPEN = 0x802F010B,
|
||||
REG_CANNOT_READ = 0x802F010C,
|
||||
REG_CANNOT_WRITE = 0x802F010D,
|
||||
INQUIRY_START_BUSY = 0x802F0201,
|
||||
CONNECT_START_NO_REG = 0x802F0202,
|
||||
CONNECT_START_NOT_CONNECTABLE = 0x802F0203,
|
||||
CONNECT_START_BUSY = 0x802F0204,
|
||||
DISCONNECT_START_NOT_CONNECTED = 0x802F0205,
|
||||
PIN_INVALID_LENGTH = 0x802F0206,
|
||||
USER_CONFIRM_NOT_CONNECTED = 0x802F0207,
|
||||
SDP_OPEN_NO_L2C = 0x802F0208,
|
||||
CONNECT_START_REG_FULL = 0x802F0209,
|
||||
CONNECT_START_CONNECTED = 0x802F020A,
|
||||
CONNECT_START_TOO_MANY = 0x802F020D,
|
||||
CONNECT_START_DELETING = 0x802F020E,
|
||||
AVDTP_OPEN_NO_L2C = 0x802F0501,
|
||||
AVDTP_CLOSE_BAD_SERV = 0x802F0502,
|
||||
AVDTP_CLOSE_BAD_STATE = 0x802F0503,
|
||||
AVDTP_START_BAD_SERV = 0x802F0504,
|
||||
AVDTP_START_BAD_STATE = 0x802F0505,
|
||||
AVDTP_STOP_BAD_SERV = 0x802F0506,
|
||||
AVDTP_STOP_BAD_STATE = 0x802F0507,
|
||||
AVDTP_SEND_BAD_STATE = 0x802F0508,
|
||||
AVDTP_RECONF_BAD_SERV = 0x802F0509,
|
||||
AVDTP_RECONF_BAD_STATE = 0x802F050A,
|
||||
AVCTP_OPEN_NO_L2C = 0x802F0601,
|
||||
AVCTP_SEND_NO_L2C = 0x802F0603,
|
||||
AVCTP_NOT_CONNECTED = 0x802F0604,
|
||||
AVCTP_SEND_BUSY = 0x802F0605,
|
||||
AVCTP_SEND_NO_PRESS = 0x802F0606,
|
||||
AVCTP_SEND_NO_RELEASE = 0x802F0607,
|
||||
AVCTP_READ_NO_VOLUME = 0x802F0608,
|
||||
AVCTP_SEND_NOT_RUBY = 0x802F0609,
|
||||
HID_OPEN_NO_L2C = 0x802F0901,
|
||||
HID_CLOSE_NO_L2C = 0x802F0902,
|
||||
HID_SEND_NO_L2C = 0x802F0903,
|
||||
HID_NOT_CONNECTED = 0x802F0904,
|
||||
HID_NO_CAP = 0x802F0905,
|
||||
HID_INVALID_REQUEST_TYPE = 0x802F0906,
|
||||
HID_INVALID_BUFFER_ADDRESS = 0x802F0907,
|
||||
HID_INVALID_PROTOCOL = 0x802F0908,
|
||||
HID_INVALID_IDLE = 0x802F0909,
|
||||
HID_NOT_YET = 0x802F090C,
|
||||
HID_INVALID_LENGTH = 0x802F090D,
|
||||
HID_INVALID_REPORT_ID = 0x802F090E,
|
||||
HID_OVERWRITE_REQ = 0x802F090F,
|
||||
JUMBO_UNLOCK_NOT_OWNER = 0x802F0B01,
|
||||
HCI_TX_OVERFLOW = 0x802F0B02,
|
||||
ACL_TX_BUF_OVERFLOW = 0x802F0B03,
|
||||
ACL_TX_CB_OVERFLOW = 0x802F0B04,
|
||||
TIMER_CANCEL_BAD_ID = 0x802F0B05,
|
||||
TIMER_CANCEL_NOT_INITIALIZED = 0x802F0B06,
|
||||
TIMER_SET_NOT_INITIALIZED = 0x802F0B07,
|
||||
TIMER_SET_NO_SPACE = 0x802F0B08,
|
||||
COPYIN_FAILED = 0x802F0B09,
|
||||
COPYOUT_FAILED = 0x802F0B0A,
|
||||
GET_NAME_NO_DEVICE = 0x802F0C01,
|
||||
CB_TOO_MANY = 0x802F0C02,
|
||||
CB_NOT_REGISTERED = 0x802F0C03,
|
||||
CB_OVERFLOW = 0x802F0C04,
|
||||
AUDIO_START_NOT_CONNECTED = 0x802F0D01,
|
||||
AUDIO_START_NO_CAP = 0x802F0D02,
|
||||
AUDIO_STOP_NOT_CONNECTED = 0x802F0D03,
|
||||
AUDIO_STOP_NO_CAP = 0x802F0D04,
|
||||
AUDIO_SEND_NOT_CONNECTED = 0x802F0D05,
|
||||
AUDIO_SEND_NOT_STARTED = 0x802F0D06,
|
||||
AUDIO_SEND_INVALID_LENGTH = 0x802F0D07,
|
||||
AUDIO_RECV_NOT_CONNECTED = 0x802F0D08,
|
||||
AUDIO_RECV_NOT_STARTED = 0x802F0D09,
|
||||
AUDIO_RECV_INVALID_LENGTH = 0x802F0D0A,
|
||||
AUDIO_START_INVALID_SERV = 0x802F0D0B,
|
||||
AUDIO_STOP_INVALID_SERV = 0x802F0D0C,
|
||||
AUDIO_START_SERV_FAILED = 0x802F0D0D,
|
||||
AUDIO_STOP_SERV_FAILED = 0x802F0D0E,
|
||||
AUDIO_FREQ_NOT_CONNECTED = 0x802F0D0F,
|
||||
AUDIO_SEND_NO_CP = 0x802F0D10,
|
||||
AUDIO_SEND_BAD_TYPE = 0x802F0D11,
|
||||
AUDIO_RECV_BAD_TYPE = 0x802F0D12,
|
||||
AUDIO_COMBI_NOT_FOUND = 0x802F0D16,
|
||||
AUDIO_SEND_NO_L2C = 0x802F0D17,
|
||||
AUDIO_INTERNAL_1 = 0x802F0D18,
|
||||
AUDIO_SEND_BUSY = 0x802F0D19,
|
||||
AUDIO_RECV_BUSY = 0x802F0D1A,
|
||||
AUDIO_SEND_NO_CAP = 0x802F0D1B,
|
||||
AUDIO_SEND_SERV_FAILED = 0x802F0D1C,
|
||||
AUDIO_RECV_NO_CAP = 0x802F0D1D,
|
||||
AUDIO_RECV_SERV_FAILED = 0x802F0D1E,
|
||||
HID_RECV_NOT_CONNECTED = 0x802F0E01,
|
||||
HID_RECV_INVALID_LENGTH = 0x802F0E02,
|
||||
AVRCP_TOO_LONG_TITLE = 0x802F1201,
|
||||
AVRCP_INVALID_PLAY_STATUS = 0x802F1202,
|
||||
CONF_NOT_READY = 0x802F1501,
|
||||
CONF_INVALID_VALUE = 0x802F1502,
|
||||
CONF_BT_INACTIVE = 0x802F1503,
|
||||
CONF_TIMEOUT = 0x802F1504,
|
||||
CONF_CARD_NOT_FOUND = 0x802F1505,
|
||||
CONF_FUNCTION_NOT_FOUND = 0x802F1506,
|
||||
CONF_CANT_ENABLE_FUNCTION = 0x802F1507,
|
||||
CONF_CANT_DISABLE_FUNCTION = 0x802F1508,
|
||||
CONF_REGISTER_SUBINTR_HANDLER = 0x802F1509,
|
||||
CONF_RELEASE_SUBINTR_HANDLER = 0x802F150A,
|
||||
CONF_ENABLE_SUBINTR = 0x802F150B,
|
||||
CONF_DISABLE_SUBINTR = 0x802F150C,
|
||||
CONF_ON_TIMEOUT = 0x802F150D,
|
||||
CONF_OFF_TIMEOUT = 0x802F150E,
|
||||
CONF_SUSPEND_TIMEOUT = 0x802F150F,
|
||||
CONF_CANT_ENTER = 0x802F1520,
|
||||
NOTIMP = 0x802F2001,
|
||||
KPROC_CREATE = 0x802F2002,
|
||||
SDIO_GET_FUNCTION = 0x802F2003,
|
||||
SDIO_REGISTER_INTR_HANDLER = 0x802F2004,
|
||||
SDIO_UNREGISTER_INTR_HANDLER = 0x802F2005,
|
||||
SDIO_LOCK = 0x802F2006,
|
||||
SDIO_UNLOCK = 0x802F2007,
|
||||
SDIO_ENABLE_FUNCTION = 0x802F2008,
|
||||
SDIO_DISABLE_FUNCTION = 0x802F2009,
|
||||
SDIO_SET_BLOCK_LEN = 0x802F200A,
|
||||
SDIO_SET_BUS_SPEED = 0x802F200B,
|
||||
SDIO_READ_DIR = 0x802F200C,
|
||||
SDIO_WRITE_DIR = 0x802F200D,
|
||||
SDIO_READ_FIX = 0x802F200E,
|
||||
SDIO_WRITE_FIX = 0x802F200F,
|
||||
TSLEEP = 0x802F2010,
|
||||
GET_DEBUG_INFO_INVALID_REQUEST = 0x802F2101,
|
||||
SET_DEBUG_INFO_INVALID_REQUEST = 0x802F2102,
|
||||
GET_DEBUG_INFO_INVALID_SIZE = 0x802F2103,
|
||||
SET_DEBUG_INFO_INVALID_SIZE = 0x802F2104,
|
||||
GET_DEBUG_INFO_INVALID_ARGUMENT = 0x802F2105,
|
||||
SET_DEBUG_INFO_INVALID_ARGUMENT = 0x802F2106,
|
||||
GET_DEBUG_INFO_INVALID_STATE = 0x802F2107,
|
||||
SET_DEBUG_INFO_INVALID_STATE = 0x802F2108,
|
||||
GET_DEBUG_INFO_NOT_CONNECTED = 0x802F2109,
|
||||
SET_DEBUG_INFO_NOT_CONNECTED = 0x802F210A,
|
||||
PIN_IS_LE = 0x802F2201,
|
||||
CONNECT_START_IS_LE = 0x802F2202,
|
||||
AVCTP_IS_LE = 0x802F2203,
|
||||
HID_IS_LE = 0x802F2204,
|
||||
AUDIO_START_IS_LE = 0x802F2205,
|
||||
AUDIO_STOP_IS_LE = 0x802F2206,
|
||||
AUDIO_SEND_IS_LE = 0x802F2207,
|
||||
AUDIO_RECV_IS_LE = 0x802F2208,
|
||||
AUDIO_FREQ_IS_LE = 0x802F2209,
|
||||
ATT_BASE = 0x802F2300,
|
||||
ATT_INVALID_HANDLE = 0x802F2301,
|
||||
ATT_READ_NOT_PERMITTED = 0x802F2302,
|
||||
ATT_WRITE_NOT_PERMITTED = 0x802F2303,
|
||||
ATT_INVALID_PDU = 0x802F2304,
|
||||
ATT_INSUFFICIENT_AUTHENTICATION = 0x802F2305,
|
||||
ATT_REQUEST_NOT_SUPPORTED = 0x802F2306,
|
||||
ATT_INVALID_OFFSET = 0x802F2307,
|
||||
ATT_INSUFFICIENT_AUTHORIZATION = 0x802F2308,
|
||||
ATT_PEPARE_QUEUE_FULL = 0x802F2309,
|
||||
ATT_ATTRIBUTE_NOT_FOUND = 0x802F230A,
|
||||
ATT_ATTRIBUTE_NOT_LONG = 0x802F230B,
|
||||
ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0x802F230C,
|
||||
ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0x802F230D,
|
||||
ATT_UNLIKELY_ERROR = 0x802F230E,
|
||||
ATT_INSUFFICIENT_ENCRYPTION = 0x802F230F,
|
||||
ATT_UNSUPPORTED_GROUP_TYPE = 0x802F2310,
|
||||
ATT_INSUFFICIENT_RESOURCES = 0x802F2311,
|
||||
ATT_APPLICATION_ERROR_LO = 0x802F2380,
|
||||
ATT_APPLICATION_ERROR_HI = 0x802F23FF,
|
||||
GATT_INVALID_NO = 0x802F2401,
|
||||
GATT_NOT_CONNECTED = 0x802F2402,
|
||||
GATT_BUSY = 0x802F2403,
|
||||
GATT_INVALID_HANDLE = 0x802F2404,
|
||||
GATT_INVALID_FLAGS = 0x802F2405,
|
||||
GATT_INVALID_SIZE = 0x802F2406,
|
||||
GATT_NOT_LE = 0x802F2407,
|
||||
GATT_TOO_BIG_RECORD = 0x802F2408,
|
||||
GATT_NOT_YET = 0x802F2409,
|
||||
GATT_DISCONNECT = 0x802F240A,
|
||||
GATT_TSLEEP = 0x802F240B,
|
||||
GATT_ENTER = 0x802F240C,
|
||||
GATT_TOO_BIG_BUFFER = 0x802F240D,
|
||||
SM_INVALID_KEY_LENGTH = 0x802F2501,
|
||||
SM_NOT_DIGIT = 0x802F2502,
|
||||
SM_NO_REQ = 0x802F2503,
|
||||
SM_NOT_NEEDED_PIN = 0x802F2504,
|
||||
SM_INVALID_CONFIRM_REPLY = 0x802F2505,
|
||||
LE_SET_ADVERTISING_INVALID_REQ = 0x802F2601,
|
||||
LE_SET_ADVERTISING_INVALID_LENGTH = 0x802F2602,
|
||||
LE_SET_ADVERTISING_INVALID_INTERVAL_MIN = 0x802F2603,
|
||||
LE_SET_ADVERTISING_INVALID_INTERVAL_MAX = 0x802F2604,
|
||||
LE_SET_ADVERTISING_INVALID_OWN_ADDRESS_TYPE = 0x802F2605,
|
||||
LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS_TYPE = 0x802F2606,
|
||||
LE_SET_ADVERTISING_INVALID_DIRECT_ADDRESS = 0x802F2607,
|
||||
LE_SET_SCAN_INVALID_REQ = 0x802F2701,
|
||||
LE_SET_SCAN_INVALID_LENGTH = 0x802F2702,
|
||||
LE_SET_SCAN_INVALID_INTERVAL = 0x802F2703,
|
||||
LE_SET_SCAN_INVALID_WINDOW = 0x802F2704,
|
||||
LE_SET_SCAN_INVALID_OWN_ADDRESS_TYPE = 0x802F2705,
|
||||
LE_GET_ADVERTISING_NOT_FOUND = 0x802F2801,
|
||||
LE_CREATE_CONNECTION_INVALID_SCAN_INTERVAL = 0x802F2901,
|
||||
LE_CREATE_CONNECTION_INVALID_SCAN_WINDOW = 0x802F2902,
|
||||
LE_CREATE_CONNECTION_INVALID_PEER_ADDRESS = 0x802F2903,
|
||||
LE_CREATE_CONNECTION_INVALID_OWN_ADDRESS_TYPE = 0x802F2904,
|
||||
LE_CREATE_CONNECTION_INVALID_INTERVAL_MIN = 0x802F2905,
|
||||
LE_CREATE_CONNECTION_INVALID_INTERVAL_MAX = 0x802F2906,
|
||||
LE_CREATE_CONNECTION_INVALID_LATENCY = 0x802F2907,
|
||||
LE_CREATE_CONNECTION_INVALID_TIMEOUT = 0x802F2908,
|
||||
LE_CREATE_CONNECTION_REG_FULL = 0x802F2909,
|
||||
LE_CREATE_CONNECTION_REG_ERROR = 0x802F290A,
|
||||
LE_CREATE_CONNECTION_CONNECTED = 0x802F290B,
|
||||
LE_CREATE_CONNECTION_FULL = 0x802F290C,
|
||||
LE_CREATE_CONNECTION_BUSY = 0x802F290D,
|
||||
ATT_READ_INVALID_NO = 0x802F2A01,
|
||||
ATT_READ_INVALID_LENGTH = 0x802F2A02,
|
||||
ATT_READ_INVALID_INTERNAL = 0x802F2A03,
|
||||
ATT_WRITE_INVALID_NO = 0x802F2A04,
|
||||
ATT_WRITE_INVALID_LENGTH = 0x802F2A05,
|
||||
ATT_WRITE_INVALID_INTERNAL = 0x802F2A06,
|
||||
ATT_NOT_YET = 0x802F2A07,
|
||||
LE_NOT_SUPPORTED = 0x802F2B01,
|
||||
PAIRING_OOB_TIMEOUT = 0x802F3101,
|
||||
PAIRING_OOB_FULL = 0x802F3102,
|
||||
PAIRING_OOB_CAN_NOT_DISCONNECT = 0x802F3103,
|
||||
PAIRING_OOB_INTERNAL_ERROR = 0x802F3104,
|
||||
NOT_READY = 0x802F3201,
|
||||
GET_JACK_STATUS_NOT_CONNECTED = 0x802F3301,
|
||||
TOO_MANY_CONNECTION = 0x802F3401,
|
||||
TOO_MANY_HID = 0x802F3402,
|
||||
NOT_SUPPORTED_DEVICE = 0x802F3403,
|
||||
JEDI_VOLUME_GAIN_NOT_CONNECTED = 0x802F3501,
|
||||
JEDI_SNIFF_NOT_CONNECTED = 0x802F3601,
|
||||
JEDI_SNIFF_NOT_JEDI = 0x802F3602
|
||||
}
|
||||
|
||||
SceBtRegisteredInfo :: struct {
|
||||
mac: [6]c.uchar,
|
||||
unk0: c.ushort,
|
||||
bt_class: c.uint,
|
||||
unk1: c.uint,
|
||||
unk2: c.uint,
|
||||
vid: c.ushort,
|
||||
pid: c.ushort,
|
||||
unk3: c.uint,
|
||||
unk4: c.uint,
|
||||
name: [128]c.char,
|
||||
unk5: [0x60]c.uchar,
|
||||
}
|
||||
#assert(size_of(SceBtRegisteredInfo) == 0x100)
|
||||
|
||||
SceBtEvent :: struct {
|
||||
using _: struct #raw_union {
|
||||
data: [0x10]c.uchar,
|
||||
using _: struct {
|
||||
id: c.uchar,
|
||||
unk1: c.uchar,
|
||||
unk2: c.ushort,
|
||||
unk3: c.uint,
|
||||
mac0: c.uint,
|
||||
mac1: c.uint,
|
||||
},
|
||||
},
|
||||
}
|
||||
#assert(size_of(SceBtEvent) == 0x10)
|
||||
|
||||
SceBtCallback :: #type ^proc "c" (r0: c.int, r1: c.int, r2: c.int, r3: c.int)
|
||||
|
||||
SceBtHidRequest :: struct #packed {
|
||||
unk00: c.uint32_t,
|
||||
unk04: c.uint32_t,
|
||||
type: c.uint8_t, //!< 0 = read?, 1 = write?, 2 = feature?, 3 = ?
|
||||
unk09: c.uint8_t,
|
||||
unk0A: c.uint8_t,
|
||||
unk0B: c.uint8_t,
|
||||
buffer: rawptr,
|
||||
length: c.uint32_t,
|
||||
next: ^SceBtHidRequest,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user