skip to content
==> README.md <==
1# @ajax/mesh-abi-words
2
3Word and byte access to the mailbox at mailbox offsets: the interface pipes run over.
4
5Part of the mesh contract: the memory, control, snapshot and peer protocols shared by meshd, its GPU
6programs (CUDA kernels, wasm lanes, native workers) and the tools. Every side compiles the same
7definitions, so an offset can never disagree.
8
9```c
10#include "mesh/abi/words.h"
11```
12
13## Ported from
14
15[alpha-rust-mesh](https://github.com/rsafier/alpha-rust-mesh) (Richard Safier, MIT): crates/mesh-abi/src/v2/pipe.rs (the Words and Bytes traits).
16
17## Device code
18
19The header is freestanding (`<stdint.h>`, `<stddef.h>`, `<stdbool.h>`, `<stdatomic.h>` only): it compiles for the host, `nvptx64-nvidia-cuda` and `wasm32`. Functions the Rust marks `const fn` are `static inline` here.
20
21## Tests
22
23- none of its own: it is exercised by the packages that use it
24
25## Differences
26
27Rust's `Words`/`Bytes` traits are a table of function pointers here (`mesh_words`). A missing `fence` means `atomic_thread_fence(memory_order_seq_cst)`, the trait's default. `core::hint::spin_loop()` has no C equivalent and is left out (the loops are bounded by TRIES either way).
28
29## Licence
30
31MIT. See the repository's LICENSE.