X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=compat%2Finclude%2Fbsdcompat.h;h=881f50582b725fb65987aa08e0b7b58483740751;hp=8aad39790066845569e9338e6ec39c65d9a26e0e;hb=11856e771fadee7ddb9b5a613c91f562bf363da7;hpb=ebcbe7f6c10482913b60fc792e72e494b439b242 diff --git a/compat/include/bsdcompat.h b/compat/include/bsdcompat.h index 8aad397..881f505 100644 --- a/compat/include/bsdcompat.h +++ b/compat/include/bsdcompat.h @@ -2,9 +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 , 1999-2000 + * Stelian Pop - AlcĂ´ve , 2000-2002 * - * $Id: bsdcompat.h,v 1.9 2000/01/21 10:17:41 stelian Exp $ + * $Id: bsdcompat.h,v 1.16 2002/01/16 09:32:14 stelian Exp $ */ #include @@ -21,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 @@ -59,10 +60,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 @@ -101,6 +101,7 @@ struct dinode { #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 @@ -131,18 +132,30 @@ struct dinode { #define d_fileno d_ino #endif -struct direct { +/* + * 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; -#if 1 - __u8 d_namlen; - __u8 d_type; -#else __u16 d_namlen; -#endif - char d_name[MAXNAMLEN + 1]; + char d_name[MAXNAMLEN + 1]; }; +/* + * The direct structure used by restore. + */ +struct direct { + __u32 d_ino; + __u16 d_reclen; + __u8 d_type; + __u8 d_namlen; + char d_name[MAXNAMLEN + 1]; +}; /* * Convert between stat structure types and directory types. */