Re-exports§
pub use self::listener::Listener;pub use self::listener::Registration;
Modules§
- A partial list of known UUIDs of driver services
Macros§
- Parse
Uuids 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::connectandRegistry::try_connect. - A
ReplyTois 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_userspaceandRegistry::try_connect_userspace.
Traits§
- A marker trait designating a registerable driver service.
Functions§
- Perform a type-erased userspace handshake, deserializing the
RegisteredDriver::Hellomessage fromhello_bytesand 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.