1/* 2 * Broadcom wireless network adapter utility functions 3 * 4 * Copyright 2005, Broadcom Corporation 5 * All Rights Reserved. 6 * 7 * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY 8 * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM 9 * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS 10 * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE. 11 * 12 * $Id: wlutils.h,v 1.1.1.10 2005/03/07 07:31:20 kanki Exp $ 13 */ 14 15#ifndef _wlutils_h_ 16#define _wlutils_h_ 17 18#include <shared.h> 19 20#ifdef RTCONFIG_RALINK 21#elif defined(RTCONFIG_QCA) 22#else 23#include <typedefs.h> 24#include <proto/ethernet.h> 25#include <wlioctl.h> 26 27/* 28 * Pass a wlioctl request to the specified interface. 29 * @param name interface name 30 * @param cmd WLC_GET_MAGIC <= cmd < WLC_LAST 31 * @param buf buffer for passing in and/or receiving data 32 * @param len length of buf 33 * @return >= 0 if successful or < 0 otherwise 34 */ 35extern int wl_ioctl(char *name, int cmd, void *buf, int len); 36 37/* 38 * Get device type. 39 * @param name interface name 40 * @param buf buffer for passing in and/or receiving data 41 * @param len length of buf 42 * @return >= 0 if successful or < 0 otherwise 43 */ 44#define DEV_TYPE_LEN 3 45extern int wl_get_dev_type(char *name, void *buf, int len); 46 47/* 48 * Get the MAC (hardware) address of the specified interface. 49 * @param name interface name 50 * @param hwaddr 6-byte buffer for receiving address 51 * @return >= 0 if successful or < 0 otherwise 52 */ 53extern int wl_hwaddr(char *name, unsigned char *hwaddr); 54 55/* 56 * Probe the specified interface. 57 * @param name interface name 58 * @return >= 0 if a Broadcom wireless device or < 0 otherwise 59 */ 60extern int wl_probe(char *name); 61 62/* 63 * Set/Get named variable. 64 * @param name interface name 65 * @param var variable name 66 * @param val variable value/buffer 67 * @param len variable value/buffer length 68 * @return success == 0, failure != 0 69 */ 70extern int wl_set_val(char *name, char *var, void *val, int len); 71extern int wl_get_val(char *name, char *var, void *val, int len); 72extern int wl_set_int(char *name, char *var, int val); 73extern int wl_get_int(char *name, char *var, int *val); 74 75static inline int wl_phytype_n(int phytype) 76{ 77 return (phytype == WLC_PHY_TYPE_N) 78#ifdef WLC_PHY_TYPE_SSN 79 || (phytype == WLC_PHY_TYPE_SSN) 80#endif 81#ifdef WLC_PHY_TYPE_LCN 82 || (phytype == WLC_PHY_TYPE_LCN) 83#endif 84 ; 85} 86 87#if 1 88/* 89 * Set/Get named variable. 90 * @param ifname interface name 91 * @param iovar variable name 92 * @param param input param value/buffer 93 * @param paramlen input param value/buffer length 94 * @param bufptr io buffer 95 * @param buflen io buffer length 96 * @param val val or val pointer for int routines 97 * @return success == 0, failure != 0 98 */ 99extern int wl_iovar_setbuf(char *ifname, char *iovar, void *param, int paramlen, void *bufptr, int buflen); 100extern int wl_iovar_getbuf(char *ifname, char *iovar, void *param, int paramlen, void *bufptr, int buflen); 101extern int wl_iovar_set(char *ifname, char *iovar, void *param, int paramlen); 102extern int wl_iovar_get(char *ifname, char *iovar, void *bufptr, int buflen); 103extern int wl_iovar_setint(char *ifname, char *iovar, int val); 104extern int wl_iovar_getint(char *ifname, char *iovar, int *val); 105 106/* 107 * Set/Get named variable indexed by BSS Configuration 108 * @param ifname interface name 109 * @param iovar variable name 110 * @param bssidx bsscfg index 111 * @param param input param value/buffer 112 * @param paramlen input param value/buffer length 113 * @param bufptr io buffer 114 * @param buflen io buffer length 115 * @param val val or val pointer for int routines 116 * @return success == 0, failure != 0 117 */ 118extern int wl_bssiovar_setbuf(char *ifname, char *iovar, int bssidx, void *param, int paramlen, void *bufptr, int buflen); 119extern int wl_bssiovar_getbuf(char *ifname, char *iovar, int bssidx, void *param, int paramlen, void *bufptr, int buflen); 120extern int wl_bssiovar_get(char *ifname, char *iovar, int bssidx, void *outbuf, int len); 121extern int wl_bssiovar_set(char *ifname, char *iovar, int bssidx, void *param, int paramlen); 122extern int wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val); 123#endif 124 125extern char * wl_ether_etoa(const struct ether_addr *n); 126 127#endif /* CONFIG_BCMWL5 */ 128#endif /* _wlutils_h_ */ 129