diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/args.c | 12 | ||||
-rw-r--r-- | src/config.h | 4 | ||||
-rw-r--r-- | src/sysdeps/x86_64/args.h | 20 |
3 files changed, 36 insertions, 0 deletions
@@ -729,6 +729,18 @@ int lt_args_init(struct lt_config_shared *cfg) ret = -1; } +#if defined(LT_ARGS_ARCH_CONF) + /* Some architectures provides specific + * configuration file. */ + if (lt_args_buf_open(cfg, lt_args_arch_conf(cfg))) + return -1; + + if (yyparse()) { + printf("failed to parse config file %s\n", file); + ret = -1; + } +#endif + if (fclose(yyin)) { perror("failed to close " LT_ARGS_DEF_CONF); return -1; diff --git a/src/config.h b/src/config.h index bacc107..893381d 100644 --- a/src/config.h +++ b/src/config.h @@ -449,4 +449,8 @@ do { \ } while(0) +#if defined(__x86_64) +#include "sysdeps/x86_64/args.h" +#endif + #endif // !CONFIG_H diff --git a/src/sysdeps/x86_64/args.h b/src/sysdeps/x86_64/args.h new file mode 100644 index 0000000..a215c07 --- /dev/null +++ b/src/sysdeps/x86_64/args.h @@ -0,0 +1,20 @@ +#ifndef ARGS_H +#define ARGS_H + +#define LT_ARGS_ARCH_CONF 1 + +struct lt_config_shared; + +static inline +char* lt_args_arch_conf(struct lt_config_shared *cfg) +{ + static char buf[LT_MAXFILE]; + + sprintf(buf, "%s/%s", + LT_ARGS_DEF_DIR, + "sysdeps/x86_64/latrace.conf"); + + return buf; +} + +#endif /* ARGS_H */ |