From 010bc677f36304964e753057740a8ca32a7dcb83 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 19 Dec 2018 21:14:47 -0500 Subject: kernel/process_capability: Handle program capability flags --- src/core/hle/kernel/process_capability.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/core/hle/kernel/process_capability.h') diff --git a/src/core/hle/kernel/process_capability.h b/src/core/hle/kernel/process_capability.h index 4c151b3d5..140d60267 100644 --- a/src/core/hle/kernel/process_capability.h +++ b/src/core/hle/kernel/process_capability.h @@ -14,6 +14,14 @@ namespace Kernel { class VMManager; +/// The possible types of programs that may be indicated +/// by the program type capability descriptor. +enum class ProgramType { + SysModule, + Application, + Applet, +}; + /// Handles kernel capability descriptors that are provided by /// application metadata. These descriptors provide information /// that alters certain parameters for kernel process instance @@ -137,6 +145,16 @@ public: return svc_capabilities; } + /// Gets the valid interrupt bits. + const InterruptCapabilities& GetInterruptCapabilities() const { + return interrupt_capabilities; + } + + /// Gets the program type for this process. + ProgramType GetProgramType() const { + return program_type; + } + private: /// Attempts to parse a given sequence of capability descriptors. /// @@ -215,7 +233,8 @@ private: u32 handle_table_size = 0; u32 kernel_version = 0; - u32 program_type = 0; + + ProgramType program_type = ProgramType::SysModule; bool is_debuggable = false; bool can_force_debug = false; -- cgit v1.2.3