iorequest.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  $RCSfile$
00003                              -------------------
00004     cvs         : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
00005     begin       : Wed Mar 16 2005
00006     copyright   : (C) 2005 by Martin Preuss
00007     email       : martin@libchipcard.de
00008 
00009  ***************************************************************************
00010  *          Please see toplevel file COPYING for license details           *
00011  ***************************************************************************/
00012 
00013 
00014 #ifndef GWEN_IOREQUEST_H
00015 #define GWEN_IOREQUEST_H
00016 
00017 typedef struct GWEN_IO_REQUEST GWEN_IO_REQUEST;
00018 
00019 
00020 #include <gwenhywfar/list2.h>
00021 
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025 
00026 
00027 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_IO_REQUEST, GWEN_Io_Request, GWENHYWFAR_API)
00028 
00029 
00030 #include <gwenhywfar/iolayer.h>
00031 
00032 
00033 
00034 #define GWEN_IO_REQUEST_FLAGS_PACKETBEGIN 0x10000000
00035 #define GWEN_IO_REQUEST_FLAGS_PACKETEND   0x20000000
00036 #define GWEN_IO_REQUEST_FLAGS_READALL     0x40000000
00037 #define GWEN_IO_REQUEST_FLAGS_WRITEALL    0x40000000 /* share with READALL */
00038 #define GWEN_IO_REQUEST_FLAGS_FLUSH       0x80000000 
00039 
00045 #define GWEN_IO_REQUEST_FLAGS_FORCE       0x01000000
00046 #define GWEN_IO_REQUEST_FLAGS_TAKEOVER    0x02000000
00047 
00048 
00049 
00050 
00051 typedef enum {
00052   GWEN_Io_Request_TypeUnknown=-1,
00053   GWEN_Io_Request_TypeConnect,
00054   GWEN_Io_Request_TypeDisconnect,
00055   GWEN_Io_Request_TypeRead,
00056   GWEN_Io_Request_TypeWrite
00057 } GWEN_IO_REQUEST_TYPE;
00058 
00059 
00060 
00061 typedef enum {
00062   GWEN_Io_Request_StatusFree=0,
00063   GWEN_Io_Request_StatusEnqueued,
00064   GWEN_Io_Request_StatusFinished
00065 } GWEN_IO_REQUEST_STATUS;
00066 
00067 
00068 
00069 
00070 typedef void (*GWEN_IO_REQUEST_FINISH_FN)(GWEN_IO_REQUEST *r, void *user_data);
00071 
00072 
00073 
00074 GWENHYWFAR_API const char *GWEN_Io_RequestType_toString(GWEN_IO_REQUEST_TYPE t);
00075 GWENHYWFAR_API const char *GWEN_Io_RequestStatus_toString(GWEN_IO_REQUEST_STATUS st);
00076 
00077 
00078 
00079 GWENHYWFAR_API GWEN_IO_REQUEST *GWEN_Io_Request_new(GWEN_IO_REQUEST_TYPE t,
00080                                                     uint8_t *pBuffer,
00081                                                     uint32_t lBuffer,
00082                                                     GWEN_IO_REQUEST_FINISH_FN finishFn,
00083                                                     void *user_data,
00084                                                     uint32_t guiid);
00085 
00086 GWENHYWFAR_API void GWEN_Io_Request_Attach(GWEN_IO_REQUEST *r);
00087 
00088 GWENHYWFAR_API void GWEN_Io_Request_free(GWEN_IO_REQUEST *r);
00089 
00090 GWENHYWFAR_API GWEN_IO_REQUEST_TYPE GWEN_Io_Request_GetType(const GWEN_IO_REQUEST *r);
00091 
00092 GWENHYWFAR_API uint32_t GWEN_Io_Request_GetFlags(const GWEN_IO_REQUEST *r);
00093 GWENHYWFAR_API void GWEN_Io_Request_SetFlags(GWEN_IO_REQUEST *r, uint32_t f);
00094 GWENHYWFAR_API void GWEN_Io_Request_AddFlags(GWEN_IO_REQUEST *r, uint32_t f);
00095 GWENHYWFAR_API void GWEN_Io_Request_SubFlags(GWEN_IO_REQUEST *r, uint32_t f);
00096 
00097 GWENHYWFAR_API uint8_t *GWEN_Io_Request_GetBufferPtr(const GWEN_IO_REQUEST *r);
00098 GWENHYWFAR_API uint32_t GWEN_Io_Request_GetBufferSize(const GWEN_IO_REQUEST *r);
00099 GWENHYWFAR_API uint32_t GWEN_Io_Request_GetBufferPos(const GWEN_IO_REQUEST *r);
00100 
00101 GWENHYWFAR_API uint32_t GWEN_Io_Request_GetGuiId(const GWEN_IO_REQUEST *r);
00102 GWENHYWFAR_API void GWEN_Io_Request_SetGuiId(GWEN_IO_REQUEST *r, uint32_t i);
00103 
00104 GWENHYWFAR_API GWEN_IO_LAYER *GWEN_Io_Request_GetIoLayer(const GWEN_IO_REQUEST *r);
00105 
00106 GWENHYWFAR_API GWEN_IO_REQUEST_STATUS GWEN_Io_Request_GetStatus(const GWEN_IO_REQUEST *r);
00107 
00108 GWENHYWFAR_API int GWEN_Io_Request_GetResultCode(const GWEN_IO_REQUEST *r);
00109 
00110 GWENHYWFAR_API GWEN_IO_LAYER *GWEN_Io_Request_GetIncomingLayer(const GWEN_IO_REQUEST *r);
00111 GWENHYWFAR_API GWEN_IO_LAYER *GWEN_Io_Request_TakeIncomingLayer(GWEN_IO_REQUEST *r);
00112 
00113 
00114 #ifdef __cplusplus
00115 }
00116 #endif
00117 
00118 
00119 #endif

Generated on Fri Apr 11 01:53:47 2008 for gwenhywfar by  doxygen 1.5.5