mesa/src/util
Jason Ekstrand 2602ea89d5 util: rb-tree: A simple, invasive, red-black tree
This is a simple, invasive, liberally licensed red-black tree
implementation. It's an invasive data structure similar to the
Linux kernel linked-list where the intention is that you embed a
rb_node struct the data structure you intend to put into the
tree.

The implementation is mostly based on the one in "Introduction to
Algorithms", third edition, by Cormen, Leiserson, Rivest, and
Stein. There were a few other key design points:

 * It's an invasive data structure similar to the [Linux kernel
   linked list].

 * It uses NULL for leaves instead of a sentinel. This means a few
   algorithms differ a small bit from the ones in "Introduction to
   Algorithms".

 * All search operations are inlined so that the compiler can
   optimize away the function pointer call.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2018-07-05 11:57:45 +01:00
..
sha1 util: Fix SHA1 implementation on big endian 2017-11-25 12:30:46 -08:00
tests util/tests/vma: Fix warning c++11-narrowing 2018-06-05 10:32:07 -07:00
xmlpool mesa/util: add allow_glsl_relaxed_es driconfig override 2018-06-19 12:09:56 +10:00
.gitignore mesa: Add .gitignore entries for make check binaries 2016-05-25 09:41:44 -07:00
Android.mk Android: util: fix locale generation in options.h 2018-01-03 09:49:08 -06:00
bitscan.c util/bitscan: use correct signature for ffs/ffsll 2017-03-13 11:16:34 +00:00
bitscan.h util/u_math: Implement a logbase2 function for unsigned long 2018-05-29 13:37:45 +02:00
bitset.h util/bitset: include util/macro.h 2018-06-15 11:26:30 +01:00
build_id.c util/macros: Import ALIGN_POT from ralloc.c 2018-07-02 12:09:14 -07:00
build_id.h util: Query build-id by symbol address, not library name 2017-09-13 09:49:27 -07:00
crc32.c util: use faster zlib's CRC32 implementaion 2018-01-14 19:10:33 +02:00
crc32.h util: import CRC32 implementation from gallium 2016-11-22 18:05:51 +01:00
debug.c util: move brw_env_var_as_boolean() to util 2015-11-24 10:02:55 -05:00
debug.h util: rename include guard to avoid clash 2017-09-07 08:54:44 +01:00
disk_cache.c Shorten u_queue names 2018-07-04 22:03:35 -04:00
disk_cache.h disk cache: add callback functionality 2018-02-07 14:45:34 +02:00
drirc util/drirc: turn on force_glsl_extensions_warn for No Mans Sky 2018-07-05 13:05:47 +10:00
format_r11g11b10f.h util: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
format_rgb9e5.h util/format: Use explicitly sized types 2016-08-05 09:07:04 -07:00
format_srgb.h util/srgb: Add a float sRGB -> linear helper 2018-04-24 13:41:14 -07:00
format_srgb.py util: remove shebang from format_srgb.py 2017-03-10 14:12:48 +00:00
futex.h util/u_queue: add util_queue_fence_wait_timeout 2017-11-09 13:58:10 +01:00
half_float.c glsl: move half<->float convertion to util 2015-10-16 19:33:37 -04:00
half_float.h mesa: move _mesa_half_is_negative() to half_float.h 2017-10-10 11:28:31 -06:00
hash_table.c util: Implement a hash table cloning function 2018-03-14 19:52:01 +01:00
hash_table.h util: Implement a hash table cloning function 2018-03-14 19:52:01 +01:00
list.h util: #include "c99_compat.h" to fix Windows build 2017-04-03 13:09:05 -06:00
macros.h util/macros: Import ALIGN_POT from ralloc.c 2018-07-02 12:09:14 -07:00
Makefile.am util: tests: vma test depends on C++11 support 2018-06-05 10:13:14 -07:00
Makefile.sources util: rb-tree: A simple, invasive, red-black tree 2018-07-05 11:57:45 +01:00
merge_driinfo.py util: add merge_driinfo.py 2017-08-02 09:50:57 +02:00
mesa-sha1.c util/sha1: harmonize _mesa_sha1_* wrappers 2017-03-22 11:33:51 +00:00
mesa-sha1.h util: #include "c99_compat.h" to fix Windows build 2017-04-03 13:09:05 -06:00
mesa-sha1_test.c util: Add a SHA1 unit test program 2017-11-25 12:30:46 -08:00
meson.build util: rb-tree: A simple, invasive, red-black tree 2018-07-05 11:57:45 +01:00
os_time.c util: use clock_gettime() on PIPE_OS_BSD 2018-03-01 18:44:38 +00:00
os_time.h util: move os_time.[ch] to src/util 2017-11-09 11:57:21 +01:00
process.c gallium/os: use util_get_process_name when possible 2018-07-04 21:16:57 -04:00
process.h util: extract get_process_name from xmlconfig.c 2018-07-04 21:16:03 -04:00
ralloc.c util/macros: Import ALIGN_POT from ralloc.c 2018-07-02 12:09:14 -07:00
ralloc.h util/ralloc: add ralloc_str_append() helper 2017-08-11 10:43:31 +10:00
rand_xor.c util/rand_xor: add missing include statements 2017-06-01 14:26:12 +01:00
rand_xor.h util/rand_xor: add function to seed rand 2017-03-23 08:16:29 +11:00
rb_tree.c util: rb-tree: A simple, invasive, red-black tree 2018-07-05 11:57:45 +01:00
rb_tree.h util: rb-tree: A simple, invasive, red-black tree 2018-07-05 11:57:45 +01:00
register_allocate.c mesa: include mtypes.h less 2018-04-12 19:31:30 -04:00
register_allocate.h ra: Add a callback for selecting a register from what's available. 2017-07-25 14:44:52 -07:00
rgtc.c util: move shared rgtc code to util (v2) 2014-09-17 11:27:25 +10:00
rgtc.h util: move shared rgtc code to util (v2) 2014-09-17 11:27:25 +10:00
roundeven_test.c util: Add a roundeven test. 2015-03-18 21:06:26 -07:00
rounding.h util: try to use SSE instructions with MSVC and 32-bit gcc 2016-08-17 12:53:20 -06:00
SConscript util: scons: wire up the sha1 test 2017-12-15 19:01:12 +00:00
set.c util/set: add a set_clear function 2018-05-04 10:13:33 -07:00
set.h util/set: add a set_clear function 2018-05-04 10:13:33 -07:00
simple_list.h mesa: Port a variant of 68afbe89c7 to util/ 2015-01-28 16:33:34 -08:00
simple_mtx.h src/util/simple_mtx.h: Fix two -Wunused-param warnings. 2017-11-17 09:27:57 -07:00
slab.c util/macros: Import ALIGN_POT from ralloc.c 2018-07-02 12:09:14 -07:00
slab.h util/slab: re-design to allow migration between pools (v3) 2016-10-05 15:40:40 +02:00
string_buffer.c util: Add a string buffer implementation 2017-09-26 18:24:33 +02:00
string_buffer.h util: Add a string buffer implementation 2017-09-26 18:24:33 +02:00
strndup.h util/strndup: move header inclusion as applicable 2017-03-22 16:55:23 +00:00
strtod.c util: improve compiler guard 2017-09-03 09:05:23 +01:00
strtod.h mesa/main: free locale at exit 2015-06-29 09:06:40 -07:00
texcompress_rgtc_tmp.h util: move shared rgtc code to util (v2) 2014-09-17 11:27:25 +10:00
u_atomic.c util/u_atomic: remove unnecessaty __atomic functions 2017-09-22 17:12:24 +03:00
u_atomic.h util/u_atomic: add p_atomic_xchg 2017-11-09 11:37:30 +01:00
u_atomic_test.c util: fix comment typo 2015-12-04 14:06:41 +00:00
u_dynarray.h util: include string.h in u_dynarray.h 2018-01-17 11:17:56 -07:00
u_endian.h meson/configure: detect endian.h instead of trying to guess when it's available 2018-03-23 11:44:21 +00:00
u_queue.c util/queue: remove leftover debug code 2018-07-04 22:19:47 -04:00
u_queue.h kutil/queue: add a process name into a thread name 2018-07-04 21:54:39 -04:00
u_string.h util: add util_strdup() wrapper macro 2017-10-23 15:10:24 -06:00
u_thread.h u_thread: Use pthread_setname_np on linux only. 2018-01-22 21:12:41 +00:00
u_vector.c util: Use util_is_power_of_two_nonzero in u_vector 2018-03-29 14:09:28 -07:00
u_vector.h util: Remove u_math from u_vector 2017-07-14 14:14:05 +01:00
vma.c util: Add a virtual memory allocator 2018-05-31 16:17:35 -07:00
vma.h util: Add a virtual memory allocator 2018-05-31 16:17:35 -07:00
xmlconfig.c util: extract get_process_name from xmlconfig.c 2018-07-04 21:16:03 -04:00
xmlconfig.h mesa: include mtypes.h less 2018-04-12 19:31:30 -04:00
xmlpool.h xmlconfig: move into src/util 2017-07-31 15:38:41 +02:00