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