summaryrefslogtreecommitdiff
path: root/linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff
diff options
context:
space:
mode:
Diffstat (limited to 'linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff')
-rw-r--r--linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff173
1 files changed, 0 insertions, 173 deletions
diff --git a/linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff b/linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff
deleted file mode 100644
index 54ba5fff98..0000000000
--- a/linux/linux-mtx-1-2.4.24/15-mtd-proc-partition-rw.diff
+++ /dev/null
@@ -1,173 +0,0 @@
-diff -Nurb linux/drivers/mtd/mtdcore.c linux-mtd-rw/drivers/mtd/mtdcore.c
---- linux/drivers/mtd/mtdcore.c 2004-11-18 13:16:00.000000000 +0100
-+++ linux-mtd-rw/drivers/mtd/mtdcore.c 2004-11-18 15:27:13.130036616 +0100
-@@ -25,6 +25,10 @@
-
- #include <linux/mtd/mtd.h>
-
-+/* this symbol is exported by the procfs. */
-+extern struct proc_dir_entry *proc_sys_root;
-+
-+
- /* These are exported solely for the purpose of mtd_blkdevs.c. You
- should not use them for _anything_ else */
- DECLARE_MUTEX(mtd_table_mutex);
-@@ -336,8 +340,83 @@
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
- static struct proc_dir_entry *proc_mtd;
-+
-+static struct proc_dir_entry *proc_sys_mtd;
-+static struct proc_dir_entry *proc_sys_mtd_partition[MAX_MTD_DEVICES];
-+static struct proc_dir_entry *proc_sys_mtd_partition_rw[MAX_MTD_DEVICES];
- #endif
-
-+/*===================================0
-+ * mtdproc_read_partition_access
-+ */
-+static int mtdproc_read_partition_access ( char *page, char **start, off_t off,int count,
-+ int *eof, void *data
-+ )
-+{
-+ int partid = (unsigned int)data;
-+ int len = 0;
-+
-+ // NO RETURN FROM HERE UNTIL "up(&mtd_table_mutex)".
-+ down(&mtd_table_mutex);
-+
-+ if (partid < MAX_MTD_DEVICES)
-+ {
-+ struct mtd_info *this = mtd_table[partid];
-+ if (this)
-+ {
-+ page[len] = (this->flags & MTD_WRITEABLE) ? '1' : '0';
-+ len++;
-+ }
-+ }
-+
-+ up(&mtd_table_mutex);
-+
-+ if (off >= len)
-+ return 0;
-+ *start = page + off;
-+ return ((count < len-off) ? count : len-off);
-+}
-+
-+
-+static int mtdproc_write_partition_access (struct file *file, const char *buffer,
-+ unsigned long count, void *data)
-+{
-+ int partid = (unsigned int)data;
-+ int len = 0;
-+
-+ // NO RETURN FROM HERE UNTIL "up(&mtd_table_mutex)".
-+ down(&mtd_table_mutex);
-+
-+ if (partid < MAX_MTD_DEVICES)
-+ {
-+ struct mtd_info *this = mtd_table[partid];
-+ if (this && count > 0)
-+ {
-+ switch (*buffer)
-+ {
-+ case '0':
-+ this->flags &= ~(this->master_flags & MTD_WRITEABLE);
-+ break;
-+
-+ case '1':
-+ this->flags |= ~(this->master_flags & MTD_WRITEABLE);
-+ break;
-+
-+ default:
-+ break;
-+ }
-+ }
-+ }
-+
-+ up(&mtd_table_mutex);
-+
-+ return count;
-+}
-+
-+
-+
-+
-+
- static inline int mtd_proc_info (char *buf, int i)
- {
- struct mtd_info *this = mtd_table[i];
-@@ -349,6 +428,7 @@
- this->erasesize, this->name);
- }
-
-+
- static int mtd_read_proc ( char *page, char **start, off_t off,int count
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
- ,int *eof, void *data_unused
-@@ -404,12 +484,31 @@
- /*====================================================================*/
- /* Init code */
-
-+
- int __init init_mtd(void)
- {
- #ifdef CONFIG_PROC_FS
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
-+ int i;
-+
- if ((proc_mtd = create_proc_entry( "mtd", 0, 0 )))
- proc_mtd->read_proc = mtd_read_proc;
-+
-+ proc_sys_mtd = proc_mkdir("mtd", proc_sys_root);
-+ for (i=0; i<MAX_MTD_DEVICES; i++)
-+ {
-+ char partname[10];
-+ sprintf (partname, "%d", i);
-+
-+ proc_sys_mtd_partition[i] = proc_mkdir(partname, proc_sys_mtd);
-+ proc_sys_mtd_partition_rw[i] = create_proc_entry ("rw", S_IFREG | S_IRUGO, proc_sys_mtd_partition[i]);
-+ if (proc_sys_mtd_partition_rw[i])
-+ {
-+ proc_sys_mtd_partition_rw[i]->read_proc = mtdproc_read_partition_access;
-+ proc_sys_mtd_partition_rw[i]->write_proc = mtdproc_write_partition_access;
-+ proc_sys_mtd_partition_rw[i]->data = (void *)i;
-+ }
-+ }
- #else
- proc_register_dynamic(&proc_root,&mtd_proc_entry);
- #endif
-@@ -425,6 +524,8 @@
- return 0;
- }
-
-+
-+
- static void __exit cleanup_mtd(void)
- {
- #ifdef CONFIG_PM
-diff -Nurb linux/drivers/mtd/mtdpart.c linux-mtd-rw/drivers/mtd/mtdpart.c
---- linux/drivers/mtd/mtdpart.c 2004-11-18 13:16:00.000000000 +0100
-+++ linux-mtd-rw/drivers/mtd/mtdpart.c 2004-11-18 15:27:13.131036464 +0100
-@@ -341,6 +341,9 @@
- /* set up the MTD object for this partition */
- slave->mtd.type = master->type;
- slave->mtd.flags = master->flags & ~parts[i].mask_flags;
-+ slave->mtd.master_flags = master->flags;
-+ slave->mtd.mask_flags = parts[i].mask_flags;
-+
- slave->mtd.size = parts[i].size;
- slave->mtd.oobblock = master->oobblock;
- slave->mtd.oobsize = master->oobsize;
-diff -Nurb linux/include/linux/mtd/mtd.h linux-mtd-rw/include/linux/mtd/mtd.h
---- linux/include/linux/mtd/mtd.h 2004-11-18 13:16:31.000000000 +0100
-+++ linux-mtd-rw/include/linux/mtd/mtd.h 2004-11-18 15:27:13.000000000 +0100
-@@ -232,6 +232,9 @@
-
- struct module *owner;
- int usecount;
-+
-+ u_int32_t master_flags;
-+ u_int32_t mask_flags;
- };
-
-