root/ext/fileinfo/libmagic/tar.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) Ian F. Darwin 1986-1995.
   3  * Software written by Ian F. Darwin and others;
   4  * maintained 1995-present by Christos Zoulas and others.
   5  *
   6  * Redistribution and use in source and binary forms, with or without
   7  * modification, are permitted provided that the following conditions
   8  * are met:
   9  * 1. Redistributions of source code must retain the above copyright
  10  *    notice immediately at the beginning of the file, without modification,
  11  *    this list of conditions, and the following disclaimer.
  12  * 2. Redistributions in binary form must reproduce the above copyright
  13  *    notice, this list of conditions and the following disclaimer in the
  14  *    documentation and/or other materials provided with the distribution.
  15  *
  16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
  20  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  26  * SUCH DAMAGE.
  27  */
  28 /*
  29  * Header file for public domain tar (tape archive) program.
  30  *
  31  * @(#)tar.h 1.20 86/10/29      Public Domain.
  32  *
  33  * Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu.
  34  *
  35  * $File: tar.h,v 1.12 2008/02/07 00:58:52 christos Exp $ # checkin only
  36  */
  37 
  38 /*
  39  * Header block on tape.
  40  *
  41  * I'm going to use traditional DP naming conventions here.
  42  * A "block" is a big chunk of stuff that we do I/O on.
  43  * A "record" is a piece of info that we care about.
  44  * Typically many "record"s fit into a "block".
  45  */
  46 #define RECORDSIZE      512
  47 #define NAMSIZ  100
  48 #define TUNMLEN 32
  49 #define TGNMLEN 32
  50 
  51 union record {
  52         unsigned char   charptr[RECORDSIZE];
  53         struct header {
  54                 char    name[NAMSIZ];
  55                 char    mode[8];
  56                 char    uid[8];
  57                 char    gid[8];
  58                 char    size[12];
  59                 char    mtime[12];
  60                 char    chksum[8];
  61                 char    linkflag;
  62                 char    linkname[NAMSIZ];
  63                 char    magic[8];
  64                 char    uname[TUNMLEN];
  65                 char    gname[TGNMLEN];
  66                 char    devmajor[8];
  67                 char    devminor[8];
  68         } header;
  69 };
  70 
  71 /* The magic field is filled with this if uname and gname are valid. */
  72 #define TMAGIC          "ustar"         /* 5 chars and a null */
  73 #define GNUTMAGIC       "ustar  "       /* 7 chars and a null */

/* [<][>][^][v][top][bottom][index][help] */