Files
gk-sdk/source/gmp/usr/pm/pm_mtd.h
T

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