Difference between revisions of "CECD Services"

From 3dbrew
Jump to navigation Jump to search
m (change names of 2 function)
(add 0x40E name)
 
(30 intermediate revisions by 9 users not shown)
Line 10: Line 10:
 
|-
 
|-
 
| 0x000100C2
 
| 0x000100C2
| ?
+
| Open/[[CECDU:OpenRawFile|OpenRawFile]]
 
|-
 
|-
 
| 0x00020042
 
| 0x00020042
| ?
+
| Read/[[CECDU:ReadRawFile|ReadRawFile]]
 
|-
 
|-
 
| 0x00030104
 
| 0x00030104
| ?
+
| [[CECDU:ReadMessage|ReadMessage]]
 +
|-
 +
| 0x00040106
 +
| [[CECDU:ReadMessageWithHMAC|ReadMessageWithHMAC]]
 +
|-
 +
| 0x00050042
 +
| Write/[[CECDU:WriteRawFile|WriteRawFile]]
 +
|-
 +
| 0x00060104
 +
| [[CECDU:WriteMessage|WriteMessage]]
 
|-
 
|-
 
| 0x00070106
 
| 0x00070106
| ? (16*length+10 of CecMessage buffer in cmdbuff[9] (always 16*8+10), CecMessage* in cmdbuf[10])
+
| [[CECDU:WriteMessageWithHMAC|WriteMessageWithHMAC]]
 
|-
 
|-
 
| 0x00080102
 
| 0x00080102
| ?
+
| [[CECDU:Delete|Delete]]
 
|-
 
|-
 
| 0x000900C2
 
| 0x000900C2
| ? (16*length+10 of CecMessage buffer in cmdbuff[4] (always 16*8+10), CecMessage* in cmdbuf[5])
+
| SetData (16*length+10 of CecMessageId buffer in cmdbuff[4] (always 16*8+10), CecMessageId* in cmdbuf[5])
 
|-
 
|-
 
| 0x000A00C4
 
| 0x000A00C4
| ?
+
| ReadData/[[CECDU:GetSystemInfo|GetSystemInfo]]
 
|-
 
|-
 
| 0x000B0040
 
| 0x000B0040
| ?
+
| [[CECDU:Start|Start]]
 
|-
 
|-
 
| 0x000C0040
 
| 0x000C0040
| ?
+
| [[CECDU:Stop|Stop]]
 
|-
 
|-
 
| 0x000D0082
 
| 0x000D0082
| ?
+
| GetCecInfoBuffer
 
|-
 
|-
 
| 0x000E0000
 
| 0x000E0000
| GetCecStateAbbreviated (returns CecStateAbbreviated in cmdbuf[2])
+
| GetCecdState (returns CecStateAbbreviated in cmdbuf[2])
 
|-
 
|-
 
| 0x000F0000
 
| 0x000F0000
Line 49: Line 58:
 
|-
 
|-
 
| 0x00110104
 
| 0x00110104
| OpenAndWrite (cmdbuf[3]: CecMessageType type, cmdbuf[5]: 0x20, cmdbuf[6]: u8* data_buf, cmdbuf[7]: u32 16*data_size+10)
+
| [[CECDU:OpenAndWrite|OpenAndWrite]]
 
|-
 
|-
 
| 0x00120104
 
| 0x00120104
| [[CECDU:ReadSavedData|OpenAndRead]]
+
| [[CECDU:OpenAndRead|OpenAndRead]]
 +
|-
 +
| 0x001E0082
 +
| [[CECDU:GetEventLog|GetEventLog]]
 +
|-
 +
| 0x001F0000
 +
| [[CECDU:GetEventLogStart|GetEventLogStart]]
 +
|-
 +
| 0x00200000
 +
| [[CECDU:GetEventLogEntryCount|GetEventLogEntryCount]]
 +
|-
 +
| 0x0021....
 +
| ?
 +
|-
 +
|}
 +
 
 +
=== CecDataPathType ===
 +
{| class="wikitable" border="1"
 +
! 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>
 +
|-
 +
| CECMESSAGE_BOX_ICON  || 101
 +
| data:/CEC/<id>/MBoxData.001
 +
|-
 +
| CECMESSAGE_BOX_TITLE  || 110
 +
| data:/CEC/<id>/MBoxData.010
 
|}
 
|}
  
Line 162: Line 232:
 
| Corresponds to CEC_STATE_IDLE
 
| Corresponds to CEC_STATE_IDLE
 
