003 File Manager
Current Path:
/usr/src/contrib/jemalloc/include/jemalloc/internal
usr
/
src
/
contrib
/
jemalloc
/
include
/
jemalloc
/
internal
/
📁
..
📄
arena_externs.h
(4.83 KB)
📄
arena_inlines_a.h
(1.44 KB)
📄
arena_inlines_b.h
(11.54 KB)
📄
arena_stats.h
(7.92 KB)
📄
arena_structs_a.h
(293 B)
📄
arena_structs_b.h
(6.63 KB)
📄
arena_types.h
(1.67 KB)
📄
assert.h
(1.3 KB)
📄
atomic.h
(2.66 KB)
📄
atomic_c11.h
(3.46 KB)
📄
atomic_gcc_atomic.h
(4.06 KB)
📄
atomic_gcc_sync.h
(6.21 KB)
📄
background_thread_externs.h
(1.29 KB)
📄
background_thread_inlines.h
(2.09 KB)
📄
background_thread_structs.h
(1.74 KB)
📄
base_externs.h
(946 B)
📄
base_inlines.h
(312 B)
📄
base_structs.h
(1.52 KB)
📄
base_types.h
(1.08 KB)
📄
bin.h
(3.6 KB)
📄
bin_stats.h
(1.35 KB)
📄
bin_types.h
(474 B)
📄
bit_util.h
(5.22 KB)
📄
bitmap.h
(10.97 KB)
📄
cache_bin.h
(3.69 KB)
📄
ckh.h
(3.19 KB)
📄
ctl.h
(3.62 KB)
📄
div.h
(1.14 KB)
📄
emitter.h
(13.06 KB)
📄
extent_dss.h
(728 B)
📄
extent_externs.h
(3.75 KB)
📄
extent_inlines.h
(13.4 KB)
📄
extent_mmap.h
(328 B)
📄
extent_structs.h
(8.46 KB)
📄
extent_types.h
(700 B)
📄
hash.h
(7.88 KB)
📄
hook.h
(5.41 KB)
📄
jemalloc_internal_decls.h
(2.19 KB)
📄
jemalloc_internal_defs.h
(10.93 KB)
📄
jemalloc_internal_defs_FreeBSD.h
(256 B)
📄
jemalloc_internal_externs.h
(1.75 KB)
📄
jemalloc_internal_includes.h
(4.19 KB)
📄
jemalloc_internal_inlines_a.h
(4.39 KB)
📄
jemalloc_internal_inlines_b.h
(2.24 KB)
📄
jemalloc_internal_inlines_c.h
(7.08 KB)
📄
jemalloc_internal_macros.h
(3.99 KB)
📄
jemalloc_internal_types.h
(3.42 KB)
📄
jemalloc_preamble.h
(3.9 KB)
📄
large_externs.h
(1.4 KB)
📄
log.h
(3.67 KB)
📄
malloc_io.h
(2.9 KB)
📄
mutex.h
(9.34 KB)
📄
mutex_pool.h
(2.81 KB)
📄
mutex_prof.h
(3.55 KB)
📄
nstime.h
(1.27 KB)
📄
pages.h
(3.05 KB)
📄
ph.h
(12.26 KB)
📄
private_namespace.h
(22.72 KB)
📄
prng.h
(4.69 KB)
📄
prof_externs.h
(3.79 KB)
📄
prof_inlines_a.h
(2.44 KB)
📄
prof_inlines_b.h
(6.42 KB)
📄
prof_structs.h
(5.02 KB)
📄
prof_types.h
(1.74 KB)
📄
public_namespace.h
(1.03 KB)
📄
ql.h
(2.45 KB)
📄
qr.h
(2.29 KB)
📄
quantum.h
(1.75 KB)
📄
rb.h
(37.41 KB)
📄
rtree.h
(17.01 KB)
📄
rtree_tsd.h
(1.82 KB)
📄
safety_check.h
(797 B)
📄
sc.h
(12.98 KB)
📄
seq.h
(1.81 KB)
📄
smoothstep.h
(15.26 KB)
📄
spin.h
(613 B)
📄
stats.h
(998 B)
📄
sz.h
(7.96 KB)
📄
tcache_externs.h
(2.09 KB)
📄
tcache_inlines.h
(5.73 KB)
📄
tcache_structs.h
(2.05 KB)
📄
tcache_types.h
(2.01 KB)
📄
test_hooks.h
(459 B)
📄
ticker.h
(2.21 KB)
📄
tsd.h
(12.49 KB)
📄
tsd_generic.h
(3.76 KB)
📄
tsd_malloc_thread_cleanup.h
(1.19 KB)
📄
tsd_tls.h
(1.12 KB)
📄
tsd_types.h
(258 B)
📄
util.h
(1.43 KB)
📄
witness.h
(9.32 KB)
Editing: log.h
#ifndef JEMALLOC_INTERNAL_LOG_H #define JEMALLOC_INTERNAL_LOG_H #include "jemalloc/internal/atomic.h" #include "jemalloc/internal/malloc_io.h" #include "jemalloc/internal/mutex.h" #ifdef JEMALLOC_LOG # define JEMALLOC_LOG_VAR_BUFSIZE 1000 #else # define JEMALLOC_LOG_VAR_BUFSIZE 1 #endif #define JEMALLOC_LOG_BUFSIZE 4096 /* * The log malloc_conf option is a '|'-delimited list of log_var name segments * which should be logged. The names are themselves hierarchical, with '.' as * the delimiter (a "segment" is just a prefix in the log namespace). So, if * you have: * * log("arena", "log msg for arena"); // 1 * log("arena.a", "log msg for arena.a"); // 2 * log("arena.b", "log msg for arena.b"); // 3 * log("arena.a.a", "log msg for arena.a.a"); // 4 * log("extent.a", "log msg for extent.a"); // 5 * log("extent.b", "log msg for extent.b"); // 6 * * And your malloc_conf option is "log=arena.a|extent", then lines 2, 4, 5, and * 6 will print at runtime. You can enable logging from all log vars by * writing "log=.". * * None of this should be regarded as a stable API for right now. It's intended * as a debugging interface, to let us keep around some of our printf-debugging * statements. */ extern char log_var_names[JEMALLOC_LOG_VAR_BUFSIZE]; extern atomic_b_t log_init_done; typedef struct log_var_s log_var_t; struct log_var_s { /* * Lowest bit is "inited", second lowest is "enabled". Putting them in * a single word lets us avoid any fences on weak architectures. */ atomic_u_t state; const char *name; }; #define LOG_NOT_INITIALIZED 0U #define LOG_INITIALIZED_NOT_ENABLED 1U #define LOG_ENABLED 2U #define LOG_VAR_INIT(name_str) {ATOMIC_INIT(LOG_NOT_INITIALIZED), name_str} /* * Returns the value we should assume for state (which is not necessarily * accurate; if logging is done before logging has finished initializing, then * we default to doing the safe thing by logging everything). */ unsigned log_var_update_state(log_var_t *log_var); /* We factor out the metadata management to allow us to test more easily. */ #define log_do_begin(log_var) \ if (config_log) { \ unsigned log_state = atomic_load_u(&(log_var).state, \ ATOMIC_RELAXED); \ if (unlikely(log_state == LOG_NOT_INITIALIZED)) { \ log_state = log_var_update_state(&(log_var)); \ assert(log_state != LOG_NOT_INITIALIZED); \ } \ if (log_state == LOG_ENABLED) { \ { /* User code executes here. */ #define log_do_end(log_var) \ } \ } \ } /* * MSVC has some preprocessor bugs in its expansion of __VA_ARGS__ during * preprocessing. To work around this, we take all potential extra arguments in * a var-args functions. Since a varargs macro needs at least one argument in * the "...", we accept the format string there, and require that the first * argument in this "..." is a const char *. */ static inline void log_impl_varargs(const char *name, ...) { char buf[JEMALLOC_LOG_BUFSIZE]; va_list ap; va_start(ap, name); const char *format = va_arg(ap, const char *); size_t dst_offset = 0; dst_offset += malloc_snprintf(buf, JEMALLOC_LOG_BUFSIZE, "%s: ", name); dst_offset += malloc_vsnprintf(buf + dst_offset, JEMALLOC_LOG_BUFSIZE - dst_offset, format, ap); dst_offset += malloc_snprintf(buf + dst_offset, JEMALLOC_LOG_BUFSIZE - dst_offset, "\n"); va_end(ap); malloc_write(buf); } /* Call as log("log.var.str", "format_string %d", arg_for_format_string); */ #define LOG(log_var_str, ...) \ do { \ static log_var_t log_var = LOG_VAR_INIT(log_var_str); \ log_do_begin(log_var) \ log_impl_varargs((log_var).name, __VA_ARGS__); \ log_do_end(log_var) \ } while (0) #endif /* JEMALLOC_INTERNAL_LOG_H */
Upload File
Create Folder