22 #include <sys/types.h> 23 #include <sys/resource.h> 24 #include <sys/sysctl.h> 37 #define CORETEMP_MAX_COUNTERS 32 40 #define UNREFERENCED(x) (void)x 43 typedef struct coretemp_register
54 typedef struct coretemp_native_event_entry
64 typedef struct coretemp_reg_alloc
70 typedef struct coretemp_control_state
77 typedef struct coretemp_context
103 SUBDBG(
"coretemp_init_thread %p...\n", ctx);
109 if (sysctlnametomib (
"dev.coretemp.0.%driver", mib, &len) == -1)
129 SUBDBG(
"coretemp_init_component...\n");
134 sprintf (
tmp,
"dev.coretemp.%d.%%driver",
i);
136 ret = sysctlnametomib (
tmp, mib, &len);
141 sprintf (
tmp,
"dev.coretemp.%d.%%driver",
i);
143 ret = sysctlnametomib (
tmp, mib, &len);
154 perror(
"malloc():Could not get memory for coretemp events table" );
168 sprintf (
tmp,
"dev.cpu.%d.temperature",
i);
185 SUBDBG(
"coretemp_init_control_state... %p\n", ctrl);
213 int index = *EventCode;
217 *EventCode = *EventCode + 1;
239 int index = EventCode;
253 int index = EventCode;
278 SUBDBG(
"coretemp_update_control_state %p %p...\n", ptr, ctx);
286 SUBDBG (
"\nnative[%i].ni_position = coretemp_native_table[%i].resources.selector-1 = %i;\n",
299 SUBDBG(
"coretemp_start %p %p...\n", ctx, ctrl );
313 SUBDBG(
"coretemp_stop %p %p...\n", ctx, ctrl);
330 SUBDBG(
"coretemp_read... %p %d\n", ctx, flags);
336 size_t len =
sizeof(
tmp);
341 c->counters[
i] =
tmp/10;
361 SUBDBG(
"coretemp_write... %p %p\n", ctx, ctrl);
375 SUBDBG(
"coretemp_reset ctx=%p ctrl=%p...\n", ctx, ctrl);
386 SUBDBG(
"coretemp_shutdown_component...\n");
407 SUBDBG(
"coretemp_ctl... %p %d %p\n", ctx, code, option );
428 SUBDBG (
"coretemp_set_domain... %p %d\n", cntrl, domain);
432 SUBDBG(
" PAPI_DOM_ALL \n" );
444 .
name =
"coretemp_freebsd",
445 .short_name =
"coretemp",
456 .fast_real_timer = 0,
457 .fast_virtual_timer = 0,
459 .attach_must_ptrace = 0,
int coretemp_init_control_state(hwd_control_state_t *ctrl)
int coretemp_ntv_code_to_descr(unsigned int EventCode, char *name, int len)
int coretemp_init_component()
int coretemp_reset(hwd_context_t *ctx, hwd_control_state_t *ctrl)
int coretemp_ntv_code_to_bits(unsigned int EventCode, hwd_register_t *bits)
int coretemp_ctl(hwd_context_t *ctx, int code, _papi_int_option_t *option)
coretemp_register_t resources
PAPI_component_info_t cmp_info
Return codes and api definitions.
char events[MAX_EVENTS][BUFSIZ]
int coretemp_init_thread(hwd_context_t *ctx)
int coretemp_set_domain(hwd_control_state_t *cntrl, int domain)
int coretemp_stop(hwd_context_t *ctx, hwd_control_state_t *ctrl)
int coretemp_start(hwd_context_t *ctx, hwd_control_state_t *ctrl)
coretemp_register_t ra_bits
#define SUBDBG(format, args...)
int coretemp_ntv_code_to_name(unsigned int EventCode, char *name, int len)
int coretemp_read(hwd_context_t *ctx, hwd_control_state_t *ctrl, long_long **events, int flags)
char name[PAPI_MAX_STR_LEN]
int coretemp_shutdown_component(void)
coretemp_control_state_t state
int coretemp_update_control_state(hwd_control_state_t *ptr, NativeInfo_t *native, int count, hwd_context_t *ctx)
static int CORETEMP_NUM_EVENTS
#define CORETEMP_MAX_COUNTERS
papi_vector_t _coretemp_freebsd_vector
static coretemp_native_event_entry_t * coretemp_native_table
int coretemp_write(hwd_context_t *ctx, hwd_control_state_t *ctrl, long_long events[])
int coretemp_ntv_enum_events(unsigned int *EventCode, int modifier)