From owner-p4-projects@FreeBSD.ORG Mon Jul 3 14:56:22 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDB2716A407; Mon, 3 Jul 2006 14:56:21 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 767C516A40F for ; Mon, 3 Jul 2006 14:56:21 +0000 (UTC) (envelope-from howardsu@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7F158445F0 for ; Mon, 3 Jul 2006 14:56:20 +0000 (GMT) (envelope-from howardsu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k63EuK8i098672 for ; Mon, 3 Jul 2006 14:56:20 GMT (envelope-from howardsu@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k63EuKf3098669 for perforce@freebsd.org; Mon, 3 Jul 2006 14:56:20 GMT (envelope-from howardsu@FreeBSD.org) Date: Mon, 3 Jul 2006 14:56:20 GMT Message-Id: <200607031456.k63EuKf3098669@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to howardsu@FreeBSD.org using -f From: Howard Su To: Perforce Change Reviews Cc: Subject: PERFORCE change 100504 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jul 2006 14:56:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=100504 Change 100504 by howardsu@su_laptop on 2006/07/03 14:55:32 Use FreeBSD zone allocator to support Solaris kmem call Affected files ... .. //depot/projects/dtrace/src/sys/cddl/kern/kmem.c#2 edit .. //depot/projects/dtrace/src/sys/contrib/opensolaris/compat/sys/kmem.h#2 edit Differences ... ==== //depot/projects/dtrace/src/sys/cddl/kern/kmem.c#2 (text+ko) ==== @@ -33,41 +33,3 @@ MALLOC_DECLARE(M_KMEM); MALLOC_DEFINE(M_KMEM, "kmem", "kmem hack"); - -/* XXX Hacks */ - -kmem_cache_t * -kmem_cache_create( - char *name, /* descriptive name for this cache */ - size_t bufsize, /* size of the objects it manages */ - size_t align, /* required object alignment */ - int (*constructor)(void *, void *, int), /* object constructor */ - void (*destructor)(void *, void *), /* object destructor */ - void (*reclaim)(void *), /* memory reclaim callback */ - void *private, /* pass-thru arg for constr/destr/reclaim */ - vmem_t *vmp, /* vmem source for slab allocation */ - int cflags) /* cache creation flags */ - -{ - kmem_cache_t *p = malloc(sizeof(kmem_cache_t), M_KMEM, M_WAITOK); - p->size = bufsize; - return(p); -} - -void * -kmem_cache_alloc(kmem_cache_t *a, int b) -{ - return (malloc(a->size, M_KMEM, M_WAITOK | M_ZERO)); -} - -void -kmem_cache_free(kmem_cache_t *a, void *b) -{ - free(b, M_KMEM); -} - -void -kmem_cache_destroy(kmem_cache_t *a) -{ - free(a, M_KMEM); -} ==== //depot/projects/dtrace/src/sys/contrib/opensolaris/compat/sys/kmem.h#2 (text+ko) ==== @@ -25,6 +25,7 @@ #define _OPENSOLARIS_COMPAT_SYS_KMEM_H #include +#include #define KM_SLEEP M_WAITOK #define KM_NOSLEEP M_NOWAIT @@ -33,17 +34,14 @@ #define kmem_alloc(_a,_b) malloc(_a, M_KMEM, _b) #define kmem_free(_a,_b) free(_a, M_KMEM) -typedef struct kmem_cache { - size_t size; -} kmem_cache_t; -kmem_cache_t *kmem_cache_create(char *, size_t, size_t, - int (*)(void *, void *, int), void (*)(void *, void *), - void (*)(void *), void *, vmem_t *, int); -void kmem_cache_destroy(kmem_cache_t *); -void *kmem_cache_alloc(kmem_cache_t *, int); -void kmem_cache_free(kmem_cache_t *, void *); -uint64_t kmem_cache_stat(kmem_cache_t *, char *); -void kmem_cache_reap_now(kmem_cache_t *); +typedef struct uma_zone kmem_cache_t; +#define kmem_cache_create(_name, _bufsize, _align, _ns0, _ns1, _ns2, _ns3, \ + _ns4, _flags) \ + uma_zcreate(_name, _bufsize, NULL, NULL, NULL, NULL, \ + _align, _flags) +#define kmem_cache_destroy(_a) uma_zdestroy(_a) +#define kmem_cache_alloc(_a, _flags) uma_zalloc(_a, _flags) +#define kmem_cache_free(_a, _b) uma_zfree(_a, _b) #endif /* _OPENSOLARIS_COMPAT_SYS_KMEM_H */