diff options
Diffstat (limited to 'lib/vita/slab.h')
-rwxr-xr-x | lib/vita/slab.h | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/lib/vita/slab.h b/lib/vita/slab.h deleted file mode 100755 index 153c008..0000000 --- a/lib/vita/slab.h +++ /dev/null @@ -1,40 +0,0 @@ -/* ref: https://github.com/bbu/userland-slab-allocator */ - -#ifndef __GNUC__ -# error Can be compiled only with GCC. -#endif - -#pragma once - -#include <stdint.h> -#include <stddef.h> -#include <psp2kern/types.h> - -extern const size_t slab_pagesize; - -struct slab_header { - struct slab_header *prev, *next; - uint64_t slots; - uintptr_t refcount; - struct slab_header *page; - SceUID write_res; - SceUID exe_res; - uintptr_t exe_data; - uint8_t data[] __attribute__((aligned(sizeof(void *)))); -}; - -struct slab_chain { - size_t itemsize, itemcount; - size_t slabsize, pages_per_alloc; - uint64_t initial_slotmask, empty_slotmask; - uintptr_t alignment_mask; - struct slab_header *partial, *empty, *full; - SceUID pid; -}; - -void slab_init(struct slab_chain *, size_t, SceUID); -void *slab_alloc(struct slab_chain *, uintptr_t *); -void slab_free(struct slab_chain *, const void *); -uintptr_t slab_getmirror(struct slab_chain *, const void *); -void slab_traverse(const struct slab_chain *, void (*)(const void *)); -void slab_destroy(const struct slab_chain *); |