45 |
|
|
46 |
/* Container objects. */ |
/* Container objects. */ |
47 |
|
|
48 |
|
struct container |
49 |
|
{ |
50 |
|
/* For now, a container is nothing more than a contiguous, |
51 |
|
page-aligned range of memory. This is the reason why |
52 |
|
L4_FPAGE_SPAN_MAX fpages are sufficient. */ |
53 |
|
l4_fpage_t fpages[L4_FPAGE_SPAN_MAX]; |
54 |
|
|
55 |
|
/* The number of entries in FPAGES. */ |
56 |
|
l4_word_t nr_fpages; |
57 |
|
}; |
58 |
|
typedef struct container *container_t; |
59 |
|
|
60 |
|
|
61 |
/* Initialize the container class subsystem. */ |
/* Initialize the container class subsystem. */ |
62 |
error_t container_class_init (); |
error_t container_class_init (); |
63 |
|
|
64 |
|
|
65 |
/* Allocate a new container object covering the NR_FPAGES fpages |
/* Allocate a new container object covering the NR_FPAGES fpages |
66 |
listed in FPAGES. The object returned is locked and has one |
listed in FPAGES. The object returned is locked and has one |
67 |
reference. */ |
reference. */ |
68 |
error_t container_alloc (l4_word_t nr_fpages, l4_word_t *fpages, |
error_t container_alloc (l4_word_t nr_fpages, l4_word_t *fpages, |
69 |
hurd_cap_obj_t *r_obj); |
container_t *r_container); |