drivers/char/adi.c

Source file repositories/reference/linux-study-clean/drivers/char/adi.c

File Facts

System
Linux kernel
Corpus path
drivers/char/adi.c
Extension
.c
Size
4446 bytes
Lines
233
Domain
Driver Families
Bucket
drivers/char
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 adi_fops = {
	.owner		= THIS_MODULE,
	.llseek		= adi_llseek,
	.read		= adi_read,
	.write		= adi_write,
	.fop_flags	= FOP_UNSIGNED_OFFSET,
};

static struct miscdevice adi_miscdev = {
	.minor = MISC_DYNAMIC_MINOR,
	.name = KBUILD_MODNAME,
	.fops = &adi_fops,
};

static int __init adi_init(void)
{
	if (!adi_capable())
		return -EPERM;

	return misc_register(&adi_miscdev);
}

static void __exit adi_exit(void)
{
	misc_deregister(&adi_miscdev);
}

module_init(adi_init);
module_exit(adi_exit);

MODULE_AUTHOR("Tom Hromatka <tom.hromatka@oracle.com>");
MODULE_DESCRIPTION("Privileged interface to ADI");
MODULE_VERSION("1.0");
MODULE_LICENSE("GPL v2");

Annotation

Implementation Notes