|-
 
|-
| CEC_STATE_ABBREV_NOT_LOCAL?
+
| CEC_STATE_ABBREV_INACTIVE
 
| 2
 
| 2
 
| Corresponds to CEC_STATEs *FINISH*, *POST, and OVER_BOSS
 
| Corresponds to CEC_STATEs *FINISH*, *POST, and OVER_BOSS
Line 179: Line 249:
 
|}
 
|}
  
=== CecMessage ===
+
=== CecMessageId ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
!  Type
 
!  Type
Line 189: Line 259:
 
|}
 
|}
  
=== CecMessageType ===
+
= 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
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0401....
 +
| ?
 +
|-
 +
| 0x04020002
 +
| GetCecInfoEventHandleSys
 +
|-
 +
| 0x040A....
 +
| SprCreate
 +
|-
 +
| 0x040B....
 +
| SprInitialise
 +
|-
 +
| 0x040C0042
 +
| SprGetSendSlotsMetadata
 +
|-
 +
| 0x040D0082
 +
| SprGetSlot title_id, write_buffer, buffer_size
 +
|-
 +
| 0x040E....
 +
| SprSetTitleSent title_id, bool success
 +
|-
 +
| 0x040F....
 +
| SprFinaliseSend
 +
|-
 +
| 0x0410....
 +
| SprStartRecv
 +
|-
 +
| 0x04110042
 +
| SprAddSlotsMetadata
 +
|-
 +
| 0x041200C2
 +
| SprAddSlot
 +
|-
 +
| 0x0413....
 +
| SprFinaliseRecv
 +
|-
 +
| 0x0414....
 +
| SprDone bool success
 +
|-
 +
| 0x04150000
 +
| [[CECDS:GenHashConsoleUnique|GenHashConsoleUnique]]
 +
|-
 +
| 0x04160002
 +
| ?
 +
|-
 +
| 0x0417....
 +
| ?
 +
|-
 +
|}
 +
 
 +
=== CecSprStatus ===
 +
This enum is used internally of the cecd service to keep track of which state of an SPR exchange it is in currently.
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
! Name
 
! Name
Line 195: Line 325:
 
! Notes
 
! Notes
 
|-
 
|-
| ?
+
| CEC_SPR_SEND_RECV_START
| 0x2
+
| 0
| Corresponds to some 0x60-byte data
+
| The internal objects were just created
 +
|-
 +
| CEC_SPR_SEND_RECV_INIT
 +
| 1
 +
| The internal objects for sending and receiving have been initialised
 +
|-
 +
| CEC_SPR_SEND_READY
 +
| 2
 +
| The sysmodule is ready for SPR Send, now it is possible to fetch the SPR data needed
 +
|-
 +
| CEC_SPR_SEND
 +
| 3
 +
| The other program should be sending the SPR request now
 +
|-
 +
| CEC_SPR_RECEIVE_READY
 +
| 4
 +
| The sysmodule is ready to receive SPR data now
 +
|-
 +
| CEC_SPR_RECEIVE
 +
| 5
 +
| The sysmodule is done receiving SPR data
 +
|-
 +
| CEC_SPR_CONNECTION_FINISHED_TCP
 +
| 6
 +
|
 +
|-
 +
| CEC_SPR_CONNECTION_FINISHED
 +
| 7
 +
| ??? Enum usage not found in source
 +
|-
 +
| CEC_SPR_SEND_POST
 +
| 8
 +
| ??? Enum usage not found in source
 
|-
 
|-
| CECMESSAGE_BOX_ICON
+
| CEC_SPR_RECEIVE_POST
| 0x65
+
| 9
| Corresponds to the StreetPass "box" icon
+
| ??? Enum usage not found in source
 
|-
 
|-
| CECMESSAGE_BOX_TITLE
+
| CEC_SPR_FINISHING
| 0x6E
+
| 0x0F
| Corresponds to the StreetPass "box" title
+
| ??? Enum usage not found in source
 
|-
 
|-
 +
| CEC_SPR_FINISHED
 +
| 0x10
 +
| ??? Enum usage not found in source
 
|}
 
|}
  
Line 215: Line 380:
 
!  Description
 
!  Description
 
|-
 
|-
| 0x0001....
+
| 0x00010000
 
| Initialize
 
| Initialize
 
|-
 
|-
| 0x0002....
+
| 0x00020000
 
| Deinitialize
 
| Deinitialize
 
|-
 
