Portability layer.
Constants and macros for data sizes, byte ordering, print format specifiers, ...
Useful data structures and algorithms for working with them.
Lists (single- and double-linked)
Hash tables
Trees
Memory management assistance: various caching structures and helper functions.
String functions (including Unicode support).
Filesystem and process support.