<dec f='src/src/sys/sys/disklabel.h' l='467' type='const char * readdisklabel(dev_t , void (*)(struct buf *) , struct disklabel * , struct cpu_disklabel * )'/>
<use f='src/src/sys/dev/ata/wd.c' l='1142' u='c' c='wdgetdisklabel'/>
<use f='src/src/sys/dev/ata/wd.c' l='1157' u='c' c='wdgetdisklabel'/>
<use f='src/src/sys/dev/ccd.c' l='1577' u='c' c='ccdgetdisklabel'/>
<use f='src/src/sys/dev/dksubr.c' l='853' u='c' c='dk_getdisklabel'/>
<use f='src/src/sys/dev/isa/fd.c' l='1429' u='c' c='fdioctl'/>
<use f='src/src/sys/dev/scsipi/cd.c' l='1772' u='c' c='cdgetdisklabel'/>
<use f='src/src/sys/dev/scsipi/sd.c' l='1336' u='c' c='sdgetdisklabel'/>
<use f='src/src/sys/dev/vnd.c' l='1840' u='c' c='vndgetdisklabel'/>
<def f='src/src/sys/kern/subr_disk_mbr.c' l='395' ll='504' type='const char * readdisklabel(dev_t dev, void (*)(struct buf *) strat, struct disklabel * lp, struct cpu_disklabel * osdep)'/>
<doc f='src/src/sys/kern/subr_disk_mbr.c' l='380'>/*
 * Attempt to read a disk label from a device
 * using the indicated strategy routine.
 * The label must be partly set up before this:
 * secpercyl, secsize and anything required for a block i/o read
 * operation in the driver&apos;s strategy/start routines
 * must be filled in before calling us.
 *
 * If dos partition table requested, attempt to load it and
 * find disklabel inside a DOS partition. Also, if bad block
 * table needed, attempt to extract it as well. Return buffer
 * for use in signalling errors if requested.
 *
 * Returns null on success and an error string on failure.
 */</doc>
