Annotation of qemu/hw/mips_int.c, revision 1.1.1.1

1.1       root        1: #include "vl.h"
                      2: #include "cpu.h"
                      3: 
                      4: /* Raise IRQ to CPU if necessary. It must be called every time the active
                      5:    IRQ may change */
                      6: void cpu_mips_update_irq(CPUState *env)
                      7: {
                      8:     if ((env->CP0_Status & env->CP0_Cause & CP0Ca_IP_mask) &&
                      9:         (env->CP0_Status & (1 << CP0St_IE)) &&
                     10:         !(env->hflags & MIPS_HFLAG_EXL) &&
                     11:        !(env->hflags & MIPS_HFLAG_ERL) &&
                     12:        !(env->hflags & MIPS_HFLAG_DM)) {
                     13:         if (! (env->interrupt_request & CPU_INTERRUPT_HARD)) {
                     14:             cpu_interrupt(env, CPU_INTERRUPT_HARD);
                     15:        }
                     16:     } else {
                     17:         cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);
                     18:     }
                     19: }
                     20: 
                     21: void cpu_mips_irq_request(void *opaque, int irq, int level)
                     22: {
                     23:     CPUState *env = first_cpu;
                     24:    
                     25:     uint32_t mask;
                     26: 
                     27:     if (irq >= 16)
                     28:         return;
                     29: 
                     30:     mask = 1 << (irq + CP0Ca_IP);
                     31: 
                     32:     if (level) {
                     33:         env->CP0_Cause |= mask;
                     34:     } else {
                     35:         env->CP0_Cause &= ~mask;
                     36:     }
                     37:     cpu_mips_update_irq(env);
                     38: }
                     39: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.