3 Copyright 2004 Broadcom Corp. All Rights Reserved.
5 This program is free software; you can distribute it and/or modify it
6 under the terms of the GNU General Public License (Version 2) as
7 published by the Free Software Foundation.
9 This program is distributed in the hope it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 You should have received a copy of the GNU General Public License along
15 with this program; if not, write to the Free Software Foundation, Inc.,
16 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
20 /***************************************************************************
21 * File Name : AdslDrv.h
23 * Description: This file contains the definitions and structures for the
24 * Linux IOCTL interface that used between the user mode ADSL
25 * API library and the kernel ADSL API driver.
27 * Updates : 11/02/2001 lkaplan. Created.
28 ***************************************************************************/
30 #if !defined(_ADSLDRV_H_)
33 #if defined(__cplusplus)
41 #define DSL_IFNAME "dsl0"
42 #define ADSLDRV_MAJOR 208 /* arbitrary unused value */
48 #define ADSLIOCTL_CHECK \
49 _IOR(ADSLDRV_MAJOR, 0, ADSLDRV_STATUS_ONLY)
50 #define ADSLIOCTL_INITIALIZE \
51 _IOWR(ADSLDRV_MAJOR, 1, ADSLDRV_INITIALIZE)
52 #define ADSLIOCTL_UNINITIALIZE \
53 _IOR(ADSLDRV_MAJOR, 2, ADSLDRV_STATUS_ONLY)
54 #define ADSLIOCTL_CONNECTION_START \
55 _IOWR(ADSLDRV_MAJOR, 3, ADSLDRV_STATUS_ONLY)
56 #define ADSLIOCTL_CONNECTION_STOP \
57 _IOR(ADSLDRV_MAJOR, 4, ADSLDRV_STATUS_ONLY)
58 #define ADSLIOCTL_GET_PHY_ADDR \
59 _IOR(ADSLDRV_MAJOR, 5, ADSLDRV_PHY_ADDR)
60 #define ADSLIOCTL_SET_PHY_ADDR \
61 _IOWR(ADSLDRV_MAJOR, 6, ADSLDRV_PHY_ADDR)
62 #define ADSLIOCTL_MAP_ATM_PORT_IDS \
63 _IOWR(ADSLDRV_MAJOR, 7, ADSLDRV_MAP_ATM_PORT)
64 #define ADSLIOCTL_GET_CONNECTION_INFO \
65 _IOR(ADSLDRV_MAJOR, 8, ADSLDRV_CONNECTION_INFO)
66 #define ADSLIOCTL_DIAG_COMMAND \
67 _IOR(ADSLDRV_MAJOR, 9, ADSLDRV_DIAG)
68 #define ADSLIOCTL_GET_OBJ_VALUE \
69 _IOR(ADSLDRV_MAJOR, 10, ADSLDRV_GET_OBJ)
70 #define ADSLIOCTL_START_BERT \
71 _IOR(ADSLDRV_MAJOR, 11, ADSLDRV_BERT)
72 #define ADSLIOCTL_STOP_BERT \
73 _IOR(ADSLDRV_MAJOR, 12, ADSLDRV_STATUS_ONLY)
74 #define ADSLIOCTL_CONFIGURE \
75 _IOR(ADSLDRV_MAJOR, 13, ADSLDRV_CONFIGURE)
76 #define ADSLIOCTL_TEST \
77 _IOR(ADSLDRV_MAJOR, 14, ADSLDRV_TEST)
78 #define ADSLIOCTL_GET_CONSTEL_POINTS \
79 _IOR(ADSLDRV_MAJOR, 15, ADSLDRV_GET_CONSTEL_POINTS)
80 #define ADSLIOCTL_GET_VERSION \
81 _IOR(ADSLDRV_MAJOR, 16, ADSLDRV_GET_VERSION)
82 #define ADSLIOCTL_SET_SDRAM_BASE \
83 _IOR(ADSLDRV_MAJOR, 17, ADSLDRV_SET_SDRAM_BASE)
84 #define ADSLIOCTL_RESET_STAT_COUNTERS \
85 _IOR(ADSLDRV_MAJOR, 18, ADSLDRV_STATUS_ONLY)
86 #define ADSLIOCTL_SET_OEM_PARAM \
87 _IOR(ADSLDRV_MAJOR, 19, ADSLDRV_SET_OEM_PARAM)
88 #define ADSLIOCTL_START_BERT_EX \
89 _IOR(ADSLDRV_MAJOR, 20, ADSLDRV_BERT_EX)
90 #define ADSLIOCTL_STOP_BERT_EX \
91 _IOR(ADSLDRV_MAJOR, 21, ADSLDRV_STATUS_ONLY)
92 #define ADSLIOCTL_SET_OBJ_VALUE \
93 _IOR(ADSLDRV_MAJOR, 22, ADSLDRV_GET_OBJ)
95 #define ADSLIOCTL_GET_ADSL_CONNECTION_COUNTER \
96 _IOR(ADSLDRV_MAJOR, 23, ADSLDRV_GET_ADSL_CONNECTION_COUNTER)
97 #define ADSLIOCTL_EOC_PROCESS \
98 _IOR(ADSLDRV_MAJOR, 24, ADSLDRV_EOC_PROCESS)
100 #define ADSLIOCTL_HMI_COMMAND \
101 _IOR(ADSLDRV_MAJOR, 25, ADSLDRV_HMI)
102 #define MAX_ADSLDRV_IOCTL_COMMANDS 26
104 #define MAX_ADSLDRV_IOCTL_COMMANDS 25
110 BCMADSL_STATUS bvStatus;
111 } ADSLDRV_STATUS_ONLY, *PADSLDRV_STATUS_ONLY;
115 ADSL_FN_NOTIFY_CB pFnNotifyCb;
117 adslCfgProfile *pAdslCfg;
118 BCMADSL_STATUS bvStatus;
119 } ADSLDRV_INITIALIZE, *PADSLDRV_INITIALIZE;
123 ADSL_CHANNEL_ADDR ChannelAddr;
124 BCMADSL_STATUS bvStatus;
125 } ADSLDRV_PHY_ADDR, *PADSLDRV_PHY_ADDR;
129 UINT16 usAtmFastPortId;
130 UINT16 usAtmInterleavedPortId;
131 BCMADSL_STATUS bvStatus;
132 } ADSLDRV_MAP_ATM_PORT, *PADSLDRV_MAP_ATM_PORT;
136 ADSL_CONNECTION_INFO ConnectionInfo;
137 BCMADSL_STATUS bvStatus;
138 } ADSLDRV_CONNECTION_INFO, *PADSLDRV_CONNECTION_INFO;
147 BCMADSL_STATUS bvStatus;
148 } ADSLDRV_DIAG, *PADSLDRV_DIAG;
156 BCMADSL_STATUS bvStatus;
157 } ADSLDRV_GET_OBJ, *PADSLDRV_GET_OBJ;
161 unsigned long totalBits;
162 BCMADSL_STATUS bvStatus;
163 } ADSLDRV_BERT, *PADSLDRV_BERT;
167 unsigned long totalSec;
168 BCMADSL_STATUS bvStatus;
169 } ADSLDRV_BERT_EX, *PADSLDRV_BERT_EX;
173 adslCfgProfile *pAdslCfg;
174 BCMADSL_STATUS bvStatus;
175 } ADSLDRV_CONFIGURE, *PADSLDRV_CONFIGURE;
179 unsigned long testCmd;
180 unsigned long xmtStartTone;
181 unsigned long xmtNumTones;
182 unsigned long rcvStartTone;
183 unsigned long rcvNumTones;
186 BCMADSL_STATUS bvStatus;
187 } ADSLDRV_TEST, *PADSLDRV_TEST;
192 ADSL_CONSTELLATION_POINT *pointBuf;
194 BCMADSL_STATUS bvStatus;
195 } ADSLDRV_GET_CONSTEL_POINTS, *PADSLDRV_GET_CONSTEL_POINTS;
199 adslVersionInfo *pAdslVer;
200 BCMADSL_STATUS bvStatus;
201 } ADSLDRV_GET_VERSION, *PADSLDRV_GET_VERSION;
205 unsigned long sdramBaseAddr;
206 BCMADSL_STATUS bvStatus;
207 } ADSLDRV_SET_SDRAM_BASE, *PADSLDRV_SET_SDRAM_BASE;
215 BCMADSL_STATUS bvStatus;
216 } ADSLDRV_SET_OEM_PARAM, *PADSLDRV_SET_OEM_PARAM;
221 adslConnectionCounter *pAdslConnectCnt;
222 BCMADSL_STATUS bvStatus;
223 } ADSLDRV_GET_ADSL_CONNECTION_COUNTER, *PADSLDRV_GET_ADSL_CONNECTION_COUNTER;
230 BCMADSL_STATUS bvStatus;
231 } ADSLDRV_EOC_PROCESS, *PADSLDRV_EOC_PROCESS;
234 #if defined(__cplusplus)
239 /* declaration for read, write, poll operations */
240 #define ADSL_EOC_FRAME_RCVD (1 << BCM_ADSL_G997_FRAME_RECEIVED)
241 #define ADSL_EOC_FRAME_SENT (1 << BCM_ADSL_G997_FRAME_SENT)
242 #define ADSL_LINK_DROPPED (1 << BCM_ADSL_LINK_DOWN)
243 #define ADSL_EOC_ANY_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT | ADSL_LINK_DROPPED)
244 #define ADSL_EOC_RDWR_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT)
246 #define ADSL_EOC_HDR {0xff, 0x03, 0x81, 0x4c}
247 #define ADSL_2P_HDR_OFFSET 2 /* 0x81, 4c */
248 #define ADSL_HDR_OFFSET 0 /* 0xff, 0x3, 0x81, 4c */
249 #define ADSL_EOC_HDR_LEN 4
250 #define ADSL_2P_EOC_HDR_LEN 2
251 #define ADSL_EOC_ENABLE {0xff, 0x03, 0x00, 0x57}
253 //swda add,08/07/2006
254 //#define ADSL_EOC_POLL 0
255 #define ADSL_EOC_READ 1
256 #define ADSL_EOC_WRITE 2
259 void AdslCheckLinkupMsg(void);
260 void snmp_adsl_eoc_event(void);
262 #endif // _ADSLDRV_H_