/**
 * @file daemon/opd_ibs_trans.h
 * AMD Family10h Instruction Based Sampling (IBS) translation.
 *
 * @remark Copyright 2008 OProfile authors
 * @remark Read the file COPYING
 *
 * @author Jason Yeh <jason.yeh@amd.com>
 * @author Paul Drongowski <paul.drongowski@amd.com>
 * @author Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
 * Copyright (c) 2008 Advanced Micro Devices, Inc.
 */

#ifndef OPD_IBS_TRANS_H
#define OPD_IBS_TRANS_H

struct ibs_fetch_sample;
struct ibs_op_sample;
struct transient;

struct ibs_translation_table {
	unsigned int event;
	void (*translator)(struct transient *);
};


extern void trans_ibs_fetch (struct transient * trans, unsigned int selected_flag);
extern void trans_ibs_op (struct transient * trans, unsigned int selected_flag);
extern void trans_ibs_op_ls (struct transient * trans, unsigned int selected_flag);
extern void trans_ibs_op_nb (struct transient * trans, unsigned int selected_flag);
extern int  trans_ibs_op_rip_invalid (struct transient * trans);
extern void trans_ibs_op_mask_reserved (unsigned int family, struct transient * trans);
extern void trans_ibs_op_ls_memaccess(struct transient * trans);
extern void trans_ibs_op_bta (struct transient * trans);
#endif // OPD_IBS_TRANS_H