X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=compat%2Finclude%2Fbsdcompat.h;h=71ba0e2b1ff23c539ae5eafab27be63c9cbeee25;hb=d6967896bc4e18f9b4359a2ef5be5c0f1bcc456a;hp=c697cabf617023123382b37d49ad3e30aba2e76c;hpb=1227625a12a66e0ded78a1997c2d23f23202a382;p=dump.git diff --git a/compat/include/bsdcompat.h b/compat/include/bsdcompat.h index c697cab..71ba0e2 100644 --- a/compat/include/bsdcompat.h +++ b/compat/include/bsdcompat.h @@ -1,11 +1,16 @@ /* * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit - * Remy Card , 1994, 1995, 1996 + * Remy Card , 1994-1997 + * Stelian Pop , 1999-2000 + * Stelian Pop - AlcĂ´ve , 2000 * + * $Id: bsdcompat.h,v 1.13 2000/12/21 11:14:53 stelian Exp $ */ #include +#include +#include #define __dead volatile @@ -97,6 +102,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 @@ -105,23 +111,14 @@ struct dinode { * This is the 4.4BSD directory entry structure */ #define DIRBLKSIZ DEV_BSIZE +#ifndef MAXNAMLEN #define MAXNAMLEN 255 - -struct direct { - __u32 d_ino; - __u16 d_reclen; -#if 1 - __u8 d_namlen; - __u8 d_type; -#else - __u16 d_namlen; #endif - char d_name[MAXNAMLEN + 1]; -}; /* - * File types + * For old libc. */ +#ifndef DT_UNKNOWN #define DT_UNKNOWN 0 #define DT_FIFO 1 #define DT_CHR 2 @@ -130,8 +127,36 @@ struct direct { #define DT_REG 8 #define DT_LNK 10 #define DT_SOCK 12 -#define DT_WHT 14 +#endif + +#ifndef d_fileno +#define d_fileno d_ino +#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. + */ +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. */ @@ -203,6 +228,11 @@ struct old_bsd_inode { __u32 di_spare[4]; }; +struct bsdtimeval { /* XXX alpha-*-linux is deviant */ + __u32 tv_sec; + __u32 tv_usec; +}; + /* * This is the new (4.4) BSD inode structure * copied from the FreeBSD 2.0 include file @@ -215,9 +245,9 @@ struct new_bsd_inode { __u32 inumber; } di_u; u_quad_t di_size; - struct timeval di_atime; - struct timeval di_mtime; - struct timeval di_ctime; + struct bsdtimeval di_atime; + struct bsdtimeval di_mtime; + struct bsdtimeval di_ctime; daddr_t di_db[NDADDR]; daddr_t di_ib[NIADDR]; __u32 di_flags;