#pragma once enum CELL_KB_ERROR_CODE { CELL_KB_ERROR_FATAL = 0x80121001, CELL_KB_ERROR_INVALID_PARAMETER = 0x80121002, CELL_KB_ERROR_ALREADY_INITIALIZED = 0x80121003, CELL_KB_ERROR_UNINITIALIZED = 0x80121004, CELL_KB_ERROR_RESOURCE_ALLOCATION_FAILED = 0x80121005, CELL_KB_ERROR_READ_FAILED = 0x80121006, CELL_KB_ERROR_NO_DEVICE = 0x80121007, CELL_KB_ERROR_SYS_SETTING_FAILED = 0x80121008, }; static const u32 CELL_KB_MAX_KEYBOARDS = 127; struct CellKbInfo { be_t max_connect; be_t now_connect; be_t info; u8 status[CELL_KB_MAX_KEYBOARDS]; }; static const u32 CELL_KB_MAX_KEYCODES = 62; struct CellKbData { be_t led; be_t mkey; be_t len; be_t keycode[CELL_KB_MAX_KEYCODES]; }; struct CellKbConfig { be_t arrange; be_t read_mode; be_t code_type; }; int cellKbInit(u32 max_connect); int cellKbEnd(); int cellKbClearBuf(u32 port_no); u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode); int cellKbGetInfo(vm::ptr info); int cellKbRead(u32 port_no, vm::ptr data); int cellKbSetCodeType(u32 port_no, u32 type); int cellKbSetLEDStatus(u32 port_no, u8 led); int cellKbSetReadMode(u32 port_no, u32 rmode); int cellKbGetConfiguration(u32 port_no, vm::ptr config);