Deleted Added
sdiff udiff text old ( 8711:c7e14f52c682 ) new ( 8746:42d3554b1c35 )
full compact
1/*
2 * Copyright (c) 2008 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

65 EndBitUnion(RedirTableEntry)
66
67 protected:
68 Tick latency;
69 Addr pioAddr;
70
71 I8259 * extIntPic;
72
73 uint8_t regSel;
74 uint8_t initialApicId;
75 uint8_t id;
76 uint8_t arbId;
77
78 uint64_t lowestPriorityOffset;
79
80 static const uint8_t TableSize = 24;

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

96
97 I82094AA(Params *p);
98
99 void init();
100
101 Tick read(PacketPtr pkt);
102 Tick write(PacketPtr pkt);
103
104 void addressRanges(AddrRangeList &range_list)
105 {
106 range_list.clear();
107 range_list.push_back(RangeEx(pioAddr, pioAddr + 4));
108 range_list.push_back(RangeEx(pioAddr + 16, pioAddr + 20));
109 }
110
111 void getIntAddrRange(AddrRangeList &range_list)
112 {
113 range_list.clear();
114 range_list.push_back(RangeEx(x86InterruptAddress(initialApicId, 0),
115 x86InterruptAddress(initialApicId, 0) +
116 PhysAddrAPICRangeSize));
117 }
118
119 void writeReg(uint8_t offset, uint32_t value);
120 uint32_t readReg(uint8_t offset);
121
122 Port *getPort(const std::string &if_name, int idx = -1)
123 {
124 if (if_name == "int_port")
125 return intPort;
126 return PioDevice::getPort(if_name, idx);
127 }
128
129 void signalInterrupt(int line);
130 void raiseInterruptPin(int number);
131 void lowerInterruptPin(int number);
132
133 virtual void serialize(std::ostream &os);
134 virtual void unserialize(Checkpoint *cp, const std::string &section);
135};
136
137} // namespace X86ISA
138
139#endif //__DEV_X86_SOUTH_BRIDGE_I8254_HH__