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 @enum LimitableResource 31 32 @brief リソース制限の種別を表します。 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 @enum SystemInfoType 52 53 @brief システム全体にわたる情報の種別を表します。 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, //!< CPU ロード回数 62 SYSTEM_INFO_TYPE_CPU_TIME_INTERRUPTS, //!< 割り込み CPU 時間 63 SYSTEM_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 64 SYSTEM_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 65 SYSTEM_INFO_TYPE_CPU_TIME_IDLE, //!< CPU 時間 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, //!< FPU スイッチ回数 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 @enum ProcessInfoType 90 91 @brief プロセス情報の種別を表します。 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, //!< システム CPU 時間 105 PROCESS_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 106 PROCESS_INFO_TYPE_CPU_TIME, //!< CPU 時間 107 PROCESS_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 108 PROCESS_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 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 @enum ThreadInfoType 120 121 @brief スレッド情報の種別を表します。 122 */ 123 enum ThreadInfoType 124 { 125 THREAD_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 126 THREAD_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 127 THREAD_INFO_TYPE_CPU_TIME, //!< CPU 時間 128 THREAD_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 129 THREAD_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 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 @enum HandleInfoType 139 140 @brief ハンドル情報の種別を表します。 141 */ 142 enum HandleInfoType 143 { 144 HANDLE_INFO_TYPE_CREATION_TIME, //!< 作成時間 145 HANDLE_INFO_TYPE_REFERENCE_COUNT, //!< 参照カウント 146 HANDLE_INFO_TYPE_PARENT_PROCESS_ID, //!< 親プロセス ID 147 148 HANDLE_INFO_TYPE_MAX_BIT = (1u << 31) 149 }; 150 151 /* 152 @enum ArbitrationType 153 154 @brief 同期オブジェクトへの操作種別を表します。 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