xref: /utopia/UTPA2-700.0.x/modules/dscmb/api/nsk2hdi/hdi_121.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 /*
2 =
3                                         Hdi_121.h
4   Description			:	This is the header file for CA Hardware Driver High-Level Interface for NSK2 chips
5 =
6 ====================================================================================================*/
7 
8 #ifndef H_HDI_121
9 #define H_HDI_121
10 
11 #include "ndstypes.h"
12 
13 
14 /* ***** Defines ***** */
15 #define NSK2HDX_OK						                    0U
16 #define NSK2HDX_FAIL						                2U   /* should not be changed */
17 #define NSK2HDX_INVALID_REQUEST                             3U
18 
19 #define NSK2HDX_MAX_STREAMS	      20U
20 
21 /****************************************/
22 /*	  	  Driver Initialization  		*/
23 /****************************************/
24 
25 //NDS_STATUS32 NSK2HDX_GetCaDriverVersion(NDS_ULONG *version_no/* RPC IN OUT */);
26 NDS_STATUS32 NSK2HDX_GetCaDriverVersion(char **version_no/* RPC IN OUT */); // barry replace with this one
27 
28 
29 NDS_STATUS32 NSK2HDX_SetScreaderHwInfo(NDS_ULONG *screader_ids/* RPC IN OUT */, NDS_ULONG number_of_screaders);
30 
31 NDS_STATUS32 NSK2HDX_SetEmmHwInfo(NDS_ULONG num_emm_buffers);
32 
33 NDS_STATUS32 NSK2HDX_SetEcmHwInfo(NDS_ULONG num_ecm_buffers);
34 
35 /****************************************/
36 /*	  	    Smart Card Driver   		*/
37 /****************************************/
38 
39 NDS_STATUS32 NSK2HDX_CardInserted(NDS_ULONG screader_id);
40 
41 NDS_STATUS32 NSK2HDX_CardRemoved(NDS_ULONG screader_id);
42 
43 NDS_STATUS32 NSK2HDX_CardError(NDS_ULONG screader_id);
44 
45 #define NSK2HDX_CARD_INSERTED      0U
46 #define NSK2HDX_CARD_REMOVED       1U
47 
48 NDS_STATUS32 NSK2HDX_CheckCardPresence(NDS_ULONG screader_id, NDS_ULONG *card_presence/* RPC IN OUT */);
49 
50 /*  VCC LEVEL  */
51 #define NSK2HDX_VCC_3V    0U
52 #define NSK2HDX_VCC_5V    1U
53 
54 NDS_STATUS32 NSK2HDX_SetVccLevel(NDS_ULONG screader_id, NDS_UBYTE vcc_level);
55 
56 /*  VCC SWITCH */
57 #define NSK2HDX_VCC_ON    0U
58 #define NSK2HDX_VCC_OFF   1U
59 
60 NDS_STATUS32 NSK2HDX_SetVcc(NDS_ULONG screader_id, NDS_UBYTE vcc_switch);
61 
62 NDS_STATUS32 NSK2HDX_WarmResetCard(NDS_ULONG screader_id, NDS_UBYTE *atr_data/* RPC IN OUT SIZECONST(32) */, NDS_UBYTE *atr_len/* RPC IN OUT */, NDS_UBYTE *first_history_byte/* RPC IN OUT */);
63 
64 #define NSK2HDX_ISO_INVERSE_CONVENTION   0U
65 #define NSK2HDX_ISO_DIRECT_CONVENTION    1U
66 
67 #define NSK2HDX_SC_PROTOCOL_T_0           0U
68 
69 #define NSK2HDX_SC_CLOCK_1                1U  /* 4.5  Mhz */
70 #define NSK2HDX_SC_CLOCK_3                3U  /* 6.75 Mhz */
71 #define NSK2HDX_SC_CLOCK_5                5U  /* 13.5 Mhz */
72 #define NSK2HDX_SC_CLOCK_6                6U  /* 20   Mhz */
73 #define NSK2HDX_SC_BR_1                   1U  /* baud rate of 9600 */
74 #define NSK2HDX_SC_BR_2                   2U  /* baud rate of 19K */
75 #define NSK2HDX_SC_BR_3                   3U  /* baud rate of 38K */
76 #define NSK2HDX_SC_BR_4                   4U  /* baud rate of 76K */
77 #define NSK2HDX_SC_BR_5                   5U  /* baud rate of 153K */
78 #define NSK2HDX_SC_BR_F                   0x0FU  /* baud rate of 1M */
79 
80 
81 typedef struct _NSK2HDX_UARTCONFIGURATION
82 {
83 	NDS_UBYTE card_clock;
84 	NDS_UBYTE card_baud_rate;
85 	NDS_UBYTE nak_retries;
86 	NDS_UBYTE parity_retries;
87 	NDS_UBYTE work_wait_time;
88 	NDS_UBYTE guard_time;
89 	NDS_UBYTE convention;
90 	NDS_UBYTE protocol;
91 	NDS_UBYTE spare[4];
92 
93 } NSK2HDX_UARTCONFIGURATION;
94 
95 NDS_STATUS32 NSK2HDX_SetUartParams(NDS_ULONG screader_id, NSK2HDX_UARTCONFIGURATION *conf/* RPC IN OUT */);
96 NDS_STATUS32 NSK2HDX_GetUartParams(NDS_ULONG screader_id, NSK2HDX_UARTCONFIGURATION *conf/* RPC IN OUT */);
97 
98 #define NSK2HDX_DIRECTION_FROM_CARD     0U
99 
100 #define NSK2HDX_DIRECTION_TO_CARD       1U
101 
102 NDS_STATUS32 NSK2HDX_CardIoCommand(NDS_ULONG screader_id, NDS_UBYTE *to_card/* RPC IN OUT SIZEPARAM(to_card_len) */, NDS_ULONG to_card_len, NDS_UBYTE *from_card/* RPC SIZECONST(256) */, NDS_ULONG *from_card_len/* RPC IN OUT */, NDS_UBYTE direction, NDS_USHORT timeout);
103 
104 #define NSK2HDX_UART_COMMAND_IO_C7_ON     	0x04U
105 #define NSK2HDX_UART_COMMAND_IO_C4_ON       0x08U
106 #define NSK2HDX_UART_COMMAND_IO_C8_ON     	0x10U
107 
108 #define NSK2HDX_UART_COMMAND_C7_ON     	    0x80U
109 #define NSK2HDX_UART_COMMAND_C4_ON 	        0x20U
110 #define NSK2HDX_UART_COMMAND_C8_ON     	    0x40U
111 
112 NDS_STATUS32 NSK2HDX_SetUartCommand(NDS_ULONG screader_id, NDS_UBYTE pin_mask);
113 NDS_STATUS32 NSK2HDX_GetUartCommand(NDS_ULONG screader_id, NDS_UBYTE *pin_mask/* RPC IN OUT */);
114 
115 /****************************************/
116 /*		EMM Filtering and Reception		*/
117 /****************************************/
118 
119 /* values for filter_type */
120 #define NSK2HDX_LABEL_01            0x01U
121 #define NSK2HDX_LABEL_02            0x02U
122 #define NSK2HDX_LABEL_03            0x03U
123 
124 /* values for table_id_flag */
125 #define NSK2HDX_DISABLE_TID           0x00U
126 #define NSK2HDX_ENABLE_TID			  0x01U
127 #define NSK2HDX_ENABLE_TID_NDS        0x02U
128 
129 typedef struct _NSK2_EMM_FILTER_DEF
130 {
131     NDS_UBYTE   filter_type;
132     NDS_UBYTE   filter_address[4];
133     NDS_UBYTE   filter_address_mask[4];
134 
135 } NSK2HDX_EMM_FILTER_DEF;
136 
137 typedef struct _NSK2_EMM_FILTER
138 {
139     NDS_ULONG		size_of_struct;
140     NDS_USHORT		emm_pid;
141     NDS_ULONG		num_of_filters;
142     NDS_UBYTE		table_id[16];
143     NDS_UBYTE		table_id_flag[16];
144     NSK2HDX_EMM_FILTER_DEF filter_def[8];
145 
146 } NSK2HDX_EMM_FILTER;
147 
148 NDS_STATUS32 NSK2HDX_RequestEmm(NDS_ULONG x_connection, NSK2HDX_EMM_FILTER *emmfl/* RPC IN OUT */);
149 
150 NDS_STATUS32 NSK2HDX_EmmArrived(NDS_ULONG x_connection, NDS_UBYTE *emm_buf/* RPC SIZECONST(256) */);
151 
152 NDS_STATUS32 NSK2HDX_EmmBufferOverflow(NDS_ULONG x_connection);
153 
154 NDS_STATUS32 NSK2HDX_EmmProcessingFinished(NDS_UBYTE *emm_buf/* RPC SIZECONST(256) */);
155 
156 NDS_STATUS32 NSK2HDX_StopEmm(NDS_ULONG x_connection);
157 
158 /****************************************/
159 /*		ECM Filtering and Reception		*/
160 /****************************************/
161 
162 #define NSK2HDX_ODD_ECM      0U
163 #define NSK2HDX_EVEN_ECM     1U
164 
165 
166 NDS_STATUS32 NSK2HDX_RequestEcm(NDS_ULONG x_connection, NDS_USHORT ecm_pid);
167 
168 NDS_STATUS32 NSK2HDX_EcmArrived(NDS_ULONG x_connection, NDS_USHORT ecm_pid, NDS_UBYTE *ecm_buf/* RPC SIZECONST(256) */, NDS_UBYTE polarity);
169 
170 NDS_STATUS32 NSK2HDX_GetPacketCounter(NDS_ULONG x_connection, NDS_ULONG packet_counter_length, NDS_UBYTE *packet_counter/* RPC IN OUT SIZEPARAM(packet_counter_length) */);
171 
172 NDS_STATUS32 NSK2HDX_EcmProcessingFinished(NDS_USHORT ecm_pid, NDS_UBYTE *ecm_buf/* RPC SIZECONST(256) */, NDS_UBYTE polarity);
173 
174 NDS_STATUS32 NSK2HDX_StopEcm(NDS_ULONG x_connection, NDS_USHORT ecm_pid);
175 
176 #endif
177