driver.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: driver_l.h 321 2006-09-30 23:40:55Z martin $
00005     begin       : Mon Mar 01 2004
00006     copyright   : (C) 2004 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_DRIVER_DRIVER_H
00015 #define CHIPCARD_DRIVER_DRIVER_H
00016 
00017 #include <gwenhywfar/ipc.h>
00018 #include <gwenhywfar/inherit.h>
00019 #include <gwenhywfar/types.h>
00020 
00021 #include <chipcard3/chipcard3.h>
00022 
00023 typedef struct LCD_DRIVER LCD_DRIVER;
00024 GWEN_INHERIT_FUNCTION_LIB_DEFS(LCD_DRIVER, CHIPCARD_API);
00025 
00026 #include <chipcard3/server/driver/reader.h>
00027 #include <chipcard3/sharedstuff/pininfo.h>
00028 
00029 
00030 #define LCD_DRIVER_IPC_MAXWORK 256
00031 
00032 #define LCD_DRIVER_ERROR_OFFSET 0x80000000
00033 
00034 
00039 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_SENDAPDU_FN)(LCD_DRIVER *d,
00040                                                   int toReader,
00041                                                   LCD_READER *r,
00042                                                   LCD_SLOT *slot,
00043                                                   const unsigned char *apdu,
00044                                                   unsigned int apdulen,
00045                                                   unsigned char *buffer,
00046                                                   int *bufferlen);
00047 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_CONNECTSLOT_FN)(LCD_DRIVER *d,
00048                                                      LCD_SLOT *sl);
00049 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_CONNECTREADER_FN)(LCD_DRIVER *d,
00050                                                        LCD_READER *r);
00051 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_DISCONNECTSLOT_FN)(LCD_DRIVER *d,
00052                                                         LCD_SLOT *sl);
00053 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_DISCONNECTREADER_FN)(LCD_DRIVER *d,
00054                                                           LCD_READER *r);
00055 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_RESETSLOT_FN)(LCD_DRIVER *d,
00056                                                    LCD_SLOT *sl);
00057 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_READERSTATUS_FN)(LCD_DRIVER *d,
00058                                                       LCD_READER *r);
00059 
00060 typedef GWEN_TYPE_UINT32 (*LCD_DRIVER_READERINFO_FN)(LCD_DRIVER *d,
00061                                                     LCD_READER *r,
00062                                                     GWEN_BUFFER *buf);
00063 
00064 typedef int (*LCD_DRIVER_EXTENDREADER_FN)(LCD_DRIVER *d, LCD_READER *r);
00065 
00066 
00067 typedef const char* (*LCD_DRIVER_GETERRORTEXT_FN)(LCD_DRIVER *d,
00068                                                   GWEN_TYPE_UINT32 err);
00069 
00070 
00071 typedef int (*LCD_DRIVER_HANDLEREQUEST_FN)(LCD_DRIVER *d,
00072                                            GWEN_TYPE_UINT32 rid,
00073                                            const char *name,
00074                                            GWEN_DB_NODE *dbReq);
00075 
00076 typedef GWEN_TYPE_UINT32
00077   (*LCD_DRIVER_PERFORMVERIFICATION_FN)(LCD_DRIVER *d,
00078                                        LCD_READER *r,
00079                                        LCD_SLOT *slot,
00080                                        const LC_PININFO *pi,
00081                                        int *triesLeft);
00082 
00083 typedef GWEN_TYPE_UINT32
00084   (*LCD_DRIVER_PERFORMMODIFICATION_FN)(LCD_DRIVER *d,
00085                                        LCD_READER *r,
00086                                        LCD_SLOT *slot,
00087                                        const LC_PININFO *pi,
00088                                        int *triesLeft);
00097 CHIPCARD_API
00098 void LCD_Driver_SetSendApduFn(LCD_DRIVER *d, LCD_DRIVER_SENDAPDU_FN fn);
00099 
00100 CHIPCARD_API
00101 void LCD_Driver_SetConnectSlotFn(LCD_DRIVER *d, LCD_DRIVER_CONNECTSLOT_FN fn);
00102 
00103 CHIPCARD_API
00104 void LCD_Driver_SetDisconnectSlotFn(LCD_DRIVER *d,
00105                                    LCD_DRIVER_DISCONNECTSLOT_FN fn);
00106 
00107 CHIPCARD_API
00108 void LCD_Driver_SetConnectReaderFn(LCD_DRIVER *d,
00109                                   LCD_DRIVER_CONNECTREADER_FN fn);
00110 
00111 CHIPCARD_API
00112 void LCD_Driver_SetDisconnectReaderFn(LCD_DRIVER *d,
00113                                      LCD_DRIVER_DISCONNECTREADER_FN fn);
00114 
00115 CHIPCARD_API
00116 void LCD_Driver_SetResetSlotFn(LCD_DRIVER *d, LCD_DRIVER_RESETSLOT_FN fn);
00117 
00118 CHIPCARD_API
00119 void LCD_Driver_SetReaderStatusFn(LCD_DRIVER *d,
00120                                  LCD_DRIVER_READERSTATUS_FN fn);
00121 
00122 CHIPCARD_API
00123 void LCD_Driver_SetReaderInfoFn(LCD_DRIVER *d,
00124                                 LCD_DRIVER_READERINFO_FN fn);
00125 
00126 CHIPCARD_API
00127 void LCD_Driver_SetExtendReaderFn(LCD_DRIVER *d,
00128                                   LCD_DRIVER_EXTENDREADER_FN fn);
00129 
00130 CHIPCARD_API
00131 void LCD_Driver_SetGetErrorTextFn(LCD_DRIVER *d,
00132                                   LCD_DRIVER_GETERRORTEXT_FN fn);
00133 
00134 CHIPCARD_API
00135 void LCD_Driver_SetPerformVerificationFn(LCD_DRIVER *d,
00136                                          LCD_DRIVER_PERFORMVERIFICATION_FN f);
00137 
00138 CHIPCARD_API
00139 void LCD_Driver_SetPerformModificationFn(LCD_DRIVER *d,
00140                                          LCD_DRIVER_PERFORMMODIFICATION_FN f);
00141 
00142 CHIPCARD_API
00143 void LCD_Driver_SetHandleRequestFn(LCD_DRIVER *d,
00144                                    LCD_DRIVER_HANDLEREQUEST_FN fn);
00153 
00154 CHIPCARD_API
00155 LCD_DRIVER *LCD_Driver_new();
00156 
00157 CHIPCARD_API
00158 void LCD_Driver_free(LCD_DRIVER *d);
00159 
00160 CHIPCARD_API
00161 int LCD_Driver_Init(LCD_DRIVER *d, int argc, char **argv);
00162 
00163 CHIPCARD_API
00164 int LCD_Driver_Connect(LCD_DRIVER *d,
00165                        int code, const char *text,
00166                        GWEN_TYPE_UINT32 dflagsValue,
00167                        GWEN_TYPE_UINT32 dflagsMask);
00168 
00169 CHIPCARD_API
00170 void LCD_Driver_Disconnect(LCD_DRIVER *d);
00171 
00181 CHIPCARD_API
00182 int LCD_Driver_Test(LCD_DRIVER *d);
00183 
00184 CHIPCARD_API
00185 int LCD_Driver_IsTestMode(const LCD_DRIVER *d);
00194 
00195 CHIPCARD_API
00196 const char *LCD_Driver_GetDriverDataDir(const LCD_DRIVER *d);
00197 
00198 CHIPCARD_API
00199 const char *LCD_Driver_GetLibraryFile(const LCD_DRIVER *d);
00200 
00201 CHIPCARD_API
00202 const char *LCD_Driver_GetDriverId(const LCD_DRIVER *d);
00210 
00211 CHIPCARD_API
00212 LCD_READER_LIST *LCD_Driver_GetReaders(const LCD_DRIVER *d);
00213 
00214 CHIPCARD_API
00215 LCD_READER *LCD_Driver_FindReader(const LCD_DRIVER *d);
00216 
00217 CHIPCARD_API
00218 LCD_READER *LCD_Driver_FindReaderByName(const LCD_DRIVER *d, const char *name);
00219 
00220 CHIPCARD_API
00221 LCD_READER *LCD_Driver_FindReaderByPort(const LCD_DRIVER *d, int port);
00222 
00223 CHIPCARD_API
00224 LCD_READER *LCD_Driver_FindReaderById(const LCD_DRIVER *d, GWEN_TYPE_UINT32 id);
00225 
00226 CHIPCARD_API
00227 LCD_READER *LCD_Driver_FindReaderByDriversId(const LCD_DRIVER *d,
00228                                            GWEN_TYPE_UINT32 id);
00229 
00230 CHIPCARD_API
00231 void LCD_Driver_AddReader(LCD_DRIVER *d, LCD_READER *r);
00232 
00233 CHIPCARD_API
00234 void LCD_Driver_DelReader(LCD_DRIVER *d, LCD_READER *r);
00242 
00243 CHIPCARD_API
00244 int LCD_Driver_Work(LCD_DRIVER *d);
00245 
00246 CHIPCARD_API
00247 int LCD_Driver_SendStatusChangeNotification(LCD_DRIVER *d,
00248                                            LCD_SLOT *sl);
00249 
00250 CHIPCARD_API
00251 int LCD_Driver_SendReaderErrorNotification(LCD_DRIVER *d,
00252                                           LCD_READER *r,
00253                                           const char *text);
00258 CHIPCARD_API
00259 GWEN_TYPE_UINT32 LCD_Driver_SendAPDU(LCD_DRIVER *d,
00260                                     int toReader,
00261                                     LCD_READER *r,
00262                                     LCD_SLOT *slot,
00263                                     const unsigned char *apdu,
00264                                     unsigned int apdulen,
00265                                     unsigned char *buffer,
00266                                     int *bufferlen);
00267 
00268 CHIPCARD_API
00269 GWEN_TYPE_UINT32 LCD_Driver_ConnectSlot(LCD_DRIVER *d, LCD_SLOT *sl);
00270 
00271 CHIPCARD_API
00272 GWEN_TYPE_UINT32 LCD_Driver_ConnectReader(LCD_DRIVER *d, LCD_READER *r);
00273 
00274 CHIPCARD_API
00275 GWEN_TYPE_UINT32 LCD_Driver_DisconnectSlot(LCD_DRIVER *d, LCD_SLOT *sl);
00276 
00277 CHIPCARD_API
00278 GWEN_TYPE_UINT32 LCD_Driver_DisconnectReader(LCD_DRIVER *d, LCD_READER *r);
00279 
00280 
00281 
00282 
00283 
00284 
00285 
00286 
00287 
00288 #endif /* CHIPCARD_DRIVER_DRIVER_H */
00289 
00290 
00291 
00292 

Generated on Sat Sep 22 04:43:21 2007 for libchipcard2 by  doxygen 1.5.3