horn_clock
Monotonic time, a shared static calibration page and independently granted alarms.
On this page
- ClockCalibration (Record)
- ClockError (EnumDecl)
- ClockSource (Interface)
- ClockInterface (Interface)
- AlarmInterface (Interface)
- AlarmObject (Object)
- ClockHost (Object)
Interfaces
ClockSource #
net.nhnn.horn.clock.source, version 1.0, default transport sync, strict
source_now #
source_now() → Result[u64, ClockError]
Transport: sync, label: 0x895c389c3ce3
source_arm #
source_arm(deadline_us: u64, signal: Cap[sel4.Notification, borrow, ALL]) → Result[void, ClockError]
Transport: sync, label: 0x5003765d22217
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
signal |
sel4.Notification |
borrow | ALL |
source_cancel #
source_cancel() → Result[void, ClockError]
Transport: sync, label: 0xa4ce172200296
ClockInterface #
net.nhnn.horn.clock, version 2.0, default transport sync, strict
now #
now() → Result[u64, ClockError]
Transport: sync, label: 0x1c06e28f1156
shared_page #
shared_page() → Result[Cap[VmMemoryObject, move, ALL], ClockError]
Transport: sync, label: 0x4f5d001d42cbf
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
VmMemoryObject |
move | ALL |
alarm #
alarm() → Result[Cap[AlarmObject, move, ALL], ClockError]
Transport: sync, label: 0x8202032cf0523
Result capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
result.Ok |
AlarmObject |
move | ALL |
AlarmInterface #
net.nhnn.horn.clock.alarm, version 1.0, default transport sync, strict
arm #
arm(deadline_us: u64, signal: Cap[sel4.Notification, borrow, ALL]) → Result[void, ClockError]
Transport: sync, label: 0xe4c47e9da21b2
Request capabilities
| Path | Target | Transfer | Rights |
|---|---|---|---|
signal |
sel4.Notification |
borrow | ALL |
cancel #
cancel() → Result[void, ClockError]
Transport: sync, label: 0x5b7874d76885b
Objects
AlarmObject #
AlarmObject, transport sync
Implements: AlarmInterface
ClockHost #
ClockHost, transport sync
Implements: ClockInterface, AlarmInterface
Records
ClockCalibration #
Wire size: 48 bytes, alignment: 8, maximum capabilities: 0
| Field | Type | Byte offset |
|---|---|---|
abi |
u64 |
0 |
fast_tsc |
bool |
8 |
base_cycles |
u64 |
16 |
base_us |
u64 |
24 |
span_cycles |
u64 |
32 |
span_us |
u64 |
40 |
Enums
ClockError #
Base: u32
| Variant | Value |
|---|---|
| Denied | 1 |
| Invalid | 2 |
| Exhausted | 3 |
| Unavailable | 4 |