gfagenericdev.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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_IS_VALID_BAUD) (uint32_t nBaudrate);
  20. typedef int (*PFN_GFA_GENERIC_DEV_SET_BAUDRATE) (HGFADEVICE hDev, uint32_t nBaudrate);
  21. typedef bool (*PFN_GFA_GENERIC_DEV_GET_TIMEOUTS) (HGFADEVICE hDev, struct timeval *ptvRX, struct timeval *ptvTX);
  22. typedef bool (*PFN_GFA_GENERIC_DEV_SET_TIMEOUTS) (HGFADEVICE hDev, const struct timeval *ptvRX, const struct timeval *ptvTX);
  23. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PURGE_RX_BUFFER) (HGFADEVICE hDev);
  24. typedef ssize_t (*PFN_GFA_GENERIC_DEV_RECEIVE) (HGFADEVICE hDev, void *pBuf, size_t nCbToRead);
  25. typedef ssize_t (*PFN_GFA_GENERIC_DEV_READ) (HGFADEVICE hDev, void *pBuf, size_t nCbToRead);
  26. typedef ssize_t (*PFN_GFA_GENERIC_DEV_POP) (HGFADEVICE hDev, uint8_t *pb);
  27. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PEEK) (HGFADEVICE hDev);
  28. typedef ssize_t (*PFN_GFA_GENERIC_DEV_TRANSMIT) (HGFADEVICE hDev, const void *pData, size_t nCbData);
  29. typedef ssize_t (*PFN_GFA_GENERIC_DEV_WRITE) (HGFADEVICE hSer, const void *pData, size_t nCbData);
  30. typedef ssize_t (*PFN_GFA_GENERIC_DEV_PUSH) (HGFADEVICE hSer, uint8_t b);
  31. /////////////////////////////////////////////////////////////////////////////
  32. typedef struct _GFA_GENERIC_DEVICE_INTERFACE
  33. {
  34. PFN_GFA_GENERIC_DEV_OPEN pfnOpen;
  35. PFN_GFA_GENERIC_DEV_CLOSE pfnClose;
  36. PFN_GFA_GENERIC_DEV_GET_CONFIG pfnGetConfig;
  37. PFN_GFA_GENERIC_DEV_SET_CONFIG pfnSetConfig;
  38. PFN_GFA_GENERIC_DEV_IS_VALID_BAUD pfnIsValidBaudrate;
  39. PFN_GFA_GENERIC_DEV_SET_BAUDRATE pfnSetBaudrate;
  40. PFN_GFA_GENERIC_DEV_GET_TIMEOUTS pfnGetTimeouts;
  41. PFN_GFA_GENERIC_DEV_SET_TIMEOUTS pfnSetTimeouts;
  42. PFN_GFA_GENERIC_DEV_PURGE_RX_BUFFER pfnPurgeRXBuffer;
  43. PFN_GFA_GENERIC_DEV_RECEIVE pfnReceive;
  44. PFN_GFA_GENERIC_DEV_READ pfnRead;
  45. PFN_GFA_GENERIC_DEV_POP pfnPop;
  46. PFN_GFA_GENERIC_DEV_PEEK pfnPeek;
  47. PFN_GFA_GENERIC_DEV_TRANSMIT pfnTransmit;
  48. PFN_GFA_GENERIC_DEV_WRITE pfnWrite;
  49. PFN_GFA_GENERIC_DEV_PUSH pfnPush;
  50. }GFA_GENERIC_DEVICE_INTERFACE, *LPGFA_GENERIC_DEVICE_INTERFACE;
  51. typedef const GFA_GENERIC_DEVICE_INTERFACE *LPCGFA_GENERIC_DEVICE_INTERFACE;
  52. /////////////////////////////////////////////////////////////////////////////
  53. #ifdef __cplusplus
  54. }
  55. #endif // __cplusplus
  56. #endif // !defined(AGD_GFAGENERICDEV_H__D0E1325F_D1A0_41DB_9FB4_0BC91A60EC98__INCLUDED_)