wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
nfc.h
Go to the documentation of this file.
1#pragma once
2#include <nsysccr/cdc.h>
3
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef uint8_t CCRCDCNfcCommand;
71
98
104WUT_CHECK_SIZE(CCRCDCNfcStartupRequest, 0x01);
105
112WUT_CHECK_SIZE(CCRCDCNfcStartupExRequest, 0x02);
113
115{
116 uint8_t result;
117};
118WUT_CHECK_SIZE(CCRCDCNfcStartupResponse, 0x01);
119
121{
125 uint8_t uid[7];
126 uint8_t uidMask[7];
127 uint8_t unknown;
128};
129WUT_CHECK_SIZE(CCRCDCNfcReadStartRequest, 0x12);
130
132{
133 uint8_t result;
134};
135WUT_CHECK_SIZE(CCRCDCNfcReadStartResponse, 0x01);
136
142WUT_CHECK_SIZE(CCRCDCNfcReadRequest, 0x01);
143
144struct WUT_PACKED CCRCDCNfcReadResponse
145{
146 uint8_t result;
147 uint8_t uid[7];
148 uint8_t readOnly;
149 uint8_t unknown;
150 uint8_t flags;
151 uint16_t readSize;
152 uint16_t lockedSize;
153 uint8_t data[0x241];
154};
155WUT_CHECK_SIZE(CCRCDCNfcReadResponse, 0x250);
156
158{
162 uint8_t uid[7];
163 uint8_t uidMask[7];
164 uint8_t unknown0;
165 uint8_t unknown1;
166 WUT_PADDING_BYTES(2);
167 uint8_t data[0x200];
168};
169WUT_CHECK_SIZE(CCRCDCNfcWriteStartRequest, 0x215);
170
172{
173 uint8_t result;
174};
175WUT_CHECK_SIZE(CCRCDCNfcWriteStartResponse, 0x01);
176
182WUT_CHECK_SIZE(CCRCDCNfcResultCheckRequest, 0x01);
183
185{
186 uint8_t result;
187 uint8_t uid[7];
188};
189WUT_CHECK_SIZE(CCRCDCNfcResultCheckResponse, 0x08);
190
196WUT_CHECK_SIZE(CCRCDCNfcAbortRequest, 0x01);
197
198struct WUT_PACKED CCRCDCNfcAbortResponse
199{
200 uint8_t result;
201};
202WUT_CHECK_SIZE(CCRCDCNfcAbortResponse, 0x01);
203
209WUT_CHECK_SIZE(CCRCDCNfcShutdownRequest, 0x01);
210
212{
213 uint8_t result;
214};
215WUT_CHECK_SIZE(CCRCDCNfcShutdownResponse, 0x01);
216
217struct WUT_PACKED CCRCDCNfcFormatRequest
218{
222 uint8_t uid[7];
223 uint8_t uidMask[7];
224 uint8_t unknown;
225};
226WUT_CHECK_SIZE(CCRCDCNfcFormatRequest, 0x12);
227
228struct WUT_PACKED CCRCDCNfcFormatResponse
229{
230 uint8_t result;
231};
232WUT_CHECK_SIZE(CCRCDCNfcFormatResponse, 0x01);
233
235{
239 uint8_t uid[7];
240 uint8_t uidMask[7];
241 uint8_t unknown;
242 uint8_t readOnly;
243};
244WUT_CHECK_SIZE(CCRCDCNfcSetReadOnlyRequest, 0x13);
245
247{
248 uint8_t result;
249};
250WUT_CHECK_SIZE(CCRCDCNfcSetReadOnlyResponse, 0x01);
251
253{
257 uint8_t uid[7];
258 uint8_t uidMask[7];
259 uint8_t unknown;
260};
261WUT_CHECK_SIZE(CCRCDCNfcIsTagPresentRequest, 0x12);
262
264{
265 uint8_t result;
266};
267WUT_CHECK_SIZE(CCRCDCNfcIsTagPresentResponse, 0x01);
268
270{
276 uint16_t commandSize;
277 uint16_t responseSize;
278 uint8_t commandData[0x200];
279};
280WUT_CHECK_SIZE(CCRCDCNfcPassThroughSendRequest, 0x20C);
281
283{
289 uint16_t commandSize;
290 uint16_t responseSize;
291 uint8_t commandData[0x200];
292 uint8_t disableCrc;
293};
294WUT_CHECK_SIZE(CCRCDCNfcPassThroughSendExRequest, 0x20D);
295
297{
303 uint16_t commandSize;
304 uint16_t responseSize;
305 uint8_t commandData[0x200];
306 uint8_t disableCrc;
308};
309WUT_CHECK_SIZE(CCRCDCNfcPassThroughEx2Request, 0x20E);
310
312{
313 uint8_t result;
314};
315WUT_CHECK_SIZE(CCRCDCNfcPassThroughSendReponse, 0x01);
316
322WUT_CHECK_SIZE(CCRCDCNfcPassThroughReceiveRequest, 0x01);
323
325{
326 uint8_t result;
327 uint16_t responseSize;
328 uint8_t data[0x200];
329};
330WUT_CHECK_SIZE(CCRCDCNfcPassThroughReceiveReponse, 0x203);
331
332struct WUT_PACKED CCRCDCNfcSetModeRequest
333{
336 uint8_t mode;
337};
338WUT_CHECK_SIZE(CCRCDCNfcSetModeRequest, 0x02);
339
341{
342 uint8_t result;
343};
344WUT_CHECK_SIZE(CCRCDCNfcSetModeResponse, 0x01);
345
352WUT_CHECK_SIZE(CCRCDCNfcDetectStartRequest, 0x03);
353
355{
356 uint8_t result;
357};
358WUT_CHECK_SIZE(CCRCDCNfcDetectStartResponse, 0x01);
359
365WUT_CHECK_SIZE(CCRCDCNfcDetectRequest, 0x01);
366
367struct WUT_PACKED CCRCDCNfcDetectResponse
368{
369 uint8_t result;
370 uint8_t uid[7];
371 uint8_t readOnly;
373 uint8_t flags;
374};
375WUT_CHECK_SIZE(CCRCDCNfcDetectResponse, 0x0B);
376
383WUT_CHECK_SIZE(CCRCDCNfcDetectStartMultiRequest, 0x03);
384
386{
387 uint8_t result;
388};
389WUT_CHECK_SIZE(CCRCDCNfcDetectStartMultiResponse, 0x01);
390
396WUT_CHECK_SIZE(CCRCDCNfcDetectMultiRequest, 0x01);
397
399{
400 uint8_t rfDiscId;
401 uint8_t protocol;
402 uint8_t tagType;
403 uint8_t uidSize;
404 uint8_t uid[10];
405};
406WUT_CHECK_SIZE(CCRCDCNfcDetectMultiTagInfo, 0x0E);
407
409{
410 uint8_t result;
411 uint8_t numTags;
413 WUT_PADDING_BYTES(0x1C);
414};
415WUT_CHECK_SIZE(CCRCDCNfcDetectMultiResponse, 0x48);
416
418{
419 uint32_t timeout;
420 uint16_t commandSize;
421 uint16_t responseSize;
422 uint8_t commandData[0x200];
423};
424WUT_CHECK_SIZE(CCRCDCNfcPassThroughSend2RequestData, 0x208);
425
433WUT_CHECK_SIZE(CCRCDCNfcPassThroughSend2Request, 0x411);
434
436{
437 uint8_t result;
438};
439WUT_CHECK_SIZE(CCRCDCNfcPassThroughSend2Response, 0x01);
440
446WUT_CHECK_SIZE(CCRCDCNfcPassThroughReceive2Request, 0x01);
447
449{
450 uint8_t timedOut;
451 uint16_t responseSize;
452 uint8_t responseData[0x200];
453};
454WUT_CHECK_SIZE(CCRCDCNfcPassThroughReceive2ResponseData, 0x203);
455
462WUT_CHECK_SIZE(CCRCDCNfcPassThroughReceive2Response, 0x407);
463
469WUT_CHECK_SIZE(CCRCDCNfcAntennaCheckRequest, 0x01);
470
472{
473 uint8_t result;
474};
475WUT_CHECK_SIZE(CCRCDCNfcAntennaCheckResponse, 0x01);
476
477struct WUT_PACKED CCRCDCNfcReadT2TRange
478{
479 uint8_t start;
480 uint8_t end;
481};
482WUT_CHECK_SIZE(CCRCDCNfcReadT2TRange, 0x02);
483
485{
489 uint8_t uid[7];
490 uint8_t uidMask[7];
491 uint8_t expectedVersion[8];
493 uint8_t numRanges;
495 uint8_t pwdAuth;
496 WUT_PADDING_BYTES(0x19);
497};
498WUT_CHECK_SIZE(CCRCDCNfcReadT2TStartRequest, 0x40);
499
501{
502 uint8_t result;
503};
504WUT_CHECK_SIZE(CCRCDCNfcReadT2TStartResponse, 0x01);
505
511WUT_CHECK_SIZE(CCRCDCNfcReadT2TRequest, 0x01);
512
514{
515 uint8_t result;
516 uint8_t rfDiscId;
517 uint8_t protocol;
519 uint8_t uidSize;
520 uint8_t uid[10];
521 uint8_t version[8];
522 WUT_PADDING_BYTES(0x10);
523 uint8_t data[0x3A9];
524 uint8_t signature[0x20];
525};
526WUT_CHECK_SIZE(CCRCDCNfcReadT2TResponse, 0x3F0);
527
528struct WUT_PACKED CCRCDCNfcWriteT2TRange
529{
530 uint8_t start;
531 uint8_t end;
532 uint8_t data[0xF0];
533};
534WUT_CHECK_SIZE(CCRCDCNfcWriteT2TRange, 0xF2);
535
537{
541 uint8_t uid[7];
542 uint8_t uidMask[7];
543 uint8_t version[8];
545 uint8_t numRanges;
548 uint8_t activationData0[4];
549 uint8_t activationData1[4];
550 uint8_t pwdAuth;
552 WUT_PADDING_BYTES(0xF);
553};
554WUT_CHECK_SIZE(CCRCDCNfcWriteT2TRequest, 0x400);
555
557{
558 uint8_t result;
559};
560WUT_CHECK_SIZE(CCRCDCNfcWriteT2TResponse, 0x01);
561
562int32_t
564 void *request,
565 uint32_t requestSize,
566 void *response,
567 uint32_t responseSize);
568
569#ifdef __cplusplus
570}
571#endif
572
uint8_t activationData
Definition nfc.h:551
CCRCDCNfcPassThroughReceive2ResponseData response1
Definition nfc.h:459
uint8_t activationOffset
Definition nfc.h:547
CCRCDCNfcPassThroughReceive2ResponseData response2
Definition nfc.h:460
CCRCDCNfcCommand command
CCR_NFC_COMMAND_STARTUP.
Definition nfc.h:102
uint16_t discoveryTimeout
Definition nfc.h:124
CCRCDCNfcPassThroughSend2RequestData command1
Definition nfc.h:430
uint16_t lockedSize
Definition nfc.h:152
uint16_t readSize
Definition nfc.h:151
uint8_t readOnly
Definition nfc.h:148
uint8_t hasLockedData
Definition nfc.h:372
uint8_t discoveryType
Definition nfc.h:518
CCRCDCNfcPassThroughSend2RequestData command2
Definition nfc.h:431
CCRCDCNfcCommandEnum
Definition nfc.h:73
uint8_t CCRCDCNfcCommand
Definition nfc.h:16
int32_t CCRCDCPerNfcControl(CCRCDCDestination dest, void *request, uint32_t requestSize, void *response, uint32_t responseSize)
@ CCR_NFC_COMMAND_DETECT
Definition nfc.h:88
@ CCR_NFC_COMMAND_PASS_THROUGH_RECEIVE
Definition nfc.h:85
@ CCR_NFC_COMMAND_SHUTDOWN
Definition nfc.h:80
@ CCR_NFC_COMMAND_SET_READ_ONLY
Definition nfc.h:82
@ CCR_NFC_COMMAND_SET_MODE
Definition nfc.h:86
@ CCR_NFC_COMMAND_READ_T2T
Definition nfc.h:95
@ CCR_NFC_COMMAND_ANTENNA_CHECK
Definition nfc.h:93
@ CCR_NFC_COMMAND_ABORT
Definition nfc.h:79
@ CCR_NFC_COMMAND_READ
Definition nfc.h:76
@ CCR_NFC_COMMAND_FORMAT_START
Definition nfc.h:81
@ CCR_NFC_COMMAND_RESULT_CHECK
Definition nfc.h:78
@ CCR_NFC_COMMAND_DETECT_MULTI
Definition nfc.h:90
@ CCR_NFC_COMMAND_STARTUP
Definition nfc.h:74
@ CCR_NFC_COMMAND_PASS_THROUGH_SEND2
Definition nfc.h:91
@ CCR_NFC_COMMAND_READ_T2T_START
Definition nfc.h:94
@ CCR_NFC_COMMAND_PASS_THROUGH_RECEIVE2
Definition nfc.h:92
@ CCR_NFC_COMMAND_PASS_THROUGH_SEND
Definition nfc.h:84
@ CCR_NFC_COMMAND_DETECT_START_MULTI
Definition nfc.h:89
@ CCR_NFC_COMMAND_IS_TAG_PRESENT
Definition nfc.h:83
@ CCR_NFC_COMMAND_WRITE_START
Definition nfc.h:77
@ CCR_NFC_COMMAND_READ_START
Definition nfc.h:75
@ CCR_NFC_COMMAND_WRITE_T2T
Definition nfc.h:96
@ CCR_NFC_COMMAND_DETECT_START
Definition nfc.h:87
uint8_t CCRCDCDestination
Definition cdc.h:28