Lots of fixes, notion of pager hierarchy, fixed tgroup capability checking

Notion of pager hierarchy introduced using the existing but unused
pagerid field.

Thread creation now has two more flags TC_AS_PAGER and TC_SHARE_PAGER.
The former sets creator as pager, the latter sets creator's pager as pager.

Thread group capability sharing now correctly carries shared capabilities
to the thread group leader's tgr_cap_list list, and this list is checked
during capability checking.
This commit is contained in:
Bahadir Balban
2009-10-23 02:36:12 +03:00
parent df776b568f
commit 89d49ef495
8 changed files with 44 additions and 15 deletions

View File

@@ -60,10 +60,9 @@ struct ktcb {
struct link rq_list;
struct runqueue *rq;
/* Thread information */
/* Thread Id information (See space for space id) */
l4id_t tid; /* Global thread id */
l4id_t tgid; /* Global thread group id */
/* See space for space id */
/* Flags to indicate various task status */
unsigned int flags;
@@ -105,6 +104,7 @@ struct ktcb {
/* Capability lists */
struct cap_list cap_list;
struct cap_list tgr_cap_list;
struct cap_list pager_cap_list;
/* Fields for ipc rendezvous */
struct waitqueue_head wqh_recv;