summaryrefslogtreecommitdiff
path: root/sys/dev/null
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2002-03-31 22:37:00 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2002-03-31 22:37:00 +0000
commit81661c94b6a5a0b3b13048741a7e219300df81a9 (patch)
tree0962f06e2a2c422d89af486eb66e8e726fea13b7 /sys/dev/null
parent67cd130e592c3937634403d105c7c72ed20bd7f9 (diff)
Notes
Diffstat (limited to 'sys/dev/null')
-rw-r--r--sys/dev/null/null.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/sys/dev/null/null.c b/sys/dev/null/null.c
index f7eaa77081f6..ec0d521270e8 100644
--- a/sys/dev/null/null.c
+++ b/sys/dev/null/null.c
@@ -33,6 +33,7 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/module.h>
+#include <sys/disklabel.h>
#include <sys/bus.h>
#include <machine/bus.h>
#include <machine/resource.h>
@@ -43,6 +44,7 @@ static dev_t null_dev;
static dev_t zero_dev;
static d_write_t null_write;
+static d_ioctl_t null_ioctl;
static d_read_t zero_read;
#define CDEV_MAJOR 2
@@ -54,7 +56,7 @@ static struct cdevsw null_cdevsw = {
/* close */ (d_close_t *)nullop,
/* read */ (d_read_t *)nullop,
/* write */ null_write,
- /* ioctl */ noioctl,
+ /* ioctl */ null_ioctl,
/* poll */ nopoll,
/* mmap */ nommap,
/* strategy */ nostrategy,
@@ -91,6 +93,20 @@ null_write(dev_t dev, struct uio *uio, int flag)
}
static int
+null_ioctl(dev_t dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
+{
+ int error;
+
+ if (cmd != DIOCGKERNELDUMP)
+ return (noioctl(dev, cmd, data, fflag, td));
+ error = suser_td(td);
+ if (error)
+ return (error);
+ return (set_dumper(NULL));
+}
+
+
+static int
zero_read(dev_t dev, struct uio *uio, int flag)
{
u_int c;