linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c

// SPDX-License-Identifier: ISC
/*
 * Copyright (c) 2010 Broadcom Corporation
 */

#include <linux/kernel.h>
#include <linux/etherdevice.h>
#include <linux/module.h>
#include <linux/inetdevice.h>
#include <linux/property.h>
#include <net/cfg80211.h>
#include <net/rtnetlink.h>
#include <net/addrconf.h>
#include <net/ieee80211_radiotap.h>
#include <net/ipv6.h>
#include <brcmu_utils.h>
#include <brcmu_wifi.h>

#include "core.h"
#include "bus.h"
#include "fwvid.h"
#include "debug.h"
#include "fwil_types.h"
#include "p2p.h"
#include "pno.h"
#include "cfg80211.h"
#include "fwil.h"
#include "feature.h"
#include "proto.h"
#include "pcie.h"
#include "common.h"

#define MAX_WAIT_FOR_8021X_TX

#define BRCMF_BSSIDX_INVALID

#define RXS_PBPRES

#define D11_PHY_HDR_LEN

struct d11rxhdr_le {} __packed;

struct wlc_d11rxhdr {} __packed;

char *brcmf_ifname(struct brcmf_if *ifp)
{}

struct brcmf_if *brcmf_get_ifp(struct brcmf_pub *drvr, int ifidx)
{}

void brcmf_configure_arp_nd_offload(struct brcmf_if *ifp, bool enable)
{}

static void _brcmf_set_multicast_list(struct work_struct *work)
{}

#if IS_ENABLED(CONFIG_IPV6)
static void _brcmf_update_ndtable(struct work_struct *work)
{}
#else
static void _brcmf_update_ndtable(struct work_struct *work)
{
}
#endif

static int brcmf_netdev_set_mac_address(struct net_device *ndev, void *addr)
{}

static void brcmf_netdev_set_multicast_list(struct net_device *ndev)
{}

/**
 * brcmf_skb_is_iapp - checks if skb is an IAPP packet
 *
 * @skb: skb to check
 */
static bool brcmf_skb_is_iapp(struct sk_buff *skb)
{}

static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
					   struct net_device *ndev)
{}

void brcmf_txflowblock_if(struct brcmf_if *ifp,
			  enum brcmf_netif_stop_reason reason, bool state)
{}

void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb)
{}

void brcmf_netif_mon_rx(struct brcmf_if *ifp, struct sk_buff *skb)
{}

static int brcmf_rx_hdrpull(struct brcmf_pub *drvr, struct sk_buff *skb,
			    struct brcmf_if **ifp)
{}

void brcmf_rx_frame(struct device *dev, struct sk_buff *skb, bool handle_event,
		    bool inirq)
{}

void brcmf_rx_event(struct device *dev, struct sk_buff *skb)
{}

void brcmf_txfinalize(struct brcmf_if *ifp, struct sk_buff *txp, bool success)
{}

static void brcmf_ethtool_get_drvinfo(struct net_device *ndev,
				    struct ethtool_drvinfo *info)
{}

static const struct ethtool_ops brcmf_ethtool_ops =;

static int brcmf_netdev_stop(struct net_device *ndev)
{}

static int brcmf_netdev_open(struct net_device *ndev)
{}

static const struct net_device_ops brcmf_netdev_ops_pri =;

int brcmf_net_attach(struct brcmf_if *ifp, bool locked)
{}

void brcmf_net_detach(struct net_device *ndev, bool locked)
{}

static int brcmf_net_mon_open(struct net_device *ndev)
{}

static int brcmf_net_mon_stop(struct net_device *ndev)
{}

static netdev_tx_t brcmf_net_mon_start_xmit(struct sk_buff *skb,
					    struct net_device *ndev)
{}

static const struct net_device_ops brcmf_netdev_ops_mon =;

int brcmf_net_mon_attach(struct brcmf_if *ifp)
{}

void brcmf_net_setcarrier(struct brcmf_if *ifp, bool on)
{}

static int brcmf_net_p2p_open(struct net_device *ndev)
{}

static int brcmf_net_p2p_stop(struct net_device *ndev)
{}

static netdev_tx_t brcmf_net_p2p_start_xmit(struct sk_buff *skb,
					    struct net_device *ndev)
{}

static const struct net_device_ops brcmf_netdev_ops_p2p =;

static int brcmf_net_p2p_attach(struct brcmf_if *ifp)
{}

struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bsscfgidx, s32 ifidx,
			      bool is_p2pdev, const char *name, u8 *mac_addr)
{}

static void brcmf_del_if(struct brcmf_pub *drvr, s32 bsscfgidx,
			 bool locked)
{}

void brcmf_remove_interface(struct brcmf_if *ifp, bool locked)
{}

static int brcmf_psm_watchdog_notify(struct brcmf_if *ifp,
				     const struct brcmf_event_msg *evtmsg,
				     void *data)
{}

#ifdef CONFIG_INET
#define ARPOL_MAX_ENTRIES
static int brcmf_inetaddr_changed(struct notifier_block *nb,
				  unsigned long action, void *data)
{}
#endif

#if IS_ENABLED(CONFIG_IPV6)
static int brcmf_inet6addr_changed(struct notifier_block *nb,
				   unsigned long action, void *data)
{}
#endif

static int brcmf_revinfo_read(struct seq_file *s, void *data)
{}

static void brcmf_core_bus_reset(struct work_struct *work)
{}

static ssize_t bus_reset_write(struct file *file, const char __user *user_buf,
			       size_t count, loff_t *ppos)
{}

static const struct file_operations bus_reset_fops =;

static int brcmf_bus_started(struct brcmf_pub *drvr, struct cfg80211_ops *ops)
{}

int brcmf_alloc(struct device *dev, struct brcmf_mp_device *settings)
{}

int brcmf_attach(struct device *dev)
{}

void brcmf_bus_add_txhdrlen(struct device *dev, uint len)
{}

void brcmf_dev_reset(struct device *dev)
{}

void brcmf_dev_coredump(struct device *dev)
{}

void brcmf_fw_crashed(struct device *dev)
{}

void brcmf_detach(struct device *dev)
{}

void brcmf_free(struct device *dev)
{}

s32 brcmf_iovar_data_set(struct device *dev, char *name, void *data, u32 len)
{}

static int brcmf_get_pend_8021x_cnt(struct brcmf_if *ifp)
{}

int brcmf_netdev_wait_pend8021x(struct brcmf_if *ifp)
{}

void brcmf_bus_change_state(struct brcmf_bus *bus, enum brcmf_bus_state state)
{}

int __init brcmf_core_init(void)
{}

void __exit brcmf_core_exit(void)
{}