Added EA/ACL support in dump and restore.
[dump.git] / restore / extern.h
1 /*
2 * Ported to Linux's Second Extended File System as part of the
3 * dump and restore backup suit
4 * Remy Card <card@Linux.EU.Org>, 1994-1997
5 * Stelian Pop <stelian@popies.net>, 1999-2000
6 * Stelian Pop <stelian@popies.net> - AlcĂ´ve <www.alcove.com>, 2000-2002
7 *
8 * $Id: extern.h,v 1.25 2005/05/02 15:10:46 stelian Exp $
9 */
10
11 /*-
12 * Copyright (c) 1992, 1993
13 * The Regents of the University of California. All rights reserved.
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 * 3. Neither the name of the University nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
28 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * SUCH DAMAGE.
38 */
39
40 #include <config.h>
41 #include <compatlfs.h>
42 #ifndef __P
43 #include <sys/cdefs.h>
44 #endif
45 #ifdef DUMP_MACOSX
46 #include "darwin.h"
47 #endif
48
49 struct entry *addentry __P((char *, dump_ino_t, int));
50 long addfile __P((char *, dump_ino_t, int));
51 int addwhiteout __P((char *));
52 void badentry __P((struct entry *, const char *));
53 void canon __P((char *, char *, int));
54 void checkrestore __P((void));
55 void closemt __P((void));
56 void cleanup __P((void));
57 void comparefile __P((char *));
58 void compareleaves __P((void));
59 void createfiles __P((void));
60 void createleaves __P((char *));
61 void createlinks __P((void));
62 long deletefile __P((char *, dump_ino_t, int));
63 void deleteino __P((dump_ino_t));
64 void delwhiteout __P((struct entry *));
65 dump_ino_t dirlookup __P((const char *));
66 void dumpsymtable __P((char *, long));
67 void extractdirs __P((int));
68 int extractfile __P((struct entry *, int));
69 void findunreflinks __P((void));
70 char *flagvalues __P((struct entry *));
71 void freeentry __P((struct entry *));
72 void freename __P((char *));
73 int genliteraldir __P((char *, dump_ino_t));
74 char *gentempname __P((struct entry *));
75 void getfile __P((void (*)(char *, size_t), void (*)(char *, size_t)));
76 void getvol __P((long));
77 void initsymtable __P((char *));
78 int inodetype __P((dump_ino_t));
79 int linkit __P((char *, char *, int));
80 struct entry *lookupino __P((dump_ino_t));
81 struct entry *lookupname __P((char *));
82 long listfile __P((char *, dump_ino_t, int));
83 dump_ino_t lowerbnd __P((dump_ino_t));
84 void mktempname __P((struct entry *));
85 void moveentry __P((struct entry *, char *));
86 void msg __P((const char *, ...));
87 char *myname __P((struct entry *));
88 void newnode __P((struct entry *));
89 void newtapebuf __P((long));
90 long nodeupdates __P((char *, dump_ino_t, int));
91 void onintr __P((int));
92 void panic __P((const char *, ...));
93 void pathcheck __P((char *));
94 struct direct *pathsearch __P((const char *));
95 void printdumpinfo __P((void));
96 void printvolinfo __P((void));
97 void removeleaf __P((struct entry *));
98 void removenode __P((struct entry *));
99 void removeoldleaves __P((void));
100 void removeoldnodes __P((void));
101 void renameit __P((char *, char *));
102 int reply __P((const char *));
103 void resizemaps __P((dump_ino_t, dump_ino_t));
104 RST_DIR *rst_opendir __P((const char *));
105 struct direct *rst_readdir __P((RST_DIR *));
106 void rst_closedir __P((RST_DIR *dirp));
107 void runcmdshell __P((void));
108 char *savename __P((char *));
109 void setdirmodes __P((int));
110 void comparedirmodes __P((void));
111 void setinput __P((char *));
112 void setup __P((void));
113 void skipdirs __P((void));
114 void skipfile __P((void));
115 void skipmaps __P((void));
116 void swabst __P((u_char *, u_char *));
117 void treescan __P((char *, dump_ino_t, long (*)(char *, dump_ino_t, int)));
118 dump_ino_t upperbnd __P((dump_ino_t));
119 long verifyfile __P((char *, dump_ino_t, int));
120 void xtrnull __P((char *, size_t));
121
122 /* From ../dump/dumprmt.c */
123 void rmtclose __P((void));
124 int rmthost __P((const char *));
125 int rmtioctl __P((int, int));
126 int rmtopen __P((const char *, const int));
127 int rmtread __P((const char *, int));
128 OFF_T rmtseek __P((OFF_T, int));
129
130 /* From e2fsprogs */
131 int fsetflags __P((const char *, unsigned long));
132 int fgetflags __P((const char *, unsigned long *));
133 int setflags __P((int, unsigned long));
134
135 int lsetflags __P((const char *, unsigned long));
136 int lgetflags __P((const char *, unsigned long *));
137
138 #ifdef USE_QFA
139 int Inode2Tapepos __P((dump_ino_t, long *, long long *, int));
140 int GetTapePos __P((long long *));
141 int GotoTapePos __P((long long));
142 void ReReadFromTape __P((void));
143 void ReReadInodeFromTape __P((dump_ino_t));
144 void GetPathFile __P((char *, char *, char *));
145
146 #ifdef sunos
147 int GetSCSIIDFromPath __P((char *, long *));
148 int OpenSMTCmt(char *);
149 #endif
150 #endif
151 void RequestVol __P((long));
152
153 #ifdef DUMP_MACOSX
154 int extractfinderinfoufs __P((char *));
155 int extractresourceufs __P((char *));
156 int CreateAppleDoubleFileRes __P((char *, FndrFileInfo *, mode_t, int, struct timeval *, u_int32_t, u_int32_t));
157 #endif
158
159 void skipxattr __P((void));
160 int readxattr __P((char *));
161 int xattr_compare __P((char *, char *));
162 int xattr_extract __P((char *, char *));