65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
#ifndef H_PM_MTD_H
|
|
#define H_PM_MTD_H
|
|
|
|
struct mtd_info_user {
|
|
xmedia_u8 type;
|
|
xmedia_u32 flags;
|
|
xmedia_u32 size;
|
|
xmedia_u32 erasesize;
|
|
xmedia_u32 writesize;
|
|
xmedia_u32 oobsize;
|
|
xmedia_u32 ecctype;
|
|
xmedia_u32 eccsize;
|
|
};
|
|
#define MEMGETINFO _IOR('M', 1, struct mtd_info_user)
|
|
|
|
struct erase_info_user64 {
|
|
xmedia_u64 start;
|
|
xmedia_u64 length;
|
|
};
|
|
#define MEMERASE64 _IOW('M', 20, struct erase_info_user64)
|
|
|
|
|
|
struct mtd_oob_buf {
|
|
xmedia_u32 start;
|
|
xmedia_u32 length;
|
|
xmedia_u8 *ptr;
|
|
};
|
|
#define MEMREADOOB _IOWR('M', 4, struct mtd_oob_buf)
|
|
|
|
/**
|
|
* struct mtd_write_req - data structure for requesting a write operation
|
|
*
|
|
* @start: start address
|
|
* @len: length of data buffer
|
|
* @ooblen: length of OOB buffer
|
|
* @usr_data: user-provided data buffer
|
|
* @usr_oob: user-provided OOB buffer
|
|
* @mode: MTD mode (see "MTD operation modes")
|
|
* @padding: reserved, must be set to 0
|
|
*
|
|
* This structure supports ioctl(MEMWRITE) operations, allowing data and/or OOB
|
|
* writes in various modes. To write to OOB-only, set @usr_data == NULL, and to
|
|
* write data-only, set @usr_oob == NULL. However, setting both @usr_data and
|
|
* @usr_oob to NULL is not allowed.
|
|
*/
|
|
struct mtd_write_req {
|
|
xmedia_u64 start;
|
|
xmedia_u64 len;
|
|
xmedia_u64 ooblen;
|
|
xmedia_u64 usr_data;
|
|
xmedia_u64 usr_oob;
|
|
xmedia_u8 mode;
|
|
xmedia_u8 padding[7];
|
|
};
|
|
|
|
#define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
|
|
|
|
#define MEMGETBADBLOCK _IOW('M', 11, __kernel_loff_t)
|
|
|
|
#define MEMSETBADBLOCK _IOW('M', 12, __kernel_loff_t)
|
|
|
|
#define MEMFORCEERASEBLOCK _IOW('M', 128, __kernel_loff_t)
|
|
|
|
#endif
|