Add and use enum ResourceLimitType (#367)

This commit is contained in:
TuxSH 2017-07-31 15:21:03 +02:00 committed by Dave Murphy
parent 532fbef44f
commit 6a6dc3be4a

View File

@ -102,6 +102,22 @@ typedef enum {
THREADINFO_TYPE_UNKNOWN ///< Unknown. THREADINFO_TYPE_UNKNOWN ///< Unknown.
} ThreadInfoType; } ThreadInfoType;
/// Types of resource limit
typedef enum {
RESLIMIT_PRIORITY = 0, ///< Thread priority
RESLIMIT_COMMIT = 1, ///< Quantity of allocatable memory
RESLIMIT_THREAD = 2, ///< Number of threads
RESLIMIT_EVENT = 3, ///< Number of events
RESLIMIT_MUTEX = 4, ///< Number of mutexes
RESLIMIT_SEMAPHORE = 5, ///< Number of semaphores
RESLIMIT_TIMER = 6, ///< Number of timers
RESLIMIT_SHAREDMEMORY = 7, ///< Number of shared memory objects, see @ref svcCreateMemoryBlock
RESLIMIT_ADDRESSARBITER = 8, ///< Number of address arbiters
RESLIMIT_CPUTIME = 9, ///< CPU time. Value expressed in percentage regular until it reaches 90.
RESLIMIT_BIT = BIT(31), ///< Forces enum size to be 32 bits
} ResourceLimitType;
/// Pseudo handle for the current thread /// Pseudo handle for the current thread
#define CUR_THREAD_HANDLE 0xFFFF8000 #define CUR_THREAD_HANDLE 0xFFFF8000
@ -765,7 +781,7 @@ Result svcGetResourceLimit(Handle* resourceLimit, Handle process);
* @param names Resource limit names to get the limits of. * @param names Resource limit names to get the limits of.
* @param nameCount Number of resource limit names. * @param nameCount Number of resource limit names.
*/ */
Result svcGetResourceLimitLimitValues(s64* values, Handle resourceLimit, u32* names, s32 nameCount); Result svcGetResourceLimitLimitValues(s64* values, Handle resourceLimit, ResourceLimitType* names, s32 nameCount);
/** /**
* @brief Gets the values of a resource limit set. * @brief Gets the values of a resource limit set.
@ -774,7 +790,7 @@ Result svcGetResourceLimitLimitValues(s64* values, Handle resourceLimit, u32* na
* @param names Resource limit names to get the values of. * @param names Resource limit names to get the values of.
* @param nameCount Number of resource limit names. * @param nameCount Number of resource limit names.
*/ */
Result svcGetResourceLimitCurrentValues(s64* values, Handle resourceLimit, u32* names, s32 nameCount); Result svcGetResourceLimitCurrentValues(s64* values, Handle resourceLimit, ResourceLimitType* names, s32 nameCount);
/** /**
* @brief Sets the resource limit set of a process. * @brief Sets the resource limit set of a process.
@ -793,10 +809,11 @@ Result svcCreateResourceLimit(Handle* resourceLimit);
* @brief Sets the value limits of a resource limit set. * @brief Sets the value limits of a resource limit set.
* @param resourceLimit Resource limit set to use. * @param resourceLimit Resource limit set to use.
* @param names Resource limit names to set the limits of. * @param names Resource limit names to set the limits of.
* @param values Value limits to set. * @param values Value limits to set. The high 32 bits of RESLIMIT_COMMIT are used to
set APPMEMALLOC in configuration memory, otherwise those bits are unused.
* @param nameCount Number of resource limit names. * @param nameCount Number of resource limit names.
*/ */
Result svcSetResourceLimitValues(Handle resourceLimit, const u32* names, const s64* values, s32 nameCount); Result svcSetResourceLimitValues(Handle resourceLimit, const ResourceLimitType* names, const s64* values, s32 nameCount);
/** /**
* @brief Gets the process ID of a thread. * @brief Gets the process ID of a thread.