summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/kernel/process.h2
-rw-r--r--src/core/hle/kernel/svc.cpp12
-rw-r--r--src/core/hle/kernel/svc.h13
-rw-r--r--src/core/hle/kernel/vm_manager.cpp4
4 files changed, 29 insertions, 2 deletions
diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index 20b4e401c..add98472f 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -131,6 +131,8 @@ public:
131 /// Bitmask of allowed CPUs that this process' threads can run on. TODO(Subv): Actually parse 131 /// Bitmask of allowed CPUs that this process' threads can run on. TODO(Subv): Actually parse
132 /// this value from the process header. 132 /// this value from the process header.
133 u32 allowed_processor_mask = THREADPROCESSORID_DEFAULT_MASK; 133 u32 allowed_processor_mask = THREADPROCESSORID_DEFAULT_MASK;
134 u32 allowed_thread_priority_mask = 0xFFFFFFFF;
135 u32 is_virtual_address_memory_enabled = 0;
134 /// Current status of the process 136 /// Current status of the process
135 ProcessStatus status; 137 ProcessStatus status;
136 138
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 9c60576c1..2f1b79f32 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -313,6 +313,15 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id)
313 case GetInfoType::AllowedCpuIdBitmask: 313 case GetInfoType::AllowedCpuIdBitmask:
314 *result = g_current_process->allowed_processor_mask; 314 *result = g_current_process->allowed_processor_mask;
315 break; 315 break;
316 case GetInfoType::AllowedThreadPrioBitmask:
317 *result = g_current_process->allowed_thread_priority_mask;
318 break;
319 case GetInfoType::MapRegionBaseAddr:
320 *result = vm_manager.GetAddressSpaceBaseAddr();
321 break;
322 case GetInfoType::MapRegionSize:
323 *result = vm_manager.GetAddressSpaceSize();
324 break;
316 case GetInfoType::TotalMemoryUsage: 325 case GetInfoType::TotalMemoryUsage:
317 *result = vm_manager.GetTotalMemoryUsage(); 326 *result = vm_manager.GetTotalMemoryUsage();
318 break; 327 break;
@@ -334,6 +343,9 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id)
334 case GetInfoType::NewMapRegionSize: 343 case GetInfoType::NewMapRegionSize:
335 *result = vm_manager.GetNewMapRegionSize(); 344 *result = vm_manager.GetNewMapRegionSize();
336 break; 345 break;
346 case GetInfoType::IsVirtualAddressMemoryEnabled:
347 *result = g_current_process->is_virtual_address_memory_enabled;
348 break;
337 default: 349 default:
338 UNIMPLEMENTED(); 350 UNIMPLEMENTED();
339 } 351 }
diff --git a/src/core/hle/kernel/svc.h b/src/core/hle/kernel/svc.h
index 610cd1d7d..a56fd3602 100644
--- a/src/core/hle/kernel/svc.h
+++ b/src/core/hle/kernel/svc.h
@@ -24,14 +24,27 @@ struct PageInfo {
24enum class GetInfoType : u64 { 24enum class GetInfoType : u64 {
25 // 1.0.0+ 25 // 1.0.0+
26 AllowedCpuIdBitmask = 0, 26 AllowedCpuIdBitmask = 0,
27 AllowedThreadPrioBitmask = 1,
28 MapRegionBaseAddr = 2,
29 MapRegionSize = 3,
30 HeapRegionBaseAddr = 4,
31 HeapRegionSize = 5,
27 TotalMemoryUsage = 6, 32 TotalMemoryUsage = 6,
28 TotalHeapUsage = 7, 33 TotalHeapUsage = 7,
34 IsCurrentProcessBeingDebugged = 8,
35 ResourceHandleLimit = 9,
36 IdleTickCount = 10,
29 RandomEntropy = 11, 37 RandomEntropy = 11,
38 PerformanceCounter = 0xF0000002,
30 // 2.0.0+ 39 // 2.0.0+
31 AddressSpaceBaseAddr = 12, 40 AddressSpaceBaseAddr = 12,
32 AddressSpaceSize = 13, 41 AddressSpaceSize = 13,
33 NewMapRegionBaseAddr = 14, 42 NewMapRegionBaseAddr = 14,
34 NewMapRegionSize = 15, 43 NewMapRegionSize = 15,
44 // 3.0.0+
45 IsVirtualAddressMemoryEnabled = 16,
46 TitleId = 18,
47 PrivilegedProcessId = 19,
35}; 48};
36 49
37void CallSVC(u32 immediate); 50void CallSVC(u32 immediate);
diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp
index dca637dde..d6d0ad996 100644
--- a/src/core/hle/kernel/vm_manager.cpp
+++ b/src/core/hle/kernel/vm_manager.cpp
@@ -356,12 +356,12 @@ void VMManager::UpdatePageTableForVMA(const VirtualMemoryArea& vma) {
356 356
357u64 VMManager::GetTotalMemoryUsage() { 357u64 VMManager::GetTotalMemoryUsage() {
358 LOG_WARNING(Kernel, "(STUBBED) called"); 358 LOG_WARNING(Kernel, "(STUBBED) called");
359 return 0x400000; 359 return 0xBE000000;
360} 360}
361 361
362u64 VMManager::GetTotalHeapUsage() { 362u64 VMManager::GetTotalHeapUsage() {
363 LOG_WARNING(Kernel, "(STUBBED) called"); 363 LOG_WARNING(Kernel, "(STUBBED) called");
364 return 0x10000; 364 return 0x0;
365} 365}
366 366
367VAddr VMManager::GetAddressSpaceBaseAddr() { 367VAddr VMManager::GetAddressSpaceBaseAddr() {