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