Scroll to navigation

ATA_FINALIZE_PORT_OP(9) libata Core Internals ATA_FINALIZE_PORT_OP(9)

NAME

ata_finalize_port_ops - finalize ata_port_operations

SYNOPSIS

void ata_finalize_port_ops(struct ata_port_operations * ops);

ARGUMENTS

ops
ata_port_operations to finalize

DESCRIPTION

An ata_port_operations can inherit from another ops and that ops can again inherit from another. This can go on as many times as necessary as long as there is no loop in the inheritance chain.
Ops tables are finalized when the host is started. NULL or unspecified entries are inherited from the closet ancestor which has the method and the entry is populated with it. After finalization, the ops table directly points to all the methods and ->inherits is no longer necessary and cleared.
Using ATA_OP_NULL, inheriting ops can force a method to NULL.

LOCKING

None.

AUTHOR

Jeff Garzik
Author.

COPYRIGHT

May 2018 Kernel Hackers Manual 3.16