horn_net

Bounded Ethernet transport, TCP listeners and independently scoped connections.

On this page

Interfaces

EthernetInterface #

net.nhnn.horn.net.ethernet, version 1.0, default transport sync, strict

info #

info() → Result[EthernetInfo, NetError]

Transport: sync, label: 0xdd0ffd203f959

receive #

receive() → Result[FrameChunk, NetError]

Transport: sync, label: 0xb0a3db582c078

begin #

begin(length: u32) → Result[void, NetError]

Transport: sync, label: 0x8577e7f2cae65

append #

append(data: List[u8, 512]) → Result[void, NetError]

Transport: sync, label: 0x4b6049ea459af

commit #

commit() → Result[void, NetError]

Transport: sync, label: 0x906995d18c8b4

watch #

watch(signal: Cap[sel4.Notification, borrow, ALL], generation: u64) → Result[void, NetError]

Transport: sync, label: 0xa7a91f7ce16f

Request capabilities
Path Target Transfer Rights
signal sel4.Notification borrow ALL

TcpFactory #

net.nhnn.horn.net.tcp.factory, version 1.0, default transport sync, strict

listen #

listen(port: u32) → Result[Cap[TcpServerObject, move, ALL], NetError]

Transport: sync, label: 0xe2c0c340b64e5

Result capabilities
Path Target Transfer Rights
result.Ok TcpServerObject move ALL

TcpServer #

net.nhnn.horn.net.tcp.server, version 2.0, default transport sync, strict

accept #

accept() → Result[Cap[TcpConnectionObject, move, ALL], NetError]

Transport: sync, label: 0x387287ec57b82

Result capabilities
Path Target Transfer Rights
result.Ok TcpConnectionObject move ALL

watch #

watch(signal: Cap[sel4.Notification, borrow, ALL], interests: TcpEvents) → Result[void, NetError]

Transport: sync, label: 0xcdfd9208698a

Request capabilities
Path Target Transfer Rights
signal sel4.Notification borrow ALL

TcpConnection #

net.nhnn.horn.net.tcp.connection, version 1.0, default transport sync, strict

read #

read() → Result[List[u8, 256], NetError]

Transport: sync, label: 0xeb63385d59945

write #

write(data: List[u8, 256]) → Result[u32, NetError]

Transport: sync, label: 0x59fadecd249c8

finish #

finish() → Result[void, NetError]

Transport: sync, label: 0x2915c4216b9fe

watch #

watch(signal: Cap[sel4.Notification, borrow, ALL], interests: TcpEvents) → Result[void, NetError]

Transport: sync, label: 0x1fae7d63808a6

Request capabilities
Path Target Transfer Rights
signal sel4.Notification borrow ALL

Objects

EthernetObject #

EthernetObject, transport sync

Implements: EthernetInterface

TcpServerObject #

TcpServerObject, transport sync

Implements: TcpServer

TcpConnectionObject #

TcpConnectionObject, transport sync

Implements: TcpConnection

TcpHost #

TcpHost, transport sync

Implements: TcpFactory, TcpServer, TcpConnection

Records

EthernetInfo #

Wire size: 32 bytes, alignment: 8, maximum capabilities: 0

Field Type Byte offset
mac List[u8, 6] 0
mtu u32 16
generation u64 24

FrameChunk #

Wire size: 528 bytes, alignment: 8, maximum capabilities: 0

Field Type Byte offset
data List[u8, 512] 0
remaining u32 520

Enums

NetError #

Base: u32

VariantValue
Invalid1
WouldBlock2
Closed3
Denied4
Exhausted5

Flags

TcpEvents #

Base: u32

VariantValue
READABLE1
WRITABLE2
ACCEPT4
CLOSED8