Skip to main content

Crate selium_abi

Crate selium_abi 

Source
Expand description

Shared Application Binary Interface helpers for Selium host ↔ guest calls.

Re-exports§

pub use hostcalls::*;

Modules§

hostcalls
Canonical catalogue of hostcall symbols shared between host and guest.
mailbox
Shared constants describing the guest↔host waker mailbox layout.

Macros§

hostcall_contract
Expand to the typed hostcall descriptor for the given identifier.
hostcall_name
Expand to the canonical hostcall symbol name for the given identifier.

Structs§

AbiSignature
Description of a guest entrypoint’s parameters and results.
AbiSignatureResolver
The resolver for an archived AbiSignature
ArchivedAbiSignature
An archived AbiSignature
ArchivedChannelCreate
An archived ChannelCreate
ArchivedDependencyId
An archived DependencyId
ArchivedEntrypointInvocation
An archived EntrypointInvocation
ArchivedIoFrame
An archived IoFrame
ArchivedIoRead
An archived IoRead
ArchivedIoWrite
An archived IoWrite
ArchivedNetAccept
An archived NetAccept
ArchivedNetAcceptReply
An archived NetAcceptReply
ArchivedNetConnect
An archived NetConnect
ArchivedNetConnectReply
An archived NetConnectReply
ArchivedNetCreateListener
An archived NetCreateListener
ArchivedNetCreateListenerReply
An archived NetCreateListenerReply
ArchivedNetTlsClientConfig
An archived NetTlsClientConfig
ArchivedNetTlsConfigReply
An archived NetTlsConfigReply
ArchivedNetTlsServerConfig
An archived NetTlsServerConfig
ArchivedProcessLogLookup
An archived ProcessLogLookup
ArchivedProcessLogRegistration
An archived ProcessLogRegistration
ArchivedProcessStart
An archived ProcessStart
ArchivedSessionCreate
An archived SessionCreate
ArchivedSessionEntitlement
An archived SessionEntitlement
ArchivedSessionRemove
An archived SessionRemove
ArchivedSessionResource
An archived SessionResource
ArchivedSingletonLookup
An archived SingletonLookup
ArchivedSingletonRegister
An archived SingletonRegister
ArchivedTimeNow
An archived TimeNow
ArchivedTimeSleep
An archived TimeSleep
ArchivedTlsClientBundle
An archived TlsClientBundle
ArchivedTlsServerBundle
An archived TlsServerBundle
CallPlan
Planned argument + buffer layout suitable for host execution.
CapabilityDecodeError
Error produced when decoding a capability identifier fails.
ChannelCreate
Request to create a new channel.
ChannelCreateResolver
The resolver for an archived ChannelCreate
DependencyId
Stable identifier for a singleton dependency.
DependencyIdResolver
The resolver for an archived DependencyId
EntrypointInvocation
Invocation of a process entrypoint.
EntrypointInvocationResolver
The resolver for an archived EntrypointInvocation
IoFrame
Response carrying an attributed frame.
IoFrameResolver
The resolver for an archived IoFrame
IoRead
Request to read data from a reader.
IoReadResolver
The resolver for an archived IoRead
IoWrite
Request to write data to a writer.
IoWriteResolver
The resolver for an archived IoWrite
MemoryWrite
Host-side write required to materialise a buffer value.
NetAccept
Request to accept the next inbound connection on a listener.
NetAcceptReply
Reply containing guest-visible handles for an accepted connection.
NetAcceptReplyResolver
The resolver for an archived NetAcceptReply
NetAcceptResolver
The resolver for an archived NetAccept
NetConnect
Arguments for connecting to a remote endpoint.
NetConnectReply
Reply containing guest-visible handles for a connected session.
NetConnectReplyResolver
The resolver for an archived NetConnectReply
NetConnectResolver
The resolver for an archived NetConnect
NetCreateListener
Arguments for creating a network listener.
NetCreateListenerReply
Reply containing guest-visible handles for a created listener.
NetCreateListenerReplyResolver
The resolver for an archived NetCreateListenerReply
NetCreateListenerResolver
The resolver for an archived NetCreateListener
NetTlsClientConfig
Arguments for creating a client-side TLS configuration handle.
NetTlsClientConfigResolver
The resolver for an archived NetTlsClientConfig
NetTlsConfigReply
Reply containing a TLS configuration handle.
NetTlsConfigReplyResolver
The resolver for an archived NetTlsConfigReply
NetTlsServerConfig
Arguments for creating a server-side TLS configuration handle.
NetTlsServerConfigResolver
The resolver for an archived NetTlsServerConfig
ProcessLogLookup
Request the logging channel for a running process.
ProcessLogLookupResolver
The resolver for an archived ProcessLogLookup
ProcessLogRegistration
Register a process’s logging channel with the host.
ProcessLogRegistrationResolver
The resolver for an archived ProcessLogRegistration
ProcessStart
Request to start a new process instance.
ProcessStartResolver
The resolver for an archived ProcessStart
SessionCreate
Request to create a new session.
SessionCreateResolver
The resolver for an archived SessionCreate
SessionEntitlement
Request to add or remove entitlements from a session.
SessionEntitlementResolver
The resolver for an archived SessionEntitlement
SessionRemove
Request to remove a session.
SessionRemoveResolver
The resolver for an archived SessionRemove
SessionResource
Request to attach or detach a resource from a session entitlement.
SessionResourceResolver
The resolver for an archived SessionResource
SingletonLookup
Payload used to look up a singleton dependency from the host registry.
SingletonLookupResolver
The resolver for an archived SingletonLookup
SingletonRegister
Payload used to register a singleton dependency in the host registry.
SingletonRegisterResolver
The resolver for an archived SingletonRegister
TimeNow
Snapshot of the host clock values.
TimeNowResolver
The resolver for an archived TimeNow
TimeSleep
Request to sleep for a duration in milliseconds.
TimeSleepResolver
The resolver for an archived TimeSleep
TlsClientBundle
TLS material supplied by a guest for client connections.
TlsClientBundleResolver
The resolver for an archived TlsClientBundle
TlsServerBundle
TLS material supplied by a guest for server listeners.
TlsServerBundleResolver
The resolver for an archived TlsServerBundle

