#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/device.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/u64_stats_sync.h>
#include <linux/slab.h>
#include <linux/interrupt.h>
#include <linux/skbuff.h>
#include <linux/dma-mapping.h>
#include <linux/prefetch.h>
#include <linux/cpumask.h>
#include <linux/if_vlan.h>
#include <asm/barrier.h>
#include "hinic_common.h"
#include "hinic_hw_if.h"
#include "hinic_hw_wqe.h"
#include "hinic_hw_wq.h"
#include "hinic_hw_qp.h"
#include "hinic_hw_dev.h"
#include "hinic_rx.h"
#include "hinic_dev.h"
#define RX_IRQ_NO_PENDING …
#define RX_IRQ_NO_COALESC …
#define RX_IRQ_NO_LLI_TIMER …
#define RX_IRQ_NO_CREDIT …
#define RX_IRQ_NO_RESEND_TIMER …
#define HINIC_RX_BUFFER_WRITE …
#define HINIC_RX_IPV6_PKT …
#define LRO_PKT_HDR_LEN_IPV4 …
#define LRO_PKT_HDR_LEN_IPV6 …
#define LRO_REPLENISH_THLD …
#define LRO_PKT_HDR_LEN(cqe) …
static void hinic_rxq_clean_stats(struct hinic_rxq *rxq)
{ … }
void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats)
{ … }
static void rxq_stats_init(struct hinic_rxq *rxq)
{ … }
static void rx_csum(struct hinic_rxq *rxq, u32 status,
struct sk_buff *skb)
{ … }
static struct sk_buff *rx_alloc_skb(struct hinic_rxq *rxq,
dma_addr_t *dma_addr)
{ … }
static void rx_unmap_skb(struct hinic_rxq *rxq, dma_addr_t dma_addr)
{ … }
static void rx_free_skb(struct hinic_rxq *rxq, struct sk_buff *skb,
dma_addr_t dma_addr)
{ … }
static int rx_alloc_pkts(struct hinic_rxq *rxq)
{ … }
static void free_all_rx_skbs(struct hinic_rxq *rxq)
{ … }
static int rx_recv_jumbo_pkt(struct hinic_rxq *rxq, struct sk_buff *head_skb,
unsigned int left_pkt_len, u16 ci)
{ … }
static void hinic_copy_lp_data(struct hinic_dev *nic_dev,
struct sk_buff *skb)
{ … }
static int rxq_recv(struct hinic_rxq *rxq, int budget)
{ … }
static int rx_poll(struct napi_struct *napi, int budget)
{ … }
static void rx_add_napi(struct hinic_rxq *rxq)
{ … }
static void rx_del_napi(struct hinic_rxq *rxq)
{ … }
static irqreturn_t rx_irq(int irq, void *data)
{ … }
static int rx_request_irq(struct hinic_rxq *rxq)
{ … }
static void rx_free_irq(struct hinic_rxq *rxq)
{ … }
int hinic_init_rxq(struct hinic_rxq *rxq, struct hinic_rq *rq,
struct net_device *netdev)
{ … }
void hinic_clean_rxq(struct hinic_rxq *rxq)
{ … }