ReactOS 0.4.15-dev-7918-g2a2556c
checkerr.h
Go to the documentation of this file.
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
40extern "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
85extern int errconfig __PR((char *name));
86extern BOOL errhidden __PR((int etype, const char *fname));
87extern BOOL errwarnonly __PR((int etype, const char *fname));
88extern BOOL errabort __PR((int etype, const char *fname,
89 BOOL doexit));
90
91#ifdef __cplusplus
92}
93#endif
94
95#endif /* _SCHILY_CHECKERR_H */
EXPORT BOOL errwarnonly(int etype, const char *fname)
Definition: checkerr.c:282
EXPORT BOOL errabort(int etype, const char *fname, BOOL doexit)
Definition: checkerr.c:300
EXPORT int errconfig(char *name)
Definition: checkerr.c:67
EXPORT BOOL errhidden(int etype, const char *fname)
Definition: checkerr.c:264
unsigned int BOOL
Definition: ntddk_ex.h:94
#define __PR(a)
Definition: prototyp.h:106
Definition: name.c:39