signal.h - Rename 'union sigval' members to fit requirements in SuSv2 and POSIX.
[dragonfly.git] / contrib / file / src / tar.h
blobfa2390ab7d6992a491a8800d02ed8b52ad3eaf75
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.
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.
29 * Header file for public domain tar (tape archive) program.
31 * @(#)tar.h 1.20 86/10/29 Public Domain.
33 * Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu.
35 * $File: tar.h,v 1.12 2008/02/07 00:58:52 christos Exp $ # checkin only
39 * Header block on tape.
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".
46 #define RECORDSIZE 512
47 #define NAMSIZ 100
48 #define TUNMLEN 32
49 #define TGNMLEN 32
51 union record {
52 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;
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 */