BRL-CAD
bu.h File Reference
#include "./bu/defines.h"
#include "./bu/version.h"
#include "./bu/avs.h"
#include "./bu/bitv.h"
#include "./bu/bu_tcl.h"
#include "./bu/cmd.h"
#include "./bu/color.h"
#include "./bu/cv.h"
#include "./bu/debug.h"
#include "./bu/endian.h"
#include "./bu/file.h"
#include "./bu/getopt.h"
#include "./bu/hash.h"
#include "./bu/hist.h"
#include "./bu/list.h"
#include "./bu/log.h"
#include "./bu/magic.h"
#include "./bu/malloc.h"
#include "./bu/mapped_file.h"
#include "./bu/parallel.h"
#include "./bu/parse.h"
#include "./bu/ptbl.h"
#include "./bu/rb.h"
#include "./bu/simd.h"
#include "./bu/sort.h"
#include "./bu/str.h"
#include "./bu/time.h"
#include "./bu/units.h"
#include "./bu/vfont.h"
#include "./bu/vlb.h"
#include "./bu/vls.h"
Include dependency graph for bu.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Detailed Description

Main header file for the BRL-CAD Utility Library, LIBBU.

The two letters "BU" stand for "BRL-CAD" and "Utility". This library provides several layers of low-level utility routines, providing features that make cross-platform coding easier.

Parallel processing support: threads, semaphores, parallel-malloc. Consolidated logging support: bu_log(), bu_exit(), and bu_bomb().

The intention is that these routines are general extensions to the data types offered by the C language itself, and to the basic C runtime support provided by the system LIBC. All routines in LIBBU are designed to be "parallel-safe" (sometimes called "mp-safe" or "thread-safe" if parallelism is via threading) to greatly ease code development for multiprocessor systems.

All of the data types provided by this library are defined in bu.h or appropriate included files from the ./bu subdirectory; none of the routines in this library will depend on data types defined in other BRL-CAD header files, such as vmath.h. Look for those routines in LIBBN.

All truly fatal errors detected by the library use bu_bomb() to exit with a status of 12. The LIBBU variants of system calls (e.g., bu_malloc()) do not return to the caller (unless there's a bomb hook defined) unless they succeed, thus sparing the programmer from constantly having to check for NULL return codes.

Definition in file bu.h.