diff options
| author | William Casarin <jb55@jb55.com> | 2018-07-09 12:10:32 -0700 |
|---|---|---|
| committer | William Casarin <jb55@jb55.com> | 2018-07-09 12:10:32 -0700 |
| commit | 1b8fbbd843ddeb5fc81c9303db9c590a436d499b (patch) | |
| tree | a7227dfe8e4fbaee7b1e0b58b24994dce8078f3f /ccan/likely/_info | |
| parent | 37a9cdd2e80386f2c94e14e4f511284ae14c745a (diff) | |
progress
Diffstat (limited to 'ccan/likely/_info')
| -rw-r--r-- | ccan/likely/_info | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/ccan/likely/_info b/ccan/likely/_info new file mode 100644 index 0000000..095ed2f --- /dev/null +++ b/ccan/likely/_info @@ -0,0 +1,57 @@ +#include "config.h" +#include <string.h> +#include <stdio.h> + +/** + * likely - macros for annotating likely/unlikely branches in the code + * + * Inspired by Andi Kleen's macros for the Linux Kernel, these macros + * help you annotate rare paths in your code for the convenience of the + * compiler and the reader. + * + * With CCAN_LIKELY_DEBUG defined, it provides statistics for each + * likely()/unlikely() call (but note that this requires LGPL dependencies). + * + * License: CC0 (Public domain) + * Author: Rusty Russell <rusty@rustcorp.com.au> + * + * Example: + * #include <ccan/likely/likely.h> + * #include <stdio.h> + * + * int main(int argc, char *argv[]) + * { + * // This example is silly: the compiler knows exit() is unlikely. + * if (unlikely(argc == 1)) { + * fprintf(stderr, "Usage: %s <args>...\n", argv[0]); + * return 1; + * } + * for (argc++; argv[argc]; argc++) + * printf("%s\n", argv[argc]); + * return 0; + * } + */ +int main(int argc, char *argv[]) +{ + /* Expect exactly one argument */ + if (argc != 2) + return 1; + + if (strcmp(argv[1], "depends") == 0) { +#ifdef CCAN_LIKELY_DEBUG + printf("ccan/str\n"); + printf("ccan/htable\n"); + printf("ccan/hash\n"); +#endif + return 0; + } + if (strcmp(argv[1], "testdepends") == 0) { +#ifndef CCAN_LIKELY_DEBUG + printf("ccan/str\n"); + printf("ccan/htable\n"); + printf("ccan/hash\n"); +#endif + return 0; + } + return 1; +} |
