gfagenericdev.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. // gfagenericdev.h :
  2. //
  3. #if !defined(AGD_GFAGENERICDEV_H__D0E1325F_D1A0_41DB_9FB4_0BC91A60EC98__INCLUDED_)
  4. #define AGD_GFAGENERICDEV_H__D0E1325F_D1A0_41DB_9FB4_0BC91A60EC98__INCLUDED_
  5. #include <stdio.h>
  6. #include <stdint.h>
  7. #include <stdbool.h>
  8. #include <sys/time.h>
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif // __cplusplus
  12. /////////////////////////////////////////////////////////////////////////////
  13. // gfagenericdev.h - Declarations:
  14. typedef void *HGFADEVICE;
  15. typedef HGFADEVICE (*PFN_GFA_GENERIC_DEV_OPEN) (const char *pszDeviceName, const void *pcp, size_t nSizeCfgParams);
  16. typedef void (*PFN_GFA_GENERIC_DEV_CLOSE) (HGFADEVICE hDev);
  17. typedef ssize_t (*PFN_GFA_GENERIC_DEV_GET_CONFIG) (HGFADEVICE hDev, void *pcp, size_t nSizeCfgParams);
  18. typedef int (*PFN_GFA_GENERIC_DEV_SET_CONFIG) (HGFADEVICE hDev, const void *pcp, size_t nSizeCfgParams);
  19. typedef bool (*PFN_GFA_GENERIC_DEV_GET_TIMEOUTS) (HGFADEVICE hDev, struct timeval *ptvRX, struct timeval *ptvTX);
  20. typedef bool (*PFN_GFA_GENERIC_DEV_SET_TIMEOUTS) (HGFADEVICE hDev, const struct timeval *ptvRX, const struct timeval *ptvTX);
  21. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PURGE_RX_BUFFER) (HGFADEVICE hDev);
  22. typedef ssize_t (*PFN_GFA_GENERIC_DEV_RECEIVE) (HGFADEVICE hDev, void *pBuf, size_t nCbToRead);
  23. typedef ssize_t (*PFN_GFA_GENERIC_DEV_READ) (HGFADEVICE hDev, void *pBuf, size_t nCbToRead);
  24. typedef ssize_t (*PFN_GFA_GENERIC_DEV_POP) (HGFADEVICE hDev, uint8_t *pb);
  25. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PEEK) (HGFADEVICE hDev);
  26. typedef ssize_t (*PFN_GFA_GENERIC_DEV_TRANSMIT) (HGFADEVICE hDev, const void *pData, size_t nCbData);
  27. typedef ssize_t (*PFN_GFA_GENERIC_DEV_WRITE) (HGFADEVICE hSer, const void *pData, size_t nCbData);
  28. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PUSH) (HGFADEVICE hSer, uint8_t b);
  29. /////////////////////////////////////////////////////////////////////////////
  30. typedef struct _GFA_GENERIC_DEVICE_INTERFACE
  31. {
  32. PFN_GFA_GENERIC_DEV_OPEN pfnOpen;
  33. PFN_GFA_GENERIC_DEV_CLOSE pfnClose;
  34. PFN_GFA_GENERIC_DEV_GET_CONFIG pfnGetConfig;
  35. PFN_GFA_GENERIC_DEV_SET_CONFIG pfnSetConfig;
  36. PFN_GFA_GENERIC_DEV_GET_TIMEOUTS pfnGetTimeouts;
  37. PFN_GFA_GENERIC_DEV_SET_TIMEOUTS pfnSetTimeouts;
  38. PFN_GFA_GENERIC_DEV_PURGE_RX_BUFFER pfnPurgeRXBuffer;
  39. PFN_GFA_GENERIC_DEV_RECEIVE pfnReceive;
  40. PFN_GFA_GENERIC_DEV_READ pfnRead;
  41. PFN_GFA_GENERIC_DEV_POP pfnPop;
  42. PFN_GFA_GENERIC_DEV_PEEK pfnPeek;
  43. PFN_GFA_GENERIC_DEV_TRANSMIT pfnTransmit;
  44. PFN_GFA_GENERIC_DEV_WRITE pfnWrite;
  45. PFN_GFA_GENERIC_DEV_PUSH pfnPush;
  46. }GFA_GENERIC_DEVICE_INTERFACE, *LPGFA_GENERIC_DEVICE_INTERFACE;
  47. typedef const GFA_GENERIC_DEVICE_INTERFACE *LPCGFA_GENERIC_DEVICE_INTERFACE;
  48. /////////////////////////////////////////////////////////////////////////////
  49. #ifdef __cplusplus
  50. }
  51. #endif // __cplusplus
  52. #endif // !defined(AGD_GFAGENERICDEV_H__D0E1325F_D1A0_41DB_9FB4_0BC91A60EC98__INCLUDED_)