mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-22 20:15:20 +00:00
parent
e49a5ee19f
commit
b902f42482
@ -166,20 +166,15 @@ class Genode::Slave
|
|||||||
|
|
||||||
class Quota_exceeded : public Genode::Exception { };
|
class Quota_exceeded : public Genode::Exception { };
|
||||||
|
|
||||||
Resources(const char *label, Genode::size_t ram_quota)
|
Resources(const char *label, Genode::size_t ram_quota,
|
||||||
|
Ram_session_capability ram_ref_cap)
|
||||||
: pd(label), ram(label), cpu(label)
|
: pd(label), ram(label), cpu(label)
|
||||||
{
|
{
|
||||||
/*
|
ram.ref_account(ram_ref_cap);
|
||||||
* XXX derive donated quota from information to be provided by
|
Ram_session_client ram_ref(ram_ref_cap);
|
||||||
* the used 'Connection' interfaces
|
|
||||||
*/
|
if (ram_ref.transfer_quota(ram.cap(), ram_quota))
|
||||||
enum { DONATED_RAM_QUOTA = 128*1024 };
|
|
||||||
if (ram_quota > DONATED_RAM_QUOTA)
|
|
||||||
ram_quota -= DONATED_RAM_QUOTA;
|
|
||||||
else
|
|
||||||
throw Quota_exceeded();
|
throw Quota_exceeded();
|
||||||
ram.ref_account(Genode::env()->ram_session_cap());
|
|
||||||
Genode::env()->ram_session()->transfer_quota(ram.cap(), ram_quota);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -190,9 +185,10 @@ class Genode::Slave
|
|||||||
|
|
||||||
Slave(Genode::Rpc_entrypoint &entrypoint,
|
Slave(Genode::Rpc_entrypoint &entrypoint,
|
||||||
Slave_policy &slave_policy,
|
Slave_policy &slave_policy,
|
||||||
Genode::size_t ram_quota)
|
Genode::size_t ram_quota,
|
||||||
|
Ram_session_capability ram_ref_cap = env()->ram_session_cap())
|
||||||
:
|
:
|
||||||
_resources(slave_policy.name(), ram_quota),
|
_resources(slave_policy.name(), ram_quota, ram_ref_cap),
|
||||||
_child(slave_policy.binary(), _resources.pd.cap(),
|
_child(slave_policy.binary(), _resources.pd.cap(),
|
||||||
_resources.ram.cap(), _resources.cpu.cap(),
|
_resources.ram.cap(), _resources.cpu.cap(),
|
||||||
_resources.rm.cap(), &entrypoint, &slave_policy)
|
_resources.rm.cap(), &entrypoint, &slave_policy)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user