mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
capture: add API to request a counter id
This commit is contained in:
@ -95,6 +95,7 @@ typedef struct
|
||||
bool is_shared;
|
||||
int tid;
|
||||
int pid;
|
||||
int next_counter_id;
|
||||
} SysprofCollector;
|
||||
|
||||
#define COLLECTOR_INVALID ((void *)&invalid)
|
||||
@ -420,6 +421,7 @@ sysprof_collector_get (void)
|
||||
#else
|
||||
self->tid = self->pid;
|
||||
#endif
|
||||
self->next_counter_id = 1;
|
||||
|
||||
pthread_mutex_lock (&control_fd_lock);
|
||||
|
||||
@ -845,3 +847,19 @@ sysprof_collector_set_counters (const unsigned int *counters_ids,
|
||||
}
|
||||
} COLLECTOR_END;
|
||||
}
|
||||
|
||||
unsigned int
|
||||
sysprof_collector_request_counter (unsigned int n_counters)
|
||||
{
|
||||
unsigned int ret = 0;
|
||||
|
||||
if (n_counters == 0)
|
||||
return 0;
|
||||
|
||||
COLLECTOR_BEGIN {
|
||||
ret = collector->next_counter_id;
|
||||
((SysprofCollector *)collector)->next_counter_id += n_counters;
|
||||
} COLLECTOR_END;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -64,50 +64,52 @@
|
||||
SYSPROF_BEGIN_DECLS
|
||||
|
||||
SYSPROF_AVAILABLE_IN_3_36
|
||||
void sysprof_collector_init (void);
|
||||
void sysprof_collector_init (void);
|
||||
SYSPROF_AVAILABLE_IN_3_36
|
||||
void sysprof_collector_allocate (SysprofCaptureAddress alloc_addr,
|
||||
int64_t alloc_size,
|
||||
SysprofBacktraceFunc backtrace_func,
|
||||
void *backtrace_data);
|
||||
void sysprof_collector_allocate (SysprofCaptureAddress alloc_addr,
|
||||
int64_t alloc_size,
|
||||
SysprofBacktraceFunc backtrace_func,
|
||||
void *backtrace_data);
|
||||
SYSPROF_AVAILABLE_IN_3_36
|
||||
void sysprof_collector_sample (SysprofBacktraceFunc backtrace_func,
|
||||
void *backtrace_data);
|
||||
void sysprof_collector_sample (SysprofBacktraceFunc backtrace_func,
|
||||
void *backtrace_data);
|
||||
SYSPROF_AVAILABLE_IN_3_36
|
||||
void sysprof_collector_mark (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message);
|
||||
void sysprof_collector_mark (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_mark_printf (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message_format,
|
||||
...) SYSPROF_PRINTF(5, 6);
|
||||
void sysprof_collector_mark_printf (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message_format,
|
||||
...) SYSPROF_PRINTF(5, 6);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_mark_vprintf (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message_format,
|
||||
va_list args) SYSPROF_PRINTF(5, 0);
|
||||
void sysprof_collector_mark_vprintf (int64_t time,
|
||||
int64_t duration,
|
||||
const char *group,
|
||||
const char *mark,
|
||||
const char *message_format,
|
||||
va_list args) SYSPROF_PRINTF(5, 0);
|
||||
SYSPROF_AVAILABLE_IN_3_36
|
||||
void sysprof_collector_log (int severity,
|
||||
const char *domain,
|
||||
const char *message);
|
||||
void sysprof_collector_log (int severity,
|
||||
const char *domain,
|
||||
const char *message);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_log_printf (int severity,
|
||||
const char *domain,
|
||||
const char *format,
|
||||
...) SYSPROF_PRINTF (3, 4);
|
||||
void sysprof_collector_log_printf (int severity,
|
||||
const char *domain,
|
||||
const char *format,
|
||||
...) SYSPROF_PRINTF (3, 4);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_define_counters (const SysprofCaptureCounter *counters,
|
||||
unsigned int n_counters);
|
||||
unsigned int sysprof_collector_request_counter (unsigned int n_counters);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_set_counters (const unsigned int *counters_ids,
|
||||
const SysprofCaptureCounterValue *values,
|
||||
unsigned int n_counters);
|
||||
void sysprof_collector_define_counters (const SysprofCaptureCounter *counters,
|
||||
unsigned int n_counters);
|
||||
SYSPROF_AVAILABLE_IN_3_38
|
||||
void sysprof_collector_set_counters (const unsigned int *counters_ids,
|
||||
const SysprofCaptureCounterValue *values,
|
||||
unsigned int n_counters);
|
||||
|
||||
SYSPROF_END_DECLS
|
||||
|
||||
Reference in New Issue
Block a user