bdevsw
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
extern const struct bdevsw fd_bdevsw;
extern const struct bdevsw sd_bdevsw;
extern const struct bdevsw cd_bdevsw;
extern const struct bdevsw wd_bdevsw;
const struct bdevsw *bdp;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
extern const struct bdevsw fd_bdevsw;
extern const struct bdevsw sd_bdevsw;
extern const struct bdevsw cd_bdevsw;
extern const struct bdevsw wd_bdevsw;
const struct bdevsw *bdp;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdp;
const struct bdevsw *bdev;
const struct bdevsw gdrom_bdevsw = {
const struct bdevsw gdrom_bdevsw = {
const struct bdevsw mmem_bdevsw = {
const struct bdevsw ace_bdevsw = {
const struct bdevsw eflash_bdevsw = {
const struct bdevsw ct_bdevsw = {
const struct bdevsw mt_bdevsw = {
const struct bdevsw rd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw fd_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw *dsw;
const struct bdevsw fd_bdevsw = {
const struct bdevsw xd_bdevsw = {
const struct bdevsw xy_bdevsw = {
const struct bdevsw *dsw;
const struct bdevsw *dsw;
const struct bdevsw hp_bdevsw = {
const struct bdevsw ctu_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw rd_bdevsw = {
const struct bdevsw bmd_bdevsw = {
const struct bdevsw fd_bdevsw = {
const struct bdevsw xbd_bdevsw = {
const struct bdevsw *xbdi_bdevsw; /* pointer to the device's bdevsw */
const struct bdevsw altmem_bdevsw = {
const struct bdevsw wd_bdevsw = {
const struct bdevsw ccd_bdevsw = {
const struct bdevsw cgd_bdevsw = {
const struct bdevsw dk_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw dm_bdevsw = {
const struct bdevsw flash_bdevsw = {
const struct bdevsw fss_bdevsw = {
const struct bdevsw ct_bdevsw = {
const struct bdevsw mt_bdevsw = {
const struct bdevsw rd_bdevsw = {
const struct bdevsw fw_bdevsw = {
const struct bdevsw fd_bdevsw = {
const struct bdevsw mcd_bdevsw = {
const struct bdevsw wt_bdevsw = {
const struct bdevsw ld_bdevsw = {
const struct bdevsw ed_bdevsw = {
const struct bdevsw md_bdevsw = {
const struct bdevsw ra_bdevsw = {
const struct bdevsw rx_bdevsw = {
const struct bdevsw racd_bdevsw = {
const struct bdevsw mt_bdevsw = {
const struct bdevsw ofdisk_bdevsw = {
struct bdevsw *bsw;
extern struct bdevsw pud_bdevsw;
struct bdevsw pud_bdevsw = {
const struct bdevsw rf_bdevsw = {
const struct bdevsw rl_bdevsw = {
const struct bdevsw ts_bdevsw = {
const struct bdevsw raid_bdevsw = {
const struct bdevsw *bdev;
const struct bdevsw cd_bdevsw = {
const struct bdevsw sd_bdevsw = {
const struct bdevsw st_bdevsw = {
const struct bdevsw spiflash_bdevsw = {
const struct bdevsw xd_bdevsw = {
const struct bdevsw xy_bdevsw = {
const struct bdevsw vnd_bdevsw = {
bdevsw[bmajor] == NULL)
#define BDEVSW_SIZE (sizeof(struct bdevsw *))
if (bmajor >= 0 && bmajor < max_bdevsws && bdevsw[bmajor] != NULL)
extern const struct bdevsw **bdevsw, *bdevsw0[];
if (bmajor < 0 || bmajor >= max_bdevsws || bdevsw[bmajor] == NULL) {
const struct bdevsw *d;
const struct bdevsw *d;
static int bdevsw_attach(const struct bdevsw *, devmajor_t *);
const struct bdevsw *d;
static void devsw_detach_locked(const struct bdevsw *, const struct cdevsw *);
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *d;
const struct bdevsw *bdev, devmajor_t *bmajor,
if ((*bmajor >= 0 && bdevsw[*bmajor] != NULL) ||
bdevsw_attach(const struct bdevsw *devsw, devmajor_t *devmajor)
const struct bdevsw **newbdevsw = NULL;
if (bdevsw[bmajor] != NULL)
KASSERT(bdevsw == bdevsw0);
memcpy(newbdevsw, bdevsw, max_bdevsws * sizeof(bdevsw[0]));
atomic_store_release(&bdevsw, newbdevsw);
if (bdevsw[*devmajor] != NULL)
atomic_store_release(&bdevsw[*devmajor], devsw);
devsw_detach_locked(const struct bdevsw *bdev, const struct cdevsw *cdev)
if (bdevsw[bi] != bdev)
atomic_store_relaxed(&bdevsw[bi], NULL);
devsw_detach(const struct bdevsw *bdev, const struct cdevsw *cdev)
const struct bdevsw *
return atomic_load_consume(&bdevsw)[bmajor];
static const struct bdevsw *
const struct bdevsw *bdev = NULL, *const *curbdevsw;
curbdevsw = atomic_load_consume(&bdevsw);
bdevsw_release(const struct bdevsw *bdev, struct localcount *lc)
bdevsw_lookup_major(const struct bdevsw *bdev)
const struct bdevsw *const *curbdevsw;
curbdevsw = atomic_load_consume(&bdevsw);
if (bmajor < 0 || bmajor >= max_bdevsws || bdevsw[bmajor] == NULL) {
const struct bdevsw *bdev;
const struct bdevsw *bdev;
static struct bdevsw ping_bdevsw = {
extern const struct bdevsw cgd_bdevsw;
extern const struct bdevsw dm_bdevsw;
extern const struct bdevsw fss_bdevsw;
extern const struct bdevsw md_bdevsw;
extern const struct bdevsw raid_bdevsw;
extern struct bdevsw sd_bdevsw, cd_bdevsw;
extern const struct bdevsw ld_bdevsw;
extern const struct bdevsw vnd_bdevsw;
extern const struct bdevsw zfs_bdevsw;
const struct bdevsw *bdevsw0[255];
const struct bdevsw **bdevsw = bdevsw0;
static const struct bdevsw rumpblk_bdevsw_fail = {
static const struct bdevsw rumpblk_bdevsw = {
int devsw_attach(const char *, const struct bdevsw *, devmajor_t *,
void devsw_detach(const struct bdevsw *, const struct cdevsw *);
const struct bdevsw *bdevsw_lookup(dev_t);
devmajor_t bdevsw_lookup_major(const struct bdevsw *);
const struct bdevsw swap_bdevsw = {