diff options
| author | 2009-04-04 22:32:05 +0000 | |
|---|---|---|
| committer | 2009-04-04 22:32:05 +0000 | |
| commit | c159f5bcbe19951932196bd1d1d4f97bbf1235d0 (patch) | |
| tree | f7b2f106812f86e6ad6095f4a7800dd55f6aa219 /sys/kern/subr_extent.c | |
| parent | Bump the size of the array that we use to store bootpath components. Makes the (diff) | |
| download | wireguard-openbsd-c159f5bcbe19951932196bd1d1d4f97bbf1235d0.tar.xz wireguard-openbsd-c159f5bcbe19951932196bd1d1d4f97bbf1235d0.zip | |
Make extent_print() use printf to avoid the pagination that db_printf
provides, while keeping this behaviour for extent_print_all() which is
only called by ddb. Based on a diff from deraadt@.
Diffstat (limited to 'sys/kern/subr_extent.c')
| -rw-r--r-- | sys/kern/subr_extent.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/sys/kern/subr_extent.c b/sys/kern/subr_extent.c index 5ecfa1a52e9..1703d89fad6 100644 --- a/sys/kern/subr_extent.c +++ b/sys/kern/subr_extent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: subr_extent.c,v 1.34 2008/06/26 05:42:20 ray Exp $ */ +/* $OpenBSD: subr_extent.c,v 1.35 2009/04/04 22:32:05 kettenis Exp $ */ /* $NetBSD: subr_extent.c,v 1.7 1996/11/21 18:46:34 cgd Exp $ */ /*- @@ -68,6 +68,10 @@ #define splx(s) ((void)(s)) #endif +#if defined(DIAGNOSTIC) || defined(DDB) +void extent_print1(struct extent *, int (*)(const char *, ...)); +#endif + static void extent_insert_and_optimize(struct extent *, u_long, u_long, struct extent_region *, struct extent_region *); static struct extent_region *extent_alloc_region_descriptor(struct extent *, int); @@ -142,7 +146,7 @@ extent_print_all(void) struct extent *ep; LIST_FOREACH(ep, &ext_list, ex_link) { - extent_print(ep); + extent_print1(ep, db_printf); } } #endif @@ -1088,28 +1092,32 @@ extent_free_region_descriptor(struct extent *ex, struct extent_region *rp) splx(s); } -#ifndef DDB -#define db_printf printf -#endif - + #if defined(DIAGNOSTIC) || defined(DDB) || !defined(_KERNEL) + void extent_print(struct extent *ex) { + extent_print1(ex, printf); +} + +void +extent_print1(struct extent *ex, int (*pr)(const char *, ...)) +{ struct extent_region *rp; if (ex == NULL) panic("extent_print: NULL extent"); #ifdef _KERNEL - db_printf("extent `%s' (0x%lx - 0x%lx), flags=%b\n", ex->ex_name, + (*pr)("extent `%s' (0x%lx - 0x%lx), flags=%b\n", ex->ex_name, ex->ex_start, ex->ex_end, ex->ex_flags, EXF_BITS); #else - db_printf("extent `%s' (0x%lx - 0x%lx), flags = 0x%x\n", ex->ex_name, + (*pr)("extent `%s' (0x%lx - 0x%lx), flags = 0x%x\n", ex->ex_name, ex->ex_start, ex->ex_end, ex->ex_flags); #endif LIST_FOREACH(rp, &ex->ex_regions, er_link) - db_printf(" 0x%lx - 0x%lx\n", rp->er_start, rp->er_end); + (*pr)(" 0x%lx - 0x%lx\n", rp->er_start, rp->er_end); } #endif |
