Lines Matching full:struct
45 struct erase_info {
46 struct mtd_info *mtd;
54 void (*callback) (struct erase_info *self);
57 struct erase_info *next;
61 struct mtd_erase_region_info {
69 * struct mtd_oob_ops - oob operation operands
83 struct mtd_oob_ops {
106 * struct mtd_oob_region - oob region definition
115 struct mtd_oob_region {
121 * struct mtd_ooblayout_ops - NAND OOB layout operations
129 struct mtd_ooblayout_ops {
130 int (*ecc)(struct mtd_info *mtd, int section,
131 struct mtd_oob_region *oobecc);
132 int (*free)(struct mtd_info *mtd, int section,
133 struct mtd_oob_region *oobfree);
138 * similar, smaller struct nand_ecclayout_user (in mtd-abi.h) that is retained
142 struct nand_ecclayout {
146 struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES_LARGE];
149 struct module; /* only needed for owner field in mtd_info */
151 struct mtd_info {
165 * Any driver registering a struct mtd_info must ensure a writesize of
212 const struct mtd_ooblayout_ops *ooblayout;
215 struct nand_ecclayout *ecclayout;
227 struct mtd_erase_region_info *eraseregions;
233 int (*_erase) (struct mtd_info *mtd, struct erase_info *instr);
235 int (*_point) (struct mtd_info *mtd, loff_t from, size_t len,
237 int (*_unpoint) (struct mtd_info *mtd, loff_t from, size_t len);
239 unsigned long (*_get_unmapped_area) (struct mtd_info *mtd,
243 int (*_read) (struct mtd_info *mtd, loff_t from, size_t len,
245 int (*_write) (struct mtd_info *mtd, loff_t to, size_t len,
247 int (*_panic_write) (struct mtd_info *mtd, loff_t to, size_t len,
249 int (*_read_oob) (struct mtd_info *mtd, loff_t from,
250 struct mtd_oob_ops *ops);
251 int (*_write_oob) (struct mtd_info *mtd, loff_t to,
252 struct mtd_oob_ops *ops);
253 int (*_get_fact_prot_info) (struct mtd_info *mtd, size_t len,
254 size_t *retlen, struct otp_info *buf);
255 int (*_read_fact_prot_reg) (struct mtd_info *mtd, loff_t from,
257 int (*_get_user_prot_info) (struct mtd_info *mtd, size_t len,
258 size_t *retlen, struct otp_info *buf);
259 int (*_read_user_prot_reg) (struct mtd_info *mtd, loff_t from,
261 int (*_write_user_prot_reg) (struct mtd_info *mtd, loff_t to,
263 int (*_lock_user_prot_reg) (struct mtd_info *mtd, loff_t from,
266 int (*_writev) (struct mtd_info *mtd, const struct kvec *vecs,
269 void (*_sync) (struct mtd_info *mtd);
270 int (*_lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
271 int (*_unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
272 int (*_is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
273 int (*_block_isreserved) (struct mtd_info *mtd, loff_t ofs);
274 int (*_block_isbad) (struct mtd_info *mtd, loff_t ofs);
275 int (*_block_markbad) (struct mtd_info *mtd, loff_t ofs);
277 int (*_suspend) (struct mtd_info *mtd);
278 void (*_resume) (struct mtd_info *mtd);
279 void (*_reboot) (struct mtd_info *mtd);
285 int (*_get_device) (struct mtd_info *mtd);
286 void (*_put_device) (struct mtd_info *mtd);
292 struct backing_dev_info *backing_dev_info;
294 struct notifier_block reboot_notifier; /* default mode before reboot */
298 struct mtd_ecc_stats ecc_stats;
304 struct module *owner;
306 struct device dev;
308 struct udevice *dev;
313 struct mtd_info *parent;
325 struct list_head node;
331 struct list_head partitions;
335 static inline void mtd_set_of_node(struct mtd_info *mtd, in mtd_set_of_node()
336 const struct device_node *np) in mtd_set_of_node()
341 static inline const struct device_node *mtd_get_of_node(struct mtd_info *mtd) in mtd_get_of_node()
346 struct device_node;
348 static inline void mtd_set_of_node(struct mtd_info *mtd, in mtd_set_of_node()
349 const struct device_node *np) in mtd_set_of_node()
353 static inline const struct device_node *mtd_get_of_node(struct mtd_info *mtd) in mtd_get_of_node()
359 static inline bool mtd_is_partition(const struct mtd_info *mtd) in mtd_is_partition()
364 static inline bool mtd_has_partitions(const struct mtd_info *mtd) in mtd_has_partitions()
369 bool mtd_partitions_used(struct mtd_info *master);
371 int mtd_ooblayout_ecc(struct mtd_info *mtd, int section,
372 struct mtd_oob_region *oobecc);
373 int mtd_ooblayout_find_eccregion(struct mtd_info *mtd, int eccbyte,
375 struct mtd_oob_region *oobregion);
376 int mtd_ooblayout_get_eccbytes(struct mtd_info *mtd, u8 *eccbuf,
378 int mtd_ooblayout_set_eccbytes(struct mtd_info *mtd, const u8 *eccbuf,
380 int mtd_ooblayout_free(struct mtd_info *mtd, int section,
381 struct mtd_oob_region *oobfree);
382 int mtd_ooblayout_get_databytes(struct mtd_info *mtd, u8 *databuf,
384 int mtd_ooblayout_set_databytes(struct mtd_info *mtd, const u8 *databuf,
386 int mtd_ooblayout_count_freebytes(struct mtd_info *mtd);
387 int mtd_ooblayout_count_eccbytes(struct mtd_info *mtd);
389 static inline void mtd_set_ooblayout(struct mtd_info *mtd, in mtd_set_ooblayout()
390 const struct mtd_ooblayout_ops *ooblayout) in mtd_set_ooblayout()
395 static inline int mtd_oobavail(struct mtd_info *mtd, struct mtd_oob_ops *ops) in mtd_oobavail()
400 int mtd_erase(struct mtd_info *mtd, struct erase_info *instr);
402 int mtd_point(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
404 int mtd_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
406 unsigned long mtd_get_unmapped_area(struct mtd_info *mtd, unsigned long len,
408 int mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
410 int mtd_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
412 int mtd_panic_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
415 int mtd_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops);
416 int mtd_write_oob(struct mtd_info *mtd, loff_t to, struct mtd_oob_ops *ops);
418 int mtd_get_fact_prot_info(struct mtd_info *mtd, size_t len, size_t *retlen,
419 struct otp_info *buf);
420 int mtd_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
422 int mtd_get_user_prot_info(struct mtd_info *mtd, size_t len, size_t *retlen,
423 struct otp_info *buf);
424 int mtd_read_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
426 int mtd_write_user_prot_reg(struct mtd_info *mtd, loff_t to, size_t len,
428 int mtd_lock_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len);
431 int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs,
435 static inline void mtd_sync(struct mtd_info *mtd) in mtd_sync()
441 int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
442 int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
443 int mtd_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len);
444 int mtd_block_isreserved(struct mtd_info *mtd, loff_t ofs);
445 int mtd_block_isbad(struct mtd_info *mtd, loff_t ofs);
446 int mtd_block_markbad(struct mtd_info *mtd, loff_t ofs);
449 static inline int mtd_suspend(struct mtd_info *mtd) in mtd_suspend()
454 static inline void mtd_resume(struct mtd_info *mtd) in mtd_resume()
461 static inline uint32_t mtd_div_by_eb(uint64_t sz, struct mtd_info *mtd) in mtd_div_by_eb()
469 static inline uint32_t mtd_mod_by_eb(uint64_t sz, struct mtd_info *mtd) in mtd_mod_by_eb()
476 static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd) in mtd_div_by_ws()
484 static inline uint32_t mtd_mod_by_ws(uint64_t sz, struct mtd_info *mtd) in mtd_mod_by_ws()
491 static inline int mtd_has_oob(const struct mtd_info *mtd) in mtd_has_oob()
496 static inline int mtd_type_is_nand(const struct mtd_info *mtd) in mtd_type_is_nand()
501 static inline int mtd_can_have_bb(const struct mtd_info *mtd) in mtd_can_have_bb()
508 struct mtd_partition;
509 struct mtd_part_parser_data;
511 extern int mtd_device_parse_register(struct mtd_info *mtd,
513 struct mtd_part_parser_data *parser_data,
514 const struct mtd_partition *defparts,
518 extern int mtd_device_unregister(struct mtd_info *master);
519 extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num);
520 extern int __get_mtd_device(struct mtd_info *mtd);
521 extern void __put_mtd_device(struct mtd_info *mtd);
522 extern struct mtd_info *get_mtd_device_nm(const char *name);
523 extern void put_mtd_device(struct mtd_info *mtd);
527 struct mtd_notifier {
528 void (*add)(struct mtd_info *mtd);
529 void (*remove)(struct mtd_info *mtd);
530 struct list_head list;
534 extern void register_mtd_user (struct mtd_notifier *new);
535 extern int unregister_mtd_user (struct mtd_notifier *old);
537 void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size);
540 void mtd_erase_callback(struct erase_info *instr);
542 static inline void mtd_erase_callback(struct erase_info *instr) in mtd_erase_callback()
561 unsigned mtd_mmap_capabilities(struct mtd_info *mtd);
565 int add_mtd_device(struct mtd_info *mtd);
566 int del_mtd_device(struct mtd_info *mtd);
569 int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
570 int del_mtd_partitions(struct mtd_info *);
572 static inline int add_mtd_partitions(struct mtd_info *mtd, in add_mtd_partitions()
573 const struct mtd_partition *parts, in add_mtd_partitions()
579 static inline int del_mtd_partitions(struct mtd_info *mtd) in del_mtd_partitions()
585 struct mtd_info *__mtd_next_device(int i);
598 void mtd_get_len_incl_bad(struct mtd_info *mtd, uint64_t offset,