horn_supervisor
Process supervision. No PCI, driver names or device cleanup operations.
On this page
- SystemError (EnumDecl)
- SystemFailure (EnumDecl)
- SupervisorError (EnumDecl)
- StopMode (EnumDecl)
- ServiceSignal (EnumDecl)
- ServiceStatus (EnumDecl)
- SystemControl (Interface)
- SupervisorFactory (Interface)
- SupervisorJob (Interface)
- SupervisorRuntime (Interface)
- SystemHost (Object)
- SupervisedJob (Object)
- SupervisedClient (Object)
- SupervisorHost (Object)
- SupervisorCaps (CapSet)
Interfaces
SystemControl #
net.nhnn.horn.supervisor.system, version 1.0, default transport sync, strict
ready #
ready() → Result[void, SystemError]
Transport: sync, label: 0xe980065f1a077
ticks_per_us #
ticks_per_us() → Result[u64, SystemError]
Transport: sync, label: 0x6e96ccbea9704
fail #
fail(reason: SystemFailure) → Result[void, SystemError]
Transport: sync, label: 0x24fbfc945570d
SupervisorFactory #
net.nhnn.horn.supervisor.factory, version 1.0, default transport sync, strict
prepare #
prepare(elf: Cap[VmMemoryObject, borrow, ALL], request: ProcessLaunch, bootstrap: ProcessBootstrap) → Result[Cap[SupervisedJob, move, ALL], SupervisorError]
Transport: sync, label: 0x1f339970b5798
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
elf |
VmMemoryObject |
borrow | ALL |
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
SupervisedJob |
move | ALL |
core_log_sink #
core_log_sink() → Result[Cap[LogSinkObject, move, ALL], SupervisorError]
Transport: sync, label: 0x87cd7380485e
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
LogSinkObject |
move | ALL |
SupervisorJob #
net.nhnn.horn.supervisor.job, version 1.0, default transport sync, strict
publish #
publish(path: List[u8, 96], endpoint: Cap[sel4.Endpoint, borrow, ALL]) → Result[void, SupervisorError]
Transport: sync, label: 0xc4dca55bedc30
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
endpoint |
sel4.Endpoint |
borrow | ALL |
client #
client() → Result[Cap[SupervisedClient, move, ALL], SupervisorError]
Transport: sync, label: 0x39b945e8e0e84
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
SupervisedClient |
move | ALL |
process #
process() → Result[Cap[ProcessObject, move, ALL], SupervisorError]
Transport: sync, label: 0x3510e0acfdff
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
ProcessObject |
move | ALL |
signal #
signal(kind: ServiceSignal) → Result[Cap[sel4.Notification, move, ALL], SupervisorError]
Transport: sync, label: 0x52b1770f5a0eb
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
sel4.Notification |
move | ALL |
watch #
watch(owner: Cap[sel4.Notification, borrow, ALL]) → Result[void, SupervisorError]
Transport: sync, label: 0x6076df309cd8f
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
owner |
sel4.Notification |
borrow | ALL |
stop_signal #
stop_signal(stop: Cap[sel4.Notification, borrow, ALL]) → Result[void, SupervisorError]
Transport: sync, label: 0x4c303568e3704
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
stop |
sel4.Notification |
borrow | ALL |
log_sink #
log_sink() → Result[Cap[LogSinkObject, move, ALL], SupervisorError]
Transport: sync, label: 0x60dcc5b371547
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
LogSinkObject |
move | ALL |
start #
start() → Result[void, SupervisorError]
Transport: sync, label: 0x7f78393f765b2
status #
status() → Result[ServiceStatus, SupervisorError]
Transport: sync, label: 0x8fd33bd9468d0
cooperative #
cooperative() → Result[bool, SupervisorError]
Transport: sync, label: 0x8969757d38e0c
request_stop #
request_stop(mode: StopMode) → Result[void, SupervisorError]
Transport: sync, label: 0xac2af159b299c
cleanup_done #
cleanup_done() → Result[void, SupervisorError]
Transport: sync, label: 0x70b3c4cb99b08
require #
require(scope: Cap[RegistryNode, borrow, ALL], path: List[u8, 96], slot: u32) → Result[void, SupervisorError]
Transport: sync, label: 0x87f14eec094f5
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
scope |
RegistryNode |
borrow | ALL |
SupervisorRuntime #
net.nhnn.horn.supervisor.runtime, version 1.0, default transport sync, strict
status #
status() → Result[ServiceStatus, SupervisorError]
Transport: sync, label: 0x6fa4b24d49858
request_stop #
request_stop(mode: StopMode) → Result[void, SupervisorError]
Transport: sync, label: 0xd18f2e445bc29
Objects
SystemHost #
SystemHost, transport sync
Implements: SystemControl
SupervisedJob #
SupervisedJob, transport sync
Implements: SupervisorJob
SupervisedClient #
SupervisedClient, transport sync
Implements: SupervisorRuntime
SupervisorHost #
SupervisorHost, transport sync
Implements: SupervisorFactory, SupervisorJob, SupervisorRuntime
Enums
SystemError #
Base: u32
| Variant | Value |
|---|---|
| Denied | 1 |
SystemFailure #
Base: u32
| Variant | Value |
|---|---|
| CriticalService | 1 |
SupervisorError #
Base: u32
| Variant | Value |
|---|---|
| Denied | 1 |
| NotFound | 2 |
| Busy | 3 |
| Exhausted | 4 |
| Invalid | 5 |
| Backend | 6 |
StopMode #
Base: u32
| Variant | Value |
|---|---|
| Graceful | 1 |
| Force | 2 |
ServiceSignal #
Base: u32
| Variant | Value |
|---|---|
| Ready | 1 |
| Stopped | 2 |
ServiceStatus #
Base: u32
| Variant | Value |
|---|---|
| Created | 1 |
| Starting | 2 |
| Active | 3 |
| Stopping | 4 |
| AwaitingCleanup | 5 |
| Exited | 6 |
Capsets
SupervisorCaps #
| Field | Capability | Slot |
|---|---|---|
| vm | Cap[sel4.Endpoint, copy, ALL] |
1 |
| address_space | Cap[sel4.Endpoint, copy, ALL] |
2 |
| lifecycle | Cap[sel4.Endpoint, copy, ALL] |
3 |
| reply | Cap[sel4.Reply, move, ALL] |
4 |
| factory | Cap[sel4.Endpoint, copy, ALL] |
5 |
| platform | Cap[sel4.Endpoint, copy, ALL] |
6 |
| system | Cap[sel4.Endpoint, copy, ALL] |
7 |
| service | Cap[sel4.Endpoint, copy, ALL] |
8 |
| events | Cap[sel4.Notification, copy, ALL] |
9 |
| critical_fault | Cap[sel4.Endpoint, copy, ALL] |
10 |
| critical_exit | Cap[sel4.Notification, copy, ALL] |
11 |
| processes | Cap[sel4.Endpoint, copy, ALL] |
12 |