i82094aa.hh (5643:2b1611137af4) i82094aa.hh (5651:7f0c8006c3d7)
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;

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

55 Bitfield<13> polarity;
56 Bitfield<12> deliveryStatus;
57 Bitfield<11> destMode;
58 Bitfield<10, 8> deliveryMode;
59 Bitfield<7, 0> vector;
60 EndBitUnion(RedirTableEntry)
61
62 protected:
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;

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

55 Bitfield<13> polarity;
56 Bitfield<12> deliveryStatus;
57 Bitfield<11> destMode;
58 Bitfield<10, 8> deliveryMode;
59 Bitfield<7, 0> vector;
60 EndBitUnion(RedirTableEntry)
61
62 protected:
63 System * system;
63 Tick latency;
64 Addr pioAddr;
65
66 uint8_t regSel;
67 uint8_t id;
68 uint8_t arbId;
69
70 static const uint8_t TableSize = 24;

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

90
91 void addressRanges(AddrRangeList &range_list)
92 {
93 range_list.clear();
94 range_list.push_back(RangeEx(pioAddr, pioAddr + 4));
95 range_list.push_back(RangeEx(pioAddr + 16, pioAddr + 20));
96 }
97
64 Tick latency;
65 Addr pioAddr;
66
67 uint8_t regSel;
68 uint8_t id;
69 uint8_t arbId;
70
71 static const uint8_t TableSize = 24;

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

91
92 void addressRanges(AddrRangeList &range_list)
93 {
94 range_list.clear();
95 range_list.push_back(RangeEx(pioAddr, pioAddr + 4));
96 range_list.push_back(RangeEx(pioAddr + 16, pioAddr + 20));
97 }
98
99 void getIntAddrRange(AddrRangeList &range_list)
100 {
101 range_list.clear();
102 range_list.push_back(RangeEx(x86InterruptAddress(1, 0),
103 x86InterruptAddress(1, 0) + PhysAddrAPICRangeSize));
104 }
105
98 void writeReg(uint8_t offset, uint32_t value);
99 uint32_t readReg(uint8_t offset);
100
106 void writeReg(uint8_t offset, uint32_t value);
107 uint32_t readReg(uint8_t offset);
108
109 Port *getPort(const std::string &if_name, int idx = -1)
110 {
111 if (if_name == "int_port")
112 return intPort;
113 return PioDevice::getPort(if_name, idx);
114 }
115
101 void signalInterrupt(int line);
102};
103
104}; // namespace X86ISA
105
106#endif //__DEV_X86_SOUTH_BRIDGE_I8254_HH__
116 void signalInterrupt(int line);
117};
118
119}; // namespace X86ISA
120
121#endif //__DEV_X86_SOUTH_BRIDGE_I8254_HH__