/****************************/
/* THIS IS OPEN SOURCE CODE */
/****************************/

/* 
* File:    map-atom.h
* CVS:     $Id$
* Author:  Harald Servat
*          redcrash@gmail.com
*/

#ifndef FreeBSD_MAP_ATOM
#define FreeBSD_MAP_ATOM

enum NativeEvent_Value_AtomProcessor {
	PNE_ATOM_BACLEARS = PAPI_NATIVE_MASK,
	PNE_ATOM_BOGUS_BR,
	PNE_ATOM_BR_BAC_MISSP_EXEC,
	PNE_ATOM_BR_CALL_MISSP_EXEC,
	PNE_ATOM_BR_CALL_EXEC,
	PNE_ATOM_BR_CND_EXEC,
	PNE_ATOM_BR_CND_MISSP_EXEC,
	PNE_ATOM_BR_IND_CALL_EXEC,
	PNE_ATOM_BR_IND_EXEC,
	PNE_ATOM_BR_IND_MISSP_EXEC,
	PNE_ATOM_BR_INST_DECODED,
	PNE_ATOM_BR_INST_EXEC,
	PNE_ATOM_BR_INST_RETIRED_ANY,
	PNE_ATOM_BR_INST_RETIRED_ANY1,
	PNE_ATOM_BR_INST_RETIRED_MISPRED,
	PNE_ATOM_BR_INST_RETIRED_MISPRED_NOT_TAKEN,
	PNE_ATOM_BR_INST_RETIRED_MISPRED_TAKEN,
	PNE_ATOM_BR_INST_RETIRED_PRED_NOT_TAKEN,
	PNE_ATOM_BR_INST_RETIRED_PRED_TAKEN,
	PNE_ATOM_BR_INST_RETIRED_TAKEN,
	PNE_ATOM_BR_MISSP_EXEC,
	PNE_ATOM_BR_RET_MISSP_EXEC,
	PNE_ATOM_BR_RET_BAC_MISSP_EXEC,
	PNE_ATOM_BR_RET_EXEC,
	PNE_ATOM_BR_TKN_BUBBLE_1,
	PNE_ATOM_BR_TKN_BUBBLE_2,
	PNE_ATOM_BUSQ_EMPTY,
	PNE_ATOM_BUS_BNR_DRV,
	PNE_ATOM_BUS_DATA_RCV,
	PNE_ATOM_BUS_DRDY_CLOCKS,
	PNE_ATOM_BUS_HIT_DRV,
	PNE_ATOM_BUS_HITM_DRV,
	PNE_ATOM_BUS_IO_WAIT,
	PNE_ATOM_BUS_LOCK_CLOCKS,
	PNE_ATOM_BUS_REQUEST_OUTSTANDING,
	PNE_ATOM_BUS_TRANS_P,
	PNE_ATOM_BUS_TRANS_IFETCH,
	PNE_ATOM_BUS_TRANS_INVAL,
	PNE_ATOM_BUS_TRANS_PWR,
	PNE_ATOM_BUS_TRANS_DEF,
	PNE_ATOM_BUS_TRANS_BURST,
	PNE_ATOM_BUS_TRANS_MEM,
	PNE_ATOM_BUS_TRANS_ANY,
	PNE_ATOM_BUS_TRANS_BRD,
	PNE_ATOM_BUS_TRANS_IO,
	PNE_ATOM_BUS_TRANS_RFO,
	PNE_ATOM_BUS_TRANS_WB,
	PNE_ATOM_CMP_SNOOP,
	PNE_ATOM_CPU_CLK_UNHALTED_BUS,
	PNE_ATOM_CPU_CLK_UNHALTED_CORE_P,
	PNE_ATOM_CPU_CLK_UNHALTED_NO_OTHER,
	PNE_ATOM_CYCLES_DIV_BUSY,
	PNE_ATOM_CYCLES_INT_MASKED_CYCLES_INT_MASKED,
	PNE_ATOM_CYCLES_INT_MASKED_CYCLES_INT_PENDING_AND_MASKED,
	PNE_ATOM_CYCLES_L1I_MEM_STALLED,
	PNE_ATOM_DATA_TLB_MISSES_DTLB_MISS,
	PNE_ATOM_DATA_TLB_MISSES_DTLB_MISS_LD,
	PNE_ATOM_DATA_TLB_MISSES_DTLB_MISS_ST,
	PNE_ATOM_DATA_TLB_MISSES_UTLB_MISS_LD,
	PNE_ATOM_DELAYED_BYPASS_FP,
	PNE_ATOM_DELAYED_BYPASS_LOAD,
	PNE_ATOM_DELAYED_BYPASS_SIMD,
	PNE_ATOM_DIV,
	PNE_ATOM_DIV_AR,
	PNE_ATOM_DIV_S,
	PNE_ATOM_DTLB_MISSES_ANY,
	PNE_ATOM_DTLB_MISSES_L0_MISS_LD,
	PNE_ATOM_DTLB_MISSES_MISS_LD,
	PNE_ATOM_DTLB_MISSES_MISS_ST,
	PNE_ATOM_EIST_TRANS,
	PNE_ATOM_ESP_ADDITIONS,
	PNE_ATOM_ESP_SYNCH,
	PNE_ATOM_EXT_SNOOP,
	PNE_ATOM_FP_ASSIST,
	PNE_ATOM_FP_ASSIST_AR,
	PNE_ATOM_FP_COMP_OPS_EXE,
	PNE_ATOM_FP_MMX_TRANS_TO_FP,
	PNE_ATOM_FP_MMX_TRANS_TO_MMX,
	PNE_ATOM_HW_INT_RCV,
	PNE_ATOM_ICACHE_ACCESSES,
	PNE_ATOM_ICACHE_MISSES,
	PNE_ATOM_IDLE_DURING_DIV,
	PNE_ATOM_ILD_STALL,
	PNE_ATOM_INST_QUEUE_FULL,
	PNE_ATOM_INST_RETIRED_ANY_P,
	PNE_ATOM_INST_RETIRED_LOADS,
	PNE_ATOM_INST_RETIRED_OTHER,
	PNE_ATOM_INST_RETIRED_STORES,
	PNE_ATOM_ITLB_FLUSH,
	PNE_ATOM_ITLB_LARGE_MISS,
	PNE_ATOM_ITLB_MISSES,
	PNE_ATOM_ITLB_SMALL_MISS,
	PNE_ATOM_ITLB_MISS_RETIRED,
	PNE_ATOM_L1D_ALL_REF,
	PNE_ATOM_L1D_ALL_CACHE_REF,
	PNE_ATOM_L1D_CACHE_LOCK,
	PNE_ATOM_L1D_CACHE_LOCK_DURATION,
	PNE_ATOM_L1D_CACHE_LD,
	PNE_ATOM_L1D_CACHE_ST,
	PNE_ATOM_L1D_M_EVICT,
	PNE_ATOM_L1D_M_REPL,
	PNE_ATOM_L1D_PEND_MISS,
	PNE_ATOM_L1D_PREFETCH_REQUESTS,
	PNE_ATOM_L1D_REPL,
	PNE_ATOM_L1D_SPLIT_LOADS,
	PNE_ATOM_L1D_SPLIT_STORES,
	PNE_ATOM_L1I_MISSES,
	PNE_ATOM_L1I_READS,
	PNE_ATOM_L2_ADS,
	PNE_ATOM_L2_DBUS_BUSY_RD,
	PNE_ATOM_L2_IFETCH,
	PNE_ATOM_L2_LD,
	PNE_ATOM_L2_LINES_IN,
	PNE_ATOM_L2_LINES_OUT,
	PNE_ATOM_L2_LOCK,
	PNE_ATOM_L2_M_LINES_IN,
	PNE_ATOM_L2_M_LINES_OUT,
	PNE_ATOM_L2_NO_REQ,
	PNE_ATOM_L2_REJECT_BUSQ,
	PNE_ATOM_L2_RQSTS,
	PNE_ATOM_L2_RQSTS_SELF_DEMAND_I_STATE,
	PNE_ATOM_L2_RQSTS_SELF_DEMAND_MESI,
	PNE_ATOM_L2_ST,
	PNE_ATOM_LOAD_BLOCK_L1D,
	PNE_ATOM_LOAD_BLOCK_OVERLAP_STORE,
	PNE_ATOM_LOAD_BLOCK_STA,
	PNE_ATOM_LOAD_BLOCK_STD,
	PNE_ATOM_LOAD_BLOCK_UNTIL_RETIRE,
	PNE_ATOM_LOAD_HIT_PRE,
	PNE_ATOM_MACHINE_CLEARS_SMC,
	PNE_ATOM_MACHINE_NUKES_MEM_ORDER,
	PNE_ATOM_MACRO_INSTS_ALL_DECODED,
	PNE_ATOM_MACRO_INSTS_CISC_DECODED,
	PNE_ATOM_MEMORY_DISAMBIGUATION_RESET,
	PNE_ATOM_MEMORY_DISAMBIGUATION_SUCCESS,
	PNE_ATOM_MEM_LOAD_RETIRED_DTLB_MISS,
	PNE_ATOM_MEM_LOAD_RETIRED_L2_MISS,
	PNE_ATOM_MEM_LOAD_RETIRED_L2_HIT,
	PNE_ATOM_MEM_LOAD_RETIRED_L2_LINE_MISS,
	PNE_ATOM_MUL,
	PNE_ATOM_MUL_AR,
	PNE_ATOM_MUL_S,
	PNE_ATOM_PAGE_WALKS_WALKS,
	PNE_ATOM_PAGE_WALKS_CYCLES,
	PNE_ATOM_PREF_RQSTS_DN,
	PNE_ATOM_PREF_RQSTS_UP,
	PNE_ATOM_PREFETCH_PREFETCHNTA,
	PNE_ATOM_PREFETCH_PREFETCHT0,
	PNE_ATOM_PREFETCH_SW_L2,
	PNE_ATOM_RAT_STALLS_ANY,
	PNE_ATOM_RAT_STALLS_FLAGS,
	PNE_ATOM_RAT_STALLS_FPSW,
	PNE_ATOM_RAT_STALLS_PARTIAL_CYCLES,
	PNE_ATOM_RAT_STALLS_ROB_READ_PORT,
	PNE_ATOM_RESOURCE_STALLS_ANY,
	PNE_ATOM_RESOURCE_STALLS_BR_MISS_CLEAR,
	PNE_ATOM_RESOURCE_STALLS_FPCW,
	PNE_ATOM_RESOURCE_STALLS_LD_ST,
	PNE_ATOM_RESOURCE_STALLS_ROB_FULL,
	PNE_ATOM_RESOURCE_STALLS_RS_FULL,
	PNE_ATOM_RS_UOPS_DISPATCHED,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT0,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT1,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT2,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT3,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT4,
	PNE_ATOM_RS_UOPS_DISPATCHED_PORT5,
	PNE_ATOM_SB_DRAIN_CYCLES,
	PNE_ATOM_SEGMENT_REG_LOADS_ANY,
	PNE_ATOM_SEG_REG_RENAMES_ANY,
	PNE_ATOM_SEG_REG_RENAMES_DS,
	PNE_ATOM_SEG_REG_RENAMES_ES,
	PNE_ATOM_SEG_REG_RENAMES_FS,
	PNE_ATOM_SEG_REG_RENAMES_GS,
	PNE_ATOM_SEG_RENAME_STALLS_ANY,
	PNE_ATOM_SEG_RENAME_STALLS_DS,
	PNE_ATOM_SEG_RENAME_STALLS_ES,
	PNE_ATOM_SEG_RENAME_STALLS_FS,
	PNE_ATOM_SEG_RENAME_STALLS_GS,
	PNE_ATOM_SIMD_ASSIST,
	PNE_ATOM_SIMD_COMP_INST_RETIRED_PACKED_DOUBLE,
	PNE_ATOM_SIMD_COMP_INST_RETIRED_PACKED_SINGLE,
	PNE_ATOM_SIMD_COMP_INST_RETIRED_SCALAR_DOUBLE,
	PNE_ATOM_SIMD_COMP_INST_RETIRED_SCALAR_SINGLE,
	PNE_ATOM_SIMD_INSTR_RETIRED,
	PNE_ATOM_SIMD_INST_RETIRED_ANY,
	PNE_ATOM_SIMD_INST_RETIRED_PACKED_DOUBLE,
	PNE_ATOM_SIMD_INST_RETIRED_PACKED_SINGLE,
	PNE_ATOM_SIMD_INST_RETIRED_SCALAR_DOUBLE,
	PNE_ATOM_SIMD_INST_RETIRED_SCALAR_SINGLE,
	PNE_ATOM_SIMD_INST_RETIRED_VECTOR,
	PNE_ATOM_SIMD_SAT_INSTR_RETIRED,
	PNE_ATOM_SIMD_SAT_UOP_EXEC_AR,
	PNE_ATOM_SIMD_SAT_UOP_EXEC_S,
	PNE_ATOM_SIMD_UOPS_EXEC_AR,
	PNE_ATOM_SIMD_UOPS_EXEC_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_ARITHMETIC_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_ARITHMETIC_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_LOGICAL_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_LOGICAL_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_MUL_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_MUL_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_PACK_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_PACK_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_SHIFT_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_SHIFT_S,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_UNPACK_AR,
	PNE_ATOM_SIMD_UOP_TYPE_EXEC_UNPACK_S,
	PNE_ATOM_SNOOP_STALL_DRV,
	PNE_ATOM_SSE_PRE_EXEC_L2,
	PNE_ATOM_SSE_PRE_EXEC_STORES,
	PNE_ATOM_SSE_PRE_MISS_L1,
	PNE_ATOM_SSE_PRE_MISS_L2,
	PNE_ATOM_SSE_PRE_MISS_NTA,
	PNE_ATOM_STORE_BLOCK_ORDER,
	PNE_ATOM_STORE_BLOCK_SNOOP,
	PNE_ATOM_STORE_FORWARDS_GOOD,
	PNE_ATOM_THERMAL_TRIP,
	PNE_ATOM_UOPS_RETIRED_LD_IND_BR,
	PNE_ATOM_UOPS_RETIRED_STD_STA,
	PNE_ATOM_UOPS_RETIRED_MACRO_FUSION,
	PNE_ATOM_UOPS_RETIRED_FUSED,
	PNE_ATOM_UOPS_RETIRED_NON_FUSED,
	PNE_ATOM_UOPS_RETIRED_ANY,
	PNE_ATOM_X87_COMP_OPS_EXE_ANY_AR,
	PNE_ATOM_X87_COMP_OPS_EXE_ANY_S,
	PNE_ATOM_X87_OPS_RETIRED_ANY,
	PNE_ATOM_X87_OPS_RETIRED_FXCH,
	PNE_ATOM_NATNAME_GUARD
};

extern Native_Event_LabelDescription_t AtomProcessor_info[];
extern hwi_search_t AtomProcessor_map[];

#endif
