Lines Matching defs:mtd
2 * block2mtd.c - create an mtd from a block device
28 #include <linux/mtd/mtd.h>
38 struct mtd_info mtd;
84 static int block2mtd_erase(struct mtd_info *mtd, struct erase_info *instr)
86 struct block2mtd_dev *dev = mtd->priv;
101 static int block2mtd_read(struct mtd_info *mtd, loff_t from, size_t len,
104 struct block2mtd_dev *dev = mtd->priv;
175 static int block2mtd_write(struct mtd_info *mtd, loff_t to, size_t len,
178 struct block2mtd_dev *dev = mtd->priv;
191 static void block2mtd_sync(struct mtd_info *mtd)
193 struct block2mtd_dev *dev = mtd->priv;
204 kfree(dev->mtd.name);
285 dev->mtd.name = name;
287 dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
288 dev->mtd.erasesize = erase_size;
289 dev->mtd.writesize = 1;
290 dev->mtd.writebufsize = PAGE_SIZE;
291 dev->mtd.type = MTD_RAM;
292 dev->mtd.flags = MTD_CAP_RAM;
293 dev->mtd._erase = block2mtd_erase;
294 dev->mtd._write = block2mtd_write;
295 dev->mtd._sync = block2mtd_sync;
296 dev->mtd._read = block2mtd_read;
297 dev->mtd.priv = dev;
298 dev->mtd.owner = THIS_MODULE;
300 if (mtd_device_register(&dev->mtd, NULL, 0)) {
306 pr_info("mtd%d: [%s] erase_size = %dKiB [%d]\n",
307 dev->mtd.index,
308 dev->mtd.name + strlen("block2mtd: "),
309 dev->mtd.erasesize >> 10, dev->mtd.erasesize);
482 block2mtd_sync(&dev->mtd);
483 mtd_device_unregister(&dev->mtd);
485 pr_info("mtd%d: [%s] removed\n",
486 dev->mtd.index,
487 dev->mtd.name + strlen("block2mtd: "));