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)
85 #define MAX_ADSLDRV_IOCTL_COMMANDS 22
90 BCMADSL_STATUS bvStatus;
91 } ADSLDRV_STATUS_ONLY, *PADSLDRV_STATUS_ONLY;
95 ADSL_FN_NOTIFY_CB pFnNotifyCb;
97 adslCfgProfile *pAdslCfg;
98 BCMADSL_STATUS bvStatus;
99 } ADSLDRV_INITIALIZE, *PADSLDRV_INITIALIZE;
103 ADSL_CHANNEL_ADDR ChannelAddr;
104 BCMADSL_STATUS bvStatus;
105 } ADSLDRV_PHY_ADDR, *PADSLDRV_PHY_ADDR;
109 UINT16 usAtmFastPortId;
110 UINT16 usAtmInterleavedPortId;
111 BCMADSL_STATUS bvStatus;
112 } ADSLDRV_MAP_ATM_PORT, *PADSLDRV_MAP_ATM_PORT;
116 ADSL_CONNECTION_INFO ConnectionInfo;
117 BCMADSL_STATUS bvStatus;
118 } ADSLDRV_CONNECTION_INFO, *PADSLDRV_CONNECTION_INFO;
127 BCMADSL_STATUS bvStatus;
128 } ADSLDRV_DIAG, *PADSLDRV_DIAG;
136 BCMADSL_STATUS bvStatus;
137 } ADSLDRV_GET_OBJ, *PADSLDRV_GET_OBJ;
141 unsigned long totalBits;
142 BCMADSL_STATUS bvStatus;
143 } ADSLDRV_BERT, *PADSLDRV_BERT;
147 unsigned long totalSec;
148 BCMADSL_STATUS bvStatus;
149 } ADSLDRV_BERT_EX, *PADSLDRV_BERT_EX;
153 adslCfgProfile *pAdslCfg;
154 BCMADSL_STATUS bvStatus;
155 } ADSLDRV_CONFIGURE, *PADSLDRV_CONFIGURE;
159 unsigned long testCmd;
160 unsigned long xmtStartTone;
161 unsigned long xmtNumTones;
162 unsigned long rcvStartTone;
163 unsigned long rcvNumTones;
166 BCMADSL_STATUS bvStatus;
167 } ADSLDRV_TEST, *PADSLDRV_TEST;
172 ADSL_CONSTELLATION_POINT *pointBuf;
174 BCMADSL_STATUS bvStatus;
175 } ADSLDRV_GET_CONSTEL_POINTS, *PADSLDRV_GET_CONSTEL_POINTS;
179 adslVersionInfo *pAdslVer;
180 BCMADSL_STATUS bvStatus;
181 } ADSLDRV_GET_VERSION, *PADSLDRV_GET_VERSION;
185 unsigned long sdramBaseAddr;
186 BCMADSL_STATUS bvStatus;
187 } ADSLDRV_SET_SDRAM_BASE, *PADSLDRV_SET_SDRAM_BASE;
195 BCMADSL_STATUS bvStatus;
196 } ADSLDRV_SET_OEM_PARAM, *PADSLDRV_SET_OEM_PARAM;
198 #if defined(__cplusplus)
203 /* declaration for read, write, poll operations */
204 #define ADSL_EOC_FRAME_RCVD (1 << BCM_ADSL_G997_FRAME_RECEIVED)
205 #define ADSL_EOC_FRAME_SENT (1 << BCM_ADSL_G997_FRAME_SENT)
206 #define ADSL_LINK_DROPPED (1 << BCM_ADSL_LINK_DOWN)
207 #define ADSL_EOC_ANY_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT | ADSL_LINK_DROPPED)
208 #define ADSL_EOC_RDWR_EVENT (ADSL_EOC_FRAME_RCVD | ADSL_EOC_FRAME_SENT)
210 #define ADSL_EOC_HDR {0xff, 0x03, 0x81, 0x4c}
211 #define ADSL_2P_HDR_OFFSET 2 /* 0x81, 4c */
212 #define ADSL_HDR_OFFSET 0 /* 0xff, 0x3, 0x81, 4c */
213 #define ADSL_EOC_HDR_LEN 4
214 #define ADSL_2P_EOC_HDR_LEN 2
215 #define ADSL_EOC_ENABLE {0xff, 0x03, 0x00, 0x57}
217 void AdslCheckLinkupMsg(void);
218 void snmp_adsl_eoc_event(void);
220 #endif // _ADSLDRV_H_