4 Copyright (c) 2002 Broadcom Corporation
6 No portions of this material may be reproduced in any form without the
10 Irvine, California 92619
11 All information contained in this document is Broadcom Corporation
12 company private, proprietary, and trade secret.
16 /***************************************************************************
17 * File Name : AdslDrv.h
19 * Description: This file contains the definitions and structures for the
20 * Linux IOCTL interface that used between the user mode ADSL
21 * API library and the kernel ADSL API driver.
23 * Updates : 11/02/2001 lkaplan. Created.
24 ***************************************************************************/
26 #if !defined(_ADSLDRV_H_)
29 #if defined(__cplusplus)
37 #define DSL_IFNAME "dsl0"
38 #define ADSLDRV_MAJOR 208 /* arbitrary unused value */
40 #define ADSLIOCTL_CHECK \
41 _IOR(ADSLDRV_MAJOR, 0, ADSLDRV_STATUS_ONLY)
42 #define ADSLIOCTL_INITIALIZE \
43 _IOWR(ADSLDRV_MAJOR, 1, ADSLDRV_INITIALIZE)
44 #define ADSLIOCTL_UNINITIALIZE \
45 _IOR(ADSLDRV_MAJOR, 2, ADSLDRV_STATUS_ONLY)
46 #define ADSLIOCTL_CONNECTION_START \
47 _IOWR(ADSLDRV_MAJOR, 3, ADSLDRV_STATUS_ONLY)
48 #define ADSLIOCTL_CONNECTION_STOP \
49 _IOR(ADSLDRV_MAJOR, 4, ADSLDRV_STATUS_ONLY)
50 #define ADSLIOCTL_GET_PHY_ADDR \
51 _IOR(ADSLDRV_MAJOR, 5, ADSLDRV_PHY_ADDR)
52 #define ADSLIOCTL_SET_PHY_ADDR \
53 _IOWR(ADSLDRV_MAJOR, 6, ADSLDRV_PHY_ADDR)
54 #define ADSLIOCTL_MAP_ATM_PORT_IDS \
55 _IOWR(ADSLDRV_MAJOR, 7, ADSLDRV_MAP_ATM_PORT)
56 #define ADSLIOCTL_GET_CONNECTION_INFO \
57 _IOR(ADSLDRV_MAJOR, 8, ADSLDRV_CONNECTION_INFO)
58 #define ADSLIOCTL_DIAG_COMMAND \
59 _IOR(ADSLDRV_MAJOR, 9, ADSLDRV_DIAG)
60 #define ADSLIOCTL_GET_OBJ_VALUE \
61 _IOR(ADSLDRV_MAJOR, 10, ADSLDRV_GET_OBJ)
62 #define ADSLIOCTL_START_BERT \
63 _IOR(ADSLDRV_MAJOR, 11, ADSLDRV_BERT)
64 #define ADSLIOCTL_STOP_BERT \
65 _IOR(ADSLDRV_MAJOR, 12, ADSLDRV_STATUS_ONLY)
66 #define ADSLIOCTL_CONFIGURE \
67 _IOR(ADSLDRV_MAJOR, 13, ADSLDRV_CONFIGURE)
68 #define ADSLIOCTL_TEST \
69 _IOR(ADSLDRV_MAJOR, 14, ADSLDRV_TEST)
70 #define ADSLIOCTL_GET_CONSTEL_POINTS \
71 _IOR(ADSLDRV_MAJOR, 15, ADSLDRV_GET_CONSTEL_POINTS)
72 #define ADSLIOCTL_GET_VERSION \
73 _IOR(ADSLDRV_MAJOR, 16, ADSLDRV_GET_VERSION)
74 #define ADSLIOCTL_SET_SDRAM_BASE \
75 _IOR(ADSLDRV_MAJOR, 17, ADSLDRV_SET_SDRAM_BASE)
76 #define ADSLIOCTL_RESET_STAT_COUNTERS \
77 _IOR(ADSLDRV_MAJOR, 18, ADSLDRV_STATUS_ONLY)
78 #define ADSLIOCTL_SET_OEM_PARAM \
79 _IOR(ADSLDRV_MAJOR, 19, ADSLDRV_SET_OEM_PARAM)
80 #define ADSLIOCTL_START_BERT_EX \
81 _IOR(ADSLDRV_MAJOR, 20, ADSLDRV_BERT_EX)
82 #define ADSLIOCTL_STOP_BERT_EX \
83 _IOR(ADSLDRV_MAJOR, 21, ADSLDRV_STATUS_ONLY)
84 #define ADSLIOCTL_SET_OBJ_VALUE \
85 _IOR(ADSLDRV_MAJOR, 22, ADSLDRV_GET_OBJ)
86 #define MAX_ADSLDRV_IOCTL_COMMANDS 23
91 BCMADSL_STATUS bvStatus;
92 } ADSLDRV_STATUS_ONLY, *PADSLDRV_STATUS_ONLY;
96 ADSL_FN_NOTIFY_CB pFnNotifyCb;
98 adslCfgProfile *pAdslCfg;
99 BCMADSL_STATUS bvStatus;
100 } ADSLDRV_INITIALIZE, *PADSLDRV_INITIALIZE;
104 ADSL_CHANNEL_ADDR ChannelAddr;
105 BCMADSL_STATUS bvStatus;
106 } ADSLDRV_PHY_ADDR, *PADSLDRV_PHY_ADDR;
110 UINT16 usAtmFastPortId;
111 UINT16 usAtmInterleavedPortId;
112 BCMADSL_STATUS bvStatus;
113 } ADSLDRV_MAP_ATM_PORT, *PADSLDRV_MAP_ATM_PORT;
117 ADSL_CONNECTION_INFO ConnectionInfo;
118 BCMADSL_STATUS bvStatus;
119 } ADSLDRV_CONNECTION_INFO, *PADSLDRV_CONNECTION_INFO;
128 BCMADSL_STATUS bvStatus;
129 } ADSLDRV_DIAG, *PADSLDRV_DIAG;
137 BCMADSL_STATUS bvStatus;
138 } ADSLDRV_GET_OBJ, *PADSLDRV_GET_OBJ;
142 unsigned long totalBits;
143 BCMADSL_STATUS bvStatus;
144 } ADSLDRV_BERT, *PADSLDRV_BERT;
148 unsigned long totalSec;
149 BCMADSL_STATUS bvStatus;
150 } ADSLDRV_BERT_EX, *PADSLDRV_BERT_EX;
154 adslCfgProfile *pAdslCfg;
155 BCMADSL_STATUS bvStatus;
156 } ADSLDRV_CONFIGURE, *PADSLDRV_CONFIGURE;
160 unsigned long testCmd;
161 unsigned long xmtStartTone;
162 unsigned long xmtNumTones;
163 unsigned long rcvStartTone;
164 unsigned long rcvNumTones;
167 BCMADSL_STATUS bvStatus;
168 } ADSLDRV_TEST, *PADSLDRV_TEST;
173 ADSL_CONSTELLATION_POINT *pointBuf;
175 BCMADSL_STATUS bvStatus;
176 } ADSLDRV_GET_CONSTEL_POINTS, *PADSLDRV_GET_CONSTEL_POINTS;
180 adslVersionInfo *pAdslVer;
181 BCMADSL_STATUS bvStatus;
182 } ADSLDRV_GET_VERSION, *PADSLDRV_GET_VERSION;
186 unsigned long sdramBaseAddr;
187 BCMADSL_STATUS bvStatus;
188 } ADSLDRV_SET_SDRAM_BASE, *PADSLDRV_SET_SDRAM_BASE;
196 BCMADSL_STATUS bvStatus;
197 } ADSLDRV_SET_OEM_PARAM, *PADSLDRV_SET_OEM_PARAM;
199 #if defined(__cplusplus)
204 /* declaration for read, write, poll operations */
205 #define ADSL_EOC_FRAME_RCVD (1 << BCM_ADSL_G997_FRAME_RECEIVED)
206 #define ADSL_EOC_FRAME_SENT (1 << BCM_ADSL_G997_FRAME_SENT)
207 #define ADSL_LINK_DROPPED (1 << BCM_ADSL_LINK_DOWN)
208 #define ADSL_EOC_ANY_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT | ADSL_LINK_DROPPED)
209 #define ADSL_EOC_RDWR_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT)
211 #define ADSL_EOC_HDR {0xff, 0x03, 0x81, 0x4c}
212 #define ADSL_2P_HDR_OFFSET 2 /* 0x81, 4c */
213 #define ADSL_HDR_OFFSET 0 /* 0xff, 0x3, 0x81, 4c */
214 #define ADSL_EOC_HDR_LEN 4
215 #define ADSL_2P_EOC_HDR_LEN 2
216 #define ADSL_EOC_ENABLE {0xff, 0x03, 0x00, 0x57}
218 void AdslCheckLinkupMsg(void);
219 void snmp_adsl_eoc_event(void);
221 #endif // _ADSLDRV_H_