openwrtv4/package/broadcom-wl/src/include/wlutils.h

102 lines
3 KiB
C
Raw Normal View History

2006-06-18 18:04:42 +00:00
/*
* Broadcom wireless network adapter utility functions
*
* Copyright 2006, Broadcom Corporation
* All Rights Reserved.
*
* THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
* KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
* SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
*
*/
#ifndef _wlutils_h_
#define _wlutils_h_
#include <typedefs.h>
#include <wlioctl.h>
/*
* Pass a wlioctl request to the specified interface.
* @param name interface name
* @param cmd WLC_GET_MAGIC <= cmd < WLC_LAST
* @param buf buffer for passing in and/or receiving data
* @param len length of buf
* @return >= 0 if successful or < 0 otherwise
*/
extern int wl_ioctl(char *name, int cmd, void *buf, int len);
/*
* Probe the specified interface.
* @param name interface name
* @return >= 0 if a Broadcom wireless device or < 0 otherwise
*/
extern int wl_probe(char *name);
extern int wl_iovar_set(char *ifname, char *iovar, void *param, int paramlen);
extern int wl_iovar_get(char *ifname, char *iovar, void *bufptr, int buflen);
/*
* Set/Get named variable.
* @param ifname interface name
* @param iovar variable name
* @param param input param value/buffer
* @param paramlen input param value/buffer length
* @param bufptr io buffer
* @param buflen io buffer length
* @param val val or val pointer for int routines
* @return success == 0, failure != 0
*/
/*
* set named driver variable to int value
* calling example: wl_iovar_setint(ifname, "arate", rate)
*/
static inline int
wl_iovar_setint(char *ifname, char *iovar, int val)
{
return wl_iovar_set(ifname, iovar, &val, sizeof(val));
}
/*
* get named driver variable to int value and return error indication
* calling example: wl_iovar_getint(ifname, "arate", &rate)
*/
static inline int
wl_iovar_getint(char *ifname, char *iovar, int *val)
{
return wl_iovar_get(ifname, iovar, val, sizeof(int));
}
/*
* Set/Get named variable indexed by BSS Configuration
* @param ifname interface name
* @param iovar variable name
* @param bssidx bsscfg index
* @param param input param value/buffer
* @param paramlen input param value/buffer length
* @param bufptr io buffer
* @param buflen io buffer length
* @param val val or val pointer for int routines
* @return success == 0, failure != 0
*/
extern int wl_bssiovar_get(char *ifname, char *iovar, int bssidx, void *outbuf, int len);
extern int wl_bssiovar_set(char *ifname, char *iovar, int bssidx, void *param, int paramlen);
/*
* set named & bss indexed driver variable to int value
*/
static inline int
wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val)
{
return wl_bssiovar_set(ifname, iovar, bssidx, &val, sizeof(int));
}
static inline int
wl_bssiovar_getint(char *ifname, char *iovar, int bssidx, int *val)
{
return wl_bssiovar_get(ifname, iovar, bssidx, val, sizeof(int));
}
extern int wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val);
#endif /* _wlutils_h_ */