Enums§

AbiParam
Logical parameter kinds supported by the ABI.
AbiParamResolver
The resolver for an archived AbiParam
AbiScalarType
Scalar kinds that can be part of an ABI signature.
AbiScalarTypeResolver
The resolver for an archived AbiScalarType
AbiScalarValue
Scalar value kinds supported by the ABI.
AbiScalarValueResolver
The resolver for an archived AbiScalarValue
AbiValue
Values supplied for a call.
AbiValueResolver
The resolver for an archived AbiValue
ArchivedAbiParam
An archived AbiParam
ArchivedAbiScalarType
An archived AbiScalarType
ArchivedAbiScalarValue
An archived AbiScalarValue
ArchivedAbiValue
An archived AbiValue
ArchivedCapability
An archived Capability
ArchivedChannelBackpressure
An archived ChannelBackpressure
ArchivedEntrypointArg
An archived EntrypointArg
ArchivedNetProtocol
An archived NetProtocol
CallPlanError
Errors raised when a call plan cannot be created.
Capability
Kernel capability identifiers shared between host and guest.
CapabilityResolver
The resolver for an archived Capability
ChannelBackpressure
Backpressure behaviour for channel writers.
ChannelBackpressureResolver
The resolver for an archived ChannelBackpressure
DriverPollResult
Decoded driver poll result.
EntrypointArg
Argument supplied to a process entrypoint.
EntrypointArgResolver
The resolver for an archived EntrypointArg
NetProtocol
Network transport protocols supported by the ABI.
NetProtocolResolver
The resolver for an archived NetProtocol
RkyvError
Errors returned when serialising or deserialising rkyv payloads.

Constants§

DEFAULT_BUFFER_BASE
Default offset used by CallPlan when laying out transient buffers.
DRIVER_ERROR_MESSAGE_CODE
Error code indicating the payload buffer contains a driver error string.
DRIVER_RESULT_PENDING
Word signalling the host is still processing the driver future.
DRIVER_RESULT_READY_MAX
Maximum payload length representable in a driver poll result word.
WORD_SIZE
Size, in bytes, of a guest machine word.

Traits§

RkyvEncode
Trait for values that can be encoded using Selium’s rkyv settings.

Functions§

decode_driver_error_message
Decode a driver error message payload written by the kernel.
decode_rkyv
Decode a value from rkyv bytes using Selium’s settings.
driver_decode_result
driver_encode_error
driver_encode_ready
encode_driver_error_message
Encode a human-readable driver error message for guest consumption.
encode_rkyv
Encode a value into rkyv bytes using Selium’s settings.

Type Aliases§

GuestAtomicUint
Guest pointer-sized atomic unsigned integer.
GuestInt
Guest pointer-sized signed integer.
GuestResourceId
Guest-facing resource identifiers.
GuestUint
Guest pointer-sized unsigned integer.