• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/char/rtl8365mb/
1/*
2 * Copyright (C) 2012 Realtek Semiconductor Corp.
3 * All Rights Reserved.
4 *
5 * This program is the proprietary software of Realtek Semiconductor
6 * Corporation and/or its licensors, and only be used, duplicated,
7 * modified or distributed under the authorized license from Realtek.
8 *
9 * ANY USE OF THE SOFTWARE OTHER THAN AS AUTHORIZED UNDER
10 * THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
11 *
12 * $Revision: $
13 * $Date: $
14 *
15 * Purpose : Declaration of RLDP and RLPP API
16 *
17 * Feature : The file have include the following module and sub-modules
18 *           1) RLDP and RLPP configuration and status
19 *
20 */
21
22
23#ifndef __RTK_RLDP_H__
24#define __RTK_RLDP_H__
25
26
27/*
28 * Include Files
29 */
30
31
32/*
33 * Symbol Definition
34 */
35typedef enum rtk_rldp_trigger_e
36{
37    RTK_RLDP_TRIGGER_SAMOVING = 0,
38    RTK_RLDP_TRIGGER_PERIOD,
39    RTK_RLDP_TRIGGER_END
40} rtk_rldp_trigger_t;
41
42typedef enum rtk_rldp_cmpType_e
43{
44    RTK_RLDP_CMPTYPE_MAGIC = 0,     /* Compare the RLDP with magic only */
45    RTK_RLDP_CMPTYPE_MAGIC_ID,      /* Compare the RLDP with both magic + ID */
46    RTK_RLDP_CMPTYPE_END
47} rtk_rldp_cmpType_t;
48
49typedef enum rtk_rldp_loopStatus_e
50{
51    RTK_RLDP_LOOPSTS_NONE = 0,
52    RTK_RLDP_LOOPSTS_LOOPING,
53    RTK_RLDP_LOOPSTS_END
54} rtk_rldp_loopStatus_t;
55
56typedef enum rtk_rlpp_trapType_e
57{
58    RTK_RLPP_TRAPTYPE_NONE = 0,
59    RTK_RLPP_TRAPTYPE_CPU,
60    RTK_RLPP_TRAPTYPE_END
61} rtk_rlpp_trapType_t;
62
63typedef struct rtk_rldp_config_s
64{
65    rtk_enable_t        rldp_enable;
66    rtk_rldp_trigger_t trigger_mode;
67    rtk_mac_t           magic;
68    rtk_rldp_cmpType_t  compare_type;
69    rtk_uint32              interval_check; /* Checking interval for check state */
70    rtk_uint32              num_check;      /* Checking number for check state */
71    rtk_uint32              interval_loop;  /* Checking interval for loop state */
72    rtk_uint32              num_loop;       /* Checking number for loop state */
73} rtk_rldp_config_t;
74
75typedef struct rtk_rldp_portConfig_s
76{
77    rtk_enable_t        tx_enable;
78} rtk_rldp_portConfig_t;
79
80typedef struct rtk_rldp_status_s
81{
82    rtk_mac_t           id;
83} rtk_rldp_status_t;
84
85typedef struct rtk_rldp_portStatus_s
86{
87    rtk_rldp_loopStatus_t   loop_status;
88    rtk_rldp_loopStatus_t   loop_enter;
89    rtk_rldp_loopStatus_t   loop_leave;
90} rtk_rldp_portStatus_t;
91
92/*
93 * Data Declaration
94 */
95
96
97/*
98 * Macro Declaration
99 */
100
101#define RTK_RLDP_INTERVAL_MAX  0xffff
102#define RTK_RLDP_NUM_MAX       0xff
103
104
105/*
106 * Function Declaration
107 */
108
109/* Module Name : RLDP */
110
111
112/* Function Name:
113 *      rtk_rldp_config_set
114 * Description:
115 *      Set RLDP module configuration
116 * Input:
117 *      pConfig - configuration structure of RLDP
118 * Output:
119 *      None
120 * Return:
121 *      RT_ERR_OK
122 *      RT_ERR_FAILED
123 *      RT_ERR_INPUT
124 *      RT_ERR_NULL_POINTER
125 * Note:
126 *      None
127 */
128extern rtk_api_ret_t rtk_rldp_config_set(rtk_rldp_config_t *pConfig);
129
130
131/* Function Name:
132 *      rtk_rldp_config_get
133 * Description:
134 *      Get RLDP module configuration
135 * Input:
136 *      None
137 * Output:
138 *      pConfig - configuration structure of RLDP
139 * Return:
140 *      RT_ERR_OK
141 *      RT_ERR_FAILED
142 *      RT_ERR_INPUT
143 *      RT_ERR_NULL_POINTER
144 * Note:
145 *      None
146 */
147extern rtk_api_ret_t rtk_rldp_config_get(rtk_rldp_config_t *pConfig);
148
149
150/* Function Name:
151 *      rtk_rldp_portConfig_set
152 * Description:
153 *      Set per port RLDP module configuration
154 * Input:
155 *      port   - port number to be configured
156 *      pPortConfig - per port configuration structure of RLDP
157 * Output:
158 *      None
159 * Return:
160 *      RT_ERR_OK
161 *      RT_ERR_FAILED
162 *      RT_ERR_INPUT
163 *      RT_ERR_NULL_POINTER
164 * Note:
165 *      None
166 */
167extern rtk_api_ret_t rtk_rldp_portConfig_set(rtk_port_t port, rtk_rldp_portConfig_t *pPortConfig);
168
169
170/* Function Name:
171 *      rtk_rldp_portConfig_get
172 * Description:
173 *      Get per port RLDP module configuration
174 * Input:
175 *      port    - port number to be get
176 * Output:
177 *      pPortConfig - per port configuration structure of RLDP
178 * Return:
179 *      RT_ERR_OK
180 *      RT_ERR_FAILED
181 *      RT_ERR_INPUT
182 *      RT_ERR_NULL_POINTER
183 * Note:
184 *      None
185 */
186extern rtk_api_ret_t rtk_rldp_portConfig_get(rtk_port_t port, rtk_rldp_portConfig_t *pPortConfig);
187
188
189/* Function Name:
190 *      rtk_rldp_status_get
191 * Description:
192 *      Get RLDP module status
193 * Input:
194 *      None
195 * Output:
196 *      pStatus - status structure of RLDP
197 * Return:
198 *      RT_ERR_OK
199 *      RT_ERR_FAILED
200 *      RT_ERR_NULL_POINTER
201 * Note:
202 *      None
203 */
204extern rtk_api_ret_t rtk_rldp_status_get(rtk_rldp_status_t *pStatus);
205
206
207/* Function Name:
208 *      rtk_rldp_portStatus_get
209 * Description:
210 *      Get RLDP module status
211 * Input:
212 *      port    - port number to be get
213 * Output:
214 *      pPortStatus - per port status structure of RLDP
215 * Return:
216 *      RT_ERR_OK
217 *      RT_ERR_FAILED
218 *      RT_ERR_INPUT
219 *      RT_ERR_NULL_POINTER
220 * Note:
221 *      None
222 */
223extern rtk_api_ret_t rtk_rldp_portStatus_get(rtk_port_t port, rtk_rldp_portStatus_t *pPortStatus);
224
225
226/* Function Name:
227 *      rtk_rldp_portStatus_clear
228 * Description:
229 *      Clear RLDP module status
230 * Input:
231 *      port    - port number to be clear
232 *      pPortStatus - per port status structure of RLDP
233 * Output:
234 *      None
235 * Return:
236 *      RT_ERR_OK
237 *      RT_ERR_FAILED
238 *      RT_ERR_INPUT
239 *      RT_ERR_NULL_POINTER
240 * Note:
241 *      Clear operation effect loop_enter and loop_leave only, other field in
242 *      the structure are don't care
243 */
244extern rtk_api_ret_t rtk_rldp_portStatus_set(rtk_port_t port, rtk_rldp_portStatus_t *pPortStatus);
245
246
247/* Function Name:
248 *      rtk_rldp_portLoopPair_get
249 * Description:
250 *      Get RLDP port loop pairs
251 * Input:
252 *      port    - port number to be get
253 * Output:
254 *      pPortmask - per port related loop ports
255 * Return:
256 *      RT_ERR_OK
257 *      RT_ERR_FAILED
258 *      RT_ERR_INPUT
259 *      RT_ERR_NULL_POINTER
260 * Note:
261 *      None
262 */
263extern rtk_api_ret_t rtk_rldp_portLoopPair_get(rtk_port_t port, rtk_portmask_t *pPortmask);
264
265#endif /* __RTK_RLDP_H__ */
266
267