1 /*---------------------------------------------------------------------------*
2   Project:  Horizon
3   File:     os_Types.h
4 
5   Copyright (C)2009 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: 29093 $
14  *---------------------------------------------------------------------------*/
15 /*
16     @file
17 
18     :include nn/os.h
19  */
20 
21 #ifndef NN_OS_OS_TYPES_H_
22 #define NN_OS_OS_TYPES_H_
23 
24 #ifdef  __cplusplus
25 
26 namespace nn {
27 namespace os {
28 
29 /*
30 
31 
32 
33 */
34 enum LimitableResource
35 {
36     LIMITABLE_RESOURCE_MAX_PRIORITY,    //
37     LIMITABLE_RESOURCE_MAX_COMMIT,      //
38     LIMITABLE_RESOURCE_MAX_THREAD,      //
39     LIMITABLE_RESOURCE_MAX_EVENT,
40     LIMITABLE_RESOURCE_MAX_MUTEX,
41     LIMITABLE_RESOURCE_MAX_SEMAPHORE,
42     LIMITABLE_RESOURCE_MAX_TIMER,
43     LIMITABLE_RESOURCE_MAX_SHAREDMEMORY,
44     LIMITABLE_RESOURCE_MAX_ADDRESSARBITER,
45     LIMITABLE_RESOURCE_END,
46 
47     LIMITABLE_RESOURCE_MAX_BIT  = (1u << 31)
48 };
49 
50 /*
51 
52 
53 
54 */
55 enum SystemInfoType
56 {
57     SYSTEM_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE,            //
58     SYSTEM_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE,        //
59     SYSTEM_INFO_TYPE_KERNEL_USING_PHYSICAL_MEMORY_SIZE,     //
60     SYSTEM_INFO_TYPE_MAX_KERNEL_USING_PHYSICAL_MEMORY_SIZE, //
61     SYSTEM_INFO_TYPE_CPU_LOAD,                              //
62     SYSTEM_INFO_TYPE_CPU_TIME_INTERRUPTS,                   //
63     SYSTEM_INFO_TYPE_CPU_TIME_SYSTEM,                       //
64     SYSTEM_INFO_TYPE_CPU_TIME_USER,                         //
65     SYSTEM_INFO_TYPE_CPU_TIME_IDLE,                         //
66     SYSTEM_INFO_TYPE_NUM_SOFTWARE_INTERRUPTS,               //
67     SYSTEM_INFO_TYPE_NUM_HARDWARE_INTERRUPTS,               //
68     SYSTEM_INFO_TYPE_NUM_INTERRUPTS,                        //
69     SYSTEM_INFO_TYPE_NUM_EXCEPTIONS,                        //
70     SYSTEM_INFO_TYPE_NUM_RUNNABLE_THREADS,                  //
71     SYSTEM_INFO_TYPE_NUM_PAGE_CLEAR,                        //
72     SYSTEM_INFO_TYPE_NUM_THREAD_SWITCH,                     //
73     SYSTEM_INFO_TYPE_NUM_FPU_SWITCH,                        //
74     SYSTEM_INFO_TYPE_NUM_PROCESS_SWITCH,                    //
75     SYSTEM_INFO_TYPE_NUM_SYSTEM_CALL,                       //
76     SYSTEM_INFO_TYPE_NUM_IPC,                               //
77     SYSTEM_INFO_TYPE_NUM_CREATED_THREADS,                   //
78     SYSTEM_INFO_TYPE_NUM_CREATED_PROCESSES,                 //
79     SYSTEM_INFO_TYPE_NUM_THREADS,                           //
80     SYSTEM_INFO_TYPE_NUM_PROCESSES,                         //
81     SYSTEM_INFO_TYPE_MAX_NUM_THREADS,                       //
82     SYSTEM_INFO_TYPE_MAX_NUM_PROCESSES,                     //
83     SYSTEM_INFO_TYPE_NUM_INITIAL_PROCESSES,                 //
84 
85     SYSTEM_INFO_TYPE_MAX_BIT = (1u << 31)
86 };
87 
88 /*
89 
90 
91 
92 */
93 enum ProcessInfoType
94 {
95     PROCESS_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE,           //
96     PROCESS_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE,       //
97     PROCESS_INFO_TYPE_PRIVATE_PHYSICAL_MEMORY_SIZE,         //
98     PROCESS_INFO_TYPE_MAX_RPIVATE_PHYSICAL_MEMORY_SIZE,     //
99     PROCESS_INFO_TYPE_NUM_HANDLES,                          //
100     PROCESS_INFO_TYPE_MAX_NUM_HANDLES,                      //
101     PROCESS_INFO_TYPE_NUM_CREATED_THREADS,                  //
102     PROCESS_INFO_TYPE_NUM_THREADS,                          //
103     PROCESS_INFO_TYPE_MAX_NUM_THREADS,                      //
104     PROCESS_INFO_TYPE_CPU_TIME_SYSTEM,                      //
105     PROCESS_INFO_TYPE_CPU_TIME_USER,                        //
106     PROCESS_INFO_TYPE_CPU_TIME,                             //
107     PROCESS_INFO_TYPE_NUM_THREAD_SWITCH,                    //
108     PROCESS_INFO_TYPE_NUM_FPU_SWITCH,                       //
109     PROCESS_INFO_TYPE_NUM_PROCESS_SWITCH,                   //
110     PROCESS_INFO_TYPE_NUM_SYSTEM_CALL,                      //
111     PROCESS_INFO_TYPE_NUM_IPC,                              //
112     PROCESS_INFO_TYPE_UPTIME,                               //
113     PROCESS_INFO_TYPE_NAME,
114 
115     PROCESS_INFO_TYPE_MAX_BIT = (1u << 31)
116 };
117 
118 /*
119 
120 
121 
122 */
123 enum ThreadInfoType
124 {
125     THREAD_INFO_TYPE_CPU_TIME_SYSTEM,                       //
126     THREAD_INFO_TYPE_CPU_TIME_USER,                         //
127     THREAD_INFO_TYPE_CPU_TIME,                              //
128     THREAD_INFO_TYPE_NUM_THREAD_SWITCH,                     //
129     THREAD_INFO_TYPE_NUM_FPU_SWITCH,                        //
130     THREAD_INFO_TYPE_NUM_SYSTEM_CALL,                       //
131     THREAD_INFO_TYPE_NUM_IPC,                               //
132     THREAD_INFO_TYPE_UPTIME,                                //
133 
134     THREAD_INFO_TYPE_MAX_BIT = (1u << 31)
135 };
136 
137 /*
138 
139 
140 
141 */
142 enum HandleInfoType
143 {
144     HANDLE_INFO_TYPE_CREATION_TIME,                         //
145     HANDLE_INFO_TYPE_REFERENCE_COUNT,                       //
146     HANDLE_INFO_TYPE_PARENT_PROCESS_ID,                     //
147 
148     HANDLE_INFO_TYPE_MAX_BIT  = (1u << 31)
149 };
150 
151 /*
152 
153 
154 
155 */
156 enum ArbitrationType
157 {
158     ARBITRATION_TYPE_SIGNAL,
159     ARBITRATION_TYPE_WAIT_IF_LESS_THAN,
160     ARBITRATION_TYPE_DECREMENT_AND_WAIT_IF_LESS_THAN,
161 
162     ARBITRATION_TYPE_MAX_BIT = (1u << 31)
163 };
164 
165 
166 enum ResetType
167 {
168     RESET_TYPE_ONESHOT,
169     RESET_TYPE_STICKY,
170     RESET_TYPE_PULSE,
171 
172     RESET_TYPE_MAX_BIT = (1u << 31)
173 };
174 
175 
176 }	// end of namespace os
177 }	// end of namespace nn
178 
179 #endif // __cplusplus
180 
181 #endif  // ifndef NN_OS_OS_TYPES_H_
182