mtdcore.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /*
  2. * These are exported solely for the purpose of mtd_blkdevs.c and mtdchar.c.
  3. * You should not use them for _anything_ else.
  4. */
  5. extern struct mutex mtd_table_mutex;
  6. struct mtd_info *__mtd_next_device(int i);
  7. int add_mtd_device(struct mtd_info *mtd);
  8. int del_mtd_device(struct mtd_info *mtd);
  9. int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
  10. int del_mtd_partitions(struct mtd_info *);
  11. int parse_mtd_partitions(struct mtd_info *master, const char * const *types,
  12. struct mtd_partition **pparts,
  13. struct mtd_part_parser_data *data);
  14. int __init init_mtdchar(void);
  15. void __exit cleanup_mtdchar(void);
  16. #define DYNAMIC_CHANGE_MTD_WRITEABLE
  17. #ifdef DYNAMIC_CHANGE_MTD_WRITEABLE /* tonykuo 2013-11-05 */
  18. #include <linux/proc_fs.h>
  19. #include <asm/uaccess.h>
  20. static struct proc_dir_entry *entry;
  21. extern int mtd_writeable_proc_write(struct file *file, const char *buffer, unsigned long count,
  22. void *data);
  23. extern int mtd_change_proc_write(struct file *file, const char *buffer, unsigned long count,
  24. void *data);
  25. int mtd_writeable_proc_write(struct file *file, const char *buffer, unsigned long count, void *data);
  26. int mtd_change_proc_write(struct file *file, const char *buffer, unsigned long count, void *data);
  27. static struct mtd_info *my_mtd;
  28. struct mtd_change {
  29. uint64_t size;
  30. uint64_t offset;
  31. };
  32. #endif
  33. #define mtd_for_each_device(mtd) \
  34. for ((mtd) = __mtd_next_device(0); \
  35. (mtd) != NULL; \
  36. (mtd) = __mtd_next_device(mtd->index + 1))