Added g_print_bio() function to print informations about given bio.
Approved by: phk, scottl (mentor)
This commit is contained in:
parent
e53f012bc7
commit
d6cf40b908
@ -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 */
|
||||
|
||||
|
@ -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 */
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user