Difference between revisions of "CECD Services"

From 3dbrew
Jump to navigation Jump to search
(Add more endpoints, result of NetPass research)
(add 0x40E name)
 
(2 intermediate revisions by the same user not shown)
Line 274: Line 274:
 
|-
 
|-
 
| 0x040A....
 
| 0x040A....
| ?
+
| SprCreate
 
|-
 
|-
 
| 0x040B....
 
| 0x040B....
| ?
+
| SprInitialise
 
|-
 
|-
 
| 0x040C0042
 
| 0x040C0042
| GetSendSlotsMetadata?
+
| SprGetSendSlotsMetadata
 
|-
 
|-
 
| 0x040D0082
 
| 0x040D0082
| GetSlot? title_id, write_buffer, buffer_size
+
| SprGetSlot title_id, write_buffer, buffer_size
 
|-
 
|-
 
| 0x040E....
 
| 0x040E....
| ?
+
| SprSetTitleSent title_id, bool success
 
|-
 
|-
 
| 0x040F....
 
| 0x040F....
| ?
+
| SprFinaliseSend
 
|-
 
|-
 
| 0x0410....
 
| 0x0410....
| ?
+
| SprStartRecv
 
|-
 
|-
 
| 0x04110042
 
| 0x04110042
| ?
+
| SprAddSlotsMetadata
 
|-
 
|-
 
| 0x041200C2
 
| 0x041200C2
| AddSlot?
+
| SprAddSlot
 
|-
 
|-
 
| 0x0413....
 
| 0x0413....
| ?
+
| SprFinaliseRecv
 
|-
 
|-
 
| 0x0414....
 
| 0x0414....
| CloseSpr? bool success
+
| SprDone bool success
 
|-
 
|-
 
| 0x04150000
 
| 0x04150000
Line 315: Line 315:
 
| ?
 
| ?
 
|-
 
|-
 +
|}
 +
 +
=== 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"
 +
! 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
 
|}
 
|}
  

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