root/ext/phar/tar.h

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

INCLUDED FROM


   1 #ifndef __PHAR_TAR_H
   2 #define __PHAR_TAR_H
   3 /*
   4   +----------------------------------------------------------------------+
   5   | TAR archive support for Phar                                         |
   6   +----------------------------------------------------------------------+
   7   | Copyright (c) 2005-2016 The PHP Group                                |
   8   +----------------------------------------------------------------------+
   9   | This source file is subject to version 3.01 of the PHP license,      |
  10   | that is bundled with this package in the file LICENSE, and is        |
  11   | available through the world-wide-web at the following url:           |
  12   | http://www.php.net/license/3_01.txt.                                 |
  13   | If you did not receive a copy of the PHP license and are unable to   |
  14   | obtain it through the world-wide-web, please send a note to          |
  15   | license@php.net so we can mail you a copy immediately.               |
  16   +----------------------------------------------------------------------+
  17   | Authors: Dmitry Stogov <dmitry@zend.com>                             |
  18   |          Gregory Beaver <cellog@php.net>                             |
  19   +----------------------------------------------------------------------+
  20 */
  21 
  22 #ifdef PHP_WIN32
  23 #pragma pack(1)
  24 # define PHAR_TAR_PACK
  25 #elif defined(__sgi)
  26 # define PHAR_TAR_PACK
  27 #elif defined(__GNUC__)
  28 # define PHAR_TAR_PACK __attribute__((__packed__))
  29 #else
  30 # define PHAR_TAR_PACK
  31 #endif
  32 
  33 #if defined(__sgi)
  34 # pragma pack 0
  35 #endif
  36 /**
  37  * the format of the header block for a file, in the older UNIX-compatible
  38  * TAR format
  39  */
  40 typedef struct _old_tar_header {  /* {{{ */
  41         char name[100];     /* name of file;
  42                                  directory is indicated by a trailing slash (/) */
  43         char mode[8];       /* file mode */
  44         char uid[8];        /* owner user ID */
  45         char gid[8];        /* owner group ID */
  46         char size[12];      /* length of file in bytes */
  47         char mtime[12];     /* modify time of file */
  48         char checksum[8];   /* checksum for header */
  49         char link;          /* indicator for links;
  50                                  1 for a linked file,
  51                                  2 for a symbolic link,
  52                                  0 otherwise */
  53         char linkname[100]; /* name of linked file */
  54 } PHAR_TAR_PACK old_tar_header;
  55 /* }}} */
  56 
  57 #if defined(__sgi)
  58 # pragma pack 0
  59 #endif
  60 /**
  61  * the new USTAR header format.
  62  * Note that tar can determine that the USTAR format is being used by the
  63  * presence of the null-terminated string "ustar" in the magic field.
  64  */
  65 typedef struct _tar_header {  /* {{{ */
  66         char name[100];     /* name of file */
  67         char mode[8];       /* file mode   */
  68         char uid[8];        /* owner user ID */
  69         char gid[8];        /* owner group ID */
  70         char size[12];      /* length of file in bytes */
  71         char mtime[12];     /* modify time of file */
  72         char checksum[8];   /* checksum for header */
  73         char typeflag;      /* type of file
  74                                  0 Regular file
  75                                  1 Link to another file already archived
  76                                  2 Symbolic link
  77                                  3 Character special device
  78                                  4 Block special device
  79                                  5 Directory
  80                                  6 FIFO special file
  81                                  7 Reserved */
  82         char linkname[100]; /* name of linked file */
  83         char magic[6];      /* USTAR indicator */
  84         char version[2];    /* USTAR version */
  85         char uname[32];     /* owner user name */
  86         char gname[32];     /* owner group name */
  87         char devmajor[8];   /* device major number */
  88         char devminor[8];   /* device minor number */
  89         char prefix[155];   /* prefix for file name;
  90                                the value of the prefix field, if non-null,
  91                                is prefixed to the name field to allow names
  92                                longer then 100 characters */
  93         char padding[12];   /* unused zeroed bytes */
  94 } PHAR_TAR_PACK tar_header;
  95 /* }}} */
  96 
  97 #ifdef PHP_WIN32
  98 #pragma pack()
  99 #endif
 100 
 101 #endif /* __PHAR_TAR_H */

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