1/*
2 * Broadcom wireless network adapter utility functions
3 *
4 * Copyright (C) 2010, 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,v 1.11 2005/08/09 22:18:32 Exp $
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