1 |
/* Copyright (C) 2003 Free Software Foundation, Inc. |
/* slab.h - The GNU Hurd slab allocator interface. |
2 |
|
Copyright (C) 2003 Free Software Foundation, Inc. |
3 |
Written by Marcus Brinkmann <marcus@gnu.org> |
Written by Marcus Brinkmann <marcus@gnu.org> |
4 |
|
|
5 |
This file is part of the GNU Hurd. |
This file is part of the GNU Hurd. |
25 |
#include <errno.h> |
#include <errno.h> |
26 |
|
|
27 |
|
|
28 |
|
/* A slab space is an opaque type. */ |
29 |
|
struct hurd_slab_space; |
30 |
|
typedef struct hurd_slab_space *hurd_slab_space_t; |
31 |
|
|
32 |
/* Initialize the slab object pointed to by BUFFER. */ |
/* Initialize the slab object pointed to by BUFFER. */ |
33 |
typedef error_t (*hurd_slab_constructor_t) (void *buffer); |
typedef error_t (*hurd_slab_constructor_t) (void *buffer); |
34 |
|
|
35 |
/* Destroy the slab object pointed to by BUFFER. */ |
/* Destroy the slab object pointed to by BUFFER. */ |
36 |
typedef void (*hurd_slab_destructor_t) (void *buffer); |
typedef void (*hurd_slab_destructor_t) (void *buffer); |
37 |
|
|
|
struct hurd_slab_space; |
|
|
typedef struct hurd_slab_space *hurd_slab_space_t; |
|
|
|
|
|
|
|
38 |
/* Create a new slab space with the given object size, alignment, |
/* Create a new slab space with the given object size, alignment, |
39 |
constructor and destructor. ALIGNMENT can be zero. */ |
constructor and destructor. ALIGNMENT can be zero. */ |
40 |
error_t hurd_slab_create (size_t size, size_t alignment, |
error_t hurd_slab_create (size_t size, size_t alignment, |