template <>

class Server

Defined at line 600 of file fidling/gen/sdk/fidl/fuchsia.hardware.spi/fuchsia.hardware.spi/cpp/fidl/fuchsia.hardware.spi/cpp/natural_messaging.h

Public Methods

void Server ()

Defined at line 603 of file fidling/gen/sdk/fidl/fuchsia.hardware.spi/fuchsia.hardware.spi/cpp/fidl/fuchsia.hardware.spi/cpp/natural_messaging.h

void Transmit (TransmitRequest & request, TransmitCompleter::Sync & completer)

Sends the data in buffer to the device.

void Receive (ReceiveRequest & request, ReceiveCompleter::Sync & completer)

Receives data from the device into buffer.

void Exchange (ExchangeRequest & request, ExchangeCompleter::Sync & completer)

Simultaneously transmits and receives data. The size fields of tx_buffer and rx_buffer must

be the same.

void RegisterVmo (RegisterVmoRequest & request, RegisterVmoCompleter::Sync & completer)

Registers a VMO and transfers ownership to the driver.

vmo_id: The ID chosen by the client that will be used in operations on this VMO.

vmo: The handle, offset, and size of this VMO. IO operations on this VMO will be relative to

the offset and size specified here.

rights: A bit field of SharedVmoRight values indicating how this VMO may be used. Callers

should assume that the driver will map and/or pin the VMO using these rights.

void UnregisterVmo (UnregisterVmoRequest & request, UnregisterVmoCompleter::Sync & completer)

Unmaps and/or unpins the VMO and returns the handle to the caller.

void TransmitVector (TransmitVectorRequest & request, TransmitVectorCompleter::Sync & completer)

Half-duplex transmit data to a SPI device; always transmits the entire buffer on success.

void ReceiveVector (ReceiveVectorRequest & request, ReceiveVectorCompleter::Sync & completer)

Half-duplex receive data from a SPI device; always reads the full size requested.

void ExchangeVector (ExchangeVectorRequest & request, ExchangeVectorCompleter::Sync & completer)

Full-duplex SPI transaction. Received data will exactly equal the length of the transmit

buffer.

void CanAssertCs (CanAssertCsCompleter::Sync & completer)

Returns true if the device can call |AssertCs()| and |DeassertCs()|.

void AssertCs (AssertCsCompleter::Sync & completer)

Assert CS for this device.

Returns ZX_ERR_NOT_SUPPORTED if there is more than one device on the bus.

void DeassertCs (DeassertCsCompleter::Sync & completer)

Deassert CS for this device.

Returns ZX_ERR_BAD_STATE if CS is already deasserted.

Returns ZX_ERR_NOT_SUPPORTED if there is more than one device on the bus.

Handler bind_handler (async_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~Server ()

Defined at line 604 of file fidling/gen/sdk/fidl/fuchsia.hardware.spi/fuchsia.hardware.spi/cpp/fidl/fuchsia.hardware.spi/cpp/natural_messaging.h