skip to content
[readonly]

Word and byte access to the mailbox at mailbox offsets: the interface pipes run over

sh
$ sexc add @ajax/mesh-abi-words
  • total 3
  • drwxr-xr-x-../
  • drwxr-xr-x-Oct 27 01:45v/# 1 version
  • drwxr-xr-x-Oct 27 01:45files/# the files of 0.1.0
latest
0.1.0, published Oct 27 01:45 by ajax
owners
ajax
license
MIT
dependencies
@ajax/mesh-check ^0.1.0
dependents
@ajax/mesh-abi, @ajax/mesh-abi-pipe, @ajax/mesh-abi-pipe-ring, @ajax/mesh-inproc, @ajax/mesh-mailbox, @ajax/mesh-rt-ctx, @ajax/mesh-words-host, @ajax/mesh-worker-ctx
keywords
mesh alphaos abi gpu words
homepage
https://github.com/thomasdavis/alpha-c-mesh/tree/main/packages/mesh-abi-words
repository
https://github.com/thomasdavis/alpha-c-mesh
==> 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.