1 /***************************************************************************
2 * Broadcom Corp. Confidential
3 * Copyright 2001 Broadcom Corp. All Rights Reserved.
5 * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED
6 * SOFTWARE LICENSE AGREEMENT BETWEEN THE USER AND BROADCOM.
7 * YOU HAVE NO RIGHT TO USE OR EXPLOIT THIS MATERIAL EXCEPT
8 * SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
10 ***************************************************************************
11 * File Name : AdslUser.c
13 * Description: This file contains the implementation of the user mode
16 * Updates : 10/02/2001 lat. Created.
17 ***************************************************************************/
20 typedef unsigned char UINT8;
21 typedef unsigned short UINT16;
22 typedef unsigned long UINT32;
29 #include <fcntl.h> /* open */
30 #include <unistd.h> /* exit */
31 #include <sys/ioctl.h> /* ioctl */
40 /***************************************************************************
41 * Function Name: OpenBcmAdsl
42 * Description : Opens the bcmadsl device.
43 * Returns : device handle if successsful or -1 if error
44 ***************************************************************************/
45 static int OpenBcmAdsl( void )
47 int nFd = open( "/dev/bcmadsl0", O_RDWR );
50 printf( "BcmAdsl : open error %d\n", errno );
55 /***************************************************************************
56 * Function Name: BcmAdsl_GetObjectValue
57 * Description : Gets MIB object value
58 * Returns : STS_SUCCESS if successful or error status.
59 ***************************************************************************/
60 int BcmAdsl_GetObjectValue(char *objId, int objIdLen, char *dataBuf, long *dataBufLen)
64 Arg.bvStatus = BCMADSL_STATUS_ERROR;
67 g_nAdslFd = OpenBcmAdsl();
72 Arg.objIdLen = objIdLen;
73 Arg.dataBuf = dataBuf;
74 Arg.dataBufLen = *dataBufLen;
75 ioctl( g_nAdslFd, ADSLIOCTL_GET_OBJ_VALUE, &Arg );
76 *dataBufLen = Arg.dataBufLen;
79 Arg.bvStatus = BCMADSL_STATUS_ERROR;
81 return( Arg.bvStatus );
84 //**************************************************************************
85 // Function Name: BcmAdsl_GetVersion
86 // Description : Changes ADSL version information
87 // Returns : STS_SUCCESS
88 //**************************************************************************
89 BCMADSL_STATUS BcmAdsl_GetVersion(adslVersionInfo *pAdslVer)
91 ADSLDRV_GET_VERSION Arg;
93 Arg.pAdslVer = pAdslVer;
94 Arg.bvStatus = BCMADSL_STATUS_ERROR;
97 g_nAdslFd = OpenBcmAdsl();
100 ioctl( g_nAdslFd, ADSLIOCTL_GET_VERSION, &Arg );
102 Arg.bvStatus = BCMADSL_STATUS_ERROR;
104 return( Arg.bvStatus );
107 /***************************************************************************
108 * Function Name: BcmAdsl_ConnectionStart
109 * Description : Start ADSL connection.
110 * Returns : STS_SUCCESS if successful or error status.
111 ***************************************************************************/
112 BCMADSL_STATUS BcmAdsl_ConnectionStart( void )
114 ADSLDRV_STATUS_ONLY Arg;
116 Arg.bvStatus = BCMADSL_STATUS_ERROR;
118 if( g_nAdslFd == -1 )
119 g_nAdslFd = OpenBcmAdsl();
121 if( g_nAdslFd != -1 )
122 ioctl( g_nAdslFd, ADSLIOCTL_CONNECTION_START, &Arg );
124 Arg.bvStatus = BCMADSL_STATUS_ERROR;
126 return( Arg.bvStatus );
127 } /* BcmAdsl_ConnectionStart */
130 /***************************************************************************
131 * Function Name: BcmAdsl_ConnectionStop
132 * Description : Clean up resources allocated during BcmAdsl_Initialize.
133 * Returns : STS_SUCCESS if successful or error status.
134 ***************************************************************************/
135 BCMADSL_STATUS BcmAdsl_ConnectionStop( void )
137 ADSLDRV_STATUS_ONLY Arg;
139 Arg.bvStatus = BCMADSL_STATUS_ERROR;
141 if( g_nAdslFd == -1 )
142 g_nAdslFd = OpenBcmAdsl();
144 if( g_nAdslFd != -1 )
145 ioctl( g_nAdslFd, ADSLIOCTL_CONNECTION_STOP, &Arg );
147 Arg.bvStatus = BCMADSL_STATUS_ERROR;
149 return( Arg.bvStatus );
150 } /* BcmAdsl_ConnectionStop */