diff options
Diffstat (limited to 'src/wl/sys/wl_export.h')
-rw-r--r-- | src/wl/sys/wl_export.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/wl/sys/wl_export.h b/src/wl/sys/wl_export.h new file mode 100644 index 0000000..41d4251 --- /dev/null +++ b/src/wl/sys/wl_export.h @@ -0,0 +1,81 @@ +/* + * Required functions exported by the port-specific (os-dependent) driver + * to common (os-independent) driver code. + * + * Copyright (C) 2015, Broadcom Corporation. All Rights Reserved. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * $Id: wl_export.h 579954 2015-08-17 18:08:53Z $ + */ + +#ifndef _wl_export_h_ +#define _wl_export_h_ + +struct wl_info; +struct wl_if; +struct wlc_if; +extern void wl_init(struct wl_info *wl); +extern uint wl_reset(struct wl_info *wl); +extern void wl_intrson(struct wl_info *wl); +extern uint32 wl_intrsoff(struct wl_info *wl); +extern void wl_intrsrestore(struct wl_info *wl, uint32 macintmask); +extern void wl_event(struct wl_info *wl, char *ifname, wlc_event_t *e); +extern void wl_event_sync(struct wl_info *wl, char *ifname, wlc_event_t *e); +extern void wl_event_sendup(struct wl_info *wl, const wlc_event_t *e, uint8 *data, uint32 len); +extern int wl_up(struct wl_info *wl); +extern void wl_down(struct wl_info *wl); +extern void wl_dump_ver(struct wl_info *wl, struct bcmstrbuf *b); +extern void wl_txflowcontrol(struct wl_info *wl, struct wl_if *wlif, bool state, int prio); +extern bool wl_alloc_dma_resources(struct wl_info *wl, uint dmaddrwidth); +extern void wl_reclaim(void); +extern void wl_nocard_timer(void *arg); +extern void wl_recover_nocard(struct wl_info *wl); +extern void wl_devicerecovery(struct wl_info *wl ); + +extern uint32 wl_pcie_bar1(struct wl_info *wl, uchar** addr); + +struct wl_timer; +extern struct wl_timer *wl_init_timer(struct wl_info *wl, void (*fn)(void* arg), void *arg, + const char *name); +extern void wl_free_timer(struct wl_info *wl, struct wl_timer *timer); +extern void wl_add_timer(struct wl_info *wl, struct wl_timer *timer, uint ms, int periodic); +extern bool wl_del_timer(struct wl_info *wl, struct wl_timer *timer); + +extern void wl_sendup(struct wl_info *wl, struct wl_if *wlif, void *p, int numpkt); +extern char *wl_ifname(struct wl_info *wl, struct wl_if *wlif); +extern struct wl_if *wl_add_if(struct wl_info *wl, struct wlc_if* wlcif, uint unit, + struct ether_addr *remote); +extern void wl_del_if(struct wl_info *wl, struct wl_if *wlif); +#ifdef DWDS +extern void wl_dwds_del_if(struct wl_info *wl, struct wl_if *wlif, bool force); +#endif + +extern int wl_osl_pcie_rc(struct wl_info *wl, uint op, int param); + +extern void wl_monitor(struct wl_info *wl, wl_rxsts_t *rxsts, void *p); +extern void wl_set_monitor(struct wl_info *wl, int val); + +extern uint wl_buf_to_pktcopy(osl_t *osh, void *p, uchar *buf, int len, uint offset); +extern void * wl_get_pktbuffer(osl_t *osh, int len); +extern int wl_set_pktlen(osl_t *osh, void *p, int len); + +#define IFCTX_ARPI (1) +#define IFCTX_NDI (2) +#define IFCTX_NETDEV (3) +extern void *wl_get_ifctx(struct wl_info *wl, int ctx_id, wl_if_t *wlif); + +#define wl_sort_bsslist(a, b) FALSE + +#define wl_outputpacket_complete(a, b, c) do { } while (0) +#endif |