46 |
The new capability class is returned in R_CLASS. If the creation |
The new capability class is returned in R_CLASS. If the creation |
47 |
fails, an error value will be returned. */ |
fails, an error value will be returned. */ |
48 |
error_t |
error_t |
49 |
hurd_cap_class_create (size_t size, size_t alignment, |
hurd_cap_class_create_untyped (size_t size, size_t alignment, |
50 |
hurd_cap_obj_init_t obj_init, |
hurd_cap_obj_init_t obj_init, |
51 |
hurd_cap_obj_alloc_t obj_alloc, |
hurd_cap_obj_alloc_t obj_alloc, |
52 |
hurd_cap_obj_reinit_t obj_reinit, |
hurd_cap_obj_reinit_t obj_reinit, |
53 |
hurd_cap_obj_destroy_t obj_destroy, |
hurd_cap_obj_destroy_t obj_destroy, |
54 |
hurd_cap_class_demuxer_t demuxer, |
hurd_cap_class_demuxer_t demuxer, |
55 |
hurd_cap_class_t *r_class) |
hurd_cap_class_t *r_class) |
56 |
{ |
{ |
57 |
error_t err; |
error_t err; |
58 |
hurd_cap_class_t cap_class = malloc (sizeof (struct hurd_cap_class)); |
hurd_cap_class_t cap_class = malloc (sizeof (struct hurd_cap_class)); |
60 |
if (!cap_class) |
if (!cap_class) |
61 |
return errno; |
return errno; |
62 |
|
|
63 |
err = hurd_cap_class_init (cap_class, size, alignment, obj_init, obj_alloc, |
err = hurd_cap_class_init_untyped (cap_class, size, alignment, obj_init, |
64 |
obj_reinit, obj_destroy, demuxer); |
obj_alloc, obj_reinit, obj_destroy, |
65 |
|
demuxer); |
66 |
if (err) |
if (err) |
67 |
{ |
{ |
68 |
free (cap_class); |
free (cap_class); |