drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_vcap_ag_api.c

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_vcap_ag_api.c

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/microchip/sparx5/lan969x/lan969x_vcap_ag_api.c
Extension
.c
Size
80068 bytes
Lines
3844
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: BSD-3-Clause
/* Copyright (C) 2024 Microchip Technology Inc. and its subsidiaries.
 * Microchip VCAP API
 */

/* This file is autogenerated by cml-utils 2024-10-07 11:10:56 +0200.
 * Commit ID: b5ddc8e244eb2481a9524f1ddc630a8b41e7c391
 */

#include <linux/types.h>
#include <linux/kernel.h>

#include "lan969x.h"

/* keyfields */
static const struct vcap_field is0_normal_7tuple_keyfield[] = {
	[VCAP_KF_TYPE] = {
		.type = VCAP_FIELD_BIT,
		.offset = 0,
		.width = 1,
	},
	[VCAP_KF_LOOKUP_FIRST_IS] = {
		.type = VCAP_FIELD_BIT,
		.offset = 1,
		.width = 1,
	},
	[VCAP_KF_LOOKUP_GEN_IDX_SEL] = {
		.type = VCAP_FIELD_U32,
		.offset = 2,
		.width = 2,
	},
	[VCAP_KF_LOOKUP_GEN_IDX] = {
		.type = VCAP_FIELD_U32,
		.offset = 4,
		.width = 10,
	},
	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
		.type = VCAP_FIELD_U32,
		.offset = 14,
		.width = 2,
	},
	[VCAP_KF_IF_IGR_PORT_MASK] = {
		.type = VCAP_FIELD_U72,
		.offset = 16,
		.width = 65,
	},
	[VCAP_KF_L2_MC_IS] = {
		.type = VCAP_FIELD_BIT,
		.offset = 81,
		.width = 1,
	},
	[VCAP_KF_L2_BC_IS] = {
		.type = VCAP_FIELD_BIT,
		.offset = 82,
		.width = 1,
	},
	[VCAP_KF_8021Q_VLAN_TAGS] = {
		.type = VCAP_FIELD_U32,
		.offset = 83,
		.width = 3,
	},
	[VCAP_KF_8021Q_TPID0] = {
		.type = VCAP_FIELD_U32,
		.offset = 86,
		.width = 3,
	},
	[VCAP_KF_8021Q_PCP0] = {
		.type = VCAP_FIELD_U32,
		.offset = 89,
		.width = 3,
	},
	[VCAP_KF_8021Q_DEI0] = {
		.type = VCAP_FIELD_BIT,
		.offset = 92,
		.width = 1,
	},
	[VCAP_KF_8021Q_VID0] = {
		.type = VCAP_FIELD_U32,
		.offset = 93,
		.width = 12,
	},
	[VCAP_KF_8021Q_TPID1] = {
		.type = VCAP_FIELD_U32,
		.offset = 105,
		.width = 3,
	},
	[VCAP_KF_8021Q_PCP1] = {
		.type = VCAP_FIELD_U32,
		.offset = 108,
		.width = 3,

Annotation

Implementation Notes