linux/drivers/net/ethernet/aquantia/atlantic/aq_ring.c

// SPDX-License-Identifier: GPL-2.0-only
/* Atlantic Network Driver
 *
 * Copyright (C) 2014-2019 aQuantia Corporation
 * Copyright (C) 2019-2020 Marvell International Ltd.
 */

/* File aq_ring.c: Definition of functions for Rx/Tx rings. */

#include "aq_nic.h"
#include "aq_hw.h"
#include "aq_hw_utils.h"
#include "aq_ptp.h"
#include "aq_vec.h"
#include "aq_main.h"

#include <net/xdp.h>
#include <linux/filter.h>
#include <linux/bpf_trace.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>

static void aq_get_rxpages_xdp(struct aq_ring_buff_s *buff,
			       struct xdp_buff *xdp)
{}

static inline void aq_free_rxpage(struct aq_rxpage *rxpage, struct device *dev)
{}

static int aq_alloc_rxpages(struct aq_rxpage *rxpage, struct aq_ring_s *rx_ring)
{}

static int aq_get_rxpages(struct aq_ring_s *self, struct aq_ring_buff_s *rxbuf)
{}

static int aq_ring_alloc(struct aq_ring_s *self,
			 struct aq_nic_s *aq_nic)
{}

int aq_ring_tx_alloc(struct aq_ring_s *self,
		     struct aq_nic_s *aq_nic,
		     unsigned int idx,
		     struct aq_nic_cfg_s *aq_nic_cfg)
{}

int aq_ring_rx_alloc(struct aq_ring_s *self,
		     struct aq_nic_s *aq_nic,
		     unsigned int idx,
		     struct aq_nic_cfg_s *aq_nic_cfg)
{}

int
aq_ring_hwts_rx_alloc(struct aq_ring_s *self, struct aq_nic_s *aq_nic,
		      unsigned int idx, unsigned int size, unsigned int dx_size)
{}

int aq_ring_init(struct aq_ring_s *self, const enum atl_ring_type ring_type)
{}

static inline bool aq_ring_dx_in_range(unsigned int h, unsigned int i,
				       unsigned int t)
{}

void aq_ring_update_queue_state(struct aq_ring_s *ring)
{}

void aq_ring_queue_wake(struct aq_ring_s *ring)
{}

void aq_ring_queue_stop(struct aq_ring_s *ring)
{}

bool aq_ring_tx_clean(struct aq_ring_s *self)
{}

static void aq_rx_checksum(struct aq_ring_s *self,
			   struct aq_ring_buff_s *buff,
			   struct sk_buff *skb)
{}

int aq_xdp_xmit(struct net_device *dev, int num_frames,
		struct xdp_frame **frames, u32 flags)
{}

static struct sk_buff *aq_xdp_build_skb(struct xdp_buff *xdp,
					struct net_device *dev,
					struct aq_ring_buff_s *buff)
{}

static struct sk_buff *aq_xdp_run_prog(struct aq_nic_s *aq_nic,
				       struct xdp_buff *xdp,
				       struct aq_ring_s *rx_ring,
				       struct aq_ring_buff_s *buff)
{}

static bool aq_add_rx_fragment(struct device *dev,
			       struct aq_ring_s *ring,
			       struct aq_ring_buff_s *buff,
			       struct xdp_buff *xdp)
{}

static int __aq_ring_rx_clean(struct aq_ring_s *self, struct napi_struct *napi,
			      int *work_done, int budget)
{}

static int __aq_ring_xdp_clean(struct aq_ring_s *rx_ring,
			       struct napi_struct *napi, int *work_done,
			       int budget)
{}

int aq_ring_rx_clean(struct aq_ring_s *self,
		     struct napi_struct *napi,
		     int *work_done,
		     int budget)
{}

void aq_ring_hwts_rx_clean(struct aq_ring_s *self, struct aq_nic_s *aq_nic)
{}

int aq_ring_rx_fill(struct aq_ring_s *self)
{}

void aq_ring_rx_deinit(struct aq_ring_s *self)
{}

void aq_ring_free(struct aq_ring_s *self)
{}

void aq_ring_hwts_rx_free(struct aq_ring_s *self)
{}

unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data)
{}