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" | |
4b6ab94e | 7 | #include <subcmd/pager.h> |
f37a291c | 8 | #include "../perf.h" |
59ed16b3 | 9 | #include "../ui/ui.h" |
07800601 | 10 | |
ce990917 JP |
11 | #include <linux/string.h> |
12 | ||
cfed95a6 VL |
13 | #define CMD_EXEC_PATH "--exec-path" |
14 | #define CMD_PERF_DIR "--perf-dir=" | |
15 | #define CMD_WORK_TREE "--work-tree=" | |
16 | #define CMD_DEBUGFS_DIR "--debugfs-dir=" | |
17 | ||
07800601 IM |
18 | #define PERF_DIR_ENVIRONMENT "PERF_DIR" |
19 | #define PERF_WORK_TREE_ENVIRONMENT "PERF_WORK_TREE" | |
07800601 | 20 | #define EXEC_PATH_ENVIRONMENT "PERF_EXEC_PATH" |
a41794cd | 21 | #define DEFAULT_PERF_DIR_ENVIRONMENT ".perf" |
5beeded1 | 22 | #define PERF_DEBUGFS_ENVIRONMENT "PERF_DEBUGFS_DIR" |
23773ca1 | 23 | #define PERF_TRACEFS_ENVIRONMENT "PERF_TRACEFS_DIR" |
096d3558 | 24 | #define PERF_PAGER_ENVIRONMENT "PERF_PAGER" |
07800601 | 25 | |
c7ac2417 TS |
26 | extern const char *config_exclusive_filename; |
27 | ||
07800601 IM |
28 | typedef int (*config_fn_t)(const char *, const char *, void *); |
29 | extern int perf_default_config(const char *, const char *, void *); | |
07800601 | 30 | extern int perf_config(config_fn_t fn, void *); |
07800601 | 31 | extern int perf_config_int(const char *, const char *); |
94c0655f | 32 | extern u64 perf_config_u64(const char *, const char *); |
07800601 | 33 | extern int perf_config_bool(const char *, const char *); |
07800601 | 34 | extern int config_error_nonbool(const char *); |
45de34bb | 35 | extern const char *perf_config_dirname(const char *, const char *); |
c7ac2417 | 36 | extern const char *perf_etc_perfconfig(void); |
07800601 | 37 | |
07800601 IM |
38 | char *alias_lookup(const char *alias); |
39 | int split_cmdline(char *cmdline, const char ***argv); | |
40 | ||
41 | #define alloc_nr(x) (((x)+16)*3/2) | |
42 | ||
43 | /* | |
44 | * Realloc the buffer pointed at by variable 'x' so that it can hold | |
45 | * at least 'nr' entries; the number of entries currently allocated | |
46 | * is 'alloc', using the standard growing factor alloc_nr() macro. | |
47 | * | |
48 | * DO NOT USE any expression with side-effect for 'x' or 'alloc'. | |
49 | */ | |
50 | #define ALLOC_GROW(x, nr, alloc) \ | |
51 | do { \ | |
52 | if ((nr) > alloc) { \ | |
53 | if (alloc_nr(alloc) < (nr)) \ | |
54 | alloc = (nr); \ | |
55 | else \ | |
56 | alloc = alloc_nr(alloc); \ | |
57 | x = xrealloc((x), alloc * sizeof(*(x))); \ | |
58 | } \ | |
59 | } while(0) | |
60 | ||
61 | ||
62 | static inline int is_absolute_path(const char *path) | |
63 | { | |
64 | return path[0] == '/'; | |
65 | } | |
6f06ccbc | 66 | |
6f06ccbc | 67 | const char *make_nonrelative_path(const char *path); |
6f06ccbc IM |
68 | char *strip_path_suffix(const char *path, const char *suffix); |
69 | ||
70 | extern char *mkpath(const char *fmt, ...) __attribute__((format (printf, 1, 2))); | |
71 | extern char *perf_path(const char *fmt, ...) __attribute__((format (printf, 1, 2))); | |
72 | ||
6f06ccbc IM |
73 | extern char *perf_pathdup(const char *fmt, ...) |
74 | __attribute__((format (printf, 1, 2))); | |
75 | ||
8b40f521 | 76 | #endif /* __PERF_CACHE_H */ |