1/* 2 * Broadcom wireless network adapter utility functions 3 * 4 * Copyright (C) 2015, Broadcom Corporation. All Rights Reserved. 5 * 6 * Permission to use, copy, modify, and/or distribute this software for any 7 * purpose with or without fee is hereby granted, provided that the above 8 * copyright notice and this permission notice appear in all copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 13 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 15 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 16 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * $Id: wlutils.h 241182 2011-02-17 21:50:03Z $ 19 */ 20 21#ifndef _wlutils_h_ 22#define _wlutils_h_ 23 24#include <typedefs.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 /* Length for dev type 'et'/'wl' */ 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 ifname interface name 65 * @param iovar variable name 66 * @param param input param value/buffer 67 * @param paramlen input param value/buffer length 68 * @param bufptr io buffer 69 * @param buflen io buffer length 70 * @param val val or val pointer for int routines 71 * @return success == 0, failure != 0 72 */ 73extern int wl_iovar_setbuf(char *ifname, char *iovar, void *param, int paramlen, void *bufptr, 74 int buflen); 75extern int wl_iovar_getbuf(char *ifname, char *iovar, void *param, int paramlen, void *bufptr, 76 int buflen); 77extern int wl_iovar_set(char *ifname, char *iovar, void *param, int paramlen); 78extern int wl_iovar_get(char *ifname, char *iovar, void *bufptr, int buflen); 79extern int wl_iovar_setint(char *ifname, char *iovar, int val); 80extern int wl_iovar_getint(char *ifname, char *iovar, int *val); 81 82/* 83 * Set/Get named variable indexed by BSS Configuration 84 * @param ifname interface name 85 * @param iovar variable name 86 * @param bssidx bsscfg index 87 * @param param input param value/buffer 88 * @param paramlen input param value/buffer length 89 * @param bufptr io buffer 90 * @param buflen io buffer length 91 * @param val val or val pointer for int routines 92 * @return success == 0, failure != 0 93 */ 94extern int wl_bssiovar_setbuf(char *ifname, char *iovar, int bssidx, void *param, int paramlen, 95 void *bufptr, int buflen); 96extern int wl_bssiovar_getbuf(char *ifname, char *iovar, int bssidx, void *param, int paramlen, 97 void *bufptr, int buflen); 98extern int wl_bssiovar_get(char *ifname, char *iovar, int bssidx, void *outbuf, int len); 99extern int wl_bssiovar_set(char *ifname, char *iovar, int bssidx, void *param, int paramlen); 100extern int wl_bssiovar_setint(char *ifname, char *iovar, int bssidx, int val); 101 102#endif /* _wlutils_h_ */ 103