fuchsia.device.fs

Added: 12

PROTOCOLS

Connector

Defined in fuchsia.device.fs/connector.fidl

A connector lets a client forward the server end of a protocol.

Connect

Forward a server end of a protocol so that it can be connected. + request server the server end of the protocol to be served. The FIDL protocol that this speaks is determined out-of-band.

  • response This function has no response. The function is one-way to match the pipelining behaviors of other virtual filesystems.

Request

NameType
server handle<channel>

Controller

Defined in fuchsia.device.fs/controller.fidl

Interface for manipulating a device in a devhost

Added: HEAD

Bind

Attempt to bind a driver to this device. + request driver This represents the suffix of a driver URL (e.g: "fvm.cm"). If this is non-empty, then the only drivers that will try to bind are ones that match this url suffix.

Request

NameType
driver string[1024]

Response

NameType
payload Controller_Bind_Result

ConnectToController

Connect to the same Controller FIDL protocol.

Request

NameType
server server_end<Controller>

ConnectToDeviceFidl

Connect to the underlying device's FIDL protocol. This connection will not be multiplexed with fuchsia.device.Controller or fuchsia.io.Node.

Request

NameType
server handle<channel>

GetTopologicalPath

Return the topological path for this device

Request

<EMPTY>

Response

NameType
payload Controller_GetTopologicalPath_Result

Rebind

Unbind all the children of this device, and then attempt to bind a driver to the device. This will not return until the bind completes. + request driver This represents the suffix of a driver URL (e.g: "fvm.cm"). If this is non-empty, then the only drivers that will try to bind are ones that match this url suffix.

Request

NameType
driver string[1024]

Response

NameType
payload Controller_Rebind_Result

ScheduleUnbind

Disconnect this device and allow its parent to be bound again. This may not complete before it returns.

Request

<EMPTY>

Response

NameType
payload Controller_ScheduleUnbind_Result

UnbindChildren

This api will unbind all the children of this device synchronously. This will avoid watching for device removal by the clients.

Request

<EMPTY>

Response

NameType
payload Controller_UnbindChildren_Result

STRUCTS

Controller_Bind_Response

Defined in fuchsia.device.fs/controller.fidl

<EMPTY>

Controller_GetTopologicalPath_Response

Defined in fuchsia.device.fs/controller.fidl

FieldTypeDescriptionDefault
path string[1024] No default

Controller_Rebind_Response

Defined in fuchsia.device.fs/controller.fidl

<EMPTY>

Controller_ScheduleUnbind_Response

Defined in fuchsia.device.fs/controller.fidl

<EMPTY>

Controller_UnbindChildren_Response

Defined in fuchsia.device.fs/controller.fidl

<EMPTY>

TABLES

DevfsAddArgs resource

Defined in fuchsia.device.fs/connector.fidl

Added: HEAD

OrdinalFieldTypeDescription
connector Connector

This is the connector to be installed in devfs. Connect() will be called when a client connects to this node in the filesystem. Optional: If this is not provided then an empty node will appear in devfs.

class_name string[255]

This is the class name for installing this node in devfs. The node will be placed within /dev/class/{class_name}. If class_name does not exist under /dev/class/ it will be created. Optional: If this is not provided then the node will only be added via topological path.

inspect handle<vmo>

This is a vmo of inspect data that will be installed in devfs. Optional: If this is not provided then the devfs's inspect data will be empty.

connector_supports ConnectionType

The connection types that are supported by the |connector| given. The driver framework should handle connection types that are not supported by the connector. If not provided, only the device type is assumed as supported by the connector.

Added: HEAD
controller_connector Connector

This is the controller connector to be installed in devfs. Connect() will be called when a client connects to the device_controller connection for this node in the filesystem. Optional: If this is not provided then the Node will handle the connection natively. This option should only be used by the compat shim or in tests

Added: HEAD

UNIONS

Controller_Bind_Result strict

Defined in fuchsia.device.fs/controller.fidl

OrdinalVariantTypeDescription
response Controller_Bind_Response
err zx/Status

Controller_GetTopologicalPath_Result strict

Defined in fuchsia.device.fs/controller.fidl

OrdinalVariantTypeDescription
response Controller_GetTopologicalPath_Response
err zx/Status

Controller_Rebind_Result strict

Defined in fuchsia.device.fs/controller.fidl

OrdinalVariantTypeDescription
response Controller_Rebind_Response
err zx/Status

Controller_ScheduleUnbind_Result strict

Defined in fuchsia.device.fs/controller.fidl

OrdinalVariantTypeDescription
response Controller_ScheduleUnbind_Response
err zx/Status

Controller_UnbindChildren_Result strict

Defined in fuchsia.device.fs/controller.fidl

OrdinalVariantTypeDescription
response Controller_UnbindChildren_Response
err zx/Status

BITS

ConnectionType flexible

Type: uint8

Defined in fuchsia.device.fs/connector.fidl

Added: 16

NameValueDescription
1

Represents the fuchsia.io/Node protocol.

2

Represents the fuchsia.device/Controller protocol.

4

Represents the device specific FIDL.

CONSTANTS

NameValueTypeDescription
DEVICE_CONTROLLER_NAME device_controller String

This name is reserved for accessing the fuchsia.device/Controller protocol within /dev/. No devices can be created with this name.

DEVICE_PROTOCOL_NAME device_protocol String

This name is reserved for accessing the device specific protocol within /dev/. No devices can be created with this name.

MAX_DEVICE_PATH_LEN 1024 uint64

Maximum length of a device path

Added: HEAD
MAX_DRIVER_PATH_LEN 1024 uint64

Maximum length for a driver path

Added: HEAD