BRL-CAD
bu.h
Go to the documentation of this file.
1 /* B U . H
2  * BRL-CAD
3  *
4  * Copyright (c) 2004-2024 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.