CECD Services

Revision as of 03:55, 9 September 2016 by Wwylele (talk | contribs) (→‎CECD Service "cecd:u": constructing)


Streetpass stuff.

CECD Service "cecd:u"

Command Header Description
0x000100C2 OpenRawFile (cmdbuff[1] title_id, cmdbuff[2] CecDataPathType, cmdbuff[3] fileflag?, cmdbuff[4~5] ProcessID_descriptor)
0x00020042 ReadRawFile (cmdbuff[1] buffer_size, cmdbuff[2] BufferMappingDescriptor(W), cmdbuff[3] buffer_addr)
0x00030104 ReadMessage (cmdbuff[1] title_id, cmdbuff[2](bool?) is_out_box?, cmdbuff[3] message_id_size=16, cmdbuff[4] buffer_size, cmdbuff[5] BufferMappingDescriptor(R)=16*8+10, cmdbuff[6] CecMessageId*, cmdbuff[7] BufferMappingDescriptor(W), cmdbuff[8] buffer_addr)
0x00040106 ReadMessageWithHMAC (cmdbuff[1] title_id, cmdbuff[2](bool?) is_out_box?, cmdbuff[3] message_id_size=16, cmdbuff[4] buffer_size, cmdbuff[5] BufferMappingDescriptor(R)=16*8+10, cmdbuff[6] CecMessageId*, cmdbuff[7] BufferMappingDescriptor(R), cmdbuff[8] HMAC_addr, cmdbuff[9] BufferMappingDescriptor(W), cmdbuff[10] buffer_addr)
0x00050042 WriteRawFile (cmdbuff[1] buffer_size, cmdbuff[2] BufferMappingDescriptor(R), cmdbuff[3] buffer_addr)
0x00060104 WriteMessage (cmdbuff[1] title_id, cmdbuff[2](bool?) is_out_box?, cmdbuff[3] message_id_size=16, cmdbuff[4] buffer_size, cmdbuff[5] BufferMappingDescriptor(R), cmdbuff[6] buffer_addr, cmdbuff[7] BufferMappingDescriptor(RW)=16*8+10, cmdbuff[8] CecMessageId*)
0x00070106 WriteMessageWithHMAC (cmdbuff[1] title_id, cmdbuff[2](bool?) is_out_box?, cmdbuff[3] message_id_size=16, cmdbuff[4] buffer_size, cmdbuff[5] BufferMappingDescriptor(R), cmdbuff[6] buffer_addr, cmdbuff[7] BufferMappingDescriptor(R), cmdbuff[8] HMAC_addr, cmdbuff[9] BufferMappingDescriptor(RW)=16*8+10, cmdbuff[10] CecMessageId*)
0x00080102 DeleteMailbox (cmdbuff[1] title_id, cmdbuff[2] CecDataPathType, cmdbuff[3]?, cmdbuff[4] message_id_size?, cmdbuff[5] BufferMappingDescriptor(R), cmdbuff[6] CecMessageId*?)
0x000900C2 ? (16*length+10 of CecMessageId buffer in cmdbuff[4] (always 16*8+10), CecMessageId* in cmdbuf[5])
0x000A00C4 GetSystemInfo (cmdbuff[1] buffer_size, cmdbuff[2] info_type, cmdbuff[3]param_size?, cmdbuff[4] BufferMappingDescriptor(R), cmdbuff[5] param_addr?, cmdbuff[6] BufferMappingDescriptor(W), cmdbuff[7] buffer_addr)
0x000B0040 RunCommand
0x000C0040 RunCommandAlt (seems to be the same as RunCommand besides some extra checks)
0x000D0082 ?
0x000E0000 GetCecStateAbbreviated (returns CecStateAbbreviated in cmdbuf[2])
0x000F0000 GetCecInfoEventHandle (returns event handle in cmdbuf[3])
0x00100000 GetChangeStateEventHandle (returns event handle in cmdbuf[3])
0x00110104 OpenAndWrite (cmdbuf[3]: CecMessageType type, cmdbuf[5]: 0x20, cmdbuf[6]: u8* data_buf, cmdbuf[7]: u32 16*data_size+10)
0x00120104 OpenAndRead
0x001E0082 ?
0x001F.... ?
0x0020.... ?
0x0021.... ?

CecDataPathType

