PERFORCE change 95985 for review
John Birrell
jb at FreeBSD.org
Mon Apr 24 03:51:24 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=95985
Change 95985 by jb at jb_freebsd2 on 2006/04/24 03:51:00
Add hacks to dummy up something resembling kmem_cache by completely
ignoring why it was required in the first place.
Affected files ...
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_hacks.c#5 edit
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_hacks.h#6 edit
Differences ...
==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_hacks.c#5 (text+ko) ====
@@ -31,7 +31,39 @@
{
free(vmp, M_DTRACE);
}
+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_DTRACE, M_WAITOK);
+ p->size = bufsize;
+ return(p);
+}
+void *
+kmem_cache_alloc(kmem_cache_t *a, int b)
+{
+ return (malloc(a->size, M_DTRACE, M_WAITOK | M_ZERO));
+}
+void
+kmem_cache_free(kmem_cache_t *a, void *b)
+{
+ free(b, M_DTRACE);
+}
+void
+kmem_cache_destroy(kmem_cache_t *a)
+{
+ free(a, M_DTRACE);
+}
+
dtrace_cacheid_t dtrace_predcache_id;
void *hack_refs[] =
@@ -163,15 +195,6 @@
{
return 0;
}
-void *
-kmem_cache_alloc(kmem_cache_t *a, int b)
-{
- return 0;
-}
-void
-kmem_cache_free(kmem_cache_t *a, void *b)
-{
-}
void
dtrace_xcall(processorid_t a, dtrace_xcall_t b, void *c)
{
==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_hacks.h#6 (text+ko) ====
@@ -123,7 +123,9 @@
#define PRIV_POLICY_ONLY(cred, priv, all) \
priv_policy_only((cred), (priv), (all))
-typedef struct kmem_cache kmem_cache_t;
+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);
More information about the p4-projects
mailing list