http://downloads.netgear.com/files/GPL/GPL_Source_V361j_DM111PSP_series_consumer_rele...
[bcm963xx.git] / userapps / opensource / net-snmp / agent / mibgroup / mibII / adsl / adsluser.c
1 /***************************************************************************
2  * Broadcom Corp. Confidential
3  * Copyright 2001 Broadcom Corp. All Rights Reserved.
4  *
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.
9  *
10  ***************************************************************************
11  * File Name  : AdslUser.c
12  *
13  * Description: This file contains the implementation of the user mode
14  *              ADSL library.
15  *
16  * Updates    : 10/02/2001  lat.  Created.
17  ***************************************************************************/
18
19 /* Broadcom types. */
20 typedef unsigned char UINT8;
21 typedef unsigned short UINT16;
22 typedef unsigned long UINT32;
23
24
25 /* Includes. */
26 #include <stdio.h>
27 #include <unistd.h>
28 #include <errno.h>
29 #include <fcntl.h>      /* open */ 
30 #include <unistd.h>     /* exit */
31 #include <sys/ioctl.h>  /* ioctl */
32 #include "bcmadsl.h"
33 #include "adsldrv.h"
34
35 #include "DiagDef.h"
36
37 /* Globals. */
38 int g_nAdslFd = -1;
39
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 )
46 {
47     int nFd = open( "/dev/bcmadsl0", O_RDWR );
48
49     if( nFd == -1 )
50         printf( "BcmAdsl : open error %d\n", errno );
51
52     return( nFd );
53 } /* OpenBcmAdsl */
54
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)
61 {
62     ADSLDRV_GET_OBJ             Arg;
63
64     Arg.bvStatus = BCMADSL_STATUS_ERROR;
65
66     if( g_nAdslFd == -1  )
67         g_nAdslFd = OpenBcmAdsl();
68
69     if( g_nAdslFd != -1  )
70     {
71                 Arg.objId               = objId;
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;
77         }
78     else
79         Arg.bvStatus = BCMADSL_STATUS_ERROR;
80
81     return( Arg.bvStatus );
82 }
83
84 //**************************************************************************
85 // Function Name: BcmAdsl_GetVersion
86 // Description  : Changes ADSL version information
87 // Returns      : STS_SUCCESS 
88 //**************************************************************************
89 BCMADSL_STATUS BcmAdsl_GetVersion(adslVersionInfo *pAdslVer)
90 {
91         ADSLDRV_GET_VERSION             Arg;
92
93     Arg.pAdslVer  = pAdslVer;
94     Arg.bvStatus = BCMADSL_STATUS_ERROR;
95
96     if( g_nAdslFd == -1  )
97         g_nAdslFd = OpenBcmAdsl();
98
99     if( g_nAdslFd != -1  )
100         ioctl( g_nAdslFd, ADSLIOCTL_GET_VERSION, &Arg );
101     else
102         Arg.bvStatus = BCMADSL_STATUS_ERROR;
103
104     return( Arg.bvStatus );
105 }
106
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 )
113 {
114     ADSLDRV_STATUS_ONLY Arg;
115
116     Arg.bvStatus = BCMADSL_STATUS_ERROR;
117
118     if( g_nAdslFd == -1  )
119         g_nAdslFd = OpenBcmAdsl();
120
121     if( g_nAdslFd != -1  )
122         ioctl( g_nAdslFd, ADSLIOCTL_CONNECTION_START, &Arg );
123     else
124         Arg.bvStatus = BCMADSL_STATUS_ERROR;
125
126     return( Arg.bvStatus );
127 } /* BcmAdsl_ConnectionStart */
128
129
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 )
136 {
137     ADSLDRV_STATUS_ONLY Arg;
138
139     Arg.bvStatus = BCMADSL_STATUS_ERROR;
140
141     if( g_nAdslFd == -1  )
142         g_nAdslFd = OpenBcmAdsl();
143
144     if( g_nAdslFd != -1  )
145         ioctl( g_nAdslFd, ADSLIOCTL_CONNECTION_STOP, &Arg );
146     else
147         Arg.bvStatus = BCMADSL_STATUS_ERROR;
148
149     return( Arg.bvStatus );
150 } /* BcmAdsl_ConnectionStop */
151
152