drivers/virt/coco/tsm-core.c

Source file repositories/reference/linux-study-clean/drivers/virt/coco/tsm-core.c

File Facts

System
Linux kernel
Corpus path
drivers/virt/coco/tsm-core.c
Extension
.c
Size
2852 bytes
Lines
133
Domain
Driver Families
Bucket
drivers/virt
Inferred role
Driver Families: exported/initcall integration point
Status
integration 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

rc = device_add(dev);
	if (rc)
		return ERR_PTR(rc);

	return tsm_register_pci_or_reset(no_free_ptr(tsm_dev), pci_ops);
}
EXPORT_SYMBOL_GPL(tsm_register);

void tsm_unregister(struct tsm_dev *tsm_dev)
{
	if (tsm_dev->pci_ops)
		pci_tsm_unregister(tsm_dev);
	device_unregister(&tsm_dev->dev);
}
EXPORT_SYMBOL_GPL(tsm_unregister);

static void tsm_release(struct device *dev)
{
	struct tsm_dev *tsm_dev = container_of(dev, typeof(*tsm_dev), dev);

	ida_free(&tsm_ida, tsm_dev->id);
	kfree(tsm_dev);
}

static int __init tsm_init(void)
{
	return class_register(&tsm_class);
}
module_init(tsm_init)

static void __exit tsm_exit(void)
{
	class_unregister(&tsm_class);
}
module_exit(tsm_exit)

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("TEE Security Manager Class Device");

Annotation

Implementation Notes