|
|
|
@ -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; |
|
|
|
|