/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped22/*23* Standard Archive Format24* USTAR - Uniform Standard Tape ARchive25*/2627#ifndef _TAR_H28#define _TAR_H2930#define TBLOCK 51231#define NAMSIZ 10032#define PFXSIZ 1553334#define TMODLEN 835#define TUIDLEN 836#define TGIDLEN 837#define TSIZLEN 1238#define TMTMLEN 1239#define TCKSLEN 84041#define TMAGIC "ustar" /* ustar and a null */42#define TMAGLEN 643#define TVERSION "00" /* 00 and no null */44#define TVERSLEN 245#define TUNMLEN 3246#define TGNMLEN 3247#define TDEVLEN 84849/*50* values used in typeflag field51*/5253#define REGTYPE '0' /* regular file */54#define AREGTYPE 0 /* alternate REGTYPE */55#define LNKTYPE '1' /* hard link */56#define SYMTYPE '2' /* soft link */57#define CHRTYPE '3' /* character special */58#define BLKTYPE '4' /* block special */59#define DIRTYPE '5' /* directory */60#define FIFOTYPE '6' /* FIFO special */61#define CONTTYPE '7' /* reserved */62#define SOKTYPE '8' /* socket */63#define EXTTYPE 'x' /* extended header */64#define GLBTYPE 'g' /* global extended header */65#define LLNKTYPE 'K' /* long link path */66#define LREGTYPE 'L' /* long file path */67#define VERTYPE 'V' /* version */6869/*70* bits used in mode field71*/7273#define TSUID 04000 /* set uid on exec */74#define TSGID 02000 /* set gid on exec */75#define TSVTX 01000 /* sticky bit -- reserved */7677/*78* file permissions79*/8081#define TUREAD 00400 /* read by owner */82#define TUWRITE 00200 /* write by owner */83#define TUEXEC 00100 /* execute by owner */84#define TGREAD 00040 /* read by group */85#define TGWRITE 00020 /* execute by group */86#define TGEXEC 00010 /* write by group */87#define TOREAD 00004 /* read by other */88#define TOWRITE 00002 /* write by other */89#define TOEXEC 00001 /* execute by other */9091struct header92{93char name[NAMSIZ];94char mode[TMODLEN];95char uid[TUIDLEN];96char gid[TGIDLEN];97char size[TSIZLEN];98char mtime[TMTMLEN];99char chksum[TCKSLEN];100char typeflag;101char linkname[NAMSIZ];102char magic[TMAGLEN];103char version[TVERSLEN];104char uname[TUNMLEN];105char gname[TGNMLEN];106char devmajor[TDEVLEN];107char devminor[TDEVLEN];108char prefix[PFXSIZ];109};110111union hblock112{113char dummy[TBLOCK];114struct header dbuf;115};116117#endif118119120