Commit | Line | Data |
---|---|---|
8b40f521 JK |
1 | #ifndef __PERF_CACHE_H |
2 | #define __PERF_CACHE_H | |
07800601 | 3 | |
f9224c5c | 4 | #include <stdbool.h> |
07800601 IM |
5 | #include "util.h" |
6 | #include "strbuf.h" | |
f37a291c | 7 | #include "../perf.h" |
07800601 | 8 | |
cfed95a6 VL |
9 | #define CMD_EXEC_PATH "--exec-path" |
10 | #define CMD_PERF_DIR "--perf-dir=" | |
11 | #define CMD_WORK_TREE "--work-tree=" | |
12 | #define CMD_DEBUGFS_DIR "--debugfs-dir=" | |
13 | ||
07800601 IM |
14 | #define PERF_DIR_ENVIRONMENT "PERF_DIR" |
15 | #define PERF_WORK_TREE_ENVIRONMENT "PERF_WORK_TREE" | |
07800601 | 16 | #define EXEC_PATH_ENVIRONMENT "PERF_EXEC_PATH" |
a41794cd | 17 | #define DEFAULT_PERF_DIR_ENVIRONMENT ".perf" |
5beeded1 | 18 | #define PERF_DEBUGFS_ENVIRONMENT "PERF_DEBUGFS_DIR" |
07800601 IM |
19 | |
20 | typedef int (*config_fn_t)(const char *, const char *, void *); | |
21 | extern int perf_default_config(const char *, const char *, void *); | |
07800601 | 22 | extern int perf_config(config_fn_t fn, void *); |
07800601 | 23 | extern int perf_config_int(const char *, const char *); |
07800601 | 24 | extern int perf_config_bool(const char *, const char *); |
07800601 | 25 | extern int config_error_nonbool(const char *); |
45de34bb | 26 | extern const char *perf_config_dirname(const char *, const char *); |
07800601 IM |
27 | |
28 | /* pager.c */ | |
29 | extern void setup_pager(void); | |
30 | extern const char *pager_program; | |
31 | extern int pager_in_use(void); | |
32 | extern int pager_use_color; | |
33 | ||
5d06e691 | 34 | extern int use_browser; |
f9224c5c | 35 | |
281ef544 | 36 | #if defined(NO_NEWT_SUPPORT) && defined(NO_GTK2_SUPPORT) |
229ade9b | 37 | static inline void setup_browser(bool fallback_to_pager) |
f9224c5c | 38 | { |
229ade9b ACM |
39 | if (fallback_to_pager) |
40 | setup_pager(); | |
f9224c5c | 41 | } |
1d037ca1 | 42 | static inline void exit_browser(bool wait_for_ok __maybe_unused) {} |
f9224c5c | 43 | #else |
229ade9b | 44 | void setup_browser(bool fallback_to_pager); |
f3a1f0ea | 45 | void exit_browser(bool wait_for_ok); |
281ef544 NK |
46 | |
47 | #ifdef NO_NEWT_SUPPORT | |
dc41b9b8 | 48 | static inline int ui__init(void) |
281ef544 | 49 | { |
dc41b9b8 | 50 | return -1; |
281ef544 | 51 | } |
1d037ca1 | 52 | static inline void ui__exit(bool wait_for_ok __maybe_unused) {} |
281ef544 | 53 | #else |
dc41b9b8 | 54 | int ui__init(void); |
281ef544 | 55 | void ui__exit(bool wait_for_ok); |
f9224c5c ACM |
56 | #endif |
57 | ||
c31a9457 | 58 | #ifdef NO_GTK2_SUPPORT |
dc41b9b8 | 59 | static inline int perf_gtk__init(void) |
c31a9457 | 60 | { |
dc41b9b8 | 61 | return -1; |
c31a9457 | 62 | } |
1d037ca1 | 63 | static inline void perf_gtk__exit(bool wait_for_ok __maybe_unused) {} |
c31a9457 | 64 | #else |
dc41b9b8 | 65 | int perf_gtk__init(void); |
281ef544 | 66 | void perf_gtk__exit(bool wait_for_ok); |
c31a9457 | 67 | #endif |
281ef544 | 68 | #endif /* NO_NEWT_SUPPORT && NO_GTK2_SUPPORT */ |
c31a9457 | 69 | |
07800601 IM |
70 | char *alias_lookup(const char *alias); |
71 | int split_cmdline(char *cmdline, const char ***argv); | |
72 | ||
73 | #define alloc_nr(x) (((x)+16)*3/2) | |
74 | ||
75 | /* | |
76 | * Realloc the buffer pointed at by variable 'x' so that it can hold | |
77 | * at least 'nr' entries; the number of entries currently allocated | |
78 | * is 'alloc', using the standard growing factor alloc_nr() macro. | |
79 | * | |
80 | * DO NOT USE any expression with side-effect for 'x' or 'alloc'. | |
81 | */ | |
82 | #define ALLOC_GROW(x, nr, alloc) \ | |
83 | do { \ | |
84 | if ((nr) > alloc) { \ | |
85 | if (alloc_nr(alloc) < (nr)) \ | |
86 | alloc = (nr); \ | |
87 | else \ | |
88 | alloc = alloc_nr(alloc); \ | |
89 | x = xrealloc((x), alloc * sizeof(*(x))); \ | |
90 | } \ | |
91 | } while(0) | |
92 | ||
93 | ||
94 | static inline int is_absolute_path(const char *path) | |
95 | { | |
96 | return path[0] == '/'; | |
97 | } | |
6f06ccbc | 98 | |
6f06ccbc | 99 | const char *make_nonrelative_path(const char *path); |
6f06ccbc IM |
100 | char *strip_path_suffix(const char *path, const char *suffix); |
101 | ||
102 | extern char *mkpath(const char *fmt, ...) __attribute__((format (printf, 1, 2))); | |
103 | extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2))); | |
104 | ||
6f06ccbc IM |
105 | extern char *perf_pathdup(const char *fmt, ...) |
106 | __attribute__((format (printf, 1, 2))); | |
107 | ||
f4e7ac0a | 108 | #ifdef NO_STRLCPY |
6f06ccbc | 109 | extern size_t strlcpy(char *dest, const char *src, size_t size); |
f4e7ac0a | 110 | #endif |
6f06ccbc | 111 | |
8b40f521 | 112 | #endif /* __PERF_CACHE_H */ |