summaryrefslogtreecommitdiff
path: root/arm9/lib/include/CARD_common.h
blob: 9cedac4f336495b66adebb2149f731d2c68d92e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef NITRO_CARD_COMMON_H_
#define NITRO_CARD_COMMON_H_

typedef enum
{
    CARD_RESULT_SUCCESS = 0,
    CARD_RESULT_FAILURE,
    CARD_RESULT_INVALID_PARAM,
    CARD_RESULT_UNSUPPORTED,
    CARD_RESULT_TIMEOUT,
    CARD_RESULT_ERROR,
    CARD_RESULT_NO_RESPONSE,
    CARD_RESULT_CANCELED
}
CARDResult;

typedef enum
{
    CARD_REQ_INIT = 0,                 /* initialize (setting from ARM9)*/
    CARD_REQ_ACK,                      /* request done (acknowledge from ARM7)*/
    CARD_REQ_IDENTIFY,                 /* CARD_IdentifyBackup*/
    CARD_REQ_READ_ID,                  /* CARD_ReadRomID (TEG && ARM9)*/
    CARD_REQ_READ_ROM,                 /* CARD_ReadRom (TEG && ARM9)*/
    CARD_REQ_WRITE_ROM,                /* (reserved)*/
    CARD_REQ_READ_BACKUP,              /* CARD_ReadBackup*/
    CARD_REQ_WRITE_BACKUP,             /* CARD_WriteBackup*/
    CARD_REQ_PROGRAM_BACKUP,           /* CARD_ProgramBackup*/
    CARD_REQ_VERIFY_BACKUP,            /* CARD_VerifyBackup*/
    CARD_REQ_ERASE_PAGE_BACKUP,        /* CARD_EraseBackupPage*/
    CARD_REQ_ERASE_SECTOR_BACKUP,      /* CARD_EraseBackupSector*/
    CARD_REQ_ERASE_CHIP_BACKUP,        /* CARD_EraseBackupChip*/
    CARD_REQ_MAX
}
CARDRequest;

typedef enum
{
    CARD_REQUEST_MODE_RECV,            /* Data reception*/
    CARD_REQUEST_MODE_SEND,            /* Send data (Including single verify)*/
    CARD_REQUEST_MODE_SEND_VERIFY,     /* Send data + verify*/
    CARD_REQUEST_MODE_SPECIAL          /* special operations like sector deletion*/
}
CARDRequestMode;

CARDResult CARD_GetResultCode(void);

#define CARD_RETRY_COUNT_MAX 10

void CARD_Init(void);

#endif //NITRO_CARD_COMMON_H_