Changeset View
Changeset View
Standalone View
Standalone View
sys/geom/geom_dev.c
Show First 20 Lines • Show All 173 Lines • ▼ Show 20 Lines | g_dev_setdumpdev(struct cdev *dev, struct diocskerneldump_arg *kda) | ||||
return (error); | return (error); | ||||
} | } | ||||
static int | static int | ||||
init_dumpdev(struct cdev *dev) | init_dumpdev(struct cdev *dev) | ||||
{ | { | ||||
struct diocskerneldump_arg kda; | struct diocskerneldump_arg kda; | ||||
struct g_consumer *cp; | struct g_consumer *cp; | ||||
const char *devprefix = _PATH_DEV, *devname; | const char *devname; | ||||
int error; | int error; | ||||
size_t len; | |||||
bzero(&kda, sizeof(kda)); | bzero(&kda, sizeof(kda)); | ||||
kda.kda_index = KDA_APPEND; | kda.kda_index = KDA_APPEND; | ||||
if (dumpdev == NULL) | if (dumpdev == NULL) | ||||
return (0); | return (0); | ||||
len = strlen(devprefix); | |||||
devname = devtoname(dev); | devname = devtoname(dev); | ||||
if (strcmp(devname, dumpdev) != 0 && | if (strcmp(devname, g_canonical_name(dumpdev)) != 0) | ||||
(strncmp(dumpdev, devprefix, len) != 0 || | |||||
strcmp(devname, dumpdev + len) != 0)) | |||||
return (0); | return (0); | ||||
cp = (struct g_consumer *)dev->si_drv2; | cp = (struct g_consumer *)dev->si_drv2; | ||||
error = g_access(cp, 1, 0, 0); | error = g_access(cp, 1, 0, 0); | ||||
if (error != 0) | if (error != 0) | ||||
return (error); | return (error); | ||||
error = g_dev_setdumpdev(dev, &kda); | error = g_dev_setdumpdev(dev, &kda); | ||||
▲ Show 20 Lines • Show All 703 Lines • Show Last 20 Lines |