drivers/sbus/char/openprom.c

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

File Facts

System
Linux kernel
Corpus path
drivers/sbus/char/openprom.c
Extension
.c
Size
15312 bytes
Lines
726
Domain
Driver Families
Bucket
drivers/sbus
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 openprom_fops = {
	.owner =	THIS_MODULE,
	.unlocked_ioctl = openprom_ioctl,
	.compat_ioctl =	openprom_compat_ioctl,
	.open =		openprom_open,
	.release =	openprom_release,
};

static struct miscdevice openprom_dev = {
	.minor		= SUN_OPENPROM_MINOR,
	.name		= "openprom",
	.fops		= &openprom_fops,
};

static int __init openprom_init(void)
{
	int err;

	err = misc_register(&openprom_dev);
	if (err)
		return err;

	options_node = of_get_child_by_name(of_find_node_by_path("/"), "options");
	if (!options_node) {
		misc_deregister(&openprom_dev);
		return -EIO;
	}

	return 0;
}

static void __exit openprom_cleanup(void)
{
	misc_deregister(&openprom_dev);
}

module_init(openprom_init);
module_exit(openprom_cleanup);

Annotation

Implementation Notes