patch-2.2.11 linux/drivers/char/mem.c
Next file: linux/drivers/char/misc.c
Previous file: linux/drivers/char/keyboard.c
Back to the patch index
Back to the overall index
- Lines: 55
- Date:
Mon Aug 9 12:04:57 1999
- Orig file:
v2.2.10/linux/drivers/char/mem.c
- Orig date:
Mon May 10 10:18:34 1999
diff -u --recursive --new-file v2.2.10/linux/drivers/char/mem.c linux/drivers/char/mem.c
@@ -16,6 +16,7 @@
#include <linux/init.h>
#include <linux/joystick.h>
#include <linux/i2c.h>
+#include <linux/capability.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@ -464,11 +465,19 @@
}
}
+static int open_port(struct inode * inode, struct file * filp)
+{
+ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
+}
+
+
#define mmap_kmem mmap_mem
#define zero_lseek null_lseek
#define full_lseek null_lseek
#define write_zero write_null
#define read_full read_zero
+#define open_mem open_port /* different capability? */
+#define open_kmem open_mem
static struct file_operations mem_fops = {
memory_lseek,
@@ -478,7 +487,7 @@
NULL, /* mem_poll */
NULL, /* mem_ioctl */
mmap_mem,
- NULL, /* no special open code */
+ open_mem,
NULL, /* flush */
NULL, /* no special release code */
NULL /* fsync */
@@ -492,7 +501,7 @@
NULL, /* kmem_poll */
NULL, /* kmem_ioctl */
mmap_kmem,
- NULL, /* no special open code */
+ open_kmem,
NULL, /* flush */
NULL, /* no special release code */
NULL /* fsync */
@@ -520,7 +529,7 @@
NULL, /* port_poll */
NULL, /* port_ioctl */
NULL, /* port_mmap */
- NULL, /* no special open code */
+ open_port,
NULL, /* flush */
NULL, /* no special release code */
NULL /* fsync */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)