|-
| 0x0003....
+
| 0x00030000
 
| ResumeDaemon
 
| ResumeDaemon
 
|-
 
|-
| 0x0004....
+
| 0x00040040
 
| SuspendDaemon(bool immediately)
 
| SuspendDaemon(bool immediately)
 +
|-
 +
| 0x00050000
 +
| QueryStatus
 +
|-
 +
| 0x00060042
 +
| GetNZoneInfo
 +
|-
 +
| 0x00070042
 +
| SetNZoneSSIDList
 +
|-
 +
| 0x00080042
 +
| SetNZoneMacFilter
 
|-
 
|-
 
|}
 
|}

Latest revision as of 16:45, 5 December 2024


Streetpass stuff.

CECD Service "cecd:u"[edit]

Command Header Description
0x000100C2 Open/OpenRawFile
0x00020042 Read/ReadRawFile
0x00030104 ReadMessage
0x00040106 ReadMessageWithHMAC
0x00050042 Write/WriteRawFile
0x00060104 WriteMessage
0x00070106 WriteMessageWithHMAC
0x00080102 Delete
0x000900C2 SetData (16*length+10 of CecMessageId buffer in cmdbuff[4] (always 16*8+10), CecMessageId* in cmdbuf[5])
0x000A00C4 ReadData/GetSystemInfo
0x000B0040 Start
0x000C0040 Stop
0x000D0082 GetCecInfoBuffer
0x000E0000 GetCecdState (returns CecStateAbbreviated in cmdbuf[2])
0x000F0000 GetCecInfoEventHandle (returns event handle in cmdbuf[3])
0x00100000 GetChangeStateEventHandle (returns event handle in cmdbuf[3])
0x00110104 OpenAndWrite
0x00120104 OpenAndRead
0x001E0082 GetEventLog
0x001F0000 GetEventLogStart
0x00200000 GetEventLogEntryCount
0x0021.... ?

CecDataPathType[edit]

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>
CECMESSAGE_BOX_ICON 101 data:/CEC/<id>/MBoxData.001
CECMESSAGE_BOX_TITLE 110 data:/CEC/<id>/MBoxData.010

CecCommand[edit]

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[edit]

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[edit]

Type Field
char[8] data

CECD Service "cecd:s"[edit]

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 GetCecInfoEventHandleSys
0x040A.... SprCreate
0x040B.... SprInitialise
0x040C0042 SprGetSendSlotsMetadata
0x040D0082 SprGetSlot title_id, write_buffer, buffer_size
0x040E.... SprSetTitleSent title_id, bool success
0x040F.... SprFinaliseSend
0x0410.... SprStartRecv
0x04110042 SprAddSlotsMetadata
0x041200C2 SprAddSlot
0x0413.... SprFinaliseRecv
0x0414.... SprDone bool success
0x04150000 GenHashConsoleUnique
0x04160002 ?
0x0417.... ?

CecSprStatus[edit]

This enum is used internally of the cecd service to keep track of which state of an SPR exchange it is in currently.

Name Value Notes
CEC_SPR_SEND_RECV_START 0 The internal objects were just created
CEC_SPR_SEND_RECV_INIT 1 The internal objects for sending and receiving have been initialised
CEC_SPR_SEND_READY 2 The sysmodule is ready for SPR Send, now it is possible to fetch the SPR data needed
CEC_SPR_SEND 3 The other program should be sending the SPR request now
CEC_SPR_RECEIVE_READY 4 The sysmodule is ready to receive SPR data now
CEC_SPR_RECEIVE 5 The sysmodule is done receiving SPR data
CEC_SPR_CONNECTION_FINISHED_TCP 6
CEC_SPR_CONNECTION_FINISHED 7 ??? Enum usage not found in source
CEC_SPR_SEND_POST 8 ??? Enum usage not found in source
CEC_SPR_RECEIVE_POST 9 ??? Enum usage not found in source
CEC_SPR_FINISHING 0x0F ??? Enum usage not found in source
CEC_SPR_FINISHED 0x10 ??? Enum usage not found in source

CECD Service "cecd:ndm"[edit]

Command Header Description
0x00010000 Initialize
0x00020000 Deinitialize
0x00030000 ResumeDaemon
0x00040040 SuspendDaemon(bool immediately)
0x00050000 QueryStatus
0x00060042 GetNZoneInfo
0x00070042 SetNZoneSSIDList
0x00080042 SetNZoneMacFilter