pub enum DriverConnectorRequest {
Connect {
allocator_request: ServerEnd<AllocatorMarker>,
control_handle: DriverConnectorControlHandle,
},
SetAuxServiceDirectory {
service_directory: ClientEnd<DirectoryMarker>,
control_handle: DriverConnectorControlHandle,
},
}
Expand description
Once a channel with this interface is established to a driver (typically in advance), this interface allows asynchronously sending the server end of an Allocator channel which will be served by the driver.
For now, the only FIDL interface directly served via normal devhost FIDL dispatching code by the sysmem driver is this interface. Other sysmem interfaces are served by separate dispatching code primarily because we want to be able to establish channels async by sending the server channel toward the driver without needing a round-trip open and without managing the channel as a file descriptor.
A secondary current reason tracked by https://fxbug.dev/42108063 is that the current devhost dispatching code doesn’t permit async processing of requests, which we want for proper functioning of at least the BufferCollection interface since that interface has requests that don’t complete until the devhost has constraints from other participants.
Variants§
Connect
This one-way message sends in the server end of an Allocator channel.
allocator_request
will be served by the sysmem driver (or the channel
will close).
SetAuxServiceDirectory
Implementations§
source§impl DriverConnectorRequest
impl DriverConnectorRequest
pub fn into_connect( self ) -> Option<(ServerEnd<AllocatorMarker>, DriverConnectorControlHandle)>
pub fn into_set_aux_service_directory( self ) -> Option<(ClientEnd<DirectoryMarker>, DriverConnectorControlHandle)>
sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL