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;

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

32#define __DEV_X86_I82094AA_HH__
33
34#include "base/bitunion.hh"
35#include "base/range_map.hh"
36#include "dev/io_device.hh"
37#include "dev/x86/intdev.hh"
38#include "params/I82094AA.hh"
39
40#include <map>
41
42namespace X86ISA
43{
44
45class I8259;
46class Interrupts;
47
48class I82094AA : public PioDevice, public IntDev
49{
50 public:
51 BitUnion64(RedirTableEntry)
52 Bitfield<63, 32> topDW;
53 Bitfield<55, 32> topReserved;
54 Bitfield<31, 0> bottomDW;

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

65 EndBitUnion(RedirTableEntry)
66
67 protected:
68 Tick latency;
69 Addr pioAddr;
70
71 I8259 * extIntPic;
72
73 std::map<int, Interrupts *> localApics;
74
75 uint8_t regSel;
76 uint8_t initialApicId;
77 uint8_t id;
78 uint8_t arbId;
79
80 static const uint8_t TableSize = 24;
81 // This implementation is based on version 0x11, but 0x14 avoids having
82 // to deal with the arbitration and APIC bus guck.

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

122 if (if_name == "int_port")
123 return intPort;
124 return PioDevice::getPort(if_name, idx);
125 }
126
127 void signalInterrupt(int line);
128 void raiseInterruptPin(int number);
129 void lowerInterruptPin(int number);
130 void registerLocalApic(int id, Interrupts *localApic);
131};
132
133}; // namespace X86ISA
134
135#endif //__DEV_X86_SOUTH_BRIDGE_I8254_HH__