linux/drivers/net/ethernet/fungible/funeth/funeth.h

/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */

#ifndef _FUNETH_H
#define _FUNETH_H

#include <uapi/linux/if_ether.h>
#include <uapi/linux/net_tstamp.h>
#include <linux/mutex.h>
#include <linux/seqlock.h>
#include <linux/xarray.h>
#include <net/devlink.h>
#include "fun_dev.h"

#define ADMIN_SQE_SIZE
#define ADMIN_CQE_SIZE
#define ADMIN_RSP_MAX_LEN

#define FUN_MAX_MTU

#define SQ_DEPTH
#define CQ_DEPTH
#define RQ_DEPTH

#define CQ_INTCOAL_USEC
#define CQ_INTCOAL_NPKT
#define SQ_INTCOAL_USEC
#define SQ_INTCOAL_NPKT

#define INVALID_LPORT

#define FUN_PORT_CAP_PAUSE_MASK

struct fun_vport_info {};

/* "subclass" of fun_dev for Ethernet functions */
struct fun_ethdev {};

static inline struct fun_ethdev *to_fun_ethdev(struct fun_dev *p)
{}

struct fun_qset {};

/* Per netdevice driver state, i.e., netdev_priv. */
struct funeth_priv {};

void fun_set_ethtool_ops(struct net_device *netdev);
int fun_port_write_cmd(struct funeth_priv *fp, int key, u64 data);
int fun_port_read_cmd(struct funeth_priv *fp, int key, u64 *data);
int fun_create_and_bind_tx(struct funeth_priv *fp, u32 sqid);
int fun_replace_queues(struct net_device *dev, struct fun_qset *newqs,
		       struct netlink_ext_ack *extack);
int fun_change_num_queues(struct net_device *dev, unsigned int ntx,
			  unsigned int nrx);
void fun_set_ring_count(struct net_device *netdev, unsigned int ntx,
			unsigned int nrx);
int fun_config_rss(struct net_device *dev, int algo, const u8 *key,
		   const u32 *qtable, u8 op);

#endif /* _FUNETH_H */