fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / fs / jfs / jfs_dinode.h
index b3388df..52e6929 100644 (file)
@@ -1,18 +1,18 @@
 /*
- *   Copyright (c) International Business Machines Corp., 2000-2001
+ *   Copyright (C) International Business Machines Corp., 2000-2001
  *
  *   This program is free software;  you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
- *   the Free Software Foundation; either version 2 of the License, or 
+ *   the Free Software Foundation; either version 2 of the License, or
  *   (at your option) any later version.
- * 
+ *
  *   This program is distributed in the hope that it will be useful,
  *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
  *   the GNU General Public License for more details.
  *
  *   You should have received a copy of the GNU General Public License
- *   along with this program;  if not, write to the Free Software 
+ *   along with this program;  if not, write to the Free Software
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 #ifndef _H_JFS_DINODE
@@ -39,22 +39,22 @@ struct dinode {
         *
         * define generic/POSIX attributes
         */
-       u32 di_inostamp;        /* 4: stamp to show inode belongs to fileset */
-       s32 di_fileset;         /* 4: fileset number */
-       u32 di_number;          /* 4: inode number, aka file serial number */
-       u32 di_gen;             /* 4: inode generation number */
+       __le32 di_inostamp;     /* 4: stamp to show inode belongs to fileset */
+       __le32 di_fileset;      /* 4: fileset number */
+       __le32 di_number;       /* 4: inode number, aka file serial number */
+       __le32 di_gen;          /* 4: inode generation number */
 
        pxd_t di_ixpxd;         /* 8: inode extent descriptor */
 
-       s64 di_size;            /* 8: size */
-       s64 di_nblocks;         /* 8: number of blocks allocated */
+       __le64 di_size;         /* 8: size */
+       __le64 di_nblocks;      /* 8: number of blocks allocated */
 
-       u32 di_nlink;           /* 4: number of links to the object */
+       __le32 di_nlink;        /* 4: number of links to the object */
 
-       u32 di_uid;             /* 4: user id of owner */
-       u32 di_gid;             /* 4: group id of owner */
+       __le32 di_uid;          /* 4: user id of owner */
+       __le32 di_gid;          /* 4: group id of owner */
 
-       u32 di_mode;            /* 4: attribute, format and permission */
+       __le32 di_mode;         /* 4: attribute, format and permission */
 
        struct timestruc_t di_atime;    /* 8: time last data accessed */
        struct timestruc_t di_ctime;    /* 8: time last status changed */
@@ -65,9 +65,9 @@ struct dinode {
 
        dxd_t di_ea;            /* 16: ea descriptor */
 
-       u32 di_next_index;      /* 4: Next available dir_table index */
+       __le32 di_next_index;   /* 4: Next available dir_table index */
 
-       s32 di_acltype;         /* 4: Type of ACL */
+       __le32 di_acltype;      /* 4: Type of ACL */
 
        /*
         *      Extension Areas.
@@ -103,7 +103,7 @@ struct dinode {
                                u8 _data[96];           /* 96: unused */
                                struct {
                                        void *_imap;    /* 4: unused */
-                                       u32 _gengen;    /* 4: generator */
+                                       __le32 _gengen; /* 4: generator */
                                } _imap;
                        } _u1;                          /* 96: */
 #define di_gengen      u._file._u1._imap._gengen
@@ -114,7 +114,7 @@ struct dinode {
                                        u8 unused[16];  /* 16: */
                                        dxd_t _dxd;     /* 16: */
                                        union {
-                                               u32 _rdev;      /* 4: */
+                                               __le32 _rdev;   /* 4: */
                                                u8 _fastsymlink[128];
                                        } _u;
                                        u8 _inlineea[128];
@@ -139,13 +139,39 @@ struct dinode {
 
 /* more extended mode bits: attributes for OS/2 */
 #define IREADONLY      0x02000000      /* no write access to file */
-#define IARCHIVE       0x40000000      /* file archive bit */
-#define ISYSTEM                0x08000000      /* system file */
 #define IHIDDEN                0x04000000      /* hidden file */
-#define IRASH          0x4E000000      /* mask for changeable attributes */
-#define INEWNAME       0x80000000      /* non-8.3 filename format */
+#define ISYSTEM                0x08000000      /* system file */
+
 #define IDIRECTORY     0x20000000      /* directory (shadow of real bit) */
+#define IARCHIVE       0x40000000      /* file archive bit */
+#define INEWNAME       0x80000000      /* non-8.3 filename format */
+
+#define IRASH          0x4E000000      /* mask for changeable attributes */
 #define ATTRSHIFT      25      /* bits to shift to move attribute
                                   specification to mode position */
 
+/* extended attributes for Linux */
+
+#define JFS_NOATIME_FL         0x00080000 /* do not update atime */
+
+#define JFS_DIRSYNC_FL         0x00100000 /* dirsync behaviour */
+#define JFS_SYNC_FL            0x00200000 /* Synchronous updates */
+#define JFS_SECRM_FL           0x00400000 /* Secure deletion */
+#define JFS_UNRM_FL            0x00800000 /* allow for undelete */
+
+#define JFS_APPEND_FL          0x01000000 /* writes to file may only append */
+#define JFS_IMMUTABLE_FL       0x02000000 /* Immutable file */
+
+#define JFS_BARRIER_FL         0x04000000 /* Barrier for chroot() */
+#define JFS_IUNLINK_FL         0x08000000 /* Immutable unlink */
+
+#define JFS_FL_USER_VISIBLE    0x0FF80000
+#define JFS_FL_USER_MODIFIABLE 0x03F80000
+#define JFS_FL_INHERIT         0x0BC80000
+
+/* These are identical to EXT[23]_IOC_GETFLAGS/SETFLAGS */
+#define JFS_IOC_GETFLAGS       _IOR('f', 1, long)
+#define JFS_IOC_SETFLAGS       _IOW('f', 2, long)
+
+
 #endif /*_H_JFS_DINODE */