diff options
Diffstat (limited to 'src/core/hle/kernel')
| -rw-r--r-- | src/core/hle/kernel/process.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/kernel/process.h | 10 | 
2 files changed, 11 insertions, 0 deletions
| diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp index a8e3098ca..dc9fc8470 100644 --- a/src/core/hle/kernel/process.cpp +++ b/src/core/hle/kernel/process.cpp @@ -47,6 +47,7 @@ SharedPtr<Process> Process::Create(KernelCore& kernel, std::string&& name) {  void Process::LoadFromMetadata(const FileSys::ProgramMetadata& metadata) {      program_id = metadata.GetTitleID(); +    is_64bit_process = metadata.Is64BitProgram();      vm_manager.Reset(metadata.GetAddressSpaceType());  } diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h index 2dfb88fa9..590e0c73d 100644 --- a/src/core/hle/kernel/process.h +++ b/src/core/hle/kernel/process.h @@ -189,6 +189,11 @@ public:          return is_virtual_address_memory_enabled;      } +    /// Whether this process is an AArch64 or AArch32 process. +    bool Is64BitProcess() const { +        return is_64bit_process; +    } +      /**       * Loads process-specifics configuration info with metadata provided       * by an executable. @@ -287,6 +292,11 @@ private:      /// This vector will grow as more pages are allocated for new threads.      std::vector<std::bitset<8>> tls_slots; +    /// Whether or not this process is AArch64, or AArch32. +    /// By default, we currently assume this is true, unless otherwise +    /// specified by metadata provided to the process during loading. +    bool is_64bit_process = true; +      std::string name;  }; | 
