dsmart_card_interface.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef _DSMART_CARD_INTERFACE_H
  2. #define _DSMART_CARD_INTERFACE_H
  3. #define DSMART_CARD_OK 0
  4. #define DSMART_CARD_E_ACCESS 1
  5. #define DSMART_CARD_E_DATA_TIMEOUT 2
  6. #define DSMART_CARD_E_NOCARD 3
  7. #define DSMART_CARD_E_NOACT 4
  8. #define DSMART_CARD_E_REMOVED 5
  9. #define DSMART_CARD_E_NO_RX_EV 6
  10. #define DSMART_CARD_E_NO_TX_EV 7
  11. #define DSMART_CARD_E_NO_CRD_EV 8
  12. #define DSMART_CARD_E_ACT_TIMEOUT 9
  13. #define DSMART_CARD_E_DATA_RCV_FAILED 10
  14. #define DSMART_CARD_E_ACTIVATE_FAILED 11
  15. #define DSMART_CARD_E_TX_FULL 12
  16. #define DSMART_CARD_E_PAR_ERR 13
  17. #define DSMART_CARD_E_CRC_ERR 14
  18. #define DSMART_CARD_E_REP_ERR 15
  19. #define DSMART_CARD_E_CWT_TIM 16
  20. #define DSMART_CARD_E_RX_OVER 17
  21. #define DSMART_CARD_STATE_ERR_EVENT 18
  22. #define CARD_PROTOCOL_T0 1
  23. #define CARD_PROTOCOL_T1 2
  24. struct dsmart_card_atr {
  25. unsigned char atr_buffer[64];
  26. unsigned int len; /* length of ATR received */
  27. int errval;
  28. };
  29. struct dsmart_card_rcv {
  30. unsigned char rcv_buffer[256];
  31. int rcv_length;
  32. int time_out;
  33. int errval;
  34. };
  35. struct dsmart_card_xmt {
  36. unsigned char xmt_buffer[256];
  37. int xmt_length;
  38. int time_out;
  39. int errval;
  40. };
  41. struct dsmart_card_timing {
  42. unsigned int wwt;
  43. unsigned int cwt;
  44. unsigned int bwt;
  45. unsigned int bgt;
  46. unsigned int egt;
  47. };
  48. struct dsmart_card_baud {
  49. unsigned char di;
  50. unsigned char fi;
  51. };
  52. enum dsmart_protocol_type {
  53. DSMART_CARD_PROTOCOL_T0 = 0,
  54. DSMART_CARD_PROTOCOL_T1 = 1,
  55. };
  56. /* ioctl encodings */
  57. #define DSMART_CARD_BASE 0xc0
  58. #define DSMART_CARD_IOCTL_SET_PROTOCOL _IOR(DSMART_CARD_BASE, 1, int)
  59. #define DSMART_CARD_IOCTL_DEACTIVATE _IOR(DSMART_CARD_BASE, 2, int)
  60. #define DSMART_CARD_IOCTL_COLD_RESET _IOR(DSMART_CARD_BASE, 3, int)
  61. #define DSMART_CARD_IOCTL_WARM_RESET _IOR(DSMART_CARD_BASE, 4, int)
  62. #define DSMART_CARD_IOCTL_SET_TIMING _IOR(DSMART_CARD_BASE, 5, int)
  63. #define DSMART_CARD_IOCTL_SET_BAUD _IOR(DSMART_CARD_BASE, 6, int)
  64. #define DSMART_CARD_IOCTL_SET_RX_THRESHOLD _IOR(DSMART_CARD_BASE, 7, int)
  65. #define DSMART_CARD_IOCTL_SET_TX_THRESHOLD _IOR(DSMART_CARD_BASE, 8, int)
  66. #define DSMART_CARD_IOCTL_XMT _IOR(DSMART_CARD_BASE, 9, int)
  67. #define DSMART_CARD_IOCTL_RCV _IOR(DSMART_CARD_BASE, 10, int)
  68. #define DSMART_CARD_IOCTL_ATR_RCV _IOR(DSMART_CARD_BASE, 11, int)
  69. #endif