linux/drivers/net/ethernet/cisco/enic/enic.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright 2008-2010 Cisco Systems, Inc.  All rights reserved.
 * Copyright 2007 Nuova Systems, Inc.  All rights reserved.
 */

#ifndef _ENIC_H_
#define _ENIC_H_

#include "vnic_enet.h"
#include "vnic_dev.h"
#include "vnic_wq.h"
#include "vnic_rq.h"
#include "vnic_cq.h"
#include "vnic_intr.h"
#include "vnic_stats.h"
#include "vnic_nic.h"
#include "vnic_rss.h"
#include <linux/irq.h>

#define DRV_NAME
#define DRV_DESCRIPTION

#define ENIC_BARS_MAX

#define ENIC_WQ_MAX
#define ENIC_RQ_MAX
#define ENIC_CQ_MAX
#define ENIC_INTR_MAX

#define ENIC_WQ_NAPI_BUDGET

#define ENIC_AIC_LARGE_PKT_DIFF

struct enic_msix_entry {};

/* Store only the lower range.  Higher range is given by fw. */
struct enic_intr_mod_range {};

struct enic_intr_mod_table {};

#define ENIC_MAX_LINK_SPEEDS
#define ENIC_LINK_SPEED_10G
#define ENIC_LINK_SPEED_4G
#define ENIC_LINK_40G_INDEX
#define ENIC_LINK_10G_INDEX
#define ENIC_LINK_4G_INDEX
#define ENIC_RX_COALESCE_RANGE_END
#define ENIC_AIC_TS_BREAK

struct enic_rx_coal {};

/* priv_flags */
#define ENIC_SRIOV_ENABLED

/* enic port profile set flags */
#define ENIC_PORT_REQUEST_APPLIED
#define ENIC_SET_REQUEST
#define ENIC_SET_NAME
#define ENIC_SET_INSTANCE
#define ENIC_SET_HOST

struct enic_port_profile {};

/* enic_rfs_fltr_node - rfs filter node in hash table
 *	@@keys: IPv4 5 tuple
 *	@flow_id: flow_id of clsf filter provided by kernel
 *	@fltr_id: filter id of clsf filter returned by adaptor
 *	@rq_id: desired rq index
 *	@node: hlist_node
 */
struct enic_rfs_fltr_node {};

/* enic_rfs_flw_tbl - rfs flow table
 *	@max: Maximum number of filters vNIC supports
 *	@free: Number of free filters available
 *	@toclean: hash table index to clean next
 *	@ht_head: hash table list head
 *	@lock: spin lock
 *	@rfs_may_expire: timer function for enic_rps_may_expire_flow
 */
struct enic_rfs_flw_tbl {};

struct vxlan_offload {};

/* Per-instance private data structure */
struct enic {};

static inline struct net_device *vnic_get_netdev(struct vnic_dev *vdev)
{}

/* wrappers function for kernel log
 */
#define vdev_err(vdev, fmt, ...)
#define vdev_warn(vdev, fmt, ...)
#define vdev_info(vdev, fmt, ...)

#define vdev_neterr(vdev, fmt, ...)
#define vdev_netwarn(vdev, fmt, ...)
#define vdev_netinfo(vdev, fmt, ...)

static inline struct device *enic_get_dev(struct enic *enic)
{}

static inline unsigned int enic_cq_rq(struct enic *enic, unsigned int rq)
{}

static inline unsigned int enic_cq_wq(struct enic *enic, unsigned int wq)
{}

static inline unsigned int enic_msix_rq_intr(struct enic *enic,
	unsigned int rq)
{}

static inline unsigned int enic_msix_wq_intr(struct enic *enic,
	unsigned int wq)
{}

static inline unsigned int enic_msix_err_intr(struct enic *enic)
{}

#define ENIC_LEGACY_IO_INTR
#define ENIC_LEGACY_ERR_INTR
#define ENIC_LEGACY_NOTIFY_INTR

static inline unsigned int enic_msix_notify_intr(struct enic *enic)
{}

static inline bool enic_is_err_intr(struct enic *enic, int intr)
{}

static inline bool enic_is_notify_intr(struct enic *enic, int intr)
{}

static inline int enic_dma_map_check(struct enic *enic, dma_addr_t dma_addr)
{}

void enic_reset_addr_lists(struct enic *enic);
int enic_sriov_enabled(struct enic *enic);
int enic_is_valid_vf(struct enic *enic, int vf);
int enic_is_dynamic(struct enic *enic);
void enic_set_ethtool_ops(struct net_device *netdev);
int __enic_set_rsskey(struct enic *enic);

#endif /* _ENIC_H_ */