1 /*---------------------------------------------------------------------------*
2   Project:  WiiConnect24
3   File:     NWC24Err.h
4 
5   Copyright (C) 2006 Nintendo. All Rights Reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law. They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Log: NWC24Err.h,v $
14   Revision 1.28  2008/04/28 09:39:28  hirose_kazuki
15   Added NWC24_ERR_OTHER_REGION.
16   Added check for NWC24_ERR_BROKEN into NWC24_ERR_IS_FILE() macro.
17 
18   Revision 1.27  2008/03/07 01:17:13  hirose_kazuki
19   Added NWC24_ERRCODE_STANDBY_DISABLED.
20 
21   Revision 1.26  2007/06/08 05:34:41  adachi_hiroaki
22   Added NWC24_ERR_SCRIPT_VERSION and NWC24_ERR_GIVE_UP.
23 
24   Revision 1.25  2007/04/12 12:05:05  hirose_kazuki
25   Added even more NWC24_ERRCODE_* definitions.
26 
27   Revision 1.24  2007/03/27 06:39:30  hirose_kazuki
28   Added some more NWC24_ERRCODE_* definitions.
29 
30   Revision 1.23  2007/01/31 08:43:03  hirose_kazuki
31   Added NWC24_ERR_OLD_SYSTEM.
32 
33   Revision 1.22  2006/11/15 08:36:48  hirose_kazuki
34   Added NWC24_ERR_CANCELLED.
35 
36   Revision 1.21  2006/11/06 13:53:58  hirose_kazuki
37   Added NWC24_ERRCODE_AT_CHECK() macro.
38 
39   Revision 1.20  2006/11/03 07:16:48  hirose_kazuki
40   Added error grouping macros.
41 
42   Revision 1.19  2006/10/31 12:37:17  hirose_kazuki
43   Added definition of NWC24_ERRCODE_AT_REGISTER.
44 
45   Revision 1.18  2006/10/29 17:30:19  seiki_masashi
46   Added NWC24_ERR_INVALID_CHAR.
47 
48   Revision 1.17  2006/10/26 08:17:20  hirose_kazuki
49   Defined NWC24_ERRCODE_SYSCONFIG.
50 
51   Revision 1.16  2006/10/19 04:35:32  hirose_kazuki
52   Added global error code definitions.
53 
54   Revision 1.15  2006/10/16 00:50:44  adachi_hiroaki
55   Added NWC24_ERR_FILE_BROKEN.
56 
57   Revision 1.14  2006/10/05 09:44:49  adachi_hiroaki
58   Added NWC24_ERR_ID_NOT_REGISTERED, NWC24_ERR_VERIFY_SIGNATURE.
59 
60   Revision 1.13  2006/10/02 08:49:48  hirose_kazuki
61   Renamed latest two enum definitions.
62 
63   Revision 1.12  2006/09/30 12:38:46  hirose_kazuki
64   Added NWC24_ERR_INTER_PROC and NWC24_ERR_VFLIB.
65 
66   Revision 1.11  2006/09/28 11:34:54  adachi_hiroaki
67   Added some error codes for the download API.
68 
69   Revision 1.10  2006/09/23 05:51:31  hirose_kazuki
70   Added NWC24_ERR_NAND_CORRUPT.
71 
72   Revision 1.9  2006/09/06 01:46:36  hirose_kazuki
73   Added NWC24_ERR_ID_CRC.
74 
75   Revision 1.8  2006/08/23 06:00:46  adachi_hiroaki
76   Changed error codes for account creation.
77 
78   Revision 1.7  2006/08/18 02:42:22  adachi_hiroaki
79   Added some error codes.
80 
81   Revision 1.6  2006/08/16 06:19:42  hirose_kazuki
82   Added NWC24_ERR_NOT_READY.
83 
84   Revision 1.5  2006/08/10 13:05:57  terui
85   Added NWC24_ERR_INPROGRESS definition
86 
87   Revision 1.4  2006/07/15 00:59:58  hirose_kazuki
88   Added new enum values.
89 
90   Revision 1.3  2006/07/11 04:32:16  hirose_kazuki
91   Yet another repository reforming.
92 
93   Revision 1.1  2006/07/03 03:23:31  yosizaki
94   Moved from ../ppc
95 
96   Revision 1.2  2006/07/01 11:33:11  hirose_kazuki
97   Added NWC24_ERR_BUSY.
98 
99   Revision 1.1  2006/06/29 12:43:43  hirose_kazuki
100   Moved from another repository.
101 
102   Revision 1.1  2006/06/10 10:34:21  hirose
103   Initial check in.
104 
105  *---------------------------------------------------------------------------*/
106 
107 /*---------------------------------------------------------------------------*
108     Error codes used for NWC24 APIs
109  *---------------------------------------------------------------------------*/
110 #ifndef __NWC24ERR_H__
111 #define __NWC24ERR_H__
112 
113 /*---------------------------------------------------------------------------*/
114 typedef enum NWC24Err
115 {
116     NWC24_OK                    = 0,
117     NWC24_ERR_FATAL             = -1,
118     NWC24_ERR_FAILED            = -2,
119     NWC24_ERR_INVALID_VALUE     = -3,
120     NWC24_ERR_NOT_SUPPORTED     = -4,
121     NWC24_ERR_NULL              = -5,
122     NWC24_ERR_FULL              = -6,
123     NWC24_ERR_PROTECTED         = -7,
124     NWC24_ERR_OVERFLOW          = -8,
125     NWC24_ERR_LIB_NOT_OPENED    = -9,
126     NWC24_ERR_LIB_OPENED        = -10,
127     NWC24_ERR_NOMEM             = -11,
128     NWC24_ERR_CONFIG            = -12,
129     NWC24_ERR_NOT_FOUND         = -13,
130     NWC24_ERR_BROKEN            = -14,
131     NWC24_ERR_DONE              = -15,
132     NWC24_ERR_FILE_OPEN         = -16,
133     NWC24_ERR_FILE_CLOSE        = -17,
134     NWC24_ERR_FILE_READ         = -18,
135     NWC24_ERR_FILE_WRITE        = -19,
136     NWC24_ERR_FILE_NOEXISTS     = -20,
137     NWC24_ERR_FILE_OTHER        = -21,
138     NWC24_ERR_MUTEX             = -22,
139     NWC24_ERR_ALIGNMENT         = -23,
140     NWC24_ERR_FORMAT            = -24,
141     NWC24_ERR_STRING_END        = -25,
142     NWC24_ERR_BUSY              = -26,
143     NWC24_ERR_VER_MISMATCH      = -27,
144     NWC24_ERR_HIDDEN            = -28,
145     NWC24_ERR_INPROGRESS        = -29,
146     NWC24_ERR_NOT_READY         = -30,
147     NWC24_ERR_NETWORK           = -31,
148     NWC24_ERR_SERVER            = -32,
149     NWC24_ERR_CONFIG_NETWORK    = -33,
150     NWC24_ERR_ID_NOEXISTS       = -34,
151     NWC24_ERR_ID_GENERATED      = -35,
152     NWC24_ERR_ID_REGISTERED     = -36,
153     NWC24_ERR_ID_CRC            = -37,
154     NWC24_ERR_NAND_CORRUPT      = -38,
155     NWC24_ERR_DISABLED          = -39,
156     NWC24_ERR_INVALID_OPERATION = -40,
157     NWC24_ERR_FILE_EXISTS       = -41,
158     NWC24_ERR_INTERNAL_IPC      = -42,
159     NWC24_ERR_INTERNAL_VF       = -43,
160     NWC24_ERR_ID_NOT_REGISTERED = -44,
161     NWC24_ERR_VERIFY_SIGNATURE  = -45,
162     NWC24_ERR_FILE_BROKEN       = -46,
163     NWC24_ERR_INVALID_CHAR      = -47,
164     NWC24_ERR_CANCELLED         = -48,
165     NWC24_ERR_OLD_SYSTEM        = -49,
166     NWC24_ERR_SCRIPT_VERSION    = -50,
167     NWC24_ERR_GIVE_UP           = -51,
168     NWC24_ERR_OTHER_REGION      = -52
169 
170 } NWC24Err;
171 
172 /*---------------------------------------------------------------------------*/
173 
174 // Macros to distinguish error properties
175 #define NWC24_ERR_IS_FILE(err)  \
176     ( (( err <= NWC24_ERR_FILE_OPEN ) && ( err >= NWC24_ERR_FILE_OTHER )) || \
177       ( err == NWC24_ERR_NAND_CORRUPT ) || \
178       ( err == NWC24_ERR_FILE_EXISTS )  || \
179       ( err == NWC24_ERR_INTERNAL_VF )  || \
180       ( err == NWC24_ERR_FILE_BROKEN )  || \
181       ( err == NWC24_ERR_BROKEN ) )
182 
183 #define NWC24_ERR_IS_FATAL(err) \
184     ( ( err == NWC24_ERR_FATAL )          || \
185       ( err == NWC24_ERR_NOMEM )          || \
186       ( err == NWC24_ERR_INTERNAL_IPC ) )
187 
188 #define NWC24_ERR_IS_RETRIABLE(err) \
189     ( ( err == NWC24_ERR_MUTEX ) || \
190       ( err == NWC24_ERR_BUSY )  || \
191       ( err == NWC24_ERR_INPROGRESS ) )
192 
193 /*---------------------------------------------------------------------------*/
194 
195 // Global error codes
196 #define NWC24_ERRCODE_BASE                  (-109000)
197 #define NWC24_ERRCODE_AT_OPEN(err)          (NWC24_ERRCODE_BASE+(err))
198 
199 #define NWC24_ERRCODE_CHECK                 (-109100)
200 #define NWC24_ERRCODE_AT_CHECK(err)         (NWC24_ERRCODE_CHECK+(err))
201 
202 #define NWC24_ERRCODE_SENDBOX_FULL          (-109106)
203 #define NWC24_ERRCODE_PROHIBITED            (-109107)
204 #define NWC24_ERRCODE_SYSCONFIG             (-109112)
205 #define NWC24_ERRCODE_NCD                   (-109133)
206 #define NWC24_ERRCODE_DISABLED              (-109139)
207 #define NWC24_ERRCODE_STANDBY_DISABLED      (-109140)
208 #define NWC24_ERRCODE_ID_NOT_REGISTERED     (-109144)
209 
210 #define NWC24_ERRCODE_REGISTER              (-109200)
211 #define NWC24_ERRCODE_AT_REGISTER(err)      (NWC24_ERRCODE_REGISTER+(err))
212 
213 #define NWC24_ERRCODE_COMMIT                (-109300)
214 #define NWC24_ERRCODE_AT_COMMIT(err)        (NWC24_ERRCODE_COMMIT+(err))
215 
216 #define NWC24_ERRCODE_MSGBOX_OPS            (-109400)
217 #define NWC24_ERRCODE_AT_MSGBOX_OPS(err)    (NWC24_ERRCODE_MSGBOX_OPS+(err))
218 
219 #define NWC24_ERRCODE_DLTASK_OPS            (-109500)
220 #define NWC24_ERRCODE_AT_DLTASK_OPS(err)    (NWC24_ERRCODE_DLTASK_OPS+(err))
221 
222 #define NWC24_ERRCODE_FLIST_OPS             (-109600)
223 #define NWC24_ERRCODE_AT_FLIST_OPS(err)     (NWC24_ERRCODE_FLIST_OPS+(err))
224 
225 #define NWC24_ERRCODE_SCD_OPS               (-109700)
226 #define NWC24_ERRCODE_AT_SCD_OPS(err)       (NWC24_ERRCODE_SCD_OPS+(err))
227 
228 #define NWC24_ERRCODE_UNDEFINED             (-109999)
229 
230 /*---------------------------------------------------------------------------*/
231 
232 #endif  // __NWC24ERR_H__
233 
234