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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/netdevice.hlinux/rtnetlink.hnet/dcbnl.hqede.h
Detected Declarations
function Copyrightfunction qede_dcbnl_setstatefunction qede_dcbnl_getpermhwaddrfunction qede_dcbnl_getpgtccfgtxfunction qede_dcbnl_getpgbwgcfgtxfunction qede_dcbnl_getpgtccfgrxfunction qede_dcbnl_getpgbwgcfgrxfunction qede_dcbnl_getpfccfgfunction qede_dcbnl_setpfccfgfunction qede_dcbnl_getcapfunction qede_dcbnl_getnumtcsfunction qede_dcbnl_getpfcstatefunction qede_dcbnl_getappfunction qede_dcbnl_getdcbxfunction qede_dcbnl_setpgtccfgtxfunction qede_dcbnl_setpgtccfgrxfunction qede_dcbnl_setpgbwgcfgtxfunction qede_dcbnl_setpgbwgcfgrxfunction qede_dcbnl_setallfunction qede_dcbnl_setnumtcsfunction qede_dcbnl_setpfcstatefunction qede_dcbnl_setappfunction qede_dcbnl_setdcbxfunction qede_dcbnl_getfeatcfgfunction qede_dcbnl_setfeatcfgfunction qede_dcbnl_peer_getappinfofunction qede_dcbnl_peer_getapptablefunction qede_dcbnl_cee_peer_getpfcfunction qede_dcbnl_cee_peer_getpgfunction qede_dcbnl_ieee_getpfcfunction qede_dcbnl_ieee_setpfcfunction qede_dcbnl_ieee_getetsfunction qede_dcbnl_ieee_setetsfunction qede_dcbnl_ieee_getappfunction qede_dcbnl_ieee_setappfunction qede_dcbnl_ieee_peer_getpfcfunction qede_dcbnl_ieee_peer_getetsfunction qede_set_dcbnl_ops
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
- Immediate include surface: `linux/types.h`, `linux/netdevice.h`, `linux/rtnetlink.h`, `net/dcbnl.h`, `qede.h`.
- Detected declarations: `function Copyright`, `function qede_dcbnl_setstate`, `function qede_dcbnl_getpermhwaddr`, `function qede_dcbnl_getpgtccfgtx`, `function qede_dcbnl_getpgbwgcfgtx`, `function qede_dcbnl_getpgtccfgrx`, `function qede_dcbnl_getpgbwgcfgrx`, `function qede_dcbnl_getpfccfg`, `function qede_dcbnl_setpfccfg`, `function qede_dcbnl_getcap`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.