1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     boss_Const.h
4   Copyright (C)2009 Nintendo Co., Ltd.  All rights reserved.
5   These coded instructions, statements, and computer programs contain
6   proprietary information of Nintendo of America Inc. and/or Nintendo
7   Company Ltd., and are protected by Federal copyright law. They may
8   not be disclosed to third parties or copied or duplicated in any form,
9   in whole or in part, without the prior written consent of Nintendo.
10   $Rev: 37017 $
11  *---------------------------------------------------------------------------
12 
13 
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 error
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 error
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 Error
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 error
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