00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef __tar_h__
00012 #define __tar_h__
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #define RECORDSIZE 512
00023 #define NAMSIZ 100
00024 #define TUNMLEN 32
00025 #define TGNMLEN 32
00026
00027
00028 union record {
00029 char charptr[RECORDSIZE];
00030 struct header {
00031 char name[NAMSIZ];
00032 char mode[8];
00033 char uid[8];
00034 char gid[8];
00035 char size[12];
00036 char mtime[12];
00037 char chksum[8];
00038 char linkflag;
00039 char linkname[NAMSIZ];
00040 char magic[8];
00041 char uname[TUNMLEN];
00042 char gname[TGNMLEN];
00043 char devmajor[8];
00044 char devminor[8];
00045 } header;
00046 };
00047
00048
00049
00050 #define CHKBLANKS " "
00051
00052
00053 #define TARMAGIC "ustar "
00054
00055 #if 0
00056
00057 #define LF_OLDNORMAL '\0'
00058 #define LF_NORMAL '0'
00059 #define LF_LINK '1'
00060 #define LF_SYMLINK '2'
00061 #define LF_CHR '3'
00062 #define LF_BLK '4'
00063 #define LF_DIR '5'
00064 #define LF_FIFO '6'
00065 #define LF_CONTIG '7'
00066
00067
00068
00069
00070
00071 #define EX_SUCCESS 0
00072 #define EX_ARGSBAD 1
00073 #define EX_BADFILE 2
00074 #define EX_BADARCH 3
00075 #define EX_SYSTEM 4
00076
00077
00078
00079
00080
00081 extern union record *ar_block;
00082 extern union record *ar_record;
00083 extern union record *ar_last;
00084 extern char ar_reading;
00085 extern int blocking;
00086 extern int blocksize;
00087 extern char *ar_file;
00088 extern char *name_file;
00089 extern char *tar;
00090
00091
00092
00093
00094 extern char f_reblock;
00095 extern char f_create;
00096 extern char f_debug;
00097 extern char f_sayblock;
00098 extern char f_follow_links;
00099 extern char f_ignorez;
00100 extern char f_keep;
00101 extern char f_modified;
00102 extern char f_oldarch;
00103 extern char f_use_protection;
00104 extern char f_sorted_names;
00105 extern char f_list;
00106 extern char f_namefile;
00107 extern char f_verbose;
00108 extern char f_extract;
00109 extern char f_compress;
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121 #define f_standard (!f_oldarch)
00122
00123
00124
00125
00126 struct name {
00127 struct name *next;
00128 short length;
00129 char found;
00130 char name[NAMSIZ+1];
00131 };
00132
00133 extern struct name *namelist;
00134 extern struct name *namelast;
00135
00136 extern int archive;
00137 extern int errors;
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149 struct link {
00150 struct link *next;
00151 dev_t dev;
00152 ino_t ino;
00153 short linkcount;
00154 char name[NAMSIZ+1];
00155 };
00156
00157 extern struct link *linklist;
00158
00159
00160
00161
00162 extern char read_error_flag;
00163 #endif
00164
00165 #endif