(start_header): Pass mtime as a call-specific data to xheader_store.
[debian/tar] / src / open3.h
1 /* Defines for Sys V style 3-argument open call.
2    Copyright (C) 1988 Free Software Foundation
3
4 This file is part of GNU Tar.
5
6 GNU Tar is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU Tar is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with GNU Tar; see the file COPYING.  If not, write to
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
19
20 /*
21  * @(#)open3.h 1.4 87/11/11
22  *
23  * open3.h -- #defines for the various flags for the Sys V style 3-argument
24  * open() call.  On BSD or System 5, the system already has this in an
25  * include file.  This file is needed for V7 and MINIX systems for the
26  * benefit of open3() in port.c, a routine that emulates the 3-argument
27  * call using system calls available on V7/MINIX. 
28  *
29  * This file is needed by PD tar even if we aren't using the
30  * emulator, since the #defines for O_WRONLY, etc. are used in
31  * a couple of places besides the open() calls, (e.g. in the assignment
32  * to openflag in extract.c).  We just #include this rather than
33  * #ifdef them out.
34  *
35  * Written 6/10/87 by rmtodd@uokmax (Richard Todd).
36  *
37  * The names have been changed by John Gilmore, 31 July 1987, since
38  * Richard called it "bsdopen", and really this change was introduced in
39  * AT&T Unix systems before BSD picked it up.
40  */
41
42 /* Only one of the next three should be specified */
43 #define O_RDONLY         0 /* only allow read */
44 #define O_WRONLY         1 /* only allow write */
45 #define O_RDWR           2 /* both are allowed */
46
47 /* The rest of these can be OR-ed in to the above. */
48 /*
49  * O_NDELAY isn't implemented by the emulator.  It's only useful (to tar) on
50  * systems that have named pipes anyway; it prevents tar's hanging by
51  * opening a named pipe.  We #ifndef it because some systems already have
52  * it defined.
53  */
54 #ifndef O_NDELAY
55 #define O_NDELAY         4 /* don't block on opening devices that would
56                             * block on open -- ignored by emulator. */
57 #endif
58 #define O_CREAT          8 /* create file if needed */
59 #define O_EXCL          16 /* file cannot already exist */
60 #define O_TRUNC         32 /* truncate file on open */
61 #define O_APPEND        64 /* always write at end of file -- ignored by emul */
62
63 #ifdef EMUL_OPEN3
64 /*
65  * make emulation transparent to rest of file -- redirect all open() calls
66  * to our routine
67  */
68 #define open    open3
69 #endif