drivers/net/ethernet/qlogic/qede/qede_dcbnl.c

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/qlogic/qede/qede_dcbnl.c

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/qlogic/qede/qede_dcbnl.c
Extension
.c
Size
9417 bytes
Lines
351
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)
/* QLogic qede NIC Driver
 * Copyright (c) 2015 QLogic Corporation
 * Copyright (c) 2019-2020 Marvell International Ltd.
 */

#include <linux/types.h>
#include <linux/netdevice.h>
#include <linux/rtnetlink.h>
#include <net/dcbnl.h>
#include "qede.h"

static u8 qede_dcbnl_getstate(struct net_device *netdev)
{
	struct qede_dev *edev = netdev_priv(netdev);

	return edev->ops->dcb->getstate(edev->cdev);
}

static u8 qede_dcbnl_setstate(struct net_device *netdev, u8 state)
{
	struct qede_dev *edev = netdev_priv(netdev);

	return edev->ops->dcb->setstate(edev->cdev, state);
}

static void qede_dcbnl_getpermhwaddr(struct net_device *netdev,
				     u8 *perm_addr)
{
	memcpy(perm_addr, netdev->dev_addr, netdev->addr_len);
}

static void qede_dcbnl_getpgtccfgtx(struct net_device *netdev, int prio,
				    u8 *prio_type, u8 *pgid, u8 *bw_pct,
				    u8 *up_map)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->getpgtccfgtx(edev->cdev, prio, prio_type,
				     pgid, bw_pct, up_map);
}

static void qede_dcbnl_getpgbwgcfgtx(struct net_device *netdev,
				     int pgid, u8 *bw_pct)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->getpgbwgcfgtx(edev->cdev, pgid, bw_pct);
}

static void qede_dcbnl_getpgtccfgrx(struct net_device *netdev, int prio,
				    u8 *prio_type, u8 *pgid, u8 *bw_pct,
				    u8 *up_map)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->getpgtccfgrx(edev->cdev, prio, prio_type, pgid, bw_pct,
				     up_map);
}

static void qede_dcbnl_getpgbwgcfgrx(struct net_device *netdev,
				     int pgid, u8 *bw_pct)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->getpgbwgcfgrx(edev->cdev, pgid, bw_pct);
}

static void qede_dcbnl_getpfccfg(struct net_device *netdev, int prio,
				 u8 *setting)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->getpfccfg(edev->cdev, prio, setting);
}

static void qede_dcbnl_setpfccfg(struct net_device *netdev, int prio,
				 u8 setting)
{
	struct qede_dev *edev = netdev_priv(netdev);

	edev->ops->dcb->setpfccfg(edev->cdev, prio, setting);
}

static u8 qede_dcbnl_getcap(struct net_device *netdev, int capid, u8 *cap)
{
	struct qede_dev *edev = netdev_priv(netdev);

	return edev->ops->dcb->getcap(edev->cdev, capid, cap);
}

Annotation

Implementation Notes