mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
Make Child's reference RAM session configurable
The 'Child' framework used to perform the transfer of session quota using 'env()->ram_session()' as hard-wired reference account. When locally virtualizing the RAM session supplied to the 'Child', this policy does not work. When closing a session, core would try to transfer session quota to the virtualized RAM service, which is of course not possible. This patch makes the reference RAM session configable via the 'Child_policy' interface.
This commit is contained in:
parent
15f0879402
commit
e4cefe58d5
@ -84,6 +84,14 @@ namespace Genode {
|
|||||||
{
|
{
|
||||||
PDBG("child exited with exit value %d", exit_value);
|
PDBG("child exited with exit value %d", exit_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reference RAM session
|
||||||
|
*
|
||||||
|
* The RAM session returned by this function is used for session-quota
|
||||||
|
* transfers.
|
||||||
|
*/
|
||||||
|
virtual Ram_session *ref_ram_session() { return env()->ram_session(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -333,7 +341,7 @@ namespace Genode {
|
|||||||
_session_list.remove(s);
|
_session_list.remove(s);
|
||||||
|
|
||||||
/* return session quota to the ram session of the child */
|
/* return session quota to the ram session of the child */
|
||||||
if (env()->ram_session()->transfer_quota(_ram, s->donated_ram_quota()))
|
if (_policy->ref_ram_session()->transfer_quota(_ram, s->donated_ram_quota()))
|
||||||
PERR("We ran out of our own quota");
|
PERR("We ran out of our own quota");
|
||||||
|
|
||||||
destroy(heap(), s);
|
destroy(heap(), s);
|
||||||
|
Loading…
Reference in New Issue
Block a user