config.c (16b02d711f4059b8338ef967064195b47cae65ea) | config.c (9cb5987c822714352e3eb46806fc260b3cb4ff0d) |
---|---|
1/* 2 * config.c 3 * 4 * Helper functions for parsing config items. 5 * Originally copied from GIT source. 6 * 7 * Copyright (C) Linus Torvalds, 2005 8 * Copyright (C) Johannes Schindelin, 2005 --- 363 unchanged lines hidden (view full) --- 372 373const char *perf_config_dirname(const char *name, const char *value) 374{ 375 if (!name) 376 return NULL; 377 return value; 378} 379 | 1/* 2 * config.c 3 * 4 * Helper functions for parsing config items. 5 * Originally copied from GIT source. 6 * 7 * Copyright (C) Linus Torvalds, 2005 8 * Copyright (C) Johannes Schindelin, 2005 --- 363 unchanged lines hidden (view full) --- 372 373const char *perf_config_dirname(const char *name, const char *value) 374{ 375 if (!name) 376 return NULL; 377 return value; 378} 379 |
380static int perf_buildid_config(const char *var, const char *value) 381{ 382 /* same dir for all commands */ 383 if (!strcmp(var, "buildid.dir")) { 384 const char *dirname = perf_config_dirname(var, value); 385 386 if (!dirname) 387 return -1; 388 strncpy(buildid_dir, dirname, MAXPATHLEN-1); 389 buildid_dir[MAXPATHLEN-1] = '\0'; 390 } 391 392 return 0; 393} 394 |
|
380static int perf_default_core_config(const char *var __maybe_unused, 381 const char *value __maybe_unused) 382{ 383 /* Add other config variables here. */ 384 return 0; 385} 386 387static int perf_ui_config(const char *var, const char *value) --- 19 unchanged lines hidden (view full) --- 407 return perf_ui_config(var, value); 408 409 if (!prefixcmp(var, "call-graph.")) 410 return perf_callchain_config(var, value); 411 412 if (!prefixcmp(var, "llvm.")) 413 return perf_llvm_config(var, value); 414 | 395static int perf_default_core_config(const char *var __maybe_unused, 396 const char *value __maybe_unused) 397{ 398 /* Add other config variables here. */ 399 return 0; 400} 401 402static int perf_ui_config(const char *var, const char *value) --- 19 unchanged lines hidden (view full) --- 422 return perf_ui_config(var, value); 423 424 if (!prefixcmp(var, "call-graph.")) 425 return perf_callchain_config(var, value); 426 427 if (!prefixcmp(var, "llvm.")) 428 return perf_llvm_config(var, value); 429 |
430 if (!prefixcmp(var, "buildid.")) 431 return perf_buildid_config(var, value); 432 |
|
415 /* Add other config variables here. */ 416 return 0; 417} 418 419static int perf_config_from_file(config_fn_t fn, const char *filename, void *data) 420{ 421 int ret; 422 FILE *f = fopen(filename, "r"); --- 87 unchanged lines hidden (view full) --- 510 * Call this to report error for your variable that should not 511 * get a boolean value (i.e. "[my] var" means "true"). 512 */ 513int config_error_nonbool(const char *var) 514{ 515 return error("Missing value for '%s'", var); 516} 517 | 433 /* Add other config variables here. */ 434 return 0; 435} 436 437static int perf_config_from_file(config_fn_t fn, const char *filename, void *data) 438{ 439 int ret; 440 FILE *f = fopen(filename, "r"); --- 87 unchanged lines hidden (view full) --- 528 * Call this to report error for your variable that should not 529 * get a boolean value (i.e. "[my] var" means "true"). 530 */ 531int config_error_nonbool(const char *var) 532{ 533 return error("Missing value for '%s'", var); 534} 535 |
518struct buildid_dir_config { 519 char *dir; 520}; 521 522static int buildid_dir_command_config(const char *var, const char *value, 523 void *data) 524{ 525 struct buildid_dir_config *c = data; 526 const char *v; 527 528 /* same dir for all commands */ 529 if (!strcmp(var, "buildid.dir")) { 530 v = perf_config_dirname(var, value); 531 if (!v) 532 return -1; 533 strncpy(c->dir, v, MAXPATHLEN-1); 534 c->dir[MAXPATHLEN-1] = '\0'; 535 } 536 return 0; 537} 538 539static void check_buildid_dir_config(void) 540{ 541 struct buildid_dir_config c; 542 c.dir = buildid_dir; 543 perf_config(buildid_dir_command_config, &c); 544} 545 | |
546void set_buildid_dir(const char *dir) 547{ 548 if (dir) 549 scnprintf(buildid_dir, MAXPATHLEN-1, "%s", dir); 550 | 536void set_buildid_dir(const char *dir) 537{ 538 if (dir) 539 scnprintf(buildid_dir, MAXPATHLEN-1, "%s", dir); 540 |
551 /* try config file */ 552 if (buildid_dir[0] == '\0') 553 check_buildid_dir_config(); 554 | |
555 /* default to $HOME/.debug */ 556 if (buildid_dir[0] == '\0') { 557 char *v = getenv("HOME"); 558 if (v) { 559 snprintf(buildid_dir, MAXPATHLEN-1, "%s/%s", 560 v, DEBUG_CACHE_DIR); 561 } else { 562 strncpy(buildid_dir, DEBUG_CACHE_DIR, MAXPATHLEN-1); 563 } 564 buildid_dir[MAXPATHLEN-1] = '\0'; 565 } 566 /* for communicating with external commands */ 567 setenv("PERF_BUILDID_DIR", buildid_dir, 1); 568} | 541 /* default to $HOME/.debug */ 542 if (buildid_dir[0] == '\0') { 543 char *v = getenv("HOME"); 544 if (v) { 545 snprintf(buildid_dir, MAXPATHLEN-1, "%s/%s", 546 v, DEBUG_CACHE_DIR); 547 } else { 548 strncpy(buildid_dir, DEBUG_CACHE_DIR, MAXPATHLEN-1); 549 } 550 buildid_dir[MAXPATHLEN-1] = '\0'; 551 } 552 /* for communicating with external commands */ 553 setenv("PERF_BUILDID_DIR", buildid_dir, 1); 554} |