wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
cdc.h
Go to the documentation of this file.
1#pragma once
2#include <wut.h>
3#include <coreinit/ios.h>
4
12#ifdef __cplusplus
13extern "C" {
14#endif
15
28typedef uint8_t CCRCDCDestination;
29typedef uint32_t CCRCDCWpsStatusType;
30typedef uint8_t CCRCDCWakeState;
31typedef uint8_t CCRCDCUicConfigId;
32
34{
35 int32_t attached;
36 uint32_t chan;
37 WUT_UNKNOWN_BYTES(6);
38};
39WUT_CHECK_OFFSET(CCRCDCRegisterCallbackData, 0x00, attached);
40WUT_CHECK_OFFSET(CCRCDCRegisterCallbackData, 0x04, chan);
41WUT_CHECK_SIZE(CCRCDCRegisterCallbackData, 0x0E);
42
44
51
58
75
83
102
111
159
170
181
182struct WUT_PACKED CCRCDCMacAddress
183{
186 uint8_t address[6];
187};
188WUT_CHECK_OFFSET(CCRCDCMacAddress, 0x0, device);
189WUT_CHECK_OFFSET(CCRCDCMacAddress, 0x1, address);
190WUT_CHECK_SIZE(CCRCDCMacAddress, 0x7);
191
192struct WUT_PACKED CCRCDCWpsArgs
193{
195 uint8_t hasArgs;
197 char pin[8];
199 uint16_t timeout;
200 // \c CCR_CDC_DESTINATION_DRC0 or \c CCR_CDC_DESTINATION_DRC1 depending on where the device should be paired to
202};
203WUT_CHECK_OFFSET(CCRCDCWpsArgs, 0x0, hasArgs);
204WUT_CHECK_OFFSET(CCRCDCWpsArgs, 0x1, pin);
205WUT_CHECK_OFFSET(CCRCDCWpsArgs, 0x9, timeout);
206WUT_CHECK_OFFSET(CCRCDCWpsArgs, 0xb, pairDestination);
207WUT_CHECK_SIZE(CCRCDCWpsArgs, 0xc);
208
209struct WUT_PACKED CCRCDCSysMessage
210{
211 uint16_t message;
213 uint16_t timeout;
214};
215WUT_CHECK_OFFSET(CCRCDCSysMessage, 0x0, message);
216WUT_CHECK_OFFSET(CCRCDCSysMessage, 0x2, timeout);
217WUT_CHECK_SIZE(CCRCDCSysMessage, 0x4);
218
229WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x00, boardVersion);
230WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x04, chipVersion);
231WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x08, lvcVersion);
232WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x0C, umiVersion);
233WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x10, unknown);
234WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x14, sdCis);
235WUT_CHECK_OFFSET(CCRCDCSysInfo, 0x18, splId);
236WUT_CHECK_SIZE(CCRCDCSysInfo, 0x1C);
237
238struct WUT_PACKED CCRCDCEepromData
239{
240 uint32_t version;
241 uint8_t data[0x300];
242};
243WUT_CHECK_OFFSET(CCRCDCEepromData, 0x0, version);
244WUT_CHECK_OFFSET(CCRCDCEepromData, 0x4, data);
245WUT_CHECK_SIZE(CCRCDCEepromData, 0x304);
246
247struct WUT_PACKED CCRCDCWowlWakeDrcArg
248{
249 WUT_PADDING_BYTES(0x6);
252};
253WUT_CHECK_OFFSET(CCRCDCWowlWakeDrcArg, 0x6, state);
254WUT_CHECK_SIZE(CCRCDCWowlWakeDrcArg, 0x7);
255
257{
261 uint8_t size;
263 uint8_t data[0x100];
264};
265WUT_CHECK_SIZE(CCRCDCUicConfig, 0x102);
266WUT_CHECK_OFFSET(CCRCDCUicConfig, 0x00, configId);
267WUT_CHECK_OFFSET(CCRCDCUicConfig, 0x01, size);
268WUT_CHECK_OFFSET(CCRCDCUicConfig, 0x02, data);
269
271{
272 uint32_t imageSize;
273 uint32_t blockSize;
274 uint32_t imageVersion;
278};
279WUT_CHECK_OFFSET(CCRCDCFWInfo, 0x00, imageSize);
280WUT_CHECK_OFFSET(CCRCDCFWInfo, 0x04, blockSize);
281WUT_CHECK_OFFSET(CCRCDCFWInfo, 0x08, imageVersion);
282WUT_CHECK_OFFSET(CCRCDCFWInfo, 0x0C, sequencePerSession);
283WUT_CHECK_OFFSET(CCRCDCFWInfo, 0x10, updateProgress);
284WUT_CHECK_SIZE(CCRCDCFWInfo, 0x14);
285
287{
290};
291WUT_CHECK_OFFSET(CCRCDCSoftwareVersion, 0x0, runningVersion);
292WUT_CHECK_OFFSET(CCRCDCSoftwareVersion, 0x4, activeVersion);
293WUT_CHECK_SIZE(CCRCDCSoftwareVersion, 0x8);
294
297 uint8_t state;
298};
299WUT_CHECK_OFFSET(CCRCDCDrcState, 0x0, state);
300WUT_CHECK_SIZE(CCRCDCDrcState, 0x1);
301
304 uint8_t state;
305};
306WUT_CHECK_OFFSET(CCRCDCDrhState, 0x0, state);
307WUT_CHECK_SIZE(CCRCDCDrhState, 0x1);
308
319int32_t
320CCRCDCCommand(uint8_t unk,
321 uint8_t fragment,
323 uint8_t flags0,
324 uint8_t flags1,
325 uint8_t service,
326 uint8_t method,
327 void *payload,
328 uint32_t payloadSize,
329 void *reply,
330 uint32_t replySize);
331
342int32_t
344
345int32_t
347
361int32_t
363 CCRCDCMacAddress *mac);
364
374int32_t
375CCRCDCGetMultiDrc(uint8_t *numDrcs);
376
386int32_t
387CCRCDCSetMultiDrc(uint8_t numDrcs);
388
402int32_t
404 CCRCDCDrcState *state);
405
419int32_t
421 CCRCDCDrcState *state);
422
429int32_t
437int32_t
439
446int32_t
448
458int32_t
460
471int32_t
473
480int32_t
482
496int32_t
498 CCRCDCSysInfo *info);
499
513int32_t
515 CCRCDCSysMessage *message);
516
530int32_t
532 CCRCDCEepromData *eeprom);
533
547int32_t
549 CCRCDCEepromData *eeprom,
550 IOSAsyncCallbackFn callback,
551 void *arg);
552
564int32_t
566
574int32_t
576
587int32_t
589
602int32_t
604 CCRCDCUicConfig *config);
605
618uint16_t
620 uint32_t dataSize);
621
634int32_t
636 CCRCDCFWInfo *outInfo);
637
650int32_t
652 CCRCDCSoftwareVersion *outVersion);
653
673int32_t
675 const char *path,
676 IOSAsyncCallbackFn callback,
677 void *userContext);
678
688int32_t
690
700int32_t
702
725int32_t
727 const char *path,
728 uint32_t *outVersion,
729 IOSAsyncCallbackFn callback,
730 void *userContext);
731
749int32_t
751 uint32_t version,
752 uint32_t *outActivationResult);
753
769int32_t
771 CCRCDCExt ext,
772 uint32_t *outId);
773
803int32_t
805 const char *path,
806 uint32_t imageSize,
807 uint32_t extId,
808 CCRCDCExt ext,
809 IOSAsyncCallbackFn callback,
810 void *userContext);
811
812int32_t
814 void *context);
815
816int32_t
818 void *context);
819
820int32_t
822 void *context);
823
824int32_t
826 void *context);
827
828int32_t
830 void *context);
831
832int32_t
834 void *context);
835
836int32_t
838 void *context);
839
840#ifdef __cplusplus
841}
842#endif
843
void(* IOSAsyncCallbackFn)(IOSError, void *)
Definition ios.h:87
uint8_t state
Must be one of CCRCDCDrcStateEnum.
Definition cdc.h:297
uint32_t splId
Definition cdc.h:227
uint32_t sequencePerSession
Definition cdc.h:275
uint32_t sdCis
Definition cdc.h:226
CCRCDCChipVersion chipVersion
Definition cdc.h:222
uint8_t data[0x100]
Configuration data.
Definition cdc.h:263
uint16_t message
Definition cdc.h:211
uint16_t timeout
Timeout in seconds.
Definition cdc.h:199
uint8_t hasArgs
Should be set to 1.
Definition cdc.h:195
uint32_t lvcVersion
Definition cdc.h:223
uint32_t imageSize
Definition cdc.h:272
uint32_t blockSize
Definition cdc.h:273
CCRCDCDestination device
The device this mac address belongs to.
Definition cdc.h:185
CCRCDCBoardVersion boardVersion
Definition cdc.h:221
uint32_t imageVersion
Definition cdc.h:274
uint32_t version
Definition cdc.h:240
CCRCDCUicConfigId configId
Configuration ID (see CCRCDCUicConfigIdEnum)
Definition cdc.h:259
uint32_t unknown
Definition cdc.h:225
uint32_t activeVersion
Definition cdc.h:289
CCRCDCWakeState state
Must be one of CCRCDCWakeStateEnum.
Definition cdc.h:251
uint8_t size
Size of the configuration data (must match the size described in CCRCDCUicConfigIdEnum)
Definition cdc.h:261
uint32_t runningVersion
Definition cdc.h:288
uint32_t updateProgress
Progress from 0-100.
Definition cdc.h:277
CCRCDCDestination pairDestination
Definition cdc.h:201
uint32_t umiVersion
Definition cdc.h:224
int32_t CCRCDCDevicePing(CCRCDCDestination dest)
Send a ping to the specified destination.
CCRCDCDestinationEnum
Definition cdc.h:46
int32_t CCRCDCPerClearUicConfig(CCRCDCDestination dest)
This doesn't seem to be implemented on the latest DRC/DRH firmware, and always returns an error.
int32_t CCRCDCSoftwareGetExtId(CCRCDCDestination dest, CCRCDCExt ext, uint32_t *outId)
Get an ext id from the specified destination.
int32_t CCRCDCWpsStatus(CCRCDCWpsStatusType *status)
Get the WPS status.
int32_t CCRCDCRegisterAOAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCSetStationId(CCRCDCMacAddress *id)
int32_t CCRCDCRegisterUACAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCSoftwareAbort(CCRCDCDestination dest)
Abort a software update.
int32_t CCRCDCSoftwareLangActivate(CCRCDCDestination dest, uint32_t version, uint32_t *outActivationResult)
Activate a performed language update.
int32_t CCRCDCGetMacAddress(CCRCDCDestination dest, CCRCDCMacAddress *mac)
Gets the mac address of the specified destination.
uint8_t CCRCDCDestination
Definition cdc.h:28
void(* CCRCDCRegisterCallbackFn)(CCRCDCRegisterCallbackData *, void *)
Definition cdc.h:43
int32_t CCRCDCSysGetDrhState(CCRCDCDrhState *state)
Gets the Drh State.
int32_t CCRCDCSysGetDrcState(CCRCDCDestination dest, CCRCDCDrcState *state)
Gets the state of the specified DRC.
CCRCDCWakeStateEnum
Definition cdc.h:77
int32_t CCRCDCRegisterSYSAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCWowlWakeDrc(CCRCDCWowlWakeDrcArg *arg)
Wake on Wireless LAN (power on) the DRC(s).
CCRCDCChipVersion
Definition cdc.h:104
int32_t CCRCDCSoftwareUpdate(CCRCDCDestination dest, const char *path, IOSAsyncCallbackFn callback, void *userContext)
Perform a software update.
int32_t CCRCDCSysGetInfo(CCRCDCDestination dest, CCRCDCSysInfo *info)
Get system information.
int32_t CCRCDCRegisterUVCAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCPerGetUicEepromEx(CCRCDCDestination dest, CCRCDCEepromData *eeprom, IOSAsyncCallbackFn callback, void *arg)
Read the Eeprom of the specified device (async version).
int32_t CCRCDCCommand(uint8_t unk, uint8_t fragment, CCRCDCDestination dest, uint8_t flags0, uint8_t flags1, uint8_t service, uint8_t method, void *payload, uint32_t payloadSize, void *reply, uint32_t replySize)
Send a command directly to the specified destination.
CCRCDCBoardVersion
Definition cdc.h:85
int32_t CCRCDCGetFWInfo(CCRCDCDestination dest, CCRCDCFWInfo *outInfo)
Get the firmware info during a pending update.
int32_t CCRCDCSoftwareExtUpdate(CCRCDCDestination dest, const char *path, uint32_t imageSize, uint32_t extId, CCRCDCExt ext, IOSAsyncCallbackFn callback, void *userContext)
Perform an ext update.
CCRCDCDrcStateEnum
Definition cdc.h:60
int32_t CCRCDCGetMultiDrc(uint8_t *numDrcs)
Gets the amount of DRCs which can be connected to the system.
int32_t CCRCDCSetMultiDrc(uint8_t numDrcs)
Sets the amount of DRCs which can be connected to the system.
CCRCDCWpsStatusEnum
Definition cdc.h:53
uint8_t CCRCDCWakeState
Definition cdc.h:30
int32_t CCRCDCSoftwareLangUpdate(CCRCDCDestination dest, const char *path, uint32_t *outVersion, IOSAsyncCallbackFn callback, void *userContext)
Perform a language update.
int32_t CCRCDCWpsStart(void)
Start WPS (WiFi Protected Setup) on the DRH.
uint32_t CCRCDCWpsStatusType
Definition cdc.h:29
int32_t CCRCDCSoftwareGetVersion(CCRCDCDestination dest, CCRCDCSoftwareVersion *outVersion)
Get software version information.
CCRCDCDrhStateEnum
Definition cdc.h:172
int32_t CCRCDCPerGetUicEeprom(CCRCDCDestination dest, CCRCDCEepromData *eeprom)
Read the Eeprom of the specified device.
uint8_t CCRCDCUicConfigId
Definition cdc.h:31
int32_t CCRCDCSoftwareActivate(CCRCDCDestination dest)
Activate a performed software update.
int32_t CCRCDCWpsStop(void)
Stop WPS.
int32_t CCRCDCRegisterHIDAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCSysDrcDisplayMessage(CCRCDCDestination dest, CCRCDCSysMessage *message)
Display a message on the specified DRC.
int32_t CCRCDCSysSetDrcState(CCRCDCDestination dest, CCRCDCDrcState *state)
Sets the state of the specified DRC.
CCRCDCExt
Definition cdc.h:161
int32_t CCRCDCRegisterCFGAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
uint16_t CCRCDCCalcCRC16(void *data, uint32_t dataSize)
Calculate a CRC16 used for DRC UIC EEPROM values.
int32_t CCRCDCRegisterVOAttachCallback(CCRCDCRegisterCallbackFn callback, void *context)
int32_t CCRCDCSysSetDrhState(CCRCDCDrhState *state)
Sets the Drh State.
int32_t CCRCDCPerSetUicConfig(CCRCDCDestination dest, CCRCDCUicConfig *config)
Set a configuration value in the DRC UIC EEPROM.
int32_t CCRCDCWpsStartEx(CCRCDCWpsArgs *args)
Start WPS (WiFi Protected Setup) on the DRH.
int32_t CCRCDCSysConsoleShutdownInd(CCRCDCDestination dest)
Notify the specified device that the console is about to shut down, and the device should shut down a...
CCRCDCUicConfigIdEnum
Definition cdc.h:113
@ CCR_CDC_DESTINATION_DRC0
Definition cdc.h:48
@ CCR_CDC_DESTINATION_DRH
Definition cdc.h:47
@ CCR_CDC_DESTINATION_DRC1
Definition cdc.h:49
@ CCR_CDC_WAKE_STATE_BACKGROUND
Connect in CCR_CDC_DRC_STATE_BACKGROUND state.
Definition cdc.h:81
@ CCR_CDC_WAKE_STATE_ACTIVE
Power on normally.
Definition cdc.h:79
@ CCR_CDC_CHIP_VERSION_TS
Definition cdc.h:105
@ CCR_CDC_CHIP_VERSION_ES2
Definition cdc.h:107
@ CCR_CDC_CHIP_VERSION_MS01
Definition cdc.h:109
@ CCR_CDC_CHIP_VERSION_ES3
Definition cdc.h:108
@ CCR_CDC_CHIP_VERSION_ES1
Definition cdc.h:106
@ CCR_CDC_BOARD_VERSION_DKTVMP
Definition cdc.h:100
@ CCR_CDC_BOARD_VERSION_DK5
Definition cdc.h:93
@ CCR_CDC_BOARD_VERSION_DK1
Definition cdc.h:86
@ CCR_CDC_BOARD_VERSION_DP1
Definition cdc.h:88
@ CCR_CDC_BOARD_VERSION_DK1_EP_DK2
Definition cdc.h:87
@ CCR_CDC_BOARD_VERSION_MASS
Definition cdc.h:97
@ CCR_CDC_BOARD_VERSION_DP5
Definition cdc.h:96
@ CCR_CDC_BOARD_VERSION_DK4
Definition cdc.h:91
@ CCR_CDC_BOARD_VERSION_DKMP2
Definition cdc.h:98
@ CCR_CDC_BOARD_VERSION_DKMP
Definition cdc.h:95
@ CCR_CDC_BOARD_VERSION_DP2
Definition cdc.h:89
@ CCR_CDC_BOARD_VERSION_DP4
Definition cdc.h:94
@ CCR_CDC_BOARD_VERSION_DK3
Definition cdc.h:90
@ CCR_CDC_BOARD_VERSION_PREDP3_DP3
Definition cdc.h:92
@ CCR_CDC_BOARD_VERSION_DRC_I
Definition cdc.h:99
@ CCR_CDC_DRC_STATE_WIIACTIVE
Definition cdc.h:71
@ CCR_CDC_DRC_STATE_BACKGROUND
Definition cdc.h:65
@ CCR_CDC_DRC_STATE_PAIRING
Definition cdc.h:62
@ CCR_CDC_DRC_STATE_SLEEP
Definition cdc.h:66
@ CCR_CDC_DRC_STATE_STANDBY
Definition cdc.h:67
@ CCR_CDC_DRC_STATE_SUBACTIVE
Definition cdc.h:73
@ CCR_CDC_DRC_STATE_FWUPDATE
Definition cdc.h:63
@ CCR_CDC_DRC_STATE_DKSETTING
Definition cdc.h:69
@ CCR_CDC_DRC_STATE_LOW_BATTERY
Definition cdc.h:72
@ CCR_CDC_DRC_STATE_UNKNOWN9
Definition cdc.h:70
@ CCR_CDC_DRC_STATE_STANDALONE
Definition cdc.h:64
@ CCR_CDC_DRC_STATE_ACTIVE
Definition cdc.h:61
@ CCR_CDC_DRC_STATE_WOWLSETTING
Definition cdc.h:68
@ CCR_CDC_WPS_STATUS_SEARCHING
Definition cdc.h:55
@ CCR_CDC_WPS_STATUS_PAIRED
Definition cdc.h:54
@ CCR_CDC_WPS_STATUS_PAIRING
Definition cdc.h:56
@ CCR_CDC_SYS_DRH_STATE_ECO
Definition cdc.h:177
@ CCR_CDC_SYS_DRH_STATE_WII
Definition cdc.h:174
@ CCR_CDC_SYS_DRH_STATE_UNK2
Definition cdc.h:175
@ CCR_CDC_SYS_DRH_STATE_CAFE
Definition cdc.h:179
@ CCR_CDC_SYS_DRH_STATE_UNK7F
Definition cdc.h:178
@ CCR_CDC_SYS_DRH_STATE_NORADIO
Definition cdc.h:173
@ CCR_CDC_SYS_DRH_STATE_NODRC
Definition cdc.h:176
@ CCR_CDC_EXT_LANGUAGE
Language data.
Definition cdc.h:163
@ CCR_CDC_EXT_UNK4
Definition cdc.h:168
@ CCR_CDC_EXT_UNK3
Definition cdc.h:167
@ CCR_CDC_EXT_UNK2
Definition cdc.h:166
@ CCR_CDC_EXT_RC_DATABASE
Remote Control Database.
Definition cdc.h:165
@ CCR_CDC_UIC_CONFIG_ID_UNK18
EEPROM offset 0x295, Size 0x3.
Definition cdc.h:145
@ CCR_CDC_UIC_CONFIG_ID_EXT_ID_2
EEPROM offset 0x262, Size 0x6.
Definition cdc.h:131
@ CCR_CDC_UIC_CONFIG_ID_RC_DATABASE_EXT_ID
EEPROM offset 0x25C, Size 0x6.
Definition cdc.h:143
@ CCR_CDC_UIC_CONFIG_ID_TP_CALIBRATION_VALUE
EEPROM offset 0x244, Size 0x12.
Definition cdc.h:121
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_NOTIFICATION_READ_COUNT
EEPROM offset 0x2A7, Size 0x4.
Definition cdc.h:157
@ CCR_CDC_UIC_CONFIG_ID_LANGUAGE_EXT_ID
EEPROM offset 0x256, Size 0x6.
Definition cdc.h:127
@ CCR_CDC_UIC_CONFIG_ID_INIT_BOOT_FLAG
EEPROM offset 0x274, Size 0x3.
Definition cdc.h:137
@ CCR_CDC_UIC_CONFIG_ID_TV_CONTROL_ID
EEPROM offset 0x289, Size 0xC.
Definition cdc.h:129
@ CCR_CDC_UIC_CONFIG_ID_LCD_MODE
EEPROM offset 0x286, Size 0x3.
Definition cdc.h:141
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_NOTIFICATION_SOUND_MODE
EEPROM offset 0x2A1, Size 0x3.
Definition cdc.h:153
@ CCR_CDC_UIC_CONFIG_ID_EXT_ID_4
EEPROM offset 0x26E, Size 0x6.
Definition cdc.h:135
@ CCR_CDC_UIC_CONFIG_ID_UNK7
EEPROM offset 0x203, Size 0x3.
Definition cdc.h:123
@ CCR_CDC_UIC_CONFIG_ID_UNK8
EEPROM offset 0x206, Size 0x3.
Definition cdc.h:125
@ CCR_CDC_UIC_CONFIG_ID_EXT_ID_3
EEPROM offset 0x268, Size 0x6.
Definition cdc.h:133
@ CCR_CDC_UIC_CONFIG_ID_LANGUAGE_BANK
EEPROM offset 0x200, Size 0x3.
Definition cdc.h:115
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_ENABLE_FLAG
EEPROM offset 0x298, Size 0x3.
Definition cdc.h:147
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_NOTIFICATION_INFO
EEPROM offset 0x2A4, Size 0x3.
Definition cdc.h:155
@ CCR_CDC_UIC_CONFIG_ID_MIC_CONFIG
EEPROM offset 0x20D, Size 0x6.
Definition cdc.h:117
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_CAFFEINE_SLOT
EEPROM offset 0x29E, Size 0x3.
Definition cdc.h:151
@ CCR_CDC_UIC_CONFIG_ID_CAFFEINE_INITIAL_BOOT_FLAG
EEPROM offset 0x29B, Size 0x3.
Definition cdc.h:149
@ CCR_CDC_UIC_CONFIG_ID_ACC_CALIBRATION_VALUE
EEPROM offset 0x213, Size 0xE.
Definition cdc.h:119
@ CCR_CDC_UIC_CONFIG_ID_UNK15
EEPROM offset 0x277, Size 0xF.
Definition cdc.h:139