1 /* $OpenBSD: sysexits.h,v 1.5 2003/06/02 19:34:12 millert Exp $ */ 2 /* $NetBSD: sysexits.h,v 1.4 1994/10/26 00:56:33 cgd Exp $ */ 3 4 /* 5 * Copyright (c) 1987 Regents of the University of California. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. Neither the name of the University nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 * @(#)sysexits.h 4.8 (Berkeley) 4/3/91 33 */ 34 35 #pragma once 36 37 /** 38 * @file sysexits.h 39 * @brief Exit status codes for system programs. 40 * 41 * This include file attempts to categorize possible error 42 * exit statuses for system programs such as sendmail. 43 */ 44 45 #include <sys/cdefs.h> 46 47 /** Successful termination. */ 48 #define EX_OK 0 49 50 /** 51 * Base value for error messages. 52 * Error numbers begin at `EX__BASE` to reduce the possibility of 53 * clashing with other exit statuses that random programs may 54 * already return. 55 */ 56 #define EX__BASE 64 57 58 /** 59 * Command line usage error. 60 * The command was used incorrectly, such as the wrong number of 61 * arguments, a bad flag, or bad syntax for a parameter. 62 */ 63 #define EX_USAGE 64 64 65 /** 66 * Data format error. 67 * The input data was incorrect in some way. 68 * This should only be used for user's data and not for system files. 69 */ 70 #define EX_DATAERR 65 71 72 /** 73 * Cannot open input. 74 * An input file (not a system file) did not exist or was not readable. 75 * This could also include errors like "No message" to a mailer (if it cared 76 * to catch it). 77 */ 78 #define EX_NOINPUT 66 79 80 /** 81 * The specified user did not exist. 82 * This might be used for mail addresses or remote logins. 83 */ 84 #define EX_NOUSER 67 85 86 /** 87 * The specified host did not exist. 88 * This is used in mail addresses or network requests. 89 */ 90 #define EX_NOHOST 68 91 92 /** 93 * A service is unavailable. 94 * This can occur if a support program or file does not exist. 95 * This can also be used as a catchall message when something 96 * you wanted to do doesn't work, but you don't know why. 97 */ 98 #define EX_UNAVAILABLE 69 99 100 /** 101 * An internal software error has been detected. 102 * This should be limited to non-operating system related errors. 103 */ 104 #define EX_SOFTWARE 70 105 106 /** 107 * An operating system error has been detected. 108 * This is intended to be used for such things as "cannot 109 * fork", "cannot create pipe", or the like. It includes 110 * things like getuid returning a user that does not 111 * exist in the passwd file. 112 */ 113 #define EX_OSERR 71 114 115 /** 116 * Critical OS file error. 117 * A system file (such as /etc/passwd) does not exist, cannot be opened, 118 * or has some other problem (such as a syntax error). 119 */ 120 #define EX_OSFILE 72 121 122 /** 123 * Can't create (user) output file. 124 * A (user specified) output file cannot be created. 125 */ 126 #define EX_CANTCREAT 73 127 128 /** 129 * Input/output error. 130 * An error occurred while doing I/O on some file. 131 */ 132 #define EX_IOERR 74 133 134 /** 135 * Temporary failure; user is invited to retry. 136 * A temporary failure, indicating something that 137 * is not really an error. In sendmail, this might mean 138 * that a mailer could not create a connection, 139 * and the request should be reattempted later. 140 */ 141 #define EX_TEMPFAIL 75 142 143 /** 144 * Remote error in protocol. 145 * The remote system returned something that 146 * was "not possible" during a protocol exchange. 147 */ 148 #define EX_PROTOCOL 76 149 150 /** 151 * Permission denied. 152 * You did not have sufficient permission to perform the operation. 153 * This is not intended for file system problems, which should use EX_NOINPUT or 154 * EX_CANTCREAT, but rather for higher level permissions. 155 */ 156 #define EX_NOPERM 77 157 158 /** 159 * Configuration error. 160 * Something was found in an unconfigured or misconfigured state. 161 */ 162 #define EX_CONFIG 78 163 164 /** Maximum listed value. */ 165 #define EX__MAX 78 166