libkdenetwork Library API Documentation

gpg-error.h

00001 /* Output of mkheader.awk. DO NOT EDIT. */ 00002 00003 /* gpg-error.h - Public interface to libgpg-error. 00004 Copyright (C) 2003, 2004 g10 Code GmbH 00005 00006 This file is part of libgpg-error. 00007 00008 libgpg-error is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Lesser General Public License 00010 as published by the Free Software Foundation; either version 2.1 of 00011 the License, or (at your option) any later version. 00012 00013 libgpg-error is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Lesser General Public License for more details. 00017 00018 You should have received a copy of the GNU Lesser General Public 00019 License along with libgpg-error; if not, write to the Free 00020 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 00021 02111-1307, USA. */ 00022 00023 #ifndef GPG_ERROR_H 00024 #define GPG_ERROR_H 1 00025 00026 #include <stddef.h> 00027 00028 #ifdef __GNUC__ 00029 #define GPG_ERR_INLINE __inline__ 00030 #elif __STDC_VERSION__ >= 199901L 00031 #define GPG_ERR_INLINE inline 00032 #else 00033 #ifndef GPG_ERR_INLINE 00034 #define GPG_ERR_INLINE 00035 #endif 00036 #endif 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #if 0 /* just to make Emacs auto-indent happy */ 00041 } 00042 #endif 00043 #endif /* __cplusplus */ 00044 00045 /* The GnuPG project consists of many components. Error codes are 00046 exchanged between all components. The common error codes and their 00047 user-presentable descriptions are kept into a shared library to 00048 allow adding new error codes and components without recompiling any 00049 of the other components. The interface will not change in a 00050 backward incompatible way. 00051 00052 An error code together with an error source build up an error 00053 value. As the error value is been passed from one component to 00054 another, it preserver the information about the source and nature 00055 of the error. 00056 00057 A component of the GnuPG project can define the following macro to 00058 tune the behaviour of the library: 00059 00060 GPG_ERR_SOURCE_DEFAULT: Define to an error source of type 00061 gpg_err_source_t to make that source the default for gpg_error(). 00062 Otherwise GPG_ERR_SOURCE_UNKNOWN is used as default. */ 00063 00064 00065 /* The error source type gpg_err_source_t. 00066 00067 Where as the Poo out of a welle small 00068 Taketh his firste springing and his sours. 00069 --Chaucer. */ 00070 00071 /* Only use free slots, never change or reorder the existing 00072 entries. */ 00073 typedef enum 00074 { 00075 GPG_ERR_SOURCE_UNKNOWN = 0, 00076 GPG_ERR_SOURCE_GCRYPT = 1, 00077 GPG_ERR_SOURCE_GPG = 2, 00078 GPG_ERR_SOURCE_GPGSM = 3, 00079 GPG_ERR_SOURCE_GPGAGENT = 4, 00080 GPG_ERR_SOURCE_PINENTRY = 5, 00081 GPG_ERR_SOURCE_SCD = 6, 00082 GPG_ERR_SOURCE_GPGME = 7, 00083 GPG_ERR_SOURCE_KEYBOX = 8, 00084 GPG_ERR_SOURCE_KSBA = 9, 00085 GPG_ERR_SOURCE_DIRMNGR = 10, 00086 GPG_ERR_SOURCE_USER_1 = 32, 00087 GPG_ERR_SOURCE_USER_2 = 33, 00088 GPG_ERR_SOURCE_USER_3 = 34, 00089 GPG_ERR_SOURCE_USER_4 = 35, 00090 00091 /* This is one more than the largest allowed entry. */ 00092 GPG_ERR_SOURCE_DIM = 256 00093 } gpg_err_source_t; 00094 00095 00096 /* The error code type gpg_err_code_t. */ 00097 00098 /* Only use free slots, never change or reorder the existing 00099 entries. */ 00100 typedef enum 00101 { 00102 GPG_ERR_NO_ERROR = 0, 00103 GPG_ERR_GENERAL = 1, 00104 GPG_ERR_UNKNOWN_PACKET = 2, 00105 GPG_ERR_UNKNOWN_VERSION = 3, 00106 GPG_ERR_PUBKEY_ALGO = 4, 00107 GPG_ERR_DIGEST_ALGO = 5, 00108 GPG_ERR_BAD_PUBKEY = 6, 00109 GPG_ERR_BAD_SECKEY = 7, 00110 GPG_ERR_BAD_SIGNATURE = 8, 00111 GPG_ERR_NO_PUBKEY = 9, 00112 GPG_ERR_CHECKSUM = 10, 00113 GPG_ERR_BAD_PASSPHRASE = 11, 00114 GPG_ERR_CIPHER_ALGO = 12, 00115 GPG_ERR_KEYRING_OPEN = 13, 00116 GPG_ERR_INV_PACKET = 14, 00117 GPG_ERR_INV_ARMOR = 15, 00118 GPG_ERR_NO_USER_ID = 16, 00119 GPG_ERR_NO_SECKEY = 17, 00120 GPG_ERR_WRONG_SECKEY = 18, 00121 GPG_ERR_BAD_KEY = 19, 00122 GPG_ERR_COMPR_ALGO = 20, 00123 GPG_ERR_NO_PRIME = 21, 00124 GPG_ERR_NO_ENCODING_METHOD = 22, 00125 GPG_ERR_NO_ENCRYPTION_SCHEME = 23, 00126 GPG_ERR_NO_SIGNATURE_SCHEME = 24, 00127 GPG_ERR_INV_ATTR = 25, 00128 GPG_ERR_NO_VALUE = 26, 00129 GPG_ERR_NOT_FOUND = 27, 00130 GPG_ERR_VALUE_NOT_FOUND = 28, 00131 GPG_ERR_SYNTAX = 29, 00132 GPG_ERR_BAD_MPI = 30, 00133 GPG_ERR_INV_PASSPHRASE = 31, 00134 GPG_ERR_SIG_CLASS = 32, 00135 GPG_ERR_RESOURCE_LIMIT = 33, 00136 GPG_ERR_INV_KEYRING = 34, 00137 GPG_ERR_TRUSTDB = 35, 00138 GPG_ERR_BAD_CERT = 36, 00139 GPG_ERR_INV_USER_ID = 37, 00140 GPG_ERR_UNEXPECTED = 38, 00141 GPG_ERR_TIME_CONFLICT = 39, 00142 GPG_ERR_KEYSERVER = 40, 00143 GPG_ERR_WRONG_PUBKEY_ALGO = 41, 00144 GPG_ERR_TRIBUTE_TO_D_A = 42, 00145 GPG_ERR_WEAK_KEY = 43, 00146 GPG_ERR_INV_KEYLEN = 44, 00147 GPG_ERR_INV_ARG = 45, 00148 GPG_ERR_BAD_URI = 46, 00149 GPG_ERR_INV_URI = 47, 00150 GPG_ERR_NETWORK = 48, 00151 GPG_ERR_UNKNOWN_HOST = 49, 00152 GPG_ERR_SELFTEST_FAILED = 50, 00153 GPG_ERR_NOT_ENCRYPTED = 51, 00154 GPG_ERR_NOT_PROCESSED = 52, 00155 GPG_ERR_UNUSABLE_PUBKEY = 53, 00156 GPG_ERR_UNUSABLE_SECKEY = 54, 00157 GPG_ERR_INV_VALUE = 55, 00158 GPG_ERR_BAD_CERT_CHAIN = 56, 00159 GPG_ERR_MISSING_CERT = 57, 00160 GPG_ERR_NO_DATA = 58, 00161 GPG_ERR_BUG = 59, 00162 GPG_ERR_NOT_SUPPORTED = 60, 00163 GPG_ERR_INV_OP = 61, 00164 GPG_ERR_TIMEOUT = 62, 00165 GPG_ERR_INTERNAL = 63, 00166 GPG_ERR_EOF_GCRYPT = 64, 00167 GPG_ERR_INV_OBJ = 65, 00168 GPG_ERR_TOO_SHORT = 66, 00169 GPG_ERR_TOO_LARGE = 67, 00170 GPG_ERR_NO_OBJ = 68, 00171 GPG_ERR_NOT_IMPLEMENTED = 69, 00172 GPG_ERR_CONFLICT = 70, 00173 GPG_ERR_INV_CIPHER_MODE = 71, 00174 GPG_ERR_INV_FLAG = 72, 00175 GPG_ERR_INV_HANDLE = 73, 00176 GPG_ERR_TRUNCATED = 74, 00177 GPG_ERR_INCOMPLETE_LINE = 75, 00178 GPG_ERR_INV_RESPONSE = 76, 00179 GPG_ERR_NO_AGENT = 77, 00180 GPG_ERR_AGENT = 78, 00181 GPG_ERR_INV_DATA = 79, 00182 GPG_ERR_ASSUAN_SERVER_FAULT = 80, 00183 GPG_ERR_ASSUAN = 81, 00184 GPG_ERR_INV_SESSION_KEY = 82, 00185 GPG_ERR_INV_SEXP = 83, 00186 GPG_ERR_UNSUPPORTED_ALGORITHM = 84, 00187 GPG_ERR_NO_PIN_ENTRY = 85, 00188 GPG_ERR_PIN_ENTRY = 86, 00189 GPG_ERR_BAD_PIN = 87, 00190 GPG_ERR_INV_NAME = 88, 00191 GPG_ERR_BAD_DATA = 89, 00192 GPG_ERR_INV_PARAMETER = 90, 00193 GPG_ERR_WRONG_CARD = 91, 00194 GPG_ERR_NO_DIRMNGR = 92, 00195 GPG_ERR_DIRMNGR = 93, 00196 GPG_ERR_CERT_REVOKED = 94, 00197 GPG_ERR_NO_CRL_KNOWN = 95, 00198 GPG_ERR_CRL_TOO_OLD = 96, 00199 GPG_ERR_LINE_TOO_LONG = 97, 00200 GPG_ERR_NOT_TRUSTED = 98, 00201 GPG_ERR_CANCELED = 99, 00202 GPG_ERR_BAD_CA_CERT = 100, 00203 GPG_ERR_CERT_EXPIRED = 101, 00204 GPG_ERR_CERT_TOO_YOUNG = 102, 00205 GPG_ERR_UNSUPPORTED_CERT = 103, 00206 GPG_ERR_UNKNOWN_SEXP = 104, 00207 GPG_ERR_UNSUPPORTED_PROTECTION = 105, 00208 GPG_ERR_CORRUPTED_PROTECTION = 106, 00209 GPG_ERR_AMBIGUOUS_NAME = 107, 00210 GPG_ERR_CARD = 108, 00211 GPG_ERR_CARD_RESET = 109, 00212 GPG_ERR_CARD_REMOVED = 110, 00213 GPG_ERR_INV_CARD = 111, 00214 GPG_ERR_CARD_NOT_PRESENT = 112, 00215 GPG_ERR_NO_PKCS15_APP = 113, 00216 GPG_ERR_NOT_CONFIRMED = 114, 00217 GPG_ERR_CONFIGURATION = 115, 00218 GPG_ERR_NO_POLICY_MATCH = 116, 00219 GPG_ERR_INV_INDEX = 117, 00220 GPG_ERR_INV_ID = 118, 00221 GPG_ERR_NO_SCDAEMON = 119, 00222 GPG_ERR_SCDAEMON = 120, 00223 GPG_ERR_UNSUPPORTED_PROTOCOL = 121, 00224 GPG_ERR_BAD_PIN_METHOD = 122, 00225 GPG_ERR_CARD_NOT_INITIALIZED = 123, 00226 GPG_ERR_UNSUPPORTED_OPERATION = 124, 00227 GPG_ERR_WRONG_KEY_USAGE = 125, 00228 GPG_ERR_NOTHING_FOUND = 126, 00229 GPG_ERR_WRONG_BLOB_TYPE = 127, 00230 GPG_ERR_MISSING_VALUE = 128, 00231 GPG_ERR_HARDWARE = 129, 00232 GPG_ERR_PIN_BLOCKED = 130, 00233 GPG_ERR_USE_CONDITIONS = 131, 00234 GPG_ERR_PIN_NOT_SYNCED = 132, 00235 GPG_ERR_INV_CRL = 133, 00236 GPG_ERR_BAD_BER = 134, 00237 GPG_ERR_INV_BER = 135, 00238 GPG_ERR_ELEMENT_NOT_FOUND = 136, 00239 GPG_ERR_IDENTIFIER_NOT_FOUND = 137, 00240 GPG_ERR_INV_TAG = 138, 00241 GPG_ERR_INV_LENGTH = 139, 00242 GPG_ERR_INV_KEYINFO = 140, 00243 GPG_ERR_UNEXPECTED_TAG = 141, 00244 GPG_ERR_NOT_DER_ENCODED = 142, 00245 GPG_ERR_NO_CMS_OBJ = 143, 00246 GPG_ERR_INV_CMS_OBJ = 144, 00247 GPG_ERR_UNKNOWN_CMS_OBJ = 145, 00248 GPG_ERR_UNSUPPORTED_CMS_OBJ = 146, 00249 GPG_ERR_UNSUPPORTED_ENCODING = 147, 00250 GPG_ERR_UNSUPPORTED_CMS_VERSION = 148, 00251 GPG_ERR_UNKNOWN_ALGORITHM = 149, 00252 GPG_ERR_INV_ENGINE = 150, 00253 GPG_ERR_PUBKEY_NOT_TRUSTED = 151, 00254 GPG_ERR_DECRYPT_FAILED = 152, 00255 GPG_ERR_KEY_EXPIRED = 153, 00256 GPG_ERR_SIG_EXPIRED = 154, 00257 GPG_ERR_ENCODING_PROBLEM = 155, 00258 GPG_ERR_INV_STATE = 156, 00259 GPG_ERR_DUP_VALUE = 157, 00260 GPG_ERR_MISSING_ACTION = 158, 00261 GPG_ERR_MODULE_NOT_FOUND = 159, 00262 GPG_ERR_INV_OID_STRING = 160, 00263 GPG_ERR_INV_TIME = 161, 00264 GPG_ERR_INV_CRL_OBJ = 162, 00265 GPG_ERR_UNSUPPORTED_CRL_VERSION = 163, 00266 GPG_ERR_INV_CERT_OBJ = 164, 00267 GPG_ERR_UNKNOWN_NAME = 165, 00268 GPG_ERR_LOCALE_PROBLEM = 166, 00269 GPG_ERR_NOT_LOCKED = 167, 00270 GPG_ERR_BUFFER_TOO_SHORT = 200, 00271 GPG_ERR_SEXP_INV_LEN_SPEC = 201, 00272 GPG_ERR_SEXP_STRING_TOO_LONG = 202, 00273 GPG_ERR_SEXP_UNMATCHED_PAREN = 203, 00274 GPG_ERR_SEXP_NOT_CANONICAL = 204, 00275 GPG_ERR_SEXP_BAD_CHARACTER = 205, 00276 GPG_ERR_SEXP_BAD_QUOTATION = 206, 00277 GPG_ERR_SEXP_ZERO_PREFIX = 207, 00278 GPG_ERR_SEXP_NESTED_DH = 208, 00279 GPG_ERR_SEXP_UNMATCHED_DH = 209, 00280 GPG_ERR_SEXP_UNEXPECTED_PUNC = 210, 00281 GPG_ERR_SEXP_BAD_HEX_CHAR = 211, 00282 GPG_ERR_SEXP_ODD_HEX_NUMBERS = 212, 00283 GPG_ERR_SEXP_BAD_OCT_CHAR = 213, 00284 GPG_ERR_USER_1 = 1024, 00285 GPG_ERR_USER_2 = 1025, 00286 GPG_ERR_USER_3 = 1026, 00287 GPG_ERR_USER_4 = 1027, 00288 GPG_ERR_USER_5 = 1028, 00289 GPG_ERR_USER_6 = 1029, 00290 GPG_ERR_USER_7 = 1030, 00291 GPG_ERR_USER_8 = 1031, 00292 GPG_ERR_USER_9 = 1032, 00293 GPG_ERR_USER_10 = 1033, 00294 GPG_ERR_USER_11 = 1034, 00295 GPG_ERR_USER_12 = 1035, 00296 GPG_ERR_USER_13 = 1036, 00297 GPG_ERR_USER_14 = 1037, 00298 GPG_ERR_USER_15 = 1038, 00299 GPG_ERR_USER_16 = 1039, 00300 GPG_ERR_UNKNOWN_ERRNO = 16382, 00301 GPG_ERR_EOF = 16383, 00302 00303 /* The following error codes are used to map system errors. */ 00304 #define GPG_ERR_SYSTEM_ERROR (1 << 15) 00305 GPG_ERR_E2BIG = GPG_ERR_SYSTEM_ERROR | 0, 00306 GPG_ERR_EACCES = GPG_ERR_SYSTEM_ERROR | 1, 00307 GPG_ERR_EADDRINUSE = GPG_ERR_SYSTEM_ERROR | 2, 00308 GPG_ERR_EADDRNOTAVAIL = GPG_ERR_SYSTEM_ERROR | 3, 00309 GPG_ERR_EADV = GPG_ERR_SYSTEM_ERROR | 4, 00310 GPG_ERR_EAFNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 5, 00311 GPG_ERR_EAGAIN = GPG_ERR_SYSTEM_ERROR | 6, 00312 GPG_ERR_EALREADY = GPG_ERR_SYSTEM_ERROR | 7, 00313 GPG_ERR_EAUTH = GPG_ERR_SYSTEM_ERROR | 8, 00314 GPG_ERR_EBACKGROUND = GPG_ERR_SYSTEM_ERROR | 9, 00315 GPG_ERR_EBADE = GPG_ERR_SYSTEM_ERROR | 10, 00316 GPG_ERR_EBADF = GPG_ERR_SYSTEM_ERROR | 11, 00317 GPG_ERR_EBADFD = GPG_ERR_SYSTEM_ERROR | 12, 00318 GPG_ERR_EBADMSG = GPG_ERR_SYSTEM_ERROR | 13, 00319 GPG_ERR_EBADR = GPG_ERR_SYSTEM_ERROR | 14, 00320 GPG_ERR_EBADRPC = GPG_ERR_SYSTEM_ERROR | 15, 00321 GPG_ERR_EBADRQC = GPG_ERR_SYSTEM_ERROR | 16, 00322 GPG_ERR_EBADSLT = GPG_ERR_SYSTEM_ERROR | 17, 00323 GPG_ERR_EBFONT = GPG_ERR_SYSTEM_ERROR | 18, 00324 GPG_ERR_EBUSY = GPG_ERR_SYSTEM_ERROR | 19, 00325 GPG_ERR_ECANCELED = GPG_ERR_SYSTEM_ERROR | 20, 00326 GPG_ERR_ECHILD = GPG_ERR_SYSTEM_ERROR | 21, 00327 GPG_ERR_ECHRNG = GPG_ERR_SYSTEM_ERROR | 22, 00328 GPG_ERR_ECOMM = GPG_ERR_SYSTEM_ERROR | 23, 00329 GPG_ERR_ECONNABORTED = GPG_ERR_SYSTEM_ERROR | 24, 00330 GPG_ERR_ECONNREFUSED = GPG_ERR_SYSTEM_ERROR | 25, 00331 GPG_ERR_ECONNRESET = GPG_ERR_SYSTEM_ERROR | 26, 00332 GPG_ERR_ED = GPG_ERR_SYSTEM_ERROR | 27, 00333 GPG_ERR_EDEADLK = GPG_ERR_SYSTEM_ERROR | 28, 00334 GPG_ERR_EDEADLOCK = GPG_ERR_SYSTEM_ERROR | 29, 00335 GPG_ERR_EDESTADDRREQ = GPG_ERR_SYSTEM_ERROR | 30, 00336 GPG_ERR_EDIED = GPG_ERR_SYSTEM_ERROR | 31, 00337 GPG_ERR_EDOM = GPG_ERR_SYSTEM_ERROR | 32, 00338 GPG_ERR_EDOTDOT = GPG_ERR_SYSTEM_ERROR | 33, 00339 GPG_ERR_EDQUOT = GPG_ERR_SYSTEM_ERROR | 34, 00340 GPG_ERR_EEXIST = GPG_ERR_SYSTEM_ERROR | 35, 00341 GPG_ERR_EFAULT = GPG_ERR_SYSTEM_ERROR | 36, 00342 GPG_ERR_EFBIG = GPG_ERR_SYSTEM_ERROR | 37, 00343 GPG_ERR_EFTYPE = GPG_ERR_SYSTEM_ERROR | 38, 00344 GPG_ERR_EGRATUITOUS = GPG_ERR_SYSTEM_ERROR | 39, 00345 GPG_ERR_EGREGIOUS = GPG_ERR_SYSTEM_ERROR | 40, 00346 GPG_ERR_EHOSTDOWN = GPG_ERR_SYSTEM_ERROR | 41, 00347 GPG_ERR_EHOSTUNREACH = GPG_ERR_SYSTEM_ERROR | 42, 00348 GPG_ERR_EIDRM = GPG_ERR_SYSTEM_ERROR | 43, 00349 GPG_ERR_EIEIO = GPG_ERR_SYSTEM_ERROR | 44, 00350 GPG_ERR_EILSEQ = GPG_ERR_SYSTEM_ERROR | 45, 00351 GPG_ERR_EINPROGRESS = GPG_ERR_SYSTEM_ERROR | 46, 00352 GPG_ERR_EINTR = GPG_ERR_SYSTEM_ERROR | 47, 00353 GPG_ERR_EINVAL = GPG_ERR_SYSTEM_ERROR | 48, 00354 GPG_ERR_EIO = GPG_ERR_SYSTEM_ERROR | 49, 00355 GPG_ERR_EISCONN = GPG_ERR_SYSTEM_ERROR | 50, 00356 GPG_ERR_EISDIR = GPG_ERR_SYSTEM_ERROR | 51, 00357 GPG_ERR_EISNAM = GPG_ERR_SYSTEM_ERROR | 52, 00358 GPG_ERR_EL2HLT = GPG_ERR_SYSTEM_ERROR | 53, 00359 GPG_ERR_EL2NSYNC = GPG_ERR_SYSTEM_ERROR | 54, 00360 GPG_ERR_EL3HLT = GPG_ERR_SYSTEM_ERROR | 55, 00361 GPG_ERR_EL3RST = GPG_ERR_SYSTEM_ERROR | 56, 00362 GPG_ERR_ELIBACC = GPG_ERR_SYSTEM_ERROR | 57, 00363 GPG_ERR_ELIBBAD = GPG_ERR_SYSTEM_ERROR | 58, 00364 GPG_ERR_ELIBEXEC = GPG_ERR_SYSTEM_ERROR | 59, 00365 GPG_ERR_ELIBMAX = GPG_ERR_SYSTEM_ERROR | 60, 00366 GPG_ERR_ELIBSCN = GPG_ERR_SYSTEM_ERROR | 61, 00367 GPG_ERR_ELNRNG = GPG_ERR_SYSTEM_ERROR | 62, 00368 GPG_ERR_ELOOP = GPG_ERR_SYSTEM_ERROR | 63, 00369 GPG_ERR_EMEDIUMTYPE = GPG_ERR_SYSTEM_ERROR | 64, 00370 GPG_ERR_EMFILE = GPG_ERR_SYSTEM_ERROR | 65, 00371 GPG_ERR_EMLINK = GPG_ERR_SYSTEM_ERROR | 66, 00372 GPG_ERR_EMSGSIZE = GPG_ERR_SYSTEM_ERROR | 67, 00373 GPG_ERR_EMULTIHOP = GPG_ERR_SYSTEM_ERROR | 68, 00374 GPG_ERR_ENAMETOOLONG = GPG_ERR_SYSTEM_ERROR | 69, 00375 GPG_ERR_ENAVAIL = GPG_ERR_SYSTEM_ERROR | 70, 00376 GPG_ERR_ENEEDAUTH = GPG_ERR_SYSTEM_ERROR | 71, 00377 GPG_ERR_ENETDOWN = GPG_ERR_SYSTEM_ERROR | 72, 00378 GPG_ERR_ENETRESET = GPG_ERR_SYSTEM_ERROR | 73, 00379 GPG_ERR_ENETUNREACH = GPG_ERR_SYSTEM_ERROR | 74, 00380 GPG_ERR_ENFILE = GPG_ERR_SYSTEM_ERROR | 75, 00381 GPG_ERR_ENOANO = GPG_ERR_SYSTEM_ERROR | 76, 00382 GPG_ERR_ENOBUFS = GPG_ERR_SYSTEM_ERROR | 77, 00383 GPG_ERR_ENOCSI = GPG_ERR_SYSTEM_ERROR | 78, 00384 GPG_ERR_ENODATA = GPG_ERR_SYSTEM_ERROR | 79, 00385 GPG_ERR_ENODEV = GPG_ERR_SYSTEM_ERROR | 80, 00386 GPG_ERR_ENOENT = GPG_ERR_SYSTEM_ERROR | 81, 00387 GPG_ERR_ENOEXEC = GPG_ERR_SYSTEM_ERROR | 82, 00388 GPG_ERR_ENOLCK = GPG_ERR_SYSTEM_ERROR | 83, 00389 GPG_ERR_ENOLINK = GPG_ERR_SYSTEM_ERROR | 84, 00390 GPG_ERR_ENOMEDIUM = GPG_ERR_SYSTEM_ERROR | 85, 00391 GPG_ERR_ENOMEM = GPG_ERR_SYSTEM_ERROR | 86, 00392 GPG_ERR_ENOMSG = GPG_ERR_SYSTEM_ERROR | 87, 00393 GPG_ERR_ENONET = GPG_ERR_SYSTEM_ERROR | 88, 00394 GPG_ERR_ENOPKG = GPG_ERR_SYSTEM_ERROR | 89, 00395 GPG_ERR_ENOPROTOOPT = GPG_ERR_SYSTEM_ERROR | 90, 00396 GPG_ERR_ENOSPC = GPG_ERR_SYSTEM_ERROR | 91, 00397 GPG_ERR_ENOSR = GPG_ERR_SYSTEM_ERROR | 92, 00398 GPG_ERR_ENOSTR = GPG_ERR_SYSTEM_ERROR | 93, 00399 GPG_ERR_ENOSYS = GPG_ERR_SYSTEM_ERROR | 94, 00400 GPG_ERR_ENOTBLK = GPG_ERR_SYSTEM_ERROR | 95, 00401 GPG_ERR_ENOTCONN = GPG_ERR_SYSTEM_ERROR | 96, 00402 GPG_ERR_ENOTDIR = GPG_ERR_SYSTEM_ERROR | 97, 00403 GPG_ERR_ENOTEMPTY = GPG_ERR_SYSTEM_ERROR | 98, 00404 GPG_ERR_ENOTNAM = GPG_ERR_SYSTEM_ERROR | 99, 00405 GPG_ERR_ENOTSOCK = GPG_ERR_SYSTEM_ERROR | 100, 00406 GPG_ERR_ENOTSUP = GPG_ERR_SYSTEM_ERROR | 101, 00407 GPG_ERR_ENOTTY = GPG_ERR_SYSTEM_ERROR | 102, 00408 GPG_ERR_ENOTUNIQ = GPG_ERR_SYSTEM_ERROR | 103, 00409 GPG_ERR_ENXIO = GPG_ERR_SYSTEM_ERROR | 104, 00410 GPG_ERR_EOPNOTSUPP = GPG_ERR_SYSTEM_ERROR | 105, 00411 GPG_ERR_EOVERFLOW = GPG_ERR_SYSTEM_ERROR | 106, 00412 GPG_ERR_EPERM = GPG_ERR_SYSTEM_ERROR | 107, 00413 GPG_ERR_EPFNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 108, 00414 GPG_ERR_EPIPE = GPG_ERR_SYSTEM_ERROR | 109, 00415 GPG_ERR_EPROCLIM = GPG_ERR_SYSTEM_ERROR | 110, 00416 GPG_ERR_EPROCUNAVAIL = GPG_ERR_SYSTEM_ERROR | 111, 00417 GPG_ERR_EPROGMISMATCH = GPG_ERR_SYSTEM_ERROR | 112, 00418 GPG_ERR_EPROGUNAVAIL = GPG_ERR_SYSTEM_ERROR | 113, 00419 GPG_ERR_EPROTO = GPG_ERR_SYSTEM_ERROR | 114, 00420 GPG_ERR_EPROTONOSUPPORT = GPG_ERR_SYSTEM_ERROR | 115, 00421 GPG_ERR_EPROTOTYPE = GPG_ERR_SYSTEM_ERROR | 116, 00422 GPG_ERR_ERANGE = GPG_ERR_SYSTEM_ERROR | 117, 00423 GPG_ERR_EREMCHG = GPG_ERR_SYSTEM_ERROR | 118, 00424 GPG_ERR_EREMOTE = GPG_ERR_SYSTEM_ERROR | 119, 00425 GPG_ERR_EREMOTEIO = GPG_ERR_SYSTEM_ERROR | 120, 00426 GPG_ERR_ERESTART = GPG_ERR_SYSTEM_ERROR | 121, 00427 GPG_ERR_EROFS = GPG_ERR_SYSTEM_ERROR | 122, 00428 GPG_ERR_ERPCMISMATCH = GPG_ERR_SYSTEM_ERROR | 123, 00429 GPG_ERR_ESHUTDOWN = GPG_ERR_SYSTEM_ERROR | 124, 00430 GPG_ERR_ESOCKTNOSUPPORT = GPG_ERR_SYSTEM_ERROR | 125, 00431 GPG_ERR_ESPIPE = GPG_ERR_SYSTEM_ERROR | 126, 00432 GPG_ERR_ESRCH = GPG_ERR_SYSTEM_ERROR | 127, 00433 GPG_ERR_ESRMNT = GPG_ERR_SYSTEM_ERROR | 128, 00434 GPG_ERR_ESTALE = GPG_ERR_SYSTEM_ERROR | 129, 00435 GPG_ERR_ESTRPIPE = GPG_ERR_SYSTEM_ERROR | 130, 00436 GPG_ERR_ETIME = GPG_ERR_SYSTEM_ERROR | 131, 00437 GPG_ERR_ETIMEDOUT = GPG_ERR_SYSTEM_ERROR | 132, 00438 GPG_ERR_ETOOMANYREFS = GPG_ERR_SYSTEM_ERROR | 133, 00439 GPG_ERR_ETXTBSY = GPG_ERR_SYSTEM_ERROR | 134, 00440 GPG_ERR_EUCLEAN = GPG_ERR_SYSTEM_ERROR | 135, 00441 GPG_ERR_EUNATCH = GPG_ERR_SYSTEM_ERROR | 136, 00442 GPG_ERR_EUSERS = GPG_ERR_SYSTEM_ERROR | 137, 00443 GPG_ERR_EWOULDBLOCK = GPG_ERR_SYSTEM_ERROR | 138, 00444 GPG_ERR_EXDEV = GPG_ERR_SYSTEM_ERROR | 139, 00445 GPG_ERR_EXFULL = GPG_ERR_SYSTEM_ERROR | 140, 00446 00447 /* This is one more than the largest allowed entry. */ 00448 GPG_ERR_CODE_DIM = 65536 00449 } gpg_err_code_t; 00450 00451 00452 /* The error value type gpg_error_t. */ 00453 00454 /* We would really like to use bit-fields in a struct, but using 00455 structs as return values can cause binary compatibility issues, in 00456 particular if you want to do it effeciently (also see 00457 -freg-struct-return option to GCC). */ 00458 typedef unsigned int gpg_error_t; 00459 00460 /* We use the lowest 16 bits of gpg_error_t for error codes. The 16th 00461 bit indicates system errors. */ 00462 #define GPG_ERR_CODE_MASK (GPG_ERR_CODE_DIM - 1) 00463 00464 /* Bits 17 to 24 are reserved. */ 00465 00466 /* We use the upper 8 bits of gpg_error_t for error sources. */ 00467 #define GPG_ERR_SOURCE_MASK (GPG_ERR_SOURCE_DIM - 1) 00468 #define GPG_ERR_SOURCE_SHIFT 24 00469 00470 00471 /* Constructor and accessor functions. */ 00472 00473 /* Construct an error value from an error code and source. Within a 00474 subsystem, use gpg_error. */ 00475 static GPG_ERR_INLINE gpg_error_t 00476 gpg_err_make (gpg_err_source_t source, gpg_err_code_t code) 00477 { 00478 return code == GPG_ERR_NO_ERROR ? GPG_ERR_NO_ERROR 00479 : (((source & GPG_ERR_SOURCE_MASK) << GPG_ERR_SOURCE_SHIFT) 00480 | (code & GPG_ERR_CODE_MASK)); 00481 } 00482 00483 00484 /* The user should define GPG_ERR_SOURCE_DEFAULT before including this 00485 file to specify a default source for gpg_error. */ 00486 #ifndef GPG_ERR_SOURCE_DEFAULT 00487 #define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_UNKNOWN 00488 #endif 00489 00490 static GPG_ERR_INLINE gpg_error_t 00491 gpg_error (gpg_err_code_t code) 00492 { 00493 return gpg_err_make (GPG_ERR_SOURCE_DEFAULT, code); 00494 } 00495 00496 00497 /* Retrieve the error code from an error value. */ 00498 static GPG_ERR_INLINE gpg_err_code_t 00499 gpg_err_code (gpg_error_t err) 00500 { 00501 return (gpg_err_code_t) (err & GPG_ERR_CODE_MASK); 00502 } 00503 00504 00505 /* Retrieve the error source from an error value. */ 00506 static GPG_ERR_INLINE gpg_err_source_t 00507 gpg_err_source (gpg_error_t err) 00508 { 00509 return (gpg_err_source_t) ((err >> GPG_ERR_SOURCE_SHIFT) 00510 & GPG_ERR_SOURCE_MASK); 00511 } 00512 00513 00514 /* String functions. */ 00515 00516 /* Return a pointer to a string containing a description of the error 00517 code in the error value ERR. This function is not thread-safe. */ 00518 const char *gpg_strerror (gpg_error_t err); 00519 00520 /* Return the error string for ERR in the user-supplied buffer BUF of 00521 size BUFLEN. This function is, in contrast to gpg_strerror, 00522 thread-safe if a thread-safe strerror_r() function is provided by 00523 the system. If the function succeeds, 0 is returned and BUF 00524 contains the string describing the error. If the buffer was not 00525 large enough, ERANGE is returned and BUF contains as much of the 00526 beginning of the error string as fits into the buffer. */ 00527 int gpg_strerror_r (gpg_error_t err, char *buf, size_t buflen); 00528 00529 /* Return a pointer to a string containing a description of the error 00530 source in the error value ERR. */ 00531 const char *gpg_strsource (gpg_error_t err); 00532 00533 00534 /* Mapping of system errors (errno). */ 00535 00536 /* Retrieve the error code for the system error ERR. This returns 00537 GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped (report 00538 this). */ 00539 gpg_err_code_t gpg_err_code_from_errno (int err); 00540 00541 00542 /* Retrieve the system error for the error code CODE. This returns 0 00543 if CODE is not a system error code. */ 00544 int gpg_err_code_to_errno (gpg_err_code_t code); 00545 00546 00547 /* Self-documenting convenience functions. */ 00548 00549 static GPG_ERR_INLINE gpg_error_t 00550 gpg_err_make_from_errno (gpg_err_source_t source, int err) 00551 { 00552 return gpg_err_make (source, gpg_err_code_from_errno (err)); 00553 } 00554 00555 00556 static GPG_ERR_INLINE gpg_error_t 00557 gpg_error_from_errno (int err) 00558 { 00559 return gpg_error (gpg_err_code_from_errno (err)); 00560 } 00561 00562 #ifdef __cplusplus 00563 } 00564 #endif 00565 00566 #endif /* GPG_ERROR_H */
KDE Logo
This file is part of the documentation for libkdenetwork Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 21 19:46:16 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003