i2c_bus_cookie
void (*set_i2c_bus)(i2c_bus_cookie cookie, i2c_bus bus);
status_t (*exec_command)(i2c_bus_cookie cookie, i2c_op op,
status_t (*scan_bus)(i2c_bus_cookie cookie);
status_t (*acquire_bus)(i2c_bus_cookie cookie);
void (*release_bus)(i2c_bus_cookie cookie);
status_t (*install_interrupt_handler)(i2c_bus_cookie cookie,
status_t (*uninstall_interrupt_handler)(i2c_bus_cookie cookie,
.set_i2c_bus = [](i2c_bus_cookie cookie, i2c_bus bus) {
.exec_command = [](i2c_bus_cookie cookie, i2c_op op,
.acquire_bus = [](i2c_bus_cookie cookie) {
.release_bus = [](i2c_bus_cookie cookie) {
exec_command(i2c_bus_cookie cookie, i2c_op op, i2c_addr slaveAddress,
scan_bus(i2c_bus_cookie cookie)
acquire_bus(i2c_bus_cookie cookie)
release_bus(i2c_bus_cookie cookie)
set_sim(i2c_bus_cookie cookie, i2c_bus sim)
status_t (*scan_bus)(i2c_bus_cookie cookie);
acpi_scan_bus(i2c_bus_cookie cookie)
pci_scan_bus(i2c_bus_cookie cookie)