1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_Const.h
4 
5   Copyright (C)2009-2011 Nintendo Co., Ltd.  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   $Rev: 38576 $
14  *---------------------------------------------------------------------------*/
15 
16 #ifndef NN_BOSS_BOSS_CONST_H_
17 #define NN_BOSS_BOSS_CONST_H_
18 
19 #include <nn/types.h>
20 
21 #ifdef __cplusplus
22 
23 namespace nn {
24 namespace boss {
25 
26         /* Please see man pages for details
27 
28          */
29         static const bit32 DATA_TYPE_ALL            = 0xffffffff;   //
30         static const bit32 DATA_TYPE_APPDATA        = 0x00010000;   //
31         static const bit32 DATA_TYPE_NEWS           = 0x00020000;   //
32         static const bit32 DATA_TYPE_EXBANNER       = 0x00040000;   //
33 
34         /* Please see man pages for details
35 
36          */
37         static const u32 MAX_FILEPATH_LENGTH        = 256;          //
38         static const u32 MAX_URL_LENGTH             = 512;          //
39         static const u32 MAX_HTTP_HEADER_LABEL      = 32;           //
40         static const u32 MAX_HTTP_HEADER_VALUE      = 256;          //
41         static const u32 MAX_HTTP_HEADER            = 3;            //
42         static const u32 MAX_ROOT_CA                = 3;            //
43         static const u32 MAX_CLIENT_CERT            = 1;            //
44         static const u32 TASK_ID_LENGTH             = 8;            //
45         static const u32 MAX_ERROR_MESSAGE          = 256;          //
46         static const u32 MAX_APPLICATION_ID         = 128;          //
47         static const u32 MAX_TASK_ID                = 128;          //
48         static const u32 MAX_STEP_ID                = 128;          //
49         static const u32 CURRENT_STEP_ID            = MAX_STEP_ID;  //
50         static const u32 DEFAULT_STEP_ID            = 0;            //
51         static const u32 U32_CANNOT_GET_DATA        = 0xFFFFFFFF;   //
52         static const u32 MAX_LASTMODIFIED_LENGTH    = 64;           //
53         static const u32 UNLIMITED_COUNT            = 0xFFFFFFFF;   //
54         static const u32 MAX_STORAGE_ENTRY_COUNT    = 2000;         //
55         static const u32 DEFAULT_STORAGE_ENTRY_COUNT = 0;           //
56         static const u32 MAX_STORAGE_RECYCLE_COUNT  = 32;           //
57 
58         /* Please see man pages for details
59 
60         */
61         enum PositionBase
62         {
63             /* Please see man pages for details
64 
65             */
66             POSITION_BASE_BEGIN,
67 
68             /* Please see man pages for details
69 
70             */
71             POSITION_BASE_CURRENT,
72 
73             /* Please see man pages for details
74 
75             */
76             POSITION_BASE_END
77         };
78 
79         /* Please see man pages for details
80 
81         */
82         enum PropertyType
83         {
84             /* Please see man pages for details
85 
86             */
87             TASK_PRIORITY,              //
88             TASK_SCHEDULING_POLICY,     //
89             TASK_TARGET_DURATION,       //
90             TASK_EXEC_INTERVAL,         //
91             TASK_EXEC_COUNT,            //
92             TASK_PERMISSION,            //
93 
94             /* Please see man pages for details
95 
96             */
97             ACTION_CODE,                //
98             ACTION_URL,                 //
99             ACTION_OFFSET,              //
100             ACTION_FILEDESC,            //
101             ACTION_FILEPATH,            //
102             ACTION_FILEPATH_W,          //
103             ACTION_FILE_HANDLE,         //
104             ACTION_HTTP_HEADER,         //
105             ACTION_CLIENT_CERT,         //
106             ACTION_ROOT_CA,             //
107             ACTION_PRIVATE_CLIENT_CERT, //
108             ACTION_PRIVATE_ROOT_CA,     //
109             ACTION_AP_INFO,             //
110             ACTION_CLIENT_CERT_NUM,     //
111             ACTION_ROOT_CA_NUM,         //
112             ACTION_LAST_MODIFIED_TIME,  //
113             ACTION_SERIAL_ID,           //
114             SIGNAL_TASK_EVENT,          //
115 
116             /* Please see man pages for details
117 
118             */
119             TASK_EXEC_OPTION,           //
120             TASK_STEP,                  //
121             TASK_OPTION_TARGET_STEP,    //
122             TASK_OPTION_PARAM1,         //
123             TASK_OPTION_PARAM2,         //
124 
125             /* Please see man pages for details
126 
127             */
128             TASK_STATE_CODE,            //
129             TASK_STATE_TASK,            //
130             TASK_STATE_RESUME,          //
131             TASK_RESULT_CODE,           //
132             TASK_SERVICE_STATUS,        //
133             TASK_SERVICE_TERMINATED,    //
134             TASK_COMM_ERROR_CODE,       //
135             TASK_CURRENT_PRIORITY,      //
136             TASK_EXECUTE_COUNT,         //
137             TASK_PENDING_TIME,          //
138             TASK_REMAIN_TIME,           //
139             TASK_START_TIME,            //
140             TASK_STEP_START_TIME,       //
141             TASK_PROGRESS,              //
142             TASK_DATA_SIZE,             //
143             TASK_CURRENT_STEP,          //
144             TASK_ACTIVE_RATE,           //
145             TASK_REQUEST_RATE,          //
146             TASK_LAST_MODIFIED_TIME,    //
147 
148             /* Please see man pages for details
149 
150             */
151             TASK_ERROR_RESULT_CODE,     //
152             TASK_ERROR_CODE,            //
153             TASK_ERROR_MESSAGE,         //
154 
155             /* Please see man pages for details
156 
157             */
158             TASK_APPID_LIST_SIZE,       //
159             TASK_APPID_LIST,            //
160             /* Please see man pages for details
161 
162             */
163             TASK_TASKID_LIST_SIZE,      //
164             TASK_TASKID_LIST,           //
165             /* Please see man pages for details
166 
167             */
168             TASK_STEPID_LIST_SIZE,      //
169             TASK_STEPID_LIST,           //
170             /* Please see man pages for details
171 
172             */
173             TASK_NSDATA_LIST_SIZE,      //
174             TASK_NSDATA_LIST,           //
175 
176             /* Please see man pages for details
177 
178             */
179             ACTION_SIGNAL_TASK_EVENT,   //
180             ACTION_HTTP_HEADER_VALUE,   //
181             TASK_ID,                    //
182 
183             PROPERTY_TYPE_MAX_VALUE = (0x1u << 15)  //
184         };
185 
186         /* Please see man pages for details
187 
188         */
189         enum SchedulingPolicy
190         {
191             ENUM_POLICY_START,              //
192             STANDARD_POLICY,                //
193             ENUM_POLICY_END,                //
194             SCHEDULING_POLICY_MAX_VALUE = (0x1u << 7)   //
195         };
196 
197         /* Please see man pages for details
198 
199         */
200         enum TaskPermission
201         {
202             TASK_PERMISSION_IN_NONE = 0,            //
203             TASK_PERMISSION_IN_EULA_DISAGREEMENT,   //
204             TASK_PERMISSION_IN_PARENTAL_CONTROL,    //
205             TASK_PERMISSION_IN_BOTH,                //
206             TASK_PERMISSION_MAX_VALUE = (0x1u << 7) //
207         };
208 
209         /* Please see man pages for details
210 
211         */
212         enum TaskPriority
213         {
214             PRIORITY_EXPEDITE1  = 21,       //
215             PRIORITY_EXPEDITE2  = 22,       //
216             PRIORITY_EXPEDITE3  = 23,       //
217             PRIORITY_EXPEDITE4  = 24,       //
218             PRIORITY_EXPEDITE5  = 25,       //
219             PRIORITY_EXPEDITE6  = 26,       //
220             PRIORITY_EXPEDITE7  = 27,       //
221             PRIORITY_EXPEDITE8  = 28,       //
222             PRIORITY_EXPEDITE   = 35,       //
223             PRIORITY_HIGH       = 80,       //
224             PRIORITY_MEDIUM     = 125,      //
225             PRIORITY_LOW        = 170,      //
226             PRIORITY_LOWEST     = 215,      //
227             PRIORITY_LOWEST1    = 221,      //
228             PRIORITY_LOWEST2    = 222,      //
229             PRIORITY_LOWEST3    = 223,      //
230             PRIORITY_LOWEST4    = 224,      //
231             PRIORITY_LOWEST5    = 225,      //
232             PRIORITY_LOWEST6    = 226,      //
233             PRIORITY_LOWEST7    = 227,      //
234             PRIORITY_LOWEST8    = 228,      //
235             PRIORITY_STOPPED    = 255,      //
236             PRIORITY_MAX_VALUE = (0x1u << 7)    //
237         };
238 
239         /* Please see man pages for details
240 
241         */
242         enum Action
243         {
244             ENUM_ACTION_START,          //
245             DOWNLOAD_TASK,              //
246             NSA_DOWNLOAD_TASK,          //
247             UPLOAD_TASK,                //
248             SIGNAL_TASK,                //
249             CONFIG_UPLOAD_TASK,         //
250             PLAYHISTORY_UPLOAD_TASK,    //
251             PEDOMETER_UPLOAD_TASK,      //
252             ENUM_ACTION_END,            //
253             ACTION_MAX_VALUE = (0x1u << 7)  //
254         };
255 
256         /* Please see man pages for details
257 
258         */
259         enum ExecOption
260         {
261             ENUM_EXECOPTION_START,              //
262             NORMAL_EXEC,                        //
263             ENUM_EXECOPTION_END,                //
264             OPTION_MAX_VALUE = (0x1u << 7)      //
265         };
266 
267         /* Please see man pages for details
268 
269         */
270         enum TaskStateCode
271         {
272             TASK_STOPPED,                                  //
273             TASK_WAITING_TIMER,                            //
274             TASK_WAITING,                                  //
275             TASK_RUNNING,                                  //
276             TASK_PAUSED,                                   //
277             TASK_REGISTERED,                                //
278             TASK_DONE,                                     //
279             TASK_ERROR,                                    //
280             TASK_RETRY,                                    //
281             GET_TASK_STATE_ERROR,                          //
282             STATUS_MAX_VALUE = (0x1u << 7)                 //
283         };
284 
285         /* Please see man pages for details
286 
287          */
288         enum TaskResultCode
289         {
290             TASK_SUCCESS,                                  //
291             BOSS_ERROR_NOMEM,                              //
292 
293             GET_TASK_RESULT_ERROR,                         //
294             TASK_NOT_EXIST,                                //
295             TASK_CANCELED,                                 //
296 
297             // HTTP communication errors
298             HTTP_ERROR_NOMEM,                              //
299             HTTP_ERROR_CREATE_EVENT,                       //
300             HTTP_ERROR_CREATE_MUTEX,                       //
301             HTTP_ERROR_CREATE_QUEUE,                       //
302             HTTP_ERROR_CREATE_THREAD,                      //
303             HTTP_ERROR_IPC_SESSION,                        //
304             HTTP_ERROR_CLIENT_PROCESS_MAX,                 //
305             HTTP_ERROR_IPC_SESSION_MAX,                    //
306             HTTP_ERROR_MSGQ_SEND_LSN,                      //
307             HTTP_ERROR_MSGQ_RECV_LSN,                      //
308             HTTP_ERROR_MSGQ_SEND_COMM,                     //
309             HTTP_ERROR_CONN_NOMORE,                        //
310             HTTP_ERROR_CONN_STATUS,                        //
311             HTTP_ERROR_CONN_ADD,                           //
312             HTTP_ERROR_CONN_HOST_MAX,                      //
313             HTTP_ERROR_INVALID_URL,                        //
314             HTTP_ERROR_RESPONSE_HEADER,                    //
315             HTTP_ERROR_NO_NEWLINE,                         //
316             HTTP_ERROR_SSL,                                //
317             HTTP_ERROR_CERT_EXIST,                         //
318             HTTP_ERROR_NO_CA_CERT_STORE,                   //
319             HTTP_ERROR_NO_CLIENT_CERT,                     //
320             HTTP_ERROR_CA_CERT_STORE_MAX,                  //
321             HTTP_ERROR_CLIENT_CERT_MAX,                    //
322             HTTP_ERROR_FAIL_TO_CREATE_CERT_STORE,          //
323             HTTP_ERROR_FAIL_TO_CREATE_CLIENT_STORE,        //
324             HTTP_ERROR_DNS,                                //
325             HTTP_ERROR_SEND,                               //
326             HTTP_ERROR_RECV,                               //
327             HTTP_ERROR_CONNECT,                            //
328             HTTP_ERROR_GET_PROXY_SETTING,                  //
329             HTTP_ERROR_TIMEOUT,                            //
330             HTTP_ERROR_401_UNAUTHORIZED,                   //
331             HTTP_ERROR_403_FORBIDDEN,                      //
332             HTTP_ERROR_404_NOT_FOUND,                      //
333             HTTP_ERROR_408_REQUEST_TIMEOUT,                //
334             HTTP_ERROR_416_REQUESTED_RANGE_NOT_SATISFABLE, //
335             HTTP_ERROR_500_INTERNAL_SERVER_ERROR,          //
336             HTTP_ERROR_502_BAD_GATEWAY,                    //
337             HTTP_ERROR_503_SERVICE_UNAVAILABLE,            //
338             HTTP_ERROR_504_GATEWAY_TIMEOUT,                //
339             HTTP_ERROR_505_VERSION_NOT_SUPPORTED,          //
340             HTTP_ERROR_UNSUPPORTED_STATUS,                 //
341 
342             // SSL error
343             SSL_ERROR_FAILED,                              //
344             SSL_ERROR_WANT_READ,                           //
345             SSL_ERROR_WANT_WRITE,                          //
346             SSL_ERROR_SYSCALL,                             //
347             SSL_ERROR_ZERO_RETURN,                         //
348             SSL_ERROR_WANT_CONNECT,                        //
349             SSL_ERROR_SSLID,                               //
350             SSL_ERROR_VERIFY_CERT,                         //
351             SSL_ERROR_VERIFY_COMMON_NAME,                  //
352             SSL_ERROR_VERIFY_ROOT_CA,                      //
353             SSL_ERROR_VERIFY_CHAIN,                        //
354             SSL_ERROR_VERIFY_DATE,                         //
355             SSL_ERROR_GET_SERVER_CERT,                     //
356             SSL_ERROR_VERIFY_REVOKED_CERT,                 //
357             SSL_ERROR_OUT_OF_MEMORY,                       //
358             SSL_ERROR_SESSION,                             //
359             SSL_ERROR_FAIL_TO_CREATE_CERT_STROE,           //
360             SSL_ERROR_FAIL_TO_CREATE_CRL_STORE,            //
361             SSL_ERROR_FAIL_TO_CREATE_CLIENT_CERT,          //
362             SSL_ERROR_CLIENT_PROCESS_MAX,                  //
363             SSL_ERROR_IPC_SESSION,                         //
364             SSL_ERROR_INTERNAL_CERT,                       //
365             SSL_ERROR_INTERNAL_CRL,                        //
366 
367             // File system access errors
368             FS_ERROR_INVALID_POSITION_BASE,                //
369             FS_ERROR_ARCHIVE_NOT_FOUND,                    //
370             FS_ERROR_FAILED_OPEN_FILE,                     //
371             FS_ERROR_UNSUPPORTED_OPERATION,                //
372             FS_ERROR_INVALID_PATH_FORMAT,                  //
373             FS_ERROR_ACCESS_DENIED,                        //
374             FS_ERROR_LIBRARY_NOT_INITIALIZED,              //
375             FS_ERROR_INVALID_POSITION,                     //
376             FS_ERROR_TOO_LONG_PATH,                        //
377             FS_ERROR_NOT_DEVELOPMENT_ID,                   //
378             FS_ERROR_HASH_MISMATCH,                        //
379             FS_ERROR_NO_SUCH_PROCESS_REGISTERED,           //
380             FS_ERROR_INVALID_CXI_FORMAT,                   //
381             FS_ERROR_UNSUPPORTED_ALIGNMENT,                //
382             FS_ERROR_INVALID_HANDLE,                       //
383             FS_ERROR_NOT_FOUND,                            //
384 
385             // NSA Errors
386             NSA_ERROR_STORAGE_INSUFFICIENCY,               //
387             NSA_ERROR_NUMBER_OF_NSD_MAX,                   //
388             NSA_ERROR_VERIFY_HASH,                         //
389             NSA_ERROR_VERIFY_SIGNATURE,                    //
390             NSA_NSD_ERROR_VERIFY_HASH,                     //
391             NSA_NSD_ERROR_VERIFY_SIGNATURE,                //
392             NSA_NSD_ERROR_INVALID_FORMAT,                  //
393             NSA_ERROR_INVALID_FORMAT,                      //
394 
395             // Unexpected errors
396             SEVERE_ERROR,                                  //
397             UNKNOWN_ERROR,                                 //
398             ERROR_MAX_VALUE = (0x1u << 7)                  //
399         };
400 
401         /* Please see man pages for details
402 
403         */
404         enum TaskServiceStatus
405         {
406             SERVICE_TERMINATED,                            //
407             SERVICE_AVAILABLE,                             //
408             SERVICE_UNKNOWN,                               //
409             GET_SERVICE_STATUS_ERROR,                      //
410             SERVICE_MAX_VALUE = (0x1u << 7)                //
411         };
412 
413         /* Please see man pages for details
414 
415         */
416         enum HeaderInfoType
417         {
418             NSD_TITLEID,                                //
419             NSD_FLAGS,                                  //
420             NSD_DATATYPE,                               //
421             NSD_LENGTH,                                 //
422             NSD_SERIALID,                               //
423             NSD_VERSION,                                //
424             NSD_ALL,                                    //
425             NSD_HEADER_MAX_VALUE = (0x1u << 7)          //
426         };
427 
428         /* Please see man pages for details
429 
430         */
431         enum FileDescriptor
432         {
433             CHAR_TYPE,                                  //
434             WCHAR_TYPE,                                 //
435             HANDLE_TYPE,                                //
436             FILE_TYPE_MAX_VALUE = (0x1u << 7)           //
437         };
438 
439         /* Please see man pages for details
440 
441         */
442         enum ApInfoType
443         {
444             APINFOTYPE_NONE    = 0x00,                  //
445             APINFOTYPE_APGROUP = 0x01,                  //
446             APINFOTYPE_APAREA  = 0x02,                  //
447             APINFOTYPE_AP      = 0x04,                  //
448             APINFOTYPE_MAX_VALUE = (0x1u << 7)          //
449         };
450 
451         /* Please see man pages for details
452 
453         */
454         enum StorageType
455         {
456             USER_EXT_SAVEDATA_STORAGE,                  //
457             SHARED_EXT_SAVEDATA_STORAGE,                //
458             BOSSSTORAGETYPE_MAX_VALUE = (0x1u << 7)     //
459         };
460 
461 } // end of namespace boss
462 } // end of namespace nn
463 
464 
465 #endif /*__cplusplus*/
466 
467 #endif /* NN_BOSS_BOSS_CONST_H_ */
468