gic_v2.cc (13230:2988dc5d1d6f) | gic_v2.cc (13337:36a857f9adaf) |
---|---|
1/* 2 * Copyright (c) 2010, 2013, 2015-2018 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 --- 587 unchanged lines hidden (view full) --- 596 panic("Done handling a SGI that isn't active?\n"); 597 if (gem5ExtensionsEnabled) 598 cpuSgiActiveExt[ctx] &= ~(1 << iar.ack_id); 599 else 600 cpuSgiActive[iar.ack_id] &= ~clr_int; 601 } else if (iar.ack_id < (SGI_MAX + PPI_MAX) ) { 602 uint32_t int_num = 1 << (iar.ack_id - SGI_MAX); 603 if (!(cpuPpiActive[ctx] & int_num)) | 1/* 2 * Copyright (c) 2010, 2013, 2015-2018 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 --- 587 unchanged lines hidden (view full) --- 596 panic("Done handling a SGI that isn't active?\n"); 597 if (gem5ExtensionsEnabled) 598 cpuSgiActiveExt[ctx] &= ~(1 << iar.ack_id); 599 else 600 cpuSgiActive[iar.ack_id] &= ~clr_int; 601 } else if (iar.ack_id < (SGI_MAX + PPI_MAX) ) { 602 uint32_t int_num = 1 << (iar.ack_id - SGI_MAX); 603 if (!(cpuPpiActive[ctx] & int_num)) |
604 panic("CPU %d Done handling a PPI interrupt " | 604 warn("CPU %d Done handling a PPI interrupt " |
605 "that isn't active?\n", ctx); 606 cpuPpiActive[ctx] &= ~int_num; 607 } else { 608 uint32_t int_num = 1 << intNumToBit(iar.ack_id); 609 if (!(getActiveInt(ctx, intNumToWord(iar.ack_id)) & int_num)) 610 warn("Done handling interrupt that isn't active: %d\n", 611 intNumToBit(iar.ack_id)); 612 getActiveInt(ctx, intNumToWord(iar.ack_id)) &= ~int_num; --- 470 unchanged lines hidden --- | 605 "that isn't active?\n", ctx); 606 cpuPpiActive[ctx] &= ~int_num; 607 } else { 608 uint32_t int_num = 1 << intNumToBit(iar.ack_id); 609 if (!(getActiveInt(ctx, intNumToWord(iar.ack_id)) & int_num)) 610 warn("Done handling interrupt that isn't active: %d\n", 611 intNumToBit(iar.ack_id)); 612 getActiveInt(ctx, intNumToWord(iar.ack_id)) &= ~int_num; --- 470 unchanged lines hidden --- |