mtd: move mtd_oob_mode_t to shared kernel/user space
We will want to use the MTD_OOB_{PLACE,AUTO,RAW} modes in user-space applications through the introduction of new ioctls, so we should make this enum a shared type. This enum is now anonymous. Artem: tweaked the patch. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@intel.com>
This commit is contained in:
Родитель
c46f6483d2
Коммит
905c6bcdb4
|
@ -1351,7 +1351,7 @@ static int onenand_read_oob_nolock(struct mtd_info *mtd, loff_t from,
|
||||||
struct mtd_ecc_stats stats;
|
struct mtd_ecc_stats stats;
|
||||||
int read = 0, thislen, column, oobsize;
|
int read = 0, thislen, column, oobsize;
|
||||||
size_t len = ops->ooblen;
|
size_t len = ops->ooblen;
|
||||||
mtd_oob_mode_t mode = ops->mode;
|
unsigned int mode = ops->mode;
|
||||||
u_char *buf = ops->oobbuf;
|
u_char *buf = ops->oobbuf;
|
||||||
int ret = 0, readcmd;
|
int ret = 0, readcmd;
|
||||||
|
|
||||||
|
@ -2074,7 +2074,7 @@ static int onenand_write_oob_nolock(struct mtd_info *mtd, loff_t to,
|
||||||
u_char *oobbuf;
|
u_char *oobbuf;
|
||||||
size_t len = ops->ooblen;
|
size_t len = ops->ooblen;
|
||||||
const u_char *buf = ops->oobbuf;
|
const u_char *buf = ops->oobbuf;
|
||||||
mtd_oob_mode_t mode = ops->mode;
|
unsigned int mode = ops->mode;
|
||||||
|
|
||||||
to += ops->ooboffs;
|
to += ops->ooboffs;
|
||||||
|
|
||||||
|
|
|
@ -68,20 +68,6 @@ struct mtd_erase_region_info {
|
||||||
unsigned long *lockmap; /* If keeping bitmap of locks */
|
unsigned long *lockmap; /* If keeping bitmap of locks */
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* oob operation modes
|
|
||||||
*
|
|
||||||
* MTD_OOB_PLACE: oob data are placed at the given offset
|
|
||||||
* MTD_OOB_AUTO: oob data are automatically placed at the free areas
|
|
||||||
* which are defined by the ecclayout
|
|
||||||
* MTD_OOB_RAW: mode to read oob and data without doing ECC checking
|
|
||||||
*/
|
|
||||||
typedef enum {
|
|
||||||
MTD_OOB_PLACE,
|
|
||||||
MTD_OOB_AUTO,
|
|
||||||
MTD_OOB_RAW,
|
|
||||||
} mtd_oob_mode_t;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct mtd_oob_ops - oob operation operands
|
* struct mtd_oob_ops - oob operation operands
|
||||||
* @mode: operation mode
|
* @mode: operation mode
|
||||||
|
@ -102,7 +88,7 @@ typedef enum {
|
||||||
* OOB area.
|
* OOB area.
|
||||||
*/
|
*/
|
||||||
struct mtd_oob_ops {
|
struct mtd_oob_ops {
|
||||||
mtd_oob_mode_t mode;
|
unsigned int mode;
|
||||||
size_t len;
|
size_t len;
|
||||||
size_t retlen;
|
size_t retlen;
|
||||||
size_t ooblen;
|
size_t ooblen;
|
||||||
|
|
|
@ -45,6 +45,21 @@ struct mtd_oob_buf64 {
|
||||||
__u64 usr_ptr;
|
__u64 usr_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* oob operation modes
|
||||||
|
*
|
||||||
|
* MTD_OOB_PLACE: oob data are placed at the given offset (default)
|
||||||
|
* MTD_OOB_AUTO: oob data are automatically placed at the free areas
|
||||||
|
* which are defined by the internal ecclayout
|
||||||
|
* MTD_OOB_RAW: mode to read or write oob and data without doing ECC
|
||||||
|
* checking
|
||||||
|
*/
|
||||||
|
enum {
|
||||||
|
MTD_OOB_PLACE = 0,
|
||||||
|
MTD_OOB_AUTO = 1,
|
||||||
|
MTD_OOB_RAW = 2,
|
||||||
|
};
|
||||||
|
|
||||||
#define MTD_ABSENT 0
|
#define MTD_ABSENT 0
|
||||||
#define MTD_RAM 1
|
#define MTD_RAM 1
|
||||||
#define MTD_ROM 2
|
#define MTD_ROM 2
|
||||||
|
|
Загрузка…
Ссылка в новой задаче