Core/ResourceLimits: Implemented the basic structure of ResourceLimits.

Implemented svcs GetResourceLimit, GetResourceLimitCurrentValues and GetResourceLimitLimitValues.

Note that the resource limits do not currently keep track of used objects, since we have no way to distinguish between an object created by the application, and an object created by some HLE module once we're inside Kernel::T::Create.
This commit is contained in:
Subv 2015-05-12 15:25:15 -05:00
parent bb68933894
commit d3634d4bf4
12 changed files with 341 additions and 14 deletions

View file

@ -45,6 +45,8 @@ union ProcessFlags {
BitField<12, 1, u16> loaded_high; ///< Application loaded high (not at 0x00100000).
};
class ResourceLimit;
class Process final : public Object {
public:
static SharedPtr<Process> Create(std::string name, u64 program_id);
@ -61,6 +63,8 @@ public:
std::string name;
/// Title ID corresponding to the process
u64 program_id;
/// Resource limit descriptor for this process
SharedPtr<ResourceLimit> resource_limit;
/// The process may only call SVCs which have the corresponding bit set.
std::bitset<0x80> svc_access_mask;