diff options
Diffstat (limited to 'compat/opensolaris/lib')
-rw-r--r-- | compat/opensolaris/lib/libumem/umem.c | 167 | ||||
-rw-r--r-- | compat/opensolaris/lib/libumem/umem.h | 85 |
2 files changed, 0 insertions, 252 deletions
diff --git a/compat/opensolaris/lib/libumem/umem.c b/compat/opensolaris/lib/libumem/umem.c deleted file mode 100644 index e9662ce..0000000 --- a/compat/opensolaris/lib/libumem/umem.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2006 Ricardo Correia. All rights reserved. - * Use is subject to license terms. - */ - -#include <umem.h> -#include <stdlib.h> -#include <assert.h> - -static umem_nofail_callback_t *nofail_cb = NULL; - -struct umem_cache { - umem_constructor_t *constructor; - umem_destructor_t *destructor; - void *callback_data; - size_t bufsize; -}; - -/* - * Simple stub for umem_alloc(). The callback isn't expected to return. - */ -void *umem_alloc(size_t size, int flags) -{ - assert(flags == UMEM_DEFAULT || flags == UMEM_NOFAIL); - - if(size == 0) - return NULL; - - void *ret = malloc(size); - if(ret == NULL) { - if(!(flags & UMEM_NOFAIL)) - return NULL; - - if(nofail_cb != NULL) - nofail_cb(); - abort(); - } - - return ret; -} - -/* - * Simple stub for umem_zalloc(). - */ -void *umem_zalloc(size_t size, int flags) -{ - assert(flags == UMEM_DEFAULT || flags == UMEM_NOFAIL); - - if(size == 0) - return NULL; - - void *ret = calloc(1, size); - if(ret == NULL) { - if(!(flags & UMEM_NOFAIL)) - return NULL; - - if(nofail_cb != NULL) - nofail_cb(); - abort(); - } - - return ret; -} - -/* - * Simple stub for umem_free(). - */ -void umem_free(void *buf, size_t size) -{ - free(buf); -} - -/* - * Simple stub for umem_nofail_callback(). - */ -void umem_nofail_callback(umem_nofail_callback_t *callback) -{ - nofail_cb = callback; -} - -/* - * Simple stub for umem_cache_create(). - */ -umem_cache_t *umem_cache_create(char *debug_name, size_t bufsize, size_t align, umem_constructor_t *constructor, umem_destructor_t *destructor, umem_reclaim_t *reclaim, void *callback_data, void *source, int cflags) -{ - assert(source == NULL); - - umem_cache_t *cache = malloc(sizeof(umem_cache_t)); - if(cache == NULL) - return NULL; - - cache->constructor = constructor; - cache->destructor = destructor; - cache->callback_data = callback_data; - cache->bufsize = bufsize; - - return cache; -} - -/* - * Simple stub for umem_cache_alloc(). The nofail callback isn't expected to return. - */ -void *umem_cache_alloc(umem_cache_t *cache, int flags) -{ - void *buf = malloc(cache->bufsize); - if(buf == NULL) { - if(!(flags & UMEM_NOFAIL)) - return NULL; - - if(nofail_cb != NULL) - nofail_cb(); - abort(); - } - - if(cache->constructor != NULL) { - if(cache->constructor(buf, cache->callback_data, flags) != 0) { - free(buf); - if(!(flags & UMEM_NOFAIL)) - return NULL; - - if(nofail_cb != NULL) - nofail_cb(); - abort(); - } - } - - return buf; -} - -/* - * Simple stub for umem_cache_free(). - */ -void umem_cache_free(umem_cache_t *cache, void *buffer) -{ - if(cache->destructor != NULL) - cache->destructor(buffer, cache->callback_data); - - free(buffer); -} - -/* - * Simple stub for umem_cache_destroy(). - */ -void umem_cache_destroy(umem_cache_t *cache) -{ - free(cache); -} diff --git a/compat/opensolaris/lib/libumem/umem.h b/compat/opensolaris/lib/libumem/umem.h deleted file mode 100644 index 971cde3..0000000 --- a/compat/opensolaris/lib/libumem/umem.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _UMEM_H -#define _UMEM_H - - - -#include <sys/types.h> -#include <stdlib.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define UMEM_DEFAULT 0x0000 /* normal -- may fail */ -#define UMEM_NOFAIL 0x0100 /* Never fails -- may call exit(2) */ - -#define UMEM_FLAGS 0xffff /* all settable umem flags */ - -extern void *umem_alloc(size_t, int); -extern void *umem_alloc_align(size_t, size_t, int); -extern void *umem_zalloc(size_t, int); -extern void umem_free(void *, size_t); -extern void umem_free_align(void *, size_t); - -/* - * Flags for umem_cache_create() - */ -#define UMC_NOTOUCH 0x00010000 -#define UMC_NODEBUG 0x00020000 -#define UMC_NOMAGAZINE 0x00040000 -#define UMC_NOHASH 0x00080000 - -struct umem_cache; /* cache structure is opaque to umem clients */ - -typedef struct umem_cache umem_cache_t; -typedef int umem_constructor_t(void *, void *, int); -typedef void umem_destructor_t(void *, void *); -typedef void umem_reclaim_t(void *); - -typedef int umem_nofail_callback_t(void); -#define UMEM_CALLBACK_RETRY 0 -#define UMEM_CALLBACK_EXIT(status) (0x100 | ((status) & 0xFF)) - -extern void umem_nofail_callback(umem_nofail_callback_t *); - -extern umem_cache_t *umem_cache_create(char *, size_t, - size_t, umem_constructor_t *, umem_destructor_t *, umem_reclaim_t *, - void *, void *, int); -extern void umem_cache_destroy(umem_cache_t *); - -extern void *umem_cache_alloc(umem_cache_t *, int); -extern void umem_cache_free(umem_cache_t *, void *); - -extern void umem_reap(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _UMEM_H */ |