10985a948SNamhyung Kim #include <pthread.h> 20985a948SNamhyung Kim 3ea251d51SNamhyung Kim #include "../util/cache.h" 4ea251d51SNamhyung Kim #include "../util/debug.h" 5ea251d51SNamhyung Kim #include "../util/hist.h" 6aca7a94dSNamhyung Kim 70985a948SNamhyung Kim pthread_mutex_t ui__lock = PTHREAD_MUTEX_INITIALIZER; 80985a948SNamhyung Kim 9aca7a94dSNamhyung Kim void setup_browser(bool fallback_to_pager) 10aca7a94dSNamhyung Kim { 11*2b676bf0SNamhyung Kim if (use_browser < 2 && (!isatty(1) || dump_trace)) 12aca7a94dSNamhyung Kim use_browser = 0; 13281ef544SNamhyung Kim 14281ef544SNamhyung Kim /* default to TUI */ 15281ef544SNamhyung Kim if (use_browser < 0) 16281ef544SNamhyung Kim use_browser = 1; 17281ef544SNamhyung Kim 18281ef544SNamhyung Kim switch (use_browser) { 19281ef544SNamhyung Kim case 2: 20dc41b9b8SNamhyung Kim if (perf_gtk__init() == 0) 21281ef544SNamhyung Kim break; 22dc41b9b8SNamhyung Kim /* fall through */ 23281ef544SNamhyung Kim case 1: 24dc41b9b8SNamhyung Kim use_browser = 1; 25dc41b9b8SNamhyung Kim if (ui__init() == 0) 26281ef544SNamhyung Kim break; 27dc41b9b8SNamhyung Kim /* fall through */ 28281ef544SNamhyung Kim default: 2921f0d423SNamhyung Kim use_browser = 0; 30aca7a94dSNamhyung Kim if (fallback_to_pager) 31aca7a94dSNamhyung Kim setup_pager(); 32ea251d51SNamhyung Kim 331240005eSJiri Olsa perf_hpp__column_enable(PERF_HPP__OVERHEAD); 341d77822eSJiri Olsa perf_hpp__init(); 35281ef544SNamhyung Kim break; 36aca7a94dSNamhyung Kim } 37aca7a94dSNamhyung Kim } 38aca7a94dSNamhyung Kim 39aca7a94dSNamhyung Kim void exit_browser(bool wait_for_ok) 40aca7a94dSNamhyung Kim { 41281ef544SNamhyung Kim switch (use_browser) { 42281ef544SNamhyung Kim case 2: 43281ef544SNamhyung Kim perf_gtk__exit(wait_for_ok); 44281ef544SNamhyung Kim break; 45281ef544SNamhyung Kim 46281ef544SNamhyung Kim case 1: 47281ef544SNamhyung Kim ui__exit(wait_for_ok); 48281ef544SNamhyung Kim break; 49281ef544SNamhyung Kim 50281ef544SNamhyung Kim default: 51281ef544SNamhyung Kim break; 52aca7a94dSNamhyung Kim } 53aca7a94dSNamhyung Kim } 54