BRL-CAD
bu.h
Go to the documentation of this file.
1/* B U . H
2 * BRL-CAD
3 *
4 * Copyright (c) 2004-2023 United States Government as represented by
5 * the U.S. Army Research Laboratory.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * version 2.1 as published by the Free Software Foundation.
10 *
11 * This library is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this file; see the file named COPYING for more
18 * information.
19 */
20
21
22/** @addtogroup libbu
23 *
24 * @brief
25 * The two letters "BU" stand for "BRL-CAD" and "Utility". This library
26 * provides several layers of low-level utility routines, providing features
27 * that make cross-platform coding easier.
28 *
29 * Parallel processing support: threads, semaphores, parallel-malloc.
30 * Consolidated logging support: bu_log(), bu_exit(), and bu_bomb().
31 *
32 * The intention is that these routines are general extensions to the data
33 * types offered by the C language itself, and to the basic C runtime support
34 * provided by the system LIBC. All routines in LIBBU are designed to be
35 * "parallel-safe" (sometimes called "mp-safe" or "thread-safe" if parallelism
36 * is via threading) to greatly ease code development for multiprocessor
37 * systems.
38 *
39 * The LIBBU API is defined in bu.h or appropriate included files from the ./bu
40 * subdirectory; none of the routines in this library will depend on data types
41 * defined in other BRL-CAD header files, such as vmath.h. Look for those
42 * routines in LIBBN.
43 *
44 * All truly fatal errors detected by the library use bu_bomb() to exit with a
45 * status of 12. The LIBBU variants of system calls (e.g., bu_malloc()) do not
46 * return to the caller (unless there's a bomb hook defined) unless they
47 * succeed, thus sparing the programmer from constantly having to check for
48 * NULL return codes.
49 *
50 * The two headers bio.h and bnetwork.h are not LIBBU API but rather are
51 * intended as convenience headers used to package up the somewhat finicky
52 * logic needed to correctly include operating system file I/O and networking
53 * headers.
54 */
55/** @{ */
56/** @brief Main header file for the BRL-CAD Utility Library, LIBBU. */
57/** @file bu.h */
58/** @} */
59
60#ifndef BU_H
61#define BU_H
62
63#include "./bu/defines.h"
64#include "./bu/version.h"
65#include "./bu/app.h"
66#include "./bu/avs.h"
67#include "./bu/bitv.h"
68#include "./bu/cmd.h"
69#include "./bu/color.h"
70#include "./bu/cv.h"
71#include "./bu/debug.h"
72#include "./bu/dylib.h"
73#include "./bu/endian.h"
74#include "./bu/env.h"
75#include "./bu/file.h"
76#include "./bu/glob.h"
77#include "./bu/interrupt.h"
78#include "./bu/path.h"
79#include "./bu/getopt.h"
80#include "./bu/hash.h"
81#include "./bu/hist.h"
82#include "./bu/list.h"
83#include "./bu/log.h"
84#include "./bu/magic.h"
85#include "./bu/malloc.h"
86#include "./bu/mapped_file.h"
87#include "./bu/mime.h"
88#include "./bu/observer.h"
89#include "./bu/opt.h"
90#include "./bu/parallel.h"
91#include "./bu/parse.h"
92#include "./bu/path.h"
93#include "./bu/process.h"
94#include "./bu/ptbl.h"
95#include "./bu/redblack.h"
96#include "./bu/simd.h"
97#include "./bu/snooze.h"
98#include "./bu/sort.h"
99#include "./bu/str.h"
100#include "./bu/time.h"
101#include "./bu/units.h"
102#include "./bu/vfont.h"
103#include "./bu/vlb.h"
104#include "./bu/vls.h"
105
106#endif /* BU_H */
107
108/*
109 * Local Variables:
110 * mode: C
111 * tab-width: 8
112 * indent-tabs-mode: t
113 * c-file-style: "stroustrup"
114 * End:
115 * ex: shiftwidth=4 tabstop=8
116 */
Global registry of recognized magic numbers.