Added g_print_bio() function to print informations about given bio.

Approved by:	phk, scottl (mentor)
This commit is contained in:
pjd 2004-02-11 18:21:32 +00:00
parent e53f012bc7
commit d6cf40b908
2 changed files with 35 additions and 0 deletions

View File

@ -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 */

View File

@ -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 */
}