template <>

class WireSyncBufferClientImpl

Defined at line 3443 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

Public Methods

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::GetDevHwInfo> GetDevHwInfo ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3449 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::EnableFn> EnableFn ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3456 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::DisableFn> DisableFn ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3463 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::IoReady> IoReady ()

Returns the value of the I/O Ready bit for this function in CCCR.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3471 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::EnableFnIntr> EnableFnIntr ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3478 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::DisableFnIntr> DisableFnIntr ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3485 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::UpdateBlockSize> UpdateBlockSize (uint16_t blk_sz, bool deflt)

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3492 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::GetBlockSize> GetBlockSize ()

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3499 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::ReadByte> ReadByte (uint32_t address, bool suppress_error_messages)

Reads a byte from a register. If `suppress_error_messages` is true, the SDMMC stack will not

log error-severity messages.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3508 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::WriteByte> WriteByte (uint32_t address, uint8_t byte, bool read_after_write, bool suppress_error_messages)

Writes a byte to a register. If `read_after_write` is true, the register is read after

writing and the value is returned, otherwise the original value is returned. If

`suppress_error_messages` is true, the write is expected to fail, and the SDMMC stack will

not log error-severity messages.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3519 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::GetInBandIntr> GetInBandIntr ()

Returns a virtual interrupt that will be triggered by the SDIO driver when the card signals

an interrupt corresponding to this function. No additional interrupts will be triggered

until `AckInBandIntr()` is called.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3529 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fidl::OneWayStatus AckInBandIntr ()

See above. Clients should call `AckInBandIntr()` after starting to wait on the interrupt

object just in case there is already an in-band interrupt pending for this function.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3538 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::IoAbort> IoAbort ()

The following functions access the card common control registers (CCCR) on function 0.

Aborts an I/O operation occurring on the specified function.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3547 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::IntrPending> IntrPending ()

Returns true if an interrupt is pending for function fn_idx, false otherwise.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3555 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::DoVendorControlRwByte> DoVendorControlRwByte (bool write, uint8_t addr, uint8_t write_byte)

Reads or writes to a vendor CCCR register. addr must be in [0xF0, 0xFF].

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3563 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::RegisterVmo> RegisterVmo (uint32_t vmo_id, ::zx::vmo && vmo, uint64_t offset, uint64_t size, uint32_t vmo_rights)

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3570 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::UnregisterVmo> UnregisterVmo (uint32_t vmo_id)

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3577 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::DoRwTxn> DoRwTxn (::fuchsia_hardware_sdio::wire::SdioRwTxn && txn)

Clients are responsible for performing the following cache operations:

After read requests:

- Call zx_cache_flush with ZX_CACHE_FLUSH_DATA | ZX_CACHE_FLUSH_INVALIDATE on buffers that

have been mapped by the client.

- Call zx_vmo_op_range with ZX_VMO_OP_CACHE_CLEAN_INVALIDATE on all other buffers.

Note that writing to any portion of a buffer before DoRwTxn has returned can corrupt the

received data.

Before write requests:

- Call zx_cache_flush with ZX_CACHE_FLUSH_DATA on buffers that have been mapped by the

client.

- Call zx_vmo_op_range with ZX_VMO_OP_CACHE_CLEAN on all other buffers.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3598 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::RequestCardReset> RequestCardReset ()

Requests that the core driver hard reset the card and perform the SDIO initialization

sequence again. The callback will be called after the card has been re-initialized, and in

the meantime all IO calls from this client will return ZX_ERR_SHOULD_WAIT. If an error

occurs during initialization then all subsequent IO calls will return ZX_ERR_IO_NOT_PRESENT.

The only way to recover from this situation would be to call `RequestCardReset()` again.

The SDIO core driver will wait for all clients to call this method before performing the

reset and re-initialization. After the reset clients will have to perform their own

initialization steps again, such as calling `EnableFnIntr()` or `UpdateBlockSize()`.

VMO registration methods can always be called regardless of the reset state.

The specific method used to hard reset the card is platform- or board-specific; examples

include toggling a reset GPIO or power cycling the card.

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3619 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h

::fdf::WireUnownedResult< ::fuchsia_hardware_sdio::DriverDevice::PerformTuning> PerformTuning ()

Perform tuning in the background. Clients can use this to update the host controller delay

settings in case the bus delay has changed due to temperature or other factors. For example,

clients could call this periodically, or only in response to data CRC errors. The amount of

time this call takes (and the amount of time that other requests are blocked for) is

controller-dependent.

Returns `ZX_ERR_ALREADY_BOUND` if another call to `PerformTuning()` is already pending.

Otherwise returns `ZX_OK` or an error value if the SDMMC driver's tuning process failed (see

the [SDMMC protocol](/sdk/banjo/fuchsia.hardware.sdmmc/sdmmc.fidl)).

Caller provides the backing storage for FIDL message via an argument to `.buffer()`.

Defined at line 3635 of file fidling/gen/sdk/fidl/fuchsia.hardware.sdio/fuchsia.hardware.sdio/cpp/fidl/fuchsia.hardware.sdio/cpp/driver/wire_messaging.h