# 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 useful 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.
