Module systypes

Module systypes 

Source
Expand description

Sentry kernelspace/userspace shared types and values

§Usage

This module holds all the Sentry kernel types and values required by all other modules but also types that need to be used by upper layers in order to properly manipulate Sentry’s syscalls.

This module do not hold any function nor macro, but only all scalar and non-scalar types for userspace/Sentry-kernel exchanges.

Some types are snake case based because of the C export. None the less, they will be moved to standard Rust Caml case to stay conform to the Rust guildelines

Note: there is no bindgen nor cbindgen call in order to ensure FFI interface with the C language, to avoid any inter-languages naming and complexity (macros cases, static inline case and so on), meaning that the corresponding C types are defined in a dedicated include dir

Modules§

dev
Device related types definitions
dma
DMA related types definitions
shm
SHM related types definitions

Enums§

AlarmFlag
Alarm type for alarm-related API
CPUSleep
Low power configuration support, defining the CPU sleep state exit event
EraseMode
Erase mode that can be used to clear the SVC_Exchange.
EraseType
Erase type that can be used to clear the SVC_Exchange.
EventType
Definition of Sentry events
Precision
SHMPermission
Permission model definition for shared memories
Signal
Sentry signals definition. Most of them are aligned on standard POSIX signals
SleepDuration
Sleep durations input values for the sleep API
SleepMode
Sleep mode requested
Status
Sentry syscall return values
Syscall

Type Aliases§

DeviceHandle
A device handle is a unique identifier required to manipulate a devive
DeviceLabel
A device label is a development-time fixed identifier that can be used hardcoded in the source code in order to identify declared device. This label is, by now, the result of the device tree analysis but will be replaced by a clean outpost,label field at dts level, in the same way other label are set, to highly simplify userspace level usage. This label is used to get back the associated handle at run time.
ShmHandle
A SHM handle is a unique identifier required to manipulate a shared memory.
ShmLabel
A shm label is a development-time fixed identifier that can be used hardcoded in the source code. This label is set in the device-tree in the shm declaration, and can be used in order to get back the effective shm handler from it in order to manipulate it
StreamHandle
A DMA stream handle is a unique identifier required to manipulate a DMA stream.
StreamLabel
A stream label is a development-time fixed identifier that can be used hardcoded in the source code in order to identify declared DMA streams. This label is set in the device-tree in the stream declaration, and can be used in order to get back the effective DMA stream handler from it in order to manipulate it
TaskHandle
A task handle is a unique identifier required to communicate with another task.
TaskLabel
A process label is a development-time fixed identifier that can be used hardcoded in the source code. This can be used in order to get back remote process effective identifier from label at any time in order to communicate