mmc-omap: add support for 16-bit and 32-bit registers
[safe/jmp/linux-2.6] / include / mtd / mtd-abi.h
index fb67201..be51ae2 100644 (file)
@@ -5,17 +5,31 @@
 #ifndef __MTD_ABI_H__
 #define __MTD_ABI_H__
 
+#include <linux/types.h>
+
 struct erase_info_user {
-       uint32_t start;
-       uint32_t length;
+       __u32 start;
+       __u32 length;
+};
+
+struct erase_info_user64 {
+       __u64 start;
+       __u64 length;
 };
 
 struct mtd_oob_buf {
-       uint32_t start;
-       uint32_t length;
+       __u32 start;
+       __u32 length;
        unsigned char __user *ptr;
 };
 
+struct mtd_oob_buf64 {
+       __u64 start;
+       __u32 pad;
+       __u32 length;
+       __u64 usr_ptr;
+};
+
 #define MTD_ABSENT             0
 #define MTD_RAM                        1
 #define MTD_ROM                        2
@@ -48,30 +62,30 @@ struct mtd_oob_buf {
 #define MTD_OTP_USER           2
 
 struct mtd_info_user {
-       uint8_t type;
-       uint32_t flags;
-       uint32_t size;   // Total size of the MTD
-       uint32_t erasesize;
-       uint32_t writesize;
-       uint32_t oobsize;   // Amount of OOB data per block (e.g. 16)
+       __u8 type;
+       __u32 flags;
+       __u32 size;      // Total size of the MTD
+       __u32 erasesize;
+       __u32 writesize;
+       __u32 oobsize;   // Amount of OOB data per block (e.g. 16)
        /* The below two fields are obsolete and broken, do not use them
         * (TODO: remove at some point) */
-       uint32_t ecctype;
-       uint32_t eccsize;
+       __u32 ecctype;
+       __u32 eccsize;
 };
 
 struct region_info_user {
-       uint32_t offset;                /* At which this region starts,
+       __u32 offset;           /* At which this region starts,
                                         * from the beginning of the MTD */
-       uint32_t erasesize;             /* For this region */
-       uint32_t numblocks;             /* Number of blocks in this region */
-       uint32_t regionindex;
+       __u32 erasesize;                /* For this region */
+       __u32 numblocks;                /* Number of blocks in this region */
+       __u32 regionindex;
 };
 
 struct otp_info {
-       uint32_t start;
-       uint32_t length;
-       uint32_t locked;
+       __u32 start;
+       __u32 length;
+       __u32 locked;
 };
 
 #define MEMGETINFO             _IOR('M', 1, struct mtd_info_user)
@@ -93,21 +107,24 @@ struct otp_info {
 #define ECCGETLAYOUT           _IOR('M', 17, struct nand_ecclayout)
 #define ECCGETSTATS            _IOR('M', 18, struct mtd_ecc_stats)
 #define MTDFILEMODE            _IO('M', 19)
+#define MEMERASE64             _IOW('M', 20, struct erase_info_user64)
+#define MEMWRITEOOB64          _IOWR('M', 21, struct mtd_oob_buf64)
+#define MEMREADOOB64           _IOWR('M', 22, struct mtd_oob_buf64)
 
 /*
  * Obsolete legacy interface. Keep it in order not to break userspace
  * interfaces
  */
 struct nand_oobinfo {
-       uint32_t useecc;
-       uint32_t eccbytes;
-       uint32_t oobfree[8][2];
-       uint32_t eccpos[32];
+       __u32 useecc;
+       __u32 eccbytes;
+       __u32 oobfree[8][2];
+       __u32 eccpos[32];
 };
 
 struct nand_oobfree {
-       uint32_t offset;
-       uint32_t length;
+       __u32 offset;
+       __u32 length;
 };
 
 #define MTD_MAX_OOBFREE_ENTRIES        8
@@ -116,9 +133,9 @@ struct nand_oobfree {
  * diagnosis and to allow creation of raw images
  */
 struct nand_ecclayout {
-       uint32_t eccbytes;
-       uint32_t eccpos[64];
-       uint32_t oobavail;
+       __u32 eccbytes;
+       __u32 eccpos[64];
+       __u32 oobavail;
        struct nand_oobfree oobfree[MTD_MAX_OOBFREE_ENTRIES];
 };
 
@@ -131,10 +148,10 @@ struct nand_ecclayout {
  * @bbtblocks: number of blocks reserved for bad block tables
  */
 struct mtd_ecc_stats {
-       uint32_t corrected;
-       uint32_t failed;
-       uint32_t badblocks;
-       uint32_t bbtblocks;
+       __u32 corrected;
+       __u32 failed;
+       __u32 badblocks;
+       __u32 bbtblocks;
 };
 
 /*