chipcard2.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: chipcard2.h.in 163 2006-02-15 19:31:45Z aquamaniac $
00005     begin       : Tue Dec 23 2003
00006     copyright   : (C) 2003 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 #ifndef CHIPCARD_CHIPCARD2_H
00015 #define CHIPCARD_CHIPCARD2_H
00016 
00017 #ifdef __declspec
00018 # if BUILDING_LIBCHIPCARD2_DLL
00019 #  define CHIPCARD_API __declspec (dllexport)
00020 # else /* BUILDING_LIBCHIPCARD2_DLL */
00021 #  define CHIPCARD_API __declspec (dllimport)
00022 # endif /* Not BUILDING_LIBCHIPCARD2_DLL */
00023 #else
00024 # define CHIPCARD_API
00025 #endif
00026 
00027 #ifndef CHIPCARD_NOWARN_DEPRECATED
00028 # ifdef __GNUC__
00029 #  define CHIPCARD_DEPRECATED __attribute((__deprecated__))
00030 # else
00031 #  define CHIPCARD_DEPRECATED
00032 # endif
00033 # else
00034 #  define CHIPCARD_DEPRECATED
00035 #endif
00036 
00037 #include <gwenhywfar/db.h>
00038 #include <gwenhywfar/xml.h>
00039 
00040 
00041 #define LC_DEFAULT_PORT 7392 /* FIXME: make this adjustable by configure */
00042 #define LC_DEFAULT_UDS_SOCK "/var/run/chipcard2d.sock"
00043 
00046 #define LC_ERROR_NONE                  0x00000000
00047 #define LC_ERROR_GENERIC               0x00000001
00048 #define LC_ERROR_INVALID               0x00000002
00049 #define LC_ERROR_CARD_REMOVED          0x00000003
00050 #define LC_ERROR_CARD_NOT_OWNED        0x00000004
00051 #define LC_ERROR_NOT_SUPPORTED         0x00000005
00052 #define LC_ERROR_SETUP                 0x00000006
00053 #define LC_ERROR_NO_DATA               0x00000007
00054 #define LC_ERROR_LOCKED_BY_OTHER       0x00000008
00055 #define LC_ERROR_NOT_LOCKED            0x00000009
00056 
00057 #define LC_ERROR_BAD_RESPONSE          0x0000000a
00058 #define LC_ERROR_NO_SLOTS_CONNECTED    0x0000000b
00059 #define LC_ERROR_NO_SLOTS_DISCONNECTED 0x0000000c
00060 #define LC_ERROR_NO_SLOTS_AVAILABLE    0x0000000d
00061 #define LC_ERROR_BAD_PIN               0x0000000e
00062 #define LC_ERROR_USER_ABORTED          0x0000000f
00063 #define LC_ERROR_CARD_DESTROYED        0x00000010
00064 
00065 const char *LC_Error_toString(GWEN_TYPE_UINT32 err);
00066 
00067 
00068 #define LC_LOGDOMAIN "ccclient"
00069 
00072 #define LC_READER_FLAGS_KEYPAD            0x00010000
00073 #define LC_READER_FLAGS_DISPLAY           0x00020000
00074 #define LC_READER_FLAGS_NOINFO            0x00040000
00075 #define LC_READER_FLAGS_REMOTE            0x00080000
00076 #define LC_READER_FLAGS_AUTO              0x00100000
00077 #define LC_READER_FLAGS_SUSPENDED_CHECKS  0x00200000
00078 #define LC_READER_FLAGS_DRIVER_HAS_VERIFY 0x00400000
00079 
00081 CHIPCARD_API
00082 GWEN_TYPE_UINT32 LC_ReaderFlags_fromXml(GWEN_XMLNODE *node, const char *name);
00083 CHIPCARD_API
00084 GWEN_TYPE_UINT32 LC_ReaderFlags_fromDb(GWEN_DB_NODE *db, const char *name);
00085 CHIPCARD_API void LC_ReaderFlags_toDb(GWEN_DB_NODE *db,
00086                                       const char *name,
00087                                       GWEN_TYPE_UINT32 fl);
00088 
00090 #define LC_DRIVER_FLAGS_RUNTIME_MASK  0xffff0000
00091 #define LC_DRIVER_FLAGS_AUTO          0x00010000
00092 #define LC_DRIVER_FLAGS_REMOTE        0x00020000
00093 #define LC_DRIVER_FLAGS_CONFIG        0x00040000
00094 
00095 #define LC_DRIVER_FLAGS_HAS_VERIFY_FN 0x00000001
00096 #define LC_DRIVER_FLAGS_HAS_MODIFY_FN 0x00000002
00097 
00098 CHIPCARD_API
00099 GWEN_TYPE_UINT32 LC_DriverFlags_fromDb(GWEN_DB_NODE *db, const char *name);
00100 
00101 CHIPCARD_API
00102 int LC_DriverFlags_toDb(GWEN_DB_NODE *db,
00103                         const char *name,
00104                         GWEN_TYPE_UINT32 flags);
00105 
00106 
00108 #define LC_SERVICE_FLAGS_RUNTIME_MASK (\
00109     LC_SERVICE_FLAGS_CLIENT \
00110     )
00111 #define LC_SERVICE_FLAGS_CLIENT   0x00000001
00112 #define LC_SERVICE_FLAGS_AUTOLOAD 0x00000002
00113 #define LC_SERVICE_FLAGS_SILENT   0x00000004
00114 
00115 CHIPCARD_API
00116 GWEN_TYPE_UINT32 LC_ServiceFlags_fromDb(GWEN_DB_NODE *db, const char *name);
00117 CHIPCARD_API void LC_ServiceFlags_toDb(GWEN_DB_NODE *db,
00118                                        const char *name,
00119                                        GWEN_TYPE_UINT32 fl);
00120 
00121 
00124 #define LC_NOTIFY_FLAGS_DRIVER_MASK      0x0000000f
00125 #define LC_NOTIFY_FLAGS_DRIVER_START     0x00000001
00126 #define LC_NOTIFY_FLAGS_DRIVER_UP        0x00000002
00127 #define LC_NOTIFY_FLAGS_DRIVER_DOWN      0x00000004
00128 #define LC_NOTIFY_FLAGS_DRIVER_ERROR     0x00000008
00129 
00130 #define LC_NOTIFY_FLAGS_READER_MASK      0x000000f0
00131 #define LC_NOTIFY_FLAGS_READER_START     0x00000010
00132 #define LC_NOTIFY_FLAGS_READER_UP        0x00000020
00133 #define LC_NOTIFY_FLAGS_READER_DOWN      0x00000040
00134 #define LC_NOTIFY_FLAGS_READER_ERROR     0x00000080
00135 
00136 #define LC_NOTIFY_FLAGS_SERVICE_MASK     0x00000f00
00137 #define LC_NOTIFY_FLAGS_SERVICE_START    0x00000100
00138 #define LC_NOTIFY_FLAGS_SERVICE_UP       0x00000200
00139 #define LC_NOTIFY_FLAGS_SERVICE_DOWN     0x00000400
00140 #define LC_NOTIFY_FLAGS_SERVICE_ERROR    0x00000800
00141 
00142 #define LC_NOTIFY_FLAGS_CARD_MASK        0x0000f000
00143 #define LC_NOTIFY_FLAGS_CARD_INSERTED    0x00001000
00144 #define LC_NOTIFY_FLAGS_CARD_REMOVED     0x00002000
00145 #define LC_NOTIFY_FLAGS_CARD_RFU1        0x00004000
00146 #define LC_NOTIFY_FLAGS_CARD_RFU2        0x00008000
00147 
00148 #define LC_NOTIFY_FLAGS_CLIENT_MASK      0x0fff0000
00149 #define LC_NOTIFY_FLAGS_CLIENT_UP        0x00010000
00150 #define LC_NOTIFY_FLAGS_CLIENT_DOWN      0x00020000
00151 #define LC_NOTIFY_FLAGS_CLIENT_STARTWAIT 0x00040000
00152 #define LC_NOTIFY_FLAGS_CLIENT_STOPWAIT  0x00080000
00153 #define LC_NOTIFY_FLAGS_CLIENT_TAKECARD  0x00100000
00154 #define LC_NOTIFY_FLAGS_CLIENT_GOTCARD   0x00200000
00155 
00156 #define LC_NOTIFY_FLAGS_CLIENT_CMDSEND   0x00400000
00157 #define LC_NOTIFY_FLAGS_CLIENT_CMDRECV   0x00800000
00158 
00159 #define LC_NOTIFY_FLAGS_SINGLESHOT       0x80000000
00160 
00161 #define LC_NOTIFY_FLAGS_PRIVILEGED (\
00162   LC_NOTIFY_FLAGS_CLIENT_CMDSEND |\
00163   LC_NOTIFY_FLAGS_CLIENT_CMDRECV)
00164 
00165 CHIPCARD_API
00166 GWEN_TYPE_UINT32 LC_NotifyFlags_fromDb(GWEN_DB_NODE *db, const char *name);
00167 CHIPCARD_API void LC_NotifyFlags_toDb(GWEN_DB_NODE *db,
00168                                       const char *name,
00169                                       GWEN_TYPE_UINT32 fl);
00170 
00171 
00180 #define LC_NOTIFY_TYPE_DRIVER           "driver"
00181 #define LC_NOTIFY_CODE_DRIVER_START     "start"
00182 #define LC_NOTIFY_CODE_DRIVER_UP        "up"
00183 #define LC_NOTIFY_CODE_DRIVER_DOWN      "down"
00184 #define LC_NOTIFY_CODE_DRIVER_ERROR     "error"
00185 
00186 #define LC_NOTIFY_TYPE_READER           "reader"
00187 #define LC_NOTIFY_CODE_READER_START     "start"
00188 #define LC_NOTIFY_CODE_READER_UP        "up"
00189 #define LC_NOTIFY_CODE_READER_DOWN      "down"
00190 #define LC_NOTIFY_CODE_READER_ERROR     "error"
00191 
00192 #define LC_NOTIFY_TYPE_SERVICE          "service"
00193 #define LC_NOTIFY_CODE_SERVICE_START    "start"
00194 #define LC_NOTIFY_CODE_SERVICE_UP       "up"
00195 #define LC_NOTIFY_CODE_SERVICE_DOWN     "down"
00196 #define LC_NOTIFY_CODE_SERVICE_ERROR    "error"
00197 
00198 #define LC_NOTIFY_TYPE_CARD             "card"
00199 #define LC_NOTIFY_CODE_CARD_INSERTED    "inserted"
00200 #define LC_NOTIFY_CODE_CARD_REMOVED     "removed"
00201 #define LC_NOTIFY_CODE_CARD_RFU1        "rfu1"
00202 #define LC_NOTIFY_CODE_CARD_RFU2        "rfu2"
00203 
00204 #define LC_NOTIFY_TYPE_CLIENT           "client"
00205 #define LC_NOTIFY_CODE_CLIENT_UP        "up"
00206 #define LC_NOTIFY_CODE_CLIENT_DOWN      "down"
00207 #define LC_NOTIFY_CODE_CLIENT_STARTWAIT "startwait"
00208 #define LC_NOTIFY_CODE_CLIENT_STOPWAIT  "stopwait"
00209 #define LC_NOTIFY_CODE_CLIENT_TAKECARD  "takecard"
00210 #define LC_NOTIFY_CODE_CLIENT_GOTCARD   "gotcard"
00211 
00212 #define LC_NOTIFY_CODE_CLIENT_CMDSEND   "cmdsend"
00213 #define LC_NOTIFY_CODE_CLIENT_CMDRECV   "cmdrecv"
00214 
00219 typedef enum {
00220   LC_DriverStatusDown=0,
00221   LC_DriverStatusWaitForStart,
00222   LC_DriverStatusStarted,
00223   LC_DriverStatusUp,
00224   LC_DriverStatusStopping,
00225   LC_DriverStatusAborted,
00226   LC_DriverStatusDisabled,
00227   LC_DriverStatusUnknown=999
00228 } LC_DRIVER_STATUS;
00229 
00230 CHIPCARD_API LC_DRIVER_STATUS LC_DriverStatus_fromString(const char *s);
00231 CHIPCARD_API const char *LC_DriverStatus_toString(LC_DRIVER_STATUS dst);
00232 
00233 
00234 typedef enum {
00235   LC_ReaderStatusDown=0,
00236   LC_ReaderStatusWaitForStart,
00237   LC_ReaderStatusWaitForDriver,
00238   LC_ReaderStatusWaitForReaderUp,
00239   LC_ReaderStatusWaitForReaderDown,
00240   LC_ReaderStatusUp,
00241   LC_ReaderStatusAborted,
00242   LC_ReaderStatusDisabled,
00243   LC_ReaderStatusUnknown=999
00244 } LC_READER_STATUS;
00245 
00246 CHIPCARD_API LC_READER_STATUS LC_ReaderStatus_fromString(const char *s);
00247 CHIPCARD_API const char *LC_ReaderStatus_toString(LC_READER_STATUS rst);
00248 
00249 
00250 typedef enum {
00251   LC_ServiceStatusDown=0,
00252   LC_ServiceStatusWaitForStart,
00253   LC_ServiceStatusStarted,
00254   LC_ServiceStatusUp,
00255   LC_ServiceStatusSilentRunning,
00256   LC_ServiceStatusStopping,
00257   LC_ServiceStatusAborted,
00258   LC_ServiceStatusDisabled,
00259   LC_ServiceStatusUnknown=999
00260 } LC_SERVICE_STATUS;
00261 
00262 CHIPCARD_API LC_SERVICE_STATUS LC_ServiceStatus_fromString(const char *s);
00263 CHIPCARD_API const char *LC_ServiceStatus_toString(LC_SERVICE_STATUS st);
00264 
00265 
00266 typedef enum {
00267   LC_CardStatusInserted=0,
00268   LC_CardStatusRemoved,
00269   LC_CardStatusOrphaned,
00270 
00271   LC_CardStatusUnknown=999
00272 } LC_CARD_STATUS;
00273 
00274 
00275 typedef enum {
00276   LC_CardTypeUnknown=0,
00277   LC_CardTypeProcessor,
00278   LC_CardTypeMemory
00279 } LC_CARD_TYPE;
00280 
00281 
00282 #endif /* CHIPCARD_CHIPCARD2_H */

Generated on Sun Sep 23 14:52:31 2007 for libchipcard2 by  doxygen 1.5.3