|
@@ -364,6 +364,7 @@ static int mmap_mem(struct file * file, struct vm_area_struct * vma)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_DEVKMEM
|
|
|
static int mmap_kmem(struct file * file, struct vm_area_struct * vma)
|
|
|
{
|
|
|
unsigned long pfn;
|
|
@@ -384,6 +385,7 @@ static int mmap_kmem(struct file * file, struct vm_area_struct * vma)
|
|
|
vma->vm_pgoff = pfn;
|
|
|
return mmap_mem(file, vma);
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
#ifdef CONFIG_CRASH_DUMP
|
|
|
/*
|
|
@@ -422,6 +424,7 @@ static ssize_t read_oldmem(struct file *file, char __user *buf,
|
|
|
extern long vread(char *buf, char *addr, unsigned long count);
|
|
|
extern long vwrite(char *buf, char *addr, unsigned long count);
|
|
|
|
|
|
+#ifdef CONFIG_DEVKMEM
|
|
|
/*
|
|
|
* This function reads the *virtual* memory as seen by the kernel.
|
|
|
*/
|
|
@@ -626,6 +629,7 @@ static ssize_t write_kmem(struct file * file, const char __user * buf,
|
|
|
*ppos = p;
|
|
|
return virtr + wrote;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
#ifdef CONFIG_DEVPORT
|
|
|
static ssize_t read_port(struct file * file, char __user * buf,
|
|
@@ -803,6 +807,7 @@ static const struct file_operations mem_fops = {
|
|
|
.get_unmapped_area = get_unmapped_area_mem,
|
|
|
};
|
|
|
|
|
|
+#ifdef CONFIG_DEVKMEM
|
|
|
static const struct file_operations kmem_fops = {
|
|
|
.llseek = memory_lseek,
|
|
|
.read = read_kmem,
|
|
@@ -811,6 +816,7 @@ static const struct file_operations kmem_fops = {
|
|
|
.open = open_kmem,
|
|
|
.get_unmapped_area = get_unmapped_area_mem,
|
|
|
};
|
|
|
+#endif
|
|
|
|
|
|
static const struct file_operations null_fops = {
|
|
|
.llseek = null_lseek,
|
|
@@ -889,11 +895,13 @@ static int memory_open(struct inode * inode, struct file * filp)
|
|
|
filp->f_mapping->backing_dev_info =
|
|
|
&directly_mappable_cdev_bdi;
|
|
|
break;
|
|
|
+#ifdef CONFIG_DEVKMEM
|
|
|
case 2:
|
|
|
filp->f_op = &kmem_fops;
|
|
|
filp->f_mapping->backing_dev_info =
|
|
|
&directly_mappable_cdev_bdi;
|
|
|
break;
|
|
|
+#endif
|
|
|
case 3:
|
|
|
filp->f_op = &null_fops;
|
|
|
break;
|
|
@@ -942,7 +950,9 @@ static const struct {
|
|
|
const struct file_operations *fops;
|
|
|
} devlist[] = { /* list of minor devices */
|
|
|
{1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
|
|
|
+#ifdef CONFIG_DEVKMEM
|
|
|
{2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
|
|
|
+#endif
|
|
|
{3, "null", S_IRUGO | S_IWUGO, &null_fops},
|
|
|
#ifdef CONFIG_DEVPORT
|
|
|
{4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
|