| Age | Commit message (Collapse) | Author |
|
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
Macro soup, now with 50% more macros.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|
|
OMGWTFBBQ
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
lib: make printfrr int64_t usable
|
|
... without compiler plugins.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
This version of container_of() should work on C++, by ditching the
unavailable builtins (at the cost of no longer checking for "const"
violations.)
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
These are internal to printf(), and symbols starting with __ are
reserved for the compiler/libc.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
Passing the struct route_table *ptr as const doesn't really help; if
anything it semantically would imply that the returned route_node is
const too since constness should propagate (but it doesn't in C.)
The right thing to do here - which actually helps the compiler optimize
the code too - is to tag functions with __attribute__((pure)). The
compiler does this automatically if it has the function body (and the
body of all called functions) available. That should cover most "static
inline" functions in headers, as well as functions in the same file.
However, this doesn't work (at least without LTO) for extern functions.
Hence, add "ext_pure" for this case. (Built-in "extern" to make lines
shorter.)
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
These two are lock-free linked list implementations, the plain one is
primarily intended for queues while the sorted one is for general data
storage.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
These are necessary to use functions defined in these headers from C++.
Signed-off-by: David Lamparter <equinox@diac24.net>
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
|
|
This generates a warning on gcc versions before 7.0.
Signed-off-by: David Lamparter <equinox@diac24.net>
|
|
On old compilers CPP_NOTICE should be a macro evaluating to an empty
statement, instead of being undefined.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
|
|
Signed-off-by: Lou Berger <lberger@labn.net>
|
|
Also make timed notices available via CONFDATE.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
|