Files
codezero/conts/posix/mm0/include/capability.h
Bahadir Balban dc03c7b130 Implemented a protocol between client and pager for requesting caps.
In posix, test0 makes inter-space ipc for testing extended ipc. This
correctly fails when only the cap to ipc to pager is given to all tasks
in the container.

In order to overcome this problem, the tasks who fork for doing ipc to
each other make a request to the pager to get capabilities to do so.

Pager finds its own widened ipc capability over the container, replicates
it, validates and reduces it to desired boundaries (i.e. just ipc betw.
two spaces) and grants it as IMMUTABLE to requesting tasks.

This protocol may be useful in implementing a client/server capability
request relationship. Code builds but untested.
2009-11-08 14:15:33 +02:00

24 lines
528 B
C

/*
* Capability-related operations of the pager.
*
* Copyright (C) 2009 Bahadir Balban
*/
#ifndef __MM0_CAPABILITY_H__
#define __MM0_CAPABILITY_H__
#include <l4lib/capability.h>
#include <task.h>
extern struct cap_list capability_list;
struct initdata;
int read_pager_capabilities();
void copy_boot_capabilities();
int sys_request_cap(struct tcb *sender, struct capability *c);
void cap_print(struct capability *cap);
void cap_list_print(struct cap_list *cap_list);
void setup_caps();
#endif /* __MM0_CAPABILITY_H__ */