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.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Mon Apr 4 04:44:05 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003