X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=compat%2Finclude%2Fbsdcompat.h;h=8b8737877ef8605b02d7a40093f8d6353e62a75e;hp=167ddfab8017da5535433ca2bbe3f381146efb7c;hb=9ca70cf6a082bb146eaaa0b09361643feca38875;hpb=109e9e1d1a904627eeae4d519a0f694795b2892c diff --git a/compat/include/bsdcompat.h b/compat/include/bsdcompat.h index 167ddfa..8b87378 100644 --- a/compat/include/bsdcompat.h +++ b/compat/include/bsdcompat.h @@ -2,10 +2,10 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999-2000 - * Stelian Pop - Alcôve , 2000 + * Stelian Pop , 1999-2000 + * Stelian Pop - Alcôve , 2000-2002 * - * $Id: bsdcompat.h,v 1.12 2000/12/04 15:43:16 stelian Exp $ + * $Id: bsdcompat.h,v 1.18 2002/07/17 10:18:52 stelian Exp $ */ #include @@ -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;