Name Value Notes
CEC_PATH_MBOX_LIST 1 data:/CEC/MBoxList____
CEC_PATH_MBOX_INFO 2 data:/CEC/<id>/MBoxInfo____
CEC_PATH_INBOX_INFO 3 data:/CEC/<id>/InBox__/BoxInfo_____
CEC_PATH_OUTBOX_INFO 4 data:/CEC/<id>/OutBox__/BoxInfo_____
CEC_PATH_OUTBOX_INDEX 5 data:/CEC/<id>/OutBox__/OBIndex_____
CEC_PATH_INBOX_MSG 6 data:/CEC/<id>/InBox__/_<message_id>
CEC_PATH_OUTBOX_MSG 7 data:/CEC/<id>/OutBox__/_<message_id>
CEC_PATH_ROOT_DIR 10 data:/CEC
CEC_PATH_MBOX_DIR 11 data:/CEC/<id>
CEC_PATH_INBOX_DIR 12 data:/CEC/<id>/InBox__
CEC_PATH_OUTBOX_DIR 13 data:/CEC/<id>/OutBox__
101 thru 199 (inclusive) data:/CEC/<id>/MBoxData.0<i-100>

CecCommand

Name Value Notes
CEC_COMMAND_NONE 0
CEC_COMMAND_START 1
CEC_COMMAND_RESET_START 2
CEC_COMMAND_READYSCAN 3
CEC_COMMAND_READYSCANWAIT 4
CEC_COMMAND_STARTSCAN 5
CEC_COMMAND_RESCAN 6
CEC_COMMAND_NDM_RESUME 7
CEC_COMMAND_NDM_SUSPEND 8
CEC_COMMAND_NDM_SUSPEND_IMMEDIATE 9
CEC_COMMAND_STOPWAIT 0xA
CEC_COMMAND_STOP 0xB
CEC_COMMAND_STOP_FORCE 0xC
CEC_COMMAND_STOP_FORCE_WAIT 0xD
CEC_COMMAND_RESET_FILTER 0xE
CEC_COMMAND_DAEMON_STOP 0xF
CEC_COMMAND_DAEMON_START 0x10
CEC_COMMAND_EXIT 0x11
CEC_COMMAND_OVER_BOSS 0x12
CEC_COMMAND_OVER_BOSS_FORCE 0x13
CEC_COMMAND_OVER_BOSS_FORCE_WAIT 0x14
CEC_COMMAND_END 0x15

CecStateAbbreviated

Name Value Notes
CEC_STATE_ABBREV_IDLE 1 Corresponds to CEC_STATE_IDLE
CEC_STATE_ABBREV_INACTIVE 2 Corresponds to CEC_STATEs *FINISH*, *POST, and OVER_BOSS
CEC_STATE_ABBREV_SCANNING 3 Corresponds to CEC_STATE_SCANNING
CEC_STATE_ABBREV_WLREADY? 4 Corresponds to CEC_STATE_WIRELESS_READY when some unknown bool is true
CEC_STATE_ABBREV_OTHER 5 Corresponds to CEC_STATEs besides *FINISH*, *POST, and OVER_BOSS and those listed here

CecMessageId

Type Field
char[8] data

CecMessageType

Name Value Notes
? 0x2 Corresponds to some 0x60-byte data
CECMESSAGE_BOX_ICON 0x65 Corresponds to the StreetPass "box" icon
CECMESSAGE_BOX_TITLE 0x6E Corresponds to the StreetPass "box" title

CECD Service "cecd:s"

This contains a similar (probably the same) command handler from 0x0001.... to 0x0021.... as them in cecd:u. In addition, it also contains

Command Header Description
0x0401.... ?
0x04020002 ?
0x040A.... ?
0x040B.... ?
0x040C0042 ?
0x040D0082 ?
0x040E.... ?
0x040F.... ?
0x0410.... ?
0x04110042 ?
0x041200C2 ?
0x0413.... ?
0x0414.... ?
0x0415.... ?
0x04160002 ?
0x0417.... ?

CECD Service "cecd:ndm"

Command Header Description
0x0001.... Initialize
0x0002.... Deinitialize
0x0003.... ResumeDaemon
0x0004.... SuspendDaemon(bool immediately)
0x0005.... ?
0x00060042 ?
0x00070042 ?
0x00080042 ?