/*---------------------------------------------------------------------------* Project: Horizon File: os_Types.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 29093 $ *---------------------------------------------------------------------------*/ /* @file :include nn/os.h */ #ifndef NN_OS_OS_TYPES_H_ #define NN_OS_OS_TYPES_H_ #ifdef __cplusplus namespace nn { namespace os { /* @enum LimitableResource @brief リソース制限の種別を表します。 */ enum LimitableResource { LIMITABLE_RESOURCE_MAX_PRIORITY, //!< スレッド優先度の制限 LIMITABLE_RESOURCE_MAX_COMMIT, //!< 消費する物理メモリの制限 LIMITABLE_RESOURCE_MAX_THREAD, //!< スレッド数の制限 LIMITABLE_RESOURCE_MAX_EVENT, LIMITABLE_RESOURCE_MAX_MUTEX, LIMITABLE_RESOURCE_MAX_SEMAPHORE, LIMITABLE_RESOURCE_MAX_TIMER, LIMITABLE_RESOURCE_MAX_SHAREDMEMORY, LIMITABLE_RESOURCE_MAX_ADDRESSARBITER, LIMITABLE_RESOURCE_END, LIMITABLE_RESOURCE_MAX_BIT = (1u << 31) }; /* @enum SystemInfoType @brief システム全体にわたる情報の種別を表します。 */ enum SystemInfoType { SYSTEM_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE, //!< 使用物理メモリサイズ SYSTEM_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE, //!< 最大使用物理メモリサイズ SYSTEM_INFO_TYPE_KERNEL_USING_PHYSICAL_MEMORY_SIZE, //!< カーネル使用物理メモリサイズ SYSTEM_INFO_TYPE_MAX_KERNEL_USING_PHYSICAL_MEMORY_SIZE, //!< カーネル最大使用物理メモリサイズ SYSTEM_INFO_TYPE_CPU_LOAD, //!< CPU ロード回数 SYSTEM_INFO_TYPE_CPU_TIME_INTERRUPTS, //!< 割り込み CPU 時間 SYSTEM_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 SYSTEM_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 SYSTEM_INFO_TYPE_CPU_TIME_IDLE, //!< CPU 時間 SYSTEM_INFO_TYPE_NUM_SOFTWARE_INTERRUPTS, //!< ソフトウェア割り込み数 SYSTEM_INFO_TYPE_NUM_HARDWARE_INTERRUPTS, //!< ハードウェア割り込み数 SYSTEM_INFO_TYPE_NUM_INTERRUPTS, //!< 割り込み数 SYSTEM_INFO_TYPE_NUM_EXCEPTIONS, //!< 例外数 SYSTEM_INFO_TYPE_NUM_RUNNABLE_THREADS, //!< 実行可能スレッド数 SYSTEM_INFO_TYPE_NUM_PAGE_CLEAR, //!< ページクリア回数 SYSTEM_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 SYSTEM_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 SYSTEM_INFO_TYPE_NUM_PROCESS_SWITCH, //!< プロセススイッチ回数 SYSTEM_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 SYSTEM_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 SYSTEM_INFO_TYPE_NUM_CREATED_THREADS, //!< 作成したスレッド数 SYSTEM_INFO_TYPE_NUM_CREATED_PROCESSES, //!< 作成したプロセス数 SYSTEM_INFO_TYPE_NUM_THREADS, //!< スレッド数 SYSTEM_INFO_TYPE_NUM_PROCESSES, //!< プロセス数 SYSTEM_INFO_TYPE_MAX_NUM_THREADS, //!< 最大スレッド数 SYSTEM_INFO_TYPE_MAX_NUM_PROCESSES, //!< 最大プロセス数 SYSTEM_INFO_TYPE_NUM_INITIAL_PROCESSES, //!< 初期プロセス数 SYSTEM_INFO_TYPE_MAX_BIT = (1u << 31) }; /* @enum ProcessInfoType @brief プロセス情報の種別を表します。 */ enum ProcessInfoType { PROCESS_INFO_TYPE_USING_PHYSICAL_MEMORY_SIZE, //!< 使用物理メモリサイズ PROCESS_INFO_TYPE_MAX_USING_PHYSICAL_MEMORY_SIZE, //!< 最大使用物理メモリサイズ PROCESS_INFO_TYPE_PRIVATE_PHYSICAL_MEMORY_SIZE, //!< プライベート物理メモリサイズ PROCESS_INFO_TYPE_MAX_RPIVATE_PHYSICAL_MEMORY_SIZE, //!< 最大プライベート物理メモリサイズ PROCESS_INFO_TYPE_NUM_HANDLES, //!< ハンドル数 PROCESS_INFO_TYPE_MAX_NUM_HANDLES, //!< 最大ハンドル数 PROCESS_INFO_TYPE_NUM_CREATED_THREADS, //!< 作成したスレッド数 PROCESS_INFO_TYPE_NUM_THREADS, //!< スレッド数 PROCESS_INFO_TYPE_MAX_NUM_THREADS, //!< 最大スレッド数 PROCESS_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 PROCESS_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 PROCESS_INFO_TYPE_CPU_TIME, //!< CPU 時間 PROCESS_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 PROCESS_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 PROCESS_INFO_TYPE_NUM_PROCESS_SWITCH, //!< プロセススイッチ回数 PROCESS_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 PROCESS_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 PROCESS_INFO_TYPE_UPTIME, //!< 稼働時間 PROCESS_INFO_TYPE_NAME, PROCESS_INFO_TYPE_MAX_BIT = (1u << 31) }; /* @enum ThreadInfoType @brief スレッド情報の種別を表します。 */ enum ThreadInfoType { THREAD_INFO_TYPE_CPU_TIME_SYSTEM, //!< システム CPU 時間 THREAD_INFO_TYPE_CPU_TIME_USER, //!< ユーザー CPU 時間 THREAD_INFO_TYPE_CPU_TIME, //!< CPU 時間 THREAD_INFO_TYPE_NUM_THREAD_SWITCH, //!< スレッドスイッチ回数 THREAD_INFO_TYPE_NUM_FPU_SWITCH, //!< FPU スイッチ回数 THREAD_INFO_TYPE_NUM_SYSTEM_CALL, //!< システムコール回数 THREAD_INFO_TYPE_NUM_IPC, //!< プロセス間通信回数 THREAD_INFO_TYPE_UPTIME, //!< 稼働時間 THREAD_INFO_TYPE_MAX_BIT = (1u << 31) }; /* @enum HandleInfoType @brief ハンドル情報の種別を表します。 */ enum HandleInfoType { HANDLE_INFO_TYPE_CREATION_TIME, //!< 作成時間 HANDLE_INFO_TYPE_REFERENCE_COUNT, //!< 参照カウント HANDLE_INFO_TYPE_PARENT_PROCESS_ID, //!< 親プロセス ID HANDLE_INFO_TYPE_MAX_BIT = (1u << 31) }; /* @enum ArbitrationType @brief 同期オブジェクトへの操作種別を表します。 */ enum ArbitrationType { ARBITRATION_TYPE_SIGNAL, ARBITRATION_TYPE_WAIT_IF_LESS_THAN, ARBITRATION_TYPE_DECREMENT_AND_WAIT_IF_LESS_THAN, ARBITRATION_TYPE_MAX_BIT = (1u << 31) }; enum ResetType { RESET_TYPE_ONESHOT, RESET_TYPE_STICKY, RESET_TYPE_PULSE, RESET_TYPE_MAX_BIT = (1u << 31) }; } // end of namespace os } // end of namespace nn #endif // __cplusplus #endif // ifndef NN_OS_OS_TYPES_H_