interrupts.hh (5704:98224505352a) interrupts.hh (5810:606de5b3d116)
1/*
2 * Copyright (c) 2006 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;

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

43namespace AlphaISA {
44
45class Interrupts : public SimObject
46{
47 private:
48 bool newInfoSet;
49 int newIpl;
50 int newSummary;
1/*
2 * Copyright (c) 2006 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;

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

43namespace AlphaISA {
44
45class Interrupts : public SimObject
46{
47 private:
48 bool newInfoSet;
49 int newIpl;
50 int newSummary;
51 BaseCPU * cpu;
51
52 protected:
53 uint64_t interrupts[NumInterruptLevels];
54 uint64_t intstatus;
55
56 public:
57 typedef AlphaInterruptsParams Params;
58
59 const Params *
60 params() const
61 {
62 return dynamic_cast<const Params *>(_params);
63 }
64
52
53 protected:
54 uint64_t interrupts[NumInterruptLevels];
55 uint64_t intstatus;
56
57 public:
58 typedef AlphaInterruptsParams Params;
59
60 const Params *
61 params() const
62 {
63 return dynamic_cast<const Params *>(_params);
64 }
65
65 Interrupts(Params * p) : SimObject(p)
66 Interrupts(Params * p) : SimObject(p), cpu(NULL)
66 {
67 memset(interrupts, 0, sizeof(interrupts));
68 intstatus = 0;
69 newInfoSet = false;
70 }
71
72 void
67 {
68 memset(interrupts, 0, sizeof(interrupts));
69 intstatus = 0;
70 newInfoSet = false;
71 }
72
73 void
74 setCPU(BaseCPU * _cpu)
75 {
76 cpu = _cpu;
77 }
78
79 void
73 post(int int_num, int index)
74 {
75 DPRINTF(Interrupt, "Interrupt %d:%d posted\n", int_num, index);
76
77 if (int_num < 0 || int_num >= NumInterruptLevels)
78 panic("int_num out of bounds\n");
79
80 if (index < 0 || index >= (int)sizeof(uint64_t) * 8)

--- 110 unchanged lines hidden ---
80 post(int int_num, int index)
81 {
82 DPRINTF(Interrupt, "Interrupt %d:%d posted\n", int_num, index);
83
84 if (int_num < 0 || int_num >= NumInterruptLevels)
85 panic("int_num out of bounds\n");
86
87 if (index < 0 || index >= (int)sizeof(uint64_t) * 8)

--- 110 unchanged lines hidden ---