Deleted Added
sdiff udiff text old ( 11320:42ecb523c64a ) new ( 13892:0182a0601f66 )
full compact
1/*
2 * Copyright (c) 2012 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 35 unchanged lines hidden (view full) ---

44#define __DEV_X86_INTDEV_HH__
45
46#include <cassert>
47#include <list>
48#include <string>
49
50#include "arch/x86/intmessage.hh"
51#include "arch/x86/x86_traits.hh"
52#include "mem/mport.hh"
53#include "params/X86IntLine.hh"
54#include "params/X86IntSinkPin.hh"
55#include "params/X86IntSourcePin.hh"
56#include "sim/sim_object.hh"
57
58namespace X86ISA {
59
60typedef std::list<int> ApicList;
61
62class IntDevice
63{
64 protected:
65 class IntSlavePort : public MessageSlavePort
66 {
67 IntDevice * device;
68
69 public:
70 IntSlavePort(const std::string& _name, SimObject* _parent,
71 IntDevice* dev) :
72 MessageSlavePort(_name, _parent), device(dev)
73 {
74 }
75
76 AddrRangeList getAddrRanges() const
77 {
78 return device->getIntAddrRange();

--- 7 unchanged lines hidden (view full) ---

86 }
87 };
88
89 class IntMasterPort : public MessageMasterPort
90 {
91 IntDevice* device;
92 Tick latency;
93 public:
94 IntMasterPort(const std::string& _name, SimObject* _parent,
95 IntDevice* dev, Tick _latency) :
96 MessageMasterPort(_name, _parent), device(dev), latency(_latency)
97 {
98 }
99
100 Tick recvResponse(PacketPtr pkt)
101 {
102 return device->recvResponse(pkt);
103 }
104
105 // This is x86 focused, so if this class becomes generic, this would
106 // need to be moved into a subclass.
107 void sendMessage(ApicList apics,
108 TriggerIntMessage message, bool timing);
109 };
110
111 IntMasterPort intMasterPort;
112
113 public:
114 IntDevice(SimObject * parent, Tick latency = 0) :
115 intMasterPort(parent->name() + ".int_master", parent, this, latency)
116 {
117 }
118
119 virtual ~IntDevice()
120 {}
121
122 virtual void init();

--- 127 unchanged lines hidden ---