Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / sam / cpus / vonk / ss / api / sam / src / SS_SamTracer.h
CommitLineData
920dae64
AT
1/*
2* ========== Copyright Header Begin ==========================================
3*
4* OpenSPARC T2 Processor File: SS_SamTracer.h
5* Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
6* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
7*
8* The above named program is free software; you can redistribute it and/or
9* modify it under the terms of the GNU General Public
10* License version 2 as published by the Free Software Foundation.
11*
12* The above named program is distributed in the hope that it will be
13* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15* General Public License for more details.
16*
17* You should have received a copy of the GNU General Public
18* License along with this work; if not, write to the Free Software
19* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20*
21* ========== Copyright Header End ============================================
22*/
23
24#ifndef __SS_SamTracer_h__
25#define __SS_SamTracer_h__
26
27#include "SS_Tracer.h"
28namespace Sam {
29#include "vtracer.h"
30}
31
32class SS_VirtualStrand;
33
34class SS_SamTracer : public SS_Tracer
35{
36 public:
37 SS_SamTracer(SS_VirtualStrand *_strand);
38
39 private:
40 static void ss_sam_exe_instr ( SS_Tracer* trc, SS_Vaddr pc, SS_Tte* tte, SS_Instr* i );
41 static void ss_sam_reg_value ( SS_Tracer* trc, SS_Registers::Index index, uint64_t value );
42 static void ss_sam_trap ( SS_Tracer* trc, SS_Trap::Type tt, TrapMode mode, SS_Vaddr ea );
43 static void ss_sam_end_instr ( SS_Tracer* trc );
44 static void ss_sam_tlb_update( SS_Tracer* trc, bool insert, SS_Tlb* tlb, uint_t index, SS_Tte* tte );
45 static void ss_sam_mem_acc ( SS_Tracer* trc, MemAccess type, SS_Vaddr va, SS_Tte* tte, uint_t size, uint64_t* val);
46 static void ss_sam_asi_acc ( SS_Tracer* trc, MemAccess type, uint8_t asi, SS_Vaddr va, uint64_t* val);
47 static void ss_sam_hwop ( SS_Tracer* trc, MemAccess type, SS_Paddr addr, uint_t size, uint64_t *value );
48
49
50 SS_VirtualStrand* vcpu;
51
52 Sam::VCPU_Instruction irec; // instruction record
53 Sam::VCPU_Trap trec; // trap record
54 Sam::VCPU_Trap atrec; // async trap record
55};
56
57#endif
58
59
60
61
62