diff --git a/drivers/nand/nand.c b/drivers/nand/nand.c index 2b3dec0..bf00d8b 100644 --- a/drivers/nand/nand.c +++ b/drivers/nand/nand.c @@ -143,6 +143,12 @@ return 0; } +#if 0 +static char* mtd_get_size(struct device_d *, struct param_d *param) +{ + static char +} +#endif static struct file_operations nand_ops = { .read = nand_read, @@ -163,6 +169,11 @@ mtd->cdev.priv = mtd; mtd->cdev.dev = &mtd->class_dev; + mtd->param_size.flags = PARAM_FLAG_RO; + mtd->param_size.name = "size"; + mtd->param_size.value = asprintf("%d", mtd->size); + dev_add_param(&mtd->class_dev, &mtd->param_size); + devfs_create(&mtd->cdev); return 0; @@ -171,6 +182,7 @@ int del_mtd_device (struct mtd_info *mtd) { unregister_device(&mtd->class_dev); + free(mtd->param_size.value); return 0; } diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index c6e28e2..6a1fcb9 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -203,6 +203,9 @@ struct device_d class_dev; struct device_d *dev; struct cdev cdev; + + struct param_d param_size; + char *size_str; };