summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-04-20 21:26:54 -0400
committerGravatar GitHub2018-04-20 21:26:54 -0400
commit1723b4d8d477a1b9ee3f4ef4d6dcdce9af9521f4 (patch)
tree6e829a57945033a156e0fafed9ce53fe341f6a12 /src
parentMerge pull request #371 from lioncash/global (diff)
parentresource_limit: Make ResourceTypes an enum class (diff)
downloadyuzu-1723b4d8d477a1b9ee3f4ef4d6dcdce9af9521f4.tar.gz
yuzu-1723b4d8d477a1b9ee3f4ef4d6dcdce9af9521f4.tar.xz
yuzu-1723b4d8d477a1b9ee3f4ef4d6dcdce9af9521f4.zip
Merge pull request #372 from lioncash/enum
resource_limit: Make ResourceTypes an enum class
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/resource_limit.cpp46
-rw-r--r--src/core/hle/kernel/resource_limit.h26
-rw-r--r--src/core/hle/kernel/svc.cpp4
3 files changed, 38 insertions, 38 deletions
diff --git a/src/core/hle/kernel/resource_limit.cpp b/src/core/hle/kernel/resource_limit.cpp
index 0149a3ed6..88ca8ad7e 100644
--- a/src/core/hle/kernel/resource_limit.cpp
+++ b/src/core/hle/kernel/resource_limit.cpp
@@ -34,57 +34,57 @@ SharedPtr<ResourceLimit> ResourceLimit::GetForCategory(ResourceLimitCategory cat
34 } 34 }
35} 35}
36 36
37s32 ResourceLimit::GetCurrentResourceValue(u32 resource) const { 37s32 ResourceLimit::GetCurrentResourceValue(ResourceType resource) const {
38 switch (resource) { 38 switch (resource) {
39 case COMMIT: 39 case ResourceType::Commit:
40 return current_commit; 40 return current_commit;
41 case THREAD: 41 case ResourceType::Thread:
42 return current_threads; 42 return current_threads;
43 case EVENT: 43 case ResourceType::Event:
44 return current_events; 44 return current_events;
45 case MUTEX: 45 case ResourceType::Mutex:
46 return current_mutexes; 46 return current_mutexes;
47 case SEMAPHORE: 47 case ResourceType::Semaphore:
48 return current_semaphores; 48 return current_semaphores;
49 case TIMER: 49 case ResourceType::Timer:
50 return current_timers; 50 return current_timers;
51 case SHARED_MEMORY: 51 case ResourceType::SharedMemory:
52 return current_shared_mems; 52 return current_shared_mems;
53 case ADDRESS_ARBITER: 53 case ResourceType::AddressArbiter:
54 return current_address_arbiters; 54 return current_address_arbiters;
55 case CPU_TIME: 55 case ResourceType::CPUTime:
56 return current_cpu_time; 56 return current_cpu_time;
57 default: 57 default:
58 LOG_ERROR(Kernel, "Unknown resource type=%08X", resource); 58 LOG_ERROR(Kernel, "Unknown resource type=%08X", static_cast<u32>(resource));
59 UNIMPLEMENTED(); 59 UNIMPLEMENTED();
60 return 0; 60 return 0;
61 } 61 }
62} 62}
63 63
64u32 ResourceLimit::GetMaxResourceValue(u32 resource) const { 64u32 ResourceLimit::GetMaxResourceValue(ResourceType resource) const {
65 switch (resource) { 65 switch (resource) {
66 case PRIORITY: 66 case ResourceType::Priority:
67 return max_priority; 67 return max_priority;
68 case COMMIT: 68 case ResourceType::Commit:
69 return max_commit; 69 return max_commit;
70 case THREAD: 70 case ResourceType::Thread:
71 return max_threads; 71 return max_threads;
72 case EVENT: 72 case ResourceType::Event:
73 return max_events; 73 return max_events;
74 case MUTEX: 74 case ResourceType::Mutex:
75 return max_mutexes; 75 return max_mutexes;
76 case SEMAPHORE: 76 case ResourceType::Semaphore:
77 return max_semaphores; 77 return max_semaphores;
78 case TIMER: 78 case ResourceType::Timer:
79 return max_timers; 79 return max_timers;
80 case SHARED_MEMORY: 80 case ResourceType::SharedMemory:
81 return max_shared_mems; 81 return max_shared_mems;
82 case ADDRESS_ARBITER: 82 case ResourceType::AddressArbiter:
83 return max_address_arbiters; 83 return max_address_arbiters;
84 case CPU_TIME: 84 case ResourceType::CPUTime:
85 return max_cpu_time; 85 return max_cpu_time;
86 default: 86 default:
87 LOG_ERROR(Kernel, "Unknown resource type=%08X", resource); 87 LOG_ERROR(Kernel, "Unknown resource type=%08X", static_cast<u32>(resource));
88 UNIMPLEMENTED(); 88 UNIMPLEMENTED();
89 return 0; 89 return 0;
90 } 90 }
diff --git a/src/core/hle/kernel/resource_limit.h b/src/core/hle/kernel/resource_limit.h
index 1a0ca11f1..cc689a27a 100644
--- a/src/core/hle/kernel/resource_limit.h
+++ b/src/core/hle/kernel/resource_limit.h
@@ -16,17 +16,17 @@ enum class ResourceLimitCategory : u8 {
16 OTHER = 3 16 OTHER = 3
17}; 17};
18 18
19enum ResourceTypes { 19enum class ResourceType {
20 PRIORITY = 0, 20 Priority = 0,
21 COMMIT = 1, 21 Commit = 1,
22 THREAD = 2, 22 Thread = 2,
23 EVENT = 3, 23 Event = 3,
24 MUTEX = 4, 24 Mutex = 4,
25 SEMAPHORE = 5, 25 Semaphore = 5,
26 TIMER = 6, 26 Timer = 6,
27 SHARED_MEMORY = 7, 27 SharedMemory = 7,
28 ADDRESS_ARBITER = 8, 28 AddressArbiter = 8,
29 CPU_TIME = 9, 29 CPUTime = 9,
30}; 30};
31 31
32class ResourceLimit final : public Object { 32class ResourceLimit final : public Object {
@@ -60,14 +60,14 @@ public:
60 * @param resource Requested resource type 60 * @param resource Requested resource type
61 * @returns The current value of the resource type 61 * @returns The current value of the resource type
62 */ 62 */
63 s32 GetCurrentResourceValue(u32 resource) const; 63 s32 GetCurrentResourceValue(ResourceType resource) const;
64 64
65 /** 65 /**
66 * Gets the max value for the specified resource. 66 * Gets the max value for the specified resource.
67 * @param resource Requested resource type 67 * @param resource Requested resource type
68 * @returns The max value of the resource type 68 * @returns The max value of the resource type
69 */ 69 */
70 u32 GetMaxResourceValue(u32 resource) const; 70 u32 GetMaxResourceValue(ResourceType resource) const;
71 71
72 /// Name of resource limit object. 72 /// Name of resource limit object.
73 std::string name; 73 std::string name;
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 6204bcaaa..633740992 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -407,7 +407,7 @@ static ResultCode SetThreadPriority(Handle handle, u32 priority) {
407 // Note: The kernel uses the current process's resource limit instead of 407 // Note: The kernel uses the current process's resource limit instead of
408 // the one from the thread owner's resource limit. 408 // the one from the thread owner's resource limit.
409 SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit; 409 SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit;
410 if (resource_limit->GetMaxResourceValue(ResourceTypes::PRIORITY) > priority) { 410 if (resource_limit->GetMaxResourceValue(ResourceType::Priority) > priority) {
411 return ERR_NOT_AUTHORIZED; 411 return ERR_NOT_AUTHORIZED;
412 } 412 }
413 413
@@ -541,7 +541,7 @@ static ResultCode CreateThread(Handle* out_handle, VAddr entry_point, u64 arg, V
541 } 541 }
542 542
543 SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit; 543 SharedPtr<ResourceLimit>& resource_limit = Core::CurrentProcess()->resource_limit;
544 if (resource_limit->GetMaxResourceValue(ResourceTypes::PRIORITY) > priority) { 544 if (resource_limit->GetMaxResourceValue(ResourceType::Priority) > priority) {
545 return ERR_NOT_AUTHORIZED; 545 return ERR_NOT_AUTHORIZED;
546 } 546 }
547 547