15a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng/**
25a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @file daemon/opd_ibs_trans.h
35a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * AMD Family10h Instruction Based Sampling (IBS) translation.
45a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng *
55a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @remark Copyright 2008 OProfile authors
65a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @remark Read the file COPYING
75a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng *
85a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @author Jason Yeh <jason.yeh@amd.com>
95a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @author Paul Drongowski <paul.drongowski@amd.com>
105a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * @author Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
115a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng * Copyright (c) 2008 Advanced Micro Devices, Inc.
125a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng */
135a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng
145a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng#ifndef OPD_IBS_TRANS_H
155a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng#define OPD_IBS_TRANS_H
165a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng
175a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Chengstruct ibs_fetch_sample;
185a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Chengstruct ibs_op_sample;
195a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Chengstruct transient;
205a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng
215a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Chengstruct ibs_translation_table {
225a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng	unsigned int event;
235a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng	void (*translator)(struct transient *);
245a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng};
255a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng
265a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng
277a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_fetch (struct transient * trans, unsigned int selected_flag);
287a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op (struct transient * trans, unsigned int selected_flag);
297a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op_ls (struct transient * trans, unsigned int selected_flag);
307a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op_nb (struct transient * trans, unsigned int selected_flag);
317a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern int  trans_ibs_op_rip_invalid (struct transient * trans);
327a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op_mask_reserved (unsigned int family, struct transient * trans);
337a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op_ls_memaccess(struct transient * trans);
347a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownextern void trans_ibs_op_bta (struct transient * trans);
355a4eb4eb367eccd4b976d1feae96cea96d2c50f2Ben Cheng#endif // OPD_IBS_TRANS_H
36