BRL-CAD
bu.h
Go to the documentation of this file.
1 /* B U . H
2  * BRL-CAD
3  *
4  * Copyright (c) 2004-2014 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 /** @file bu.h
22  *
23  * Main header file for the BRL-CAD Utility Library, LIBBU.
24  *
25  * The two letters "BU" stand for "BRL-CAD" and "Utility". This
26  * library provides several layers of low-level utility routines,
27  * providing features 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
33  * data types offered by the C language itself, and to the basic C
34  * runtime support provided by the system LIBC. All routines in LIBBU
35  * are designed to be "parallel-safe" (sometimes called "mp-safe" or
36  * "thread-safe" if parallelism is via threading) to greatly ease code
37  * development for multiprocessor systems.
38  *
39  * All of the data types provided by this library are defined in bu.h
40  * or appropriate included files from the ./bu subdirectory; none of
41  * the routines in this library will depend on data types defined in
42  * other BRL-CAD header files, such as vmath.h. Look for those
43  * routines in LIBBN.
44  *
45  * All truly fatal errors detected by the library use bu_bomb() to
46  * exit with a status of 12. The LIBBU variants of system calls
47  * (e.g., bu_malloc()) do not return to the caller (unless there's a
48  * bomb hook defined) unless they succeed, thus sparing the programmer
49  * from constantly having to check for NULL return codes.
50  *
51  */
52 #ifndef BU_H
53 #define BU_H
54 
55 #include "./bu/defines.h"
56 #include "./bu/version.h"
57 #include "./bu/avs.h"
58 #include "./bu/bitv.h"
59 #include "./bu/bu_tcl.h"
60 #include "./bu/cmd.h"
61 #include "./bu/color.h"
62 #include "./bu/cv.h"
63 #include "./bu/debug.h"
64 #include "./bu/endian.h"
65 #include "./bu/file.h"
66 #include "./bu/getopt.h"
67 #include "./bu/hash.h"
68 #include "./bu/hist.h"
69 #include "./bu/list.h"
70 #include "./bu/log.h"
71 #include "./bu/magic.h"
72 #include "./bu/malloc.h"
73 #include "./bu/mapped_file.h"
74 #include "./bu/parallel.h"
75 #include "./bu/parse.h"
76 #include "./bu/ptbl.h"
77 #include "./bu/rb.h"
78 #include "./bu/simd.h"
79 #include "./bu/sort.h"
80 #include "./bu/str.h"
81 #include "./bu/time.h"
82 #include "./bu/units.h"
83 #include "./bu/vfont.h"
84 #include "./bu/vlb.h"
85 #include "./bu/vls.h"
86 
87 #endif /* BU_H */
88 
89 /*
90  * Local Variables:
91  * mode: C
92  * tab-width: 8
93  * indent-tabs-mode: t
94  * c-file-style: "stroustrup"
95  * End:
96  * ex: shiftwidth=4 tabstop=8
97  */