24#ifndef _SOLARIS_NIAGARA2_H
25#define _SOLARIS_NIAGARA2_H
44#include <sys/processor.h>
45#include <sys/procset.h>
46#include <sys/ucontext.h>
53#include "papi_defines.h"
66#define MAX_COUNTER_TERMS MAX_COUNTERS
67#define PAPI_MAX_NATIVE_EVENTS 71
68#define MAX_NATIVE_EVENT PAPI_MAX_NATIVE_EVENTS
73typedef struct _niagara2_register
82#define EVENT_NOT_SET -1;
84#define SYNTHETIC_EVENTS_SUPPORTED 1
87typedef struct _niagara2_control_state
122#ifdef SYNTHETIC_EVENTS_SUPPORTED
128#define GET_OVERFLOW_ADDRESS(ctx) (void*)(ctx->ucontext->uc_mcontext.gregs[REG_PC])
140#define _papi_hwd_lock(lck) rw_wrlock(&lock[lck]);
141#define _papi_hwd_unlock(lck) rw_unlock(&lock[lck]);
143#define DEFAULT_CNTR_PRESET (0)
144#define NOT_A_PAPI_HWD_READ -666
145#define CPC_COUNTING_DOMAINS (CPC_COUNT_USER|CPC_COUNT_SYSTEM|CPC_COUNT_HV)
146#define EVENT_NOT_SET -1;
150#define hwd_context_t _niagara2_context_t
152#undef hwd_control_state_t
153#define hwd_control_state_t _niagara2_control_state_t
156#define hwd_register_t _niagara2_register_t
rwlock_t lock[PAPI_MAX_LOCK]
_niagara2_control_state_t _niagara2_context_t
cpc_buf_t * counter_buffer