drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.c

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

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/microchip/sparx5/sparx5_vcap_ag_api.c
Extension
.c
Size
80413 bytes
Lines
3875
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) 2023 Microchip Technology Inc. and its subsidiaries.
 * Microchip VCAP API
 */

/* This file is autogenerated by cml-utils 2023-02-10 11:15:56 +0100.
 * Commit ID: c30fb4bf0281cd4a7133bdab6682f9e43c872ada
 */

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

#include "vcap_api.h"
#include "sparx5_vcap_ag_api.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 = 12,
	},
	[VCAP_KF_IF_IGR_PORT_MASK_SEL] = {
		.type = VCAP_FIELD_U32,
		.offset = 16,
		.width = 2,
	},
	[VCAP_KF_IF_IGR_PORT_MASK] = {
		.type = VCAP_FIELD_U72,
		.offset = 18,
		.width = 65,
	},
	[VCAP_KF_L2_MC_IS] = {
		.type = VCAP_FIELD_BIT,
		.offset = 83,
		.width = 1,
	},
	[VCAP_KF_L2_BC_IS] = {
		.type = VCAP_FIELD_BIT,
		.offset = 84,
		.width = 1,
	},
	[VCAP_KF_8021Q_VLAN_TAGS] = {
		.type = VCAP_FIELD_U32,
		.offset = 85,
		.width = 3,
	},
	[VCAP_KF_8021Q_TPID0] = {
		.type = VCAP_FIELD_U32,
		.offset = 88,
		.width = 3,
	},
	[VCAP_KF_8021Q_PCP0] = {
		.type = VCAP_FIELD_U32,
		.offset = 91,
		.width = 3,
	},
	[VCAP_KF_8021Q_DEI0] = {
		.type = VCAP_FIELD_BIT,
		.offset = 94,
		.width = 1,
	},
	[VCAP_KF_8021Q_VID0] = {
		.type = VCAP_FIELD_U32,
		.offset = 95,
		.width = 12,
	},
	[VCAP_KF_8021Q_TPID1] = {
		.type = VCAP_FIELD_U32,
		.offset = 107,
		.width = 3,
	},
	[VCAP_KF_8021Q_PCP1] = {
		.type = VCAP_FIELD_U32,
		.offset = 110,

Annotation

Implementation Notes