Re-exports§
pub use self::listener::Listener;
pub use self::listener::Registration;
Modules§
- A partial list of known UUIDs of driver services
Macros§
- Parse
Uuid
s from string literals at compile time.
Structs§
- A wrapper for a message TO and FROM a driver service. Used to be able to add additional message metadata without changing the fundamental message type.
- A KernelHandle is used to send typed messages to a kernelspace Driver service.
- The Message kind represents a full reply/response sequence to a driver service. This is the concrete type received by the driver service.
- The driver registry used by the kernel.
- Right now we don’t use a real HashMap, but rather a hand-rolled index map. Therefore our registry is basically a
Vec<RegistryItem>
. - The payload of a registry item.
- A virtual function pointer table (vtable) that specifies how userspace requests are serialized and deserialized.
- A UserspaceHandle is used to process incoming serialized messages from userspace. It contains a method that can be used to deserialize messages from a given UUID, and send that request (if the deserialization is successful) to a given driver service.
- A Universally Unique Identifier (UUID).
Enums§
- Errors returned by
Registry::connect
andRegistry::try_connect
. - A
ReplyTo
is used to allow the CLIENT of a service to choose the way that the driver SERVICE replies to us. Essentially, this acts as a “self addressed stamped envelope” for the SERVICE to use to reply to the CLIENT. - Errors returned by
Registry::connect_userspace
andRegistry::try_connect_userspace
.
Traits§
- A marker trait designating a registerable driver service.
Functions§
- Perform a type-erased userspace handshake, deserializing the
RegisteredDriver::Hello
message fromhello_bytes
and returning a future that writes the handshake result to the providedoutptr
, if the future completes successfully. - map_deser 🔒 ⚠A monomorphizable function that allows us to store the serialization type within the function itself, allowing for a type-erased function pointer to be stored inside of the registry.