]> CyberLeo.Net >> Repos - FreeBSD/releng/8.0.git/blob - contrib/cpio/src/cpiohdr.h
Adjust to reflect 8.0-RELEASE.
[FreeBSD/releng/8.0.git] / contrib / cpio / src / cpiohdr.h
1 /* Extended cpio header from POSIX.1.
2    Copyright (C) 1992, 2006 Free Software Foundation, Inc.
3
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 2, or (at your option)
7    any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public
15    License along with this program; if not, write to the Free
16    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17    Boston, MA 02110-1301 USA.  */
18
19 #ifndef _CPIOHDR_H
20
21 #define _CPIOHDR_H 1
22
23 #include <cpio.h>
24
25 struct old_cpio_header
26 {
27   unsigned short c_magic;
28   short c_dev;
29   unsigned short c_ino;
30   unsigned short c_mode;
31   unsigned short c_uid;
32   unsigned short c_gid;
33   unsigned short c_nlink;
34   short c_rdev;
35   unsigned short c_mtimes[2];
36   unsigned short c_namesize;
37   unsigned short c_filesizes[2];
38 };
39
40 struct old_ascii_header
41 {
42   char c_magic[6];
43   char c_dev[6];
44   char c_ino[6];
45   char c_mode[6];
46   char c_uid[6];
47   char c_gid[6];
48   char c_nlink[6];
49   char c_rdev[6];
50   char c_mtime[11];
51   char c_namesize[6];
52   char c_filesize[11];
53 };
54
55 /* "New" portable format and CRC format:
56
57    Each file has a 110 byte header,
58    a variable length, NUL terminated filename,
59    and variable length file data.
60    A header for a filename "TRAILER!!!" indicates the end of the archive.  */
61
62 /* All the fields in the header are ISO 646 (approximately ASCII) strings
63    of hexadecimal numbers, left padded, not NUL terminated: */
64
65 struct new_ascii_header
66 {
67   char c_magic[6];     /* "070701" for "new" portable format
68                           "070702" for CRC format */
69   char c_ino[8];
70   char c_mode[8];
71   char c_uid[8];
72   char c_gid[8];
73   char c_nlink[8];
74   char c_mtime[8];
75   char c_filesize[8];  /* must be 0 for FIFOs and directories */
76   char c_dev_maj[8];
77   char c_dev_min[8];
78   char c_rdev_maj[8];      /* only valid for chr and blk special files */
79   char c_rdev_min[8];      /* only valid for chr and blk special files */
80   char c_namesize[8];  /* count includes terminating NUL in pathname */
81   char c_chksum[8];    /* 0 for "new" portable format; for CRC format
82                           the sum of all the bytes in the file  */
83 };
84
85 struct cpio_file_stat /* Internal representation of a CPIO header */
86 {
87   unsigned short c_magic;
88   ino_t c_ino;
89   mode_t c_mode;
90   uid_t c_uid;
91   gid_t c_gid;
92   size_t c_nlink;
93   time_t c_mtime;
94   off_t c_filesize;
95   long c_dev_maj;
96   long c_dev_min;
97   long c_rdev_maj;
98   long c_rdev_min;
99   size_t c_namesize;
100   unsigned long c_chksum;
101   char *c_name;
102   char *c_tar_linkname;
103 };
104
105
106 #endif /* cpiohdr.h */