diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/file_sys/program_metadata.cpp | 15 | ||||
| -rw-r--r-- | src/core/file_sys/program_metadata.h | 5 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/core/file_sys/program_metadata.cpp b/src/core/file_sys/program_metadata.cpp index d863253f8..eb76174c5 100644 --- a/src/core/file_sys/program_metadata.cpp +++ b/src/core/file_sys/program_metadata.cpp | |||
| @@ -51,6 +51,21 @@ Loader::ResultStatus ProgramMetadata::Load(VirtualFile file) { | |||
| 51 | return Loader::ResultStatus::Success; | 51 | return Loader::ResultStatus::Success; |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | void ProgramMetadata::LoadManual(bool is_64_bit, ProgramAddressSpaceType address_space, | ||
| 55 | u8 main_thread_prio, u8 main_thread_core, | ||
| 56 | u32 main_thread_stack_size, u64 title_id, | ||
| 57 | u64 filesystem_permissions, | ||
| 58 | KernelCapabilityDescriptors capabilities) { | ||
| 59 | npdm_header.has_64_bit_instructions.Assign(is_64_bit); | ||
| 60 | npdm_header.address_space_type.Assign(address_space); | ||
| 61 | npdm_header.main_thread_priority = main_thread_prio; | ||
| 62 | npdm_header.main_thread_cpu = main_thread_core; | ||
| 63 | npdm_header.main_stack_size = main_thread_stack_size; | ||
| 64 | aci_header.title_id = title_id; | ||
| 65 | aci_file_access.permissions = filesystem_permissions; | ||
| 66 | aci_kernel_capabilities = std ::move(capabilities); | ||
| 67 | } | ||
| 68 | |||
| 54 | bool ProgramMetadata::Is64BitProgram() const { | 69 | bool ProgramMetadata::Is64BitProgram() const { |
| 55 | return npdm_header.has_64_bit_instructions; | 70 | return npdm_header.has_64_bit_instructions; |
| 56 | } | 71 | } |
diff --git a/src/core/file_sys/program_metadata.h b/src/core/file_sys/program_metadata.h index 7de5b9cf9..43bf2820a 100644 --- a/src/core/file_sys/program_metadata.h +++ b/src/core/file_sys/program_metadata.h | |||
| @@ -46,6 +46,11 @@ public: | |||
| 46 | 46 | ||
| 47 | Loader::ResultStatus Load(VirtualFile file); | 47 | Loader::ResultStatus Load(VirtualFile file); |
| 48 | 48 | ||
| 49 | // Load from parameters instead of NPDM file, used for KIP | ||
| 50 | void LoadManual(bool is_64_bit, ProgramAddressSpaceType address_space, u8 main_thread_prio, | ||
| 51 | u8 main_thread_core, u32 main_thread_stack_size, u64 title_id, | ||
| 52 | u64 filesystem_permissions, KernelCapabilityDescriptors capabilities); | ||
| 53 | |||
| 49 | bool Is64BitProgram() const; | 54 | bool Is64BitProgram() const; |
| 50 | ProgramAddressSpaceType GetAddressSpaceType() const; | 55 | ProgramAddressSpaceType GetAddressSpaceType() const; |
| 51 | u8 GetMainThreadPriority() const; | 56 | u8 GetMainThreadPriority() const; |