]> git.wh0rd.org - dump.git/blobdiff - compat/include/bsdcompat.h
Create new BSD inodes (and get 32 bit UID/GID)
[dump.git] / compat / include / bsdcompat.h
index caa7290c5a00fe364c6240aaf6a2b29753bc1355..8b8737877ef8605b02d7a40093f8d6353e62a75e 100644 (file)
@@ -2,10 +2,10 @@
  *     Ported to Linux's Second Extended File System as part of the
  *     dump and restore backup suit
  *     Remy Card <card@Linux.EU.Org>, 1994-1997
- *     Stelian Pop <pop@cybercable.fr>, 1999-2000
- *     Stelian Pop <pop@cybercable.fr> - Alcôve <www.alcove.fr>, 2000
+ *     Stelian Pop <stelian@popies.net>, 1999-2000
+ *     Stelian Pop <stelian@popies.net> - Alcôve <www.alcove.com>, 2000-2002
  *
- *     $Id: bsdcompat.h,v 1.11 2000/11/10 14:42:24 stelian Exp $
+ *     $Id: bsdcompat.h,v 1.18 2002/07/17 10:18:52 stelian Exp $
  */
 
 #include <config.h>
@@ -22,7 +22,7 @@
 #define MIN(a,b)       ((a < b) ? a : b)
 #endif
 
-#define        WINO            ((ino_t)1)
+#define        WINO            1
 #define        DEV_BSIZE       512
 #define        DEV_BSHIFT      9
 #define        MAXBSIZE        EXT2_MAX_BLOCK_SIZE
@@ -36,7 +36,8 @@
 #define powerof2(x)    ((((x)-1)&(x))==0)
 
 #define dbtob(b)       ((unsigned)(b) << DEV_BSHIFT)
-#define fsbtodb(sb,b)  ((int)(((long long)b * EXT2_BLOCK_SIZE(sb->super)) / DEV_BSIZE))
+#define fsbtodb(sb,b)  ((int)(((long long)(b) * EXT2_BLOCK_SIZE((sb)->super)) / DEV_BSIZE))
+#define dbtofsb(sb,b)  ((int)(((long long)(b) * DEV_BSIZE) / EXT2_BLOCK_SIZE((sb)->super)))
 
 #define        sblock          fs
 #define fs_fsize       fragsize
@@ -60,10 +61,9 @@ typedef __u64                u_quad_t;
 /*
  * The BSD dump format reserves 4 bytes for a time_t, but other architectures
  * (notably axp) have larger time_t.  ctime4() is a modified ctime() which
- * always accepts short 4-byte times.  time4() is a similarly modified time().
+ * always accepts short 4-byte times.
  */
 #define ctime4(timep) ({ time_t t = *(timep); ctime(&t); })
-#define time4(timep) ({time_t t; t = time(0); if (timep) *timep=t; t; })
 
 /*
  * This is the ext2_inode structure but the fields have been renamed
@@ -96,12 +96,15 @@ struct dinode {
        __u8    di_frag;
        __u8    di_fsize;
        __u16   di_pad1;
-       __u32   di_spare[2];
+       __u16   di_uidhigh;
+       __u16   di_gidhigh;
+       __u32   di_spare;
 };
 
 #define di_rdev                di_db[0]
 /* #define di_ouid             di_uid */
 /* #define di_ogid             di_gid */
+#define di_size_high   di_dir_acl
 
 /*
  * This is the ext2_dir_entry structure but the fields have been renamed
@@ -133,21 +136,7 @@ struct dinode {
 #endif
 
 /*
- * This is the direct structure used by dump. In needs to be
- * different from direct because linux dump generates only
- * 'old inode format' dumps. And BSD supposes that the old
- * inode dumps have the d_namelen field written in machine byte
- * order...
- */
-struct olddirect {
-       __u32   d_ino;
-       __u16   d_reclen;
-       __u16   d_namlen;
-       char    d_name[MAXNAMLEN + 1];
-};
-
-/*
- * The direct structure used by restore.
+ * The direct structure used by dump/restore.
  */
 struct direct {
        __u32   d_ino;