Blame src/solaris-ultra.h

Packit Service a1973e
#ifndef _PAPI_SOLARIS_ULTRA_H
Packit Service a1973e
#define _PAPI_SOLARIS_ULTRA_H
Packit Service a1973e
Packit Service a1973e
#include <stdio.h>
Packit Service a1973e
#include <stdlib.h>
Packit Service a1973e
#include <fcntl.h>
Packit Service a1973e
#include <unistd.h>
Packit Service a1973e
#include <assert.h>
Packit Service a1973e
#include <string.h>
Packit Service a1973e
#include <libgen.h>
Packit Service a1973e
#include <limits.h>
Packit Service a1973e
#include <synch.h>
Packit Service a1973e
#include <procfs.h>
Packit Service a1973e
#include <libcpc.h>
Packit Service a1973e
#include <libgen.h>
Packit Service a1973e
#include <ctype.h>
Packit Service a1973e
#include <errno.h>
Packit Service a1973e
#include <sys/times.h>
Packit Service a1973e
#include <sys/time.h>
Packit Service a1973e
#include <sys/types.h>
Packit Service a1973e
#include <sys/processor.h>
Packit Service a1973e
#include <sys/procset.h>
Packit Service a1973e
#include <syms.h>
Packit Service a1973e
#include <dlfcn.h>
Packit Service a1973e
#include <sys/stat.h>
Packit Service a1973e
Packit Service a1973e
#include "papi_defines.h"
Packit Service a1973e
Packit Service a1973e
#define MAX_COUNTERS 2
Packit Service a1973e
#define MAX_COUNTER_TERMS MAX_COUNTERS
Packit Service a1973e
#define PAPI_MAX_NATIVE_EVENTS 71
Packit Service a1973e
#define MAX_NATIVE_EVENT PAPI_MAX_NATIVE_EVENTS
Packit Service a1973e
#define MAX_NATIVE_EVENT_USII  22
Packit Service a1973e
Packit Service a1973e
/* Defines in papi_internal.h cause compile warnings on solaris because typedefs are done here */
Packit Service a1973e
#undef hwd_context_t
Packit Service a1973e
#undef hwd_control_state_t
Packit Service a1973e
#undef hwd_reg_alloc_t
Packit Service a1973e
#undef hwd_register_t
Packit Service a1973e
#undef hwd_siginfo_t
Packit Service a1973e
#undef hwd_ucontext_t
Packit Service a1973e
Packit Service a1973e
typedef int hwd_reg_alloc_t;
Packit Service a1973e
Packit Service a1973e
typedef struct US_register
Packit Service a1973e
{
Packit Service a1973e
	int event[MAX_COUNTERS];
Packit Service a1973e
} hwd_register_t;
Packit Service a1973e
Packit Service a1973e
typedef struct papi_cpc_event
Packit Service a1973e
{
Packit Service a1973e
	/* Structure to libcpc */
Packit Service a1973e
	cpc_event_t cmd;
Packit Service a1973e
	/* Flags to kernel */
Packit Service a1973e
	int flags;
Packit Service a1973e
} papi_cpc_event_t;
Packit Service a1973e
Packit Service a1973e
typedef struct hwd_control_state
Packit Service a1973e
{
Packit Service a1973e
	/* Buffer to pass to the kernel to control the counters */
Packit Service a1973e
	papi_cpc_event_t counter_cmd;
Packit Service a1973e
	/* overflow event counter */
Packit Service a1973e
	int overflow_num;
Packit Service a1973e
} hwd_control_state_t;
Packit Service a1973e
Packit Service a1973e
typedef int hwd_register_map_t;
Packit Service a1973e
Packit Service a1973e
typedef struct _native_info
Packit Service a1973e
{
Packit Service a1973e
	/* native name */
Packit Service a1973e
	char name[40];
Packit Service a1973e
	/* Buffer to pass to the kernel to control the counters */
Packit Service a1973e
	int encoding[MAX_COUNTERS];
Packit Service a1973e
} native_info_t;
Packit Service a1973e
Packit Service a1973e
#include "solaris-context.h"
Packit Service a1973e
Packit Service a1973e
typedef int hwd_context_t;
Packit Service a1973e
Packit Service a1973e
/* Assembler prototypes */
Packit Service a1973e
Packit Service a1973e
extern void cpu_sync( void );
Packit Service a1973e
extern unsigned long long get_tick( void );
Packit Service a1973e
extern caddr_t _start, _end, _etext, _edata;
Packit Service a1973e
Packit Service a1973e
extern rwlock_t lock[PAPI_MAX_LOCK];
Packit Service a1973e
Packit Service a1973e
#define _papi_hwd_lock(lck) rw_wrlock(&lock[lck]);
Packit Service a1973e
Packit Service a1973e
#define _papi_hwd_unlock(lck)   rw_unlock(&lock[lck]);
Packit Service a1973e
Packit Service a1973e
#endif