diff options
| author | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2004-02-11 18:21:32 +0000 |
|---|---|---|
| committer | Pawel Jakub Dawidek <pjd@FreeBSD.org> | 2004-02-11 18:21:32 +0000 |
| commit | 72e330954e62c9e0745eae971cd20803c69301db (patch) | |
| tree | ae4981c67b129f44f81748d7104bcfdf9166b968 /sys/geom | |
| parent | e7a44cace2db9aaf1474fb1551fdfc186a193f64 (diff) | |
Notes
Diffstat (limited to 'sys/geom')
| -rw-r--r-- | sys/geom/geom.h | 1 | ||||
| -rw-r--r-- | sys/geom/geom_io.c | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/sys/geom/geom.h b/sys/geom/geom.h index 656f320ccabfa..264c029c8768b 100644 --- a/sys/geom/geom.h +++ b/sys/geom/geom.h @@ -230,6 +230,7 @@ void g_io_request(struct bio *bp, struct g_consumer *cp); struct bio *g_new_bio(void); void * g_read_data(struct g_consumer *cp, off_t offset, off_t length, int *error); int g_write_data(struct g_consumer *cp, off_t offset, void *ptr, off_t length); +void g_print_bio(struct bio *bp); /* geom_kern.c / geom_kernsim.c */ diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c index 28c3b3296e851..507069ba05671 100644 --- a/sys/geom/geom_io.c +++ b/sys/geom/geom_io.c @@ -457,3 +457,37 @@ g_write_data(struct g_consumer *cp, off_t offset, void *ptr, off_t length) g_destroy_bio(bp); return (error); } + +void +g_print_bio(struct bio *bp) +{ + const char *pname, *cmd = NULL; + + if (bp->bio_to != NULL) + pname = bp->bio_to->name; + else + pname = "[unknown]"; + + switch (bp->bio_cmd) { + case BIO_GETATTR: + cmd = "GETATTR"; + printf("%s[%s(attr=%s)]", pname, cmd, bp->bio_attribute); + return; + case BIO_READ: + cmd = "READ"; + case BIO_WRITE: + if (cmd == NULL) + cmd = "WRITE"; + case BIO_DELETE: + if (cmd == NULL) + cmd = "DELETE"; + printf("%s[%s(offset=%jd, length=%jd)]", pname, cmd, + (intmax_t)bp->bio_offset, (intmax_t)bp->bio_length); + return; + default: + cmd = "UNKNOWN"; + printf("%s[%s()]", pname, cmd); + return; + } + /* NOTREACHED */ +} |
