1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#include <linux/ioctl.h>
#include <mtd/mtd-abi.h>
#include "ioctls.h"
#include "utils.h"
static const struct ioctl mtd_ioctls[] = {
IOCTL(MEMGETINFO),
IOCTL(MEMERASE),
IOCTL(MEMWRITEOOB),
IOCTL(MEMREADOOB),
IOCTL(MEMLOCK),
IOCTL(MEMUNLOCK),
IOCTL(MEMGETREGIONCOUNT),
IOCTL(MEMGETREGIONINFO),
/* IOCTL(MEMSETOOBSEL), */
IOCTL(MEMGETOOBSEL),
IOCTL(MEMGETBADBLOCK),
IOCTL(MEMSETBADBLOCK),
IOCTL(OTPSELECT),
IOCTL(OTPGETREGIONCOUNT),
IOCTL(OTPGETREGIONINFO),
IOCTL(OTPLOCK),
IOCTL(ECCGETLAYOUT),
IOCTL(ECCGETSTATS),
IOCTL(MTDFILEMODE),
IOCTL(MEMERASE64),
IOCTL(MEMWRITEOOB64),
IOCTL(MEMREADOOB64),
#ifdef MEMISLOCKED
IOCTL(MEMISLOCKED),
#endif
#ifdef MEMWRITE
IOCTL(MEMWRITE),
#endif
};
static const char *const mtd_devs[] = {
"mtd",
};
static const struct ioctl_group mtd_grp = {
.devtype = DEV_MISC,
.devs = mtd_devs,
.devs_cnt = ARRAY_SIZE(mtd_devs),
.sanitise = pick_random_ioctl,
.ioctls = mtd_ioctls,
.ioctls_cnt = ARRAY_SIZE(mtd_ioctls),
};
REG_IOCTL_GROUP(mtd_grp)
|