Word and byte access to the mailbox at mailbox offsets: the interface pipes run over
$ 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
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.