interrupts.hh (8285:c38905a6fa32) | interrupts.hh (8518:9c87727099ce) |
---|---|
1/* 2 * Copyright (c) 2010 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 --- 120 unchanged lines hidden (view full) --- 129 if (!intStatus) 130 return false; 131 132 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR); 133 134 return ((interrupts[INT_IRQ] && !cpsr.i) || 135 (interrupts[INT_FIQ] && !cpsr.f) || 136 (interrupts[INT_ABT] && !cpsr.a) || | 1/* 2 * Copyright (c) 2010 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 --- 120 unchanged lines hidden (view full) --- 129 if (!intStatus) 130 return false; 131 132 CPSR cpsr = tc->readMiscReg(MISCREG_CPSR); 133 134 return ((interrupts[INT_IRQ] && !cpsr.i) || 135 (interrupts[INT_FIQ] && !cpsr.f) || 136 (interrupts[INT_ABT] && !cpsr.a) || |
137 (interrupts[INT_RST])); | 137 (interrupts[INT_RST]) || 138 (interrupts[INT_SEV])); |
138 } 139 140 /** 141 * Check the raw interrupt state. 142 * This function is used to check if a wfi operation should sleep. If there 143 * is an interrupt pending, even if it's masked, wfi doesn't sleep. 144 * @return any interrupts pending 145 */ --- 16 unchanged lines hidden (view full) --- 162 return new Interrupt; 163 if (interrupts[INT_FIQ] && !cpsr.f) 164 return new FastInterrupt; 165 if (interrupts[INT_ABT] && !cpsr.a) 166 return new DataAbort(0, false, 0, 167 ArmFault::AsynchronousExternalAbort); 168 if (interrupts[INT_RST]) 169 return new Reset; | 139 } 140 141 /** 142 * Check the raw interrupt state. 143 * This function is used to check if a wfi operation should sleep. If there 144 * is an interrupt pending, even if it's masked, wfi doesn't sleep. 145 * @return any interrupts pending 146 */ --- 16 unchanged lines hidden (view full) --- 163 return new Interrupt; 164 if (interrupts[INT_FIQ] && !cpsr.f) 165 return new FastInterrupt; 166 if (interrupts[INT_ABT] && !cpsr.a) 167 return new DataAbort(0, false, 0, 168 ArmFault::AsynchronousExternalAbort); 169 if (interrupts[INT_RST]) 170 return new Reset; |
171 if (interrupts[INT_SEV]) 172 return new ArmSev; |
|
170 171 panic("intStatus and interrupts not in sync\n"); 172 } 173 174 void 175 updateIntrInfo(ThreadContext *tc) 176 { 177 ; // nothing to do --- 19 unchanged lines hidden --- | 173 174 panic("intStatus and interrupts not in sync\n"); 175 } 176 177 void 178 updateIntrInfo(ThreadContext *tc) 179 { 180 ; // nothing to do --- 19 unchanged lines hidden --- |