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