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: 18508 $ 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_HANDLES, //!< ハンドル数の制限 37 LIMITABLE_RESOURCE_MAX_PRIORITY, //!< スレッド優先度の制限 38 LIMITABLE_RESOURCE_MAX_COMMIT, //!< 消費する物理メモリの制限 39 LIMITABLE_RESOURCE_MAX_THREADS, //!< スレッド数の制限 40 LIMITABLE_RESOURCE_END, 41 42 LIMITABLE_RESOURCE_MAX_BIT = (1u << 31) 43 }; 44 45 /* 46 @enum SystemInfoType 47 48 @brief システム全体にわたる情報の種別を表します。 49 */ 50 enum SystemInfoType 51 { 52 SYSTEM_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE, //!< 使用物理メモリサイズ 53 SYSTEM_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE, //!< 最大使用物理メモリサイズ 54 SYSTEM_INFO_TYPE_KERNEL_USING_PHYSICAL_MEMORY_SIZE, //!< カーネル使用物理メモリサイズ 55 SYSTEM_INFO_TYPE_MAX_KERNEL_USING_PHYSICAL_MEMORY_SIZE, //!< カーネル最大使用物理メモリサイズ 56 SYSTEM_INFO_TYPE_CPU_LOAD, //!< CPU ロード回数 57 SYSTEM_INFO_TYPE_CPU_TIME_INTERRUPTS, //!< 割り込み CPU 時間 58 SYSTEM_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 59 SYSTEM_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 60 SYSTEM_INFO_TYPE_CPU_TIME, //!< CPU 時間 61 SYSTEM_INFO_TYPE_NUM_SOFTWARE_INTERRUPTS, //!< ソフトウェア割り込み数 62 SYSTEM_INFO_TYPE_NUM_HARDWARE_INTERRUPTS, //!< ハードウェア割り込み数 63 SYSTEM_INFO_TYPE_NUM_INTERRUPTS, //!< 割り込み数 64 SYSTEM_INFO_TYPE_NUM_EXCEPTIONS, //!< 例外数 65 SYSTEM_INFO_TYPE_NUM_RUNNABLE_THREADS, //!< 実行可能スレッド数 66 SYSTEM_INFO_TYPE_NUM_PAGE_CLEAR, //!< ページクリア回数 67 SYSTEM_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 68 SYSTEM_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 69 SYSTEM_INFO_TYPE_NUM_PROCESS_SWITCH, //!< プロセススイッチ回数 70 SYSTEM_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 71 SYSTEM_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 72 SYSTEM_INFO_TYPE_NUM_CREATED_THREADS, //!< 作成したスレッド数 73 SYSTEM_INFO_TYPE_NUM_CREATED_PROCESSES, //!< 作成したプロセス数 74 SYSTEM_INFO_TYPE_NUM_THREADS, //!< スレッド数 75 SYSTEM_INFO_TYPE_NUM_PROCESSES, //!< プロセス数 76 SYSTEM_INFO_TYPE_MAX_NUM_THREADS, //!< 最大スレッド数 77 SYSTEM_INFO_TYPE_MAX_NUM_PROCESSES, //!< 最大プロセス数 78 SYSTEM_INFO_TYPE_NUM_INITIAL_PROCESSES, //!< 初期プロセス数 79 80 SYSTEM_INFO_TYPE_MAX_BIT = (1u << 31) 81 }; 82 83 /* 84 @enum ProcessInfoType 85 86 @brief プロセス情報の種別を表します。 87 */ 88 enum ProcessInfoType 89 { 90 PROCESS_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE, //!< 使用物理メモリサイズ 91 PROCESS_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE, //!< 最大使用物理メモリサイズ 92 PROCESS_INFO_TYPE_PRIVATE_PHYSICAL_MEMORY_SIZE, //!< プライベート物理メモリサイズ 93 PROCESS_INFO_TYPE_MAX_RPIVATE_PHYSICAL_MEMORY_SIZE, //!< 最大プライベート物理メモリサイズ 94 PROCESS_INFO_TYPE_NUM_HANDLES, //!< ハンドル数 95 PROCESS_INFO_TYPE_MAX_NUM_HANDLES, //!< 最大ハンドル数 96 PROCESS_INFO_TYPE_NUM_CREATED_THREADS, //!< 作成したスレッド数 97 PROCESS_INFO_TYPE_NUM_THREADS, //!< スレッド数 98 PROCESS_INFO_TYPE_MAX_NUM_THREADS, //!< 最大スレッド数 99 PROCESS_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 100 PROCESS_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 101 PROCESS_INFO_TYPE_CPU_TIME, //!< CPU 時間 102 PROCESS_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 103 PROCESS_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 104 PROCESS_INFO_TYPE_NUM_PROCESS_SWITCH, //!< プロセススイッチ回数 105 PROCESS_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 106 PROCESS_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 107 PROCESS_INFO_TYPE_UPTIME, //!< 稼働時間 108 109 PROCESS_INFO_TYPE_MAX_BIT = (1u << 31) 110 }; 111 112 /* 113 @enum ThreadInfoType 114 115 @brief スレッド情報の種別を表します。 116 */ 117 enum ThreadInfoType 118 { 119 THREAD_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 120 THREAD_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 121 THREAD_INFO_TYPE_CPU_TIME, //!< CPU 時間 122 THREAD_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 123 THREAD_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 124 THREAD_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 125 THREAD_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 126 THREAD_INFO_TYPE_UPTIME, //!< 稼働時間 127 128 THREAD_INFO_TYPE_MAX_BIT = (1u << 31) 129 }; 130 131 /* 132 @enum HandleInfoType 133 134 @brief ハンドル情報の種別を表します。 135 */ 136 enum HandleInfoType 137 { 138 HANDLE_INFO_TYPE_CREATION_TIME, //!< 作成時間 139 HANDLE_INFO_TYPE_REFERENCE_COUNT, //!< 参照カウント 140 HANDLE_INFO_TYPE_PARENT_PROCESS_ID, //!< 親プロセス ID 141 142 HANDLE_INFO_TYPE_MAX_BIT = (1u << 31) 143 }; 144 145 /* 146 @enum ArbitrationType 147 148 @brief 同期オブジェクトへの操作種別を表します。 149 */ 150 enum ArbitrationType 151 { 152 ARBITRATION_TYPE_SIGNAL, 153 ARBITRATION_TYPE_WAIT_IF_LESS_THAN, 154 ARBITRATION_TYPE_DECREMENT_AND_WAIT_IF_LESS_THAN, 155 156 ARBITRATION_TYPE_MAX_BIT = (1u << 31) 157 }; 158 159 160 enum ResetType 161 { 162 RESET_TYPE_ONESHOT, 163 RESET_TYPE_STICKY, 164 RESET_TYPE_PULSE, 165 166 RESET_TYPE_MAX_BIT = (1u << 31) 167 }; 168 169 170 } // end of namespace os 171 } // end of namespace nn 172 173 #endif // __cplusplus 174 175 #endif // ifndef NN_OS_OS_TYPES_H_ 176