[MKISOFS]
[reactos.git] / reactos / sdk / tools / mkisofs / schilytools / include / schily / checkerr.h
1 /* @(#)checkerr.h 1.14 12/11/13 Copyright 2003-2012 J. Schilling */
2 /*
3 * Generic error control for programs that do file i/o.
4 * The error control is usually used by archiving programs.
5 *
6 * The current version does not provide a stable interface.
7 * It does not support multi-threaded programs and it may call
8 * comerr() from the parser. If you use the code before there is
9 * an official stable and "library-compliant" interface, be careful
10 * and watch for changes.
11 *
12 * Copyright (c) 2003-2012 J. Schilling
13 */
14 /*
15 * The contents of this file are subject to the terms of the
16 * Common Development and Distribution License, Version 1.0 only
17 * (the "License"). You may not use this file except in compliance
18 * with the License.
19 *
20 * See the file CDDL.Schily.txt in this distribution for details.
21 *
22 * When distributing Covered Code, include this CDDL HEADER in each
23 * file and include the License file CDDL.Schily.txt from this distribution.
24 */
25
26 #ifndef _SCHILY_CHECKERR_H
27 #define _SCHILY_CHECKERR_H
28
29 #ifndef _SCHILY_MCONFIG_H
30 #include <schily/mconfig.h>
31 #endif
32 #ifndef _SCHILY_STANDARD_H
33 #include <schily/standard.h>
34 #endif
35 #ifndef _SCHILY_UTYPES_H
36 #include <schily/utypes.h>
37 #endif
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 /*
44 * Error conditions handled by error control.
45 */
46 #define E_STAT 0x0001 /* Could not stat(2) file */
47 #define E_GETACL 0x0002 /* Could not retrieve ACL info */
48 #define E_OPEN 0x0004 /* Could not open file */
49 #define E_READ 0x0008 /* Could not read file */
50 #define E_WRITE 0x0010 /* Could not write file */
51 #define E_GROW 0x0020 /* File did grow during backup */
52 #define E_SHRINK 0x0040 /* File did shrink during backup */
53 #define E_MISSLINK 0x0080 /* Missing hard link(s) for file */
54 #define E_NAMETOOLONG 0x0100 /* File name too long for archive */
55 #define E_FILETOOBIG 0x0200 /* File too big for archive */
56 #define E_SPECIALFILE 0x0400 /* Improper file type for archive */
57 #define E_READLINK 0x0800 /* Could not read symbolic link */
58 #define E_GETXATTR 0x1000 /* Could not get xattr */
59 #define E_CHDIR 0x2000 /* Could not chdir() */
60
61 /*
62 * Currently unused: 0x4000 .. 0x8000
63 */
64
65 #define E_SETTIME 0x10000 /* Could not set file times */
66 #define E_SETMODE 0x20000 /* Could not set access modes */
67 #define E_SECURITY 0x40000 /* Skipped for security reasons */
68 #define E_LSECURITY 0x80000 /* Link skipped for security */
69 #define E_SAMEFILE 0x100000 /* Skipped from/to identical */
70 #define E_BADACL 0x200000 /* ACL string conversion error */
71 #define E_SETACL 0x400000 /* Could not set ACL for file */
72 #define E_SETXATTR 0x800000 /* Could not set xattr */
73
74 /*
75 * Currently unused: 0x1000000 .. 0x8000000
76 */
77
78 #define E_DIFF 0x10000000 /* Diffs encountered */
79 #define E_WARN 0x20000000 /* Print this error but do exit(0) */
80 #define E_ABORT 0x40000000 /* Abort on this error */
81 #define E_EXT 0x80000000 /* Extended (TBD later) */
82
83 #define E_ALL (~(UInt32_t)(E_DIFF|E_ABORT))
84
85 extern int errconfig __PR((char *name));
86 extern BOOL errhidden __PR((int etype, const char *fname));
87 extern BOOL errwarnonly __PR((int etype, const char *fname));
88 extern BOOL errabort __PR((int etype, const char *fname,
89 BOOL doexit));
90
91 #ifdef __cplusplus
92 }
93 #endif
94
95 #endif /* _SCHILY_CHECKERR_H */