87 |
/* Same as hurd_cap_class_create, but doesn't allocate the storage for |
/* Same as hurd_cap_class_create, but doesn't allocate the storage for |
88 |
CAP_CLASS. Instead, you have to provide it. */ |
CAP_CLASS. Instead, you have to provide it. */ |
89 |
error_t |
error_t |
90 |
hurd_cap_class_init (hurd_cap_class_t cap_class, |
hurd_cap_class_init_untyped (hurd_cap_class_t cap_class, |
91 |
size_t size, size_t alignment, |
size_t size, size_t alignment, |
92 |
hurd_cap_obj_init_t obj_init, |
hurd_cap_obj_init_t obj_init, |
93 |
hurd_cap_obj_alloc_t obj_alloc, |
hurd_cap_obj_alloc_t obj_alloc, |
94 |
hurd_cap_obj_reinit_t obj_reinit, |
hurd_cap_obj_reinit_t obj_reinit, |
95 |
hurd_cap_obj_destroy_t obj_destroy, |
hurd_cap_obj_destroy_t obj_destroy, |
96 |
hurd_cap_class_demuxer_t demuxer) |
hurd_cap_class_demuxer_t demuxer) |
97 |
{ |
{ |
98 |
error_t err; |
error_t err; |
99 |
|
|
100 |
assert (size >= sizeof (struct hurd_cap_obj)); |
size += hurd_cap_obj_get_size (alignment); |
101 |
|
|
102 |
|
/* FIXME: Find the smallest possible alignment common to the user |
103 |
|
object and a struct hurd_cap_obj. */ |
104 |
assert (alignment >= __alignof__(struct hurd_cap_obj)); |
assert (alignment >= __alignof__(struct hurd_cap_obj)); |
105 |
|
|
106 |
/* Capability object management. */ |
/* Capability object management. */ |