version 1.9, 2016/11/28 06:12:12
|
version 1.10, 2016/11/28 06:16:29
|
Line 25 const struct bdevsw xxx_bdevsww= {
|
Line 25 const struct bdevsw xxx_bdevsww= {
|
.d_dump = xxxdump, |
.d_dump = xxxdump, |
.d_psize = xxxsize, |
.d_psize = xxxsize, |
.d_discard = xxxdiscard, |
.d_discard = xxxdiscard, |
.d_flag = D_DISK |
.d_flag = D_DISK | D_MPSAFE |
}; |
}; |
|
|
const struct cdevsw xxx_cdevsw = { |
const struct cdevsw xxx_cdevsw = { |
Line 40 const struct cdevsw xxx_cdevsw = {
|
Line 40 const struct cdevsw xxx_cdevsw = {
|
.d_mmap = nommap, |
.d_mmap = nommap, |
.d_kqfilter = nokqfilter, |
.d_kqfilter = nokqfilter, |
.d_discard = xxxdiscard, |
.d_discard = xxxdiscard, |
.d_flag = D_DISK |
.d_flag = D_DISK | D_MPSAFE |
}; |
}; |
|
|
static void xxxminphys(struct buf *bp); |
static void xxxminphys(struct buf *bp); |
Line 480 xxxstrategy(struct buf *bp)
|
Line 480 xxxstrategy(struct buf *bp)
|
// wake up I/O thread |
// wake up I/O thread |
} |
} |
|
|
static int |
|
xxx_diskstart(device_t dv, struct buf *bp) |
|
{ |
|
// issue I/O for bp |
|
} |
|
|
|
static void |
static void |
xxxdone(struct xxx_softc *sc, struct buf *bp) |
xxxdone(struct xxx_softc *sc, struct buf *bp) |
{ |
{ |
Line 496 xxxdone(struct xxx_softc *sc, struct buf
|
Line 490 xxxdone(struct xxx_softc *sc, struct buf
|
} |
} |
|
|
static void |
static void |
xxx_IOTHREAD(struct dk_softc *dksc) |
xxx_iothread(struct dk_softc *dksc) |
{ |
{ |
while (!shutting_down) { |
while (!shutting_down) { |
if (dk_strategy_pending(dksc)) |
if (dk_strategy_pending(dksc)) |