tree: 7f5c7b725a84e4f725132ce5cc93995a4547ae2b [path history] [tgz]
  1. freestanding/
  2. log.c
  3. log.h
  4. memory.c
  5. memory.h
  6. meson.build
  7. mmio.c
  8. mmio.h
  9. print.c
  10. print.h
  11. print_test.cc
  12. README.md
  13. stdasm.h
sw/device/lib/base/README.md

libbase, the OpenTitan Standard Library

This subtree provides headers and libraries known collectively as libbase, which serve as OpenTitan's ersatz libc.

Differences from a libc

libbase is not a libc, even though it implements a number of libc symbols, and should not be used as such. libbase is, rather, a place for base libraries which may need to make use of more compiler/platform intrinsics than average, in order to present a safe, stable, and uesful interface that other parts of OpenTitan can rely on.

In general, a library exposing general utilities for working close to the hardware should live in this subtree: for example, a library providing memcpy and related symbols. A library for talking to a particular peripheral, like a UART port, is a non-example.