MTD ioctl interface rework to get rid of MEMGETOOBSEL/MEMSETOOBSEL
PATCH 1/1 MTD ioctl interface rework to get rid of MEMGETOOBSEL/MEMSETOOBSEL
Hi,
this patch gets rid of MEMGETOOBSEL/MEMSETOOBSEL ioctls and introduces a new one (MEMGETOOBAVAIL).
As page layout is moving towards being an internal NAND layer knowledge, there's no need to let the user lavel apps change or read it. On the other hand, user level apps will need to know how many bytes long a free OOB area is for this particular flash type.
The main difference with the previous patch
- no more reuse of old ioctl values
Vitaly
drivers/mtd/mtdchar.c +2 -9
@@ -520,16 +520,9 @@break ; } -case MEMSETOOBSEL : +case MEMGETOOBAVAIL : { -if (copy_from_user (&mtd->oobinfo, argp,sizeof (struct nand_oobinfo ))) -return -EFAULT ; -break ; - } - -case MEMGETOOBSEL : - { -if (copy_to_user (argp, &(mtd->oobinfo),sizeof (struct nand_oobinfo ))) +if (copy_to_user (argp, &(mtd->oobavail),sizeof (mtd->oobavail)))return -EFAULT ;break ; }
include/mtd/mtd-abi.h +1 -2
@@ -102,14 +102,13 @@#define MEMUNLOCK _IOW('M', 6, struct erase_info_user)#define MEMGETREGIONCOUNT _IOR('M', 7, int)#define MEMGETREGIONINFO _IOWR('M', 8, struct region_info_user) -#define MEMSETOOBSEL _IOW('M', 9, struct nand_oobinfo) -#define MEMGETOOBSEL _IOR('M', 10, struct nand_oobinfo)#define MEMGETBADBLOCK _IOW('M', 11, loff_t)#define MEMSETBADBLOCK _IOW('M', 12, loff_t)#define OTPSELECT _IOR('M', 13, int)#define OTPGETREGIONCOUNT _IOW('M', 14, int)#define OTPGETREGIONINFO _IOW('M', 15, struct otp_info)#define OTPLOCK _IOR('M', 16, struct otp_info) +#define MEMGETOOBAVAIL _IOR('M', 16, uint32_t)struct nand_oobinfo {uint32_t useecc;