Files
James Russell 71230f918f Add module READMEs, .gitignore, and remove Bin/ from tracking
Add README.md for each library module documenting API, platform
backends, and usage. Add .gitignore for build artifacts. Remove
pre-built binaries from version control.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 00:27:55 -05:00
..
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00
2026-04-03 00:22:39 -05:00

libsst-os

Cross-platform operating system abstractions in C.

Subsystems

Memory (SST_Alloc, SST_SysMem)

  • Aligned allocation/free, safe malloc/realloc with overflow checking
  • Page-level allocation, protection (R/W/X), and size queries

File I/O (SST_File)

  • Open, read, write, seek, flush, close
  • Async and sequential/random hints

File system (SST_FileSys)

  • Directory listing, create, remove

Memory-mapped files (SST_Mmap)

  • Create/destroy mappings, sync to disk

Dynamic libraries (SST_DynLib)

  • Load, symbol lookup, close
  • OS-specific name generation (.dll / .so / .dylib)

CPU info (SST_CPU, SST_CPUCache)

  • Physical/logical CPU counts, affinity get/set
  • Cache line size, data cache flush, instruction cache invalidate
  • Cache ops in per-architecture assembly (x86, ARM, IA-64, MIPS, PPC, SPARC)

Timing (SST_Time)

  • Microsecond, millisecond, and floating-point second resolution

Endian (SST_Endian)

  • Byte-swap 16/32/64, host-to-BE/LE conversion macros

User info (SST_User)

  • Username, real name, home directory

Safe arithmetic (SST_SafeArithmetic)

  • Overflow-checked add/multiply for all integer widths

Assertions (SST_Assert)

  • Debug and runtime assertion macros with pluggable handlers

Platform backends

Each subsystem has separate _Win32.c and _POSIX.c implementations, with additional Solaris and macOS variants where needed. CPU cache operations are in per-architecture assembly files.