drivers/net/netdevsim/psp.c

Source file repositories/reference/linux-study-clean/drivers/net/netdevsim/psp.c

File Facts

System
Linux kernel
Corpus path
drivers/net/netdevsim/psp.c
Extension
.c
Size
7060 bytes
Lines
288
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: operation-table or driver-model contract
Status
pattern 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

static const struct file_operations nsim_psp_rereg_fops = {
	.open = simple_open,
	.write = nsim_psp_rereg_write,
	.llseek = generic_file_llseek,
	.owner = THIS_MODULE,
};

int nsim_psp_init(struct netdevsim *ns)
{
	struct dentry *ddir = ns->nsim_dev_port->ddir;
	struct psp_dev *psd;

	psd = psp_dev_create(ns->netdev, &nsim_psp_ops, &nsim_psp_caps, ns);
	if (IS_ERR(psd))
		return PTR_ERR(psd);

	rcu_assign_pointer(ns->psp.dev, psd);

	mutex_init(&ns->psp.rereg_lock);
	ns->psp.rereg = debugfs_create_file("psp_rereg", 0200, ddir, ns,
					    &nsim_psp_rereg_fops);
	return 0;
}

Annotation

Implementation Notes