PrintError("apic %u: core %u: Attempting to write to read only register %p (error)\n",
apic->lapic_id.val, core->cpu_id, (void *)reg_addr);
- return -1;
+ // return -1;
break;
apic->task_prio.val = op_val;
break;
case LDR_OFFSET:
+ PrintDebug("apic %u: core %u: setting log_dst.val to 0x%x\n",
+ apic->lapic_id.val, core->cpu_id, op_val);
apic->log_dst.val = op_val;
break;
case DFR_OFFSET:
// ICC???
PrintDebug("apic %u: core %u: sending cmd 0x%llx to apic %u\n",
- apic->clapic_id.val, core->cpu_id,
+ apic->lapic_id.val, core->cpu_id,
apic->int_cmd.val, apic->int_cmd.dst);
if (v3_icc_send_ipi(apic->icc_bus, apic->lapic_id.val, apic->int_cmd.val,apic->dst_fmt.val,0)==-1) {
return -1;
if (mda==0xff || // broadcast or
(apic->log_dst.dst_log_id & mda)) { // I am in the set
+ PrintDebug("apic %u core %u: accepting flat IRQ (mda 0x%x == log_dst 0x%x)\n",
+ apic->lapic_id.val, core->cpu_id, mda, apic->log_dst.dst_log_id);
return 1;
} else {
+ PrintDebug("apic %u core %u: rejecting flat IRQ (mda 0x%x != log_dst 0x%x)\n",
+ apic->lapic_id.val, core->cpu_id, mda, apic->log_dst.dst_log_id);
return 0;
}
}
if (mda==0xff || // broadcast or
( ((mda & 0xf0) == (apic->log_dst.dst_log_id & 0xf0)) && // (I am in the cluster and
((mda & 0x0f) & (apic->log_dst.dst_log_id & 0x0f)) ) ) { // I am in the set)
+ PrintDebug("apic %u core %u: accepting clustered IRQ (mda 0x%x == log_dst 0x%x)\n",
+ apic->lapic_id.val, core->cpu_id, mda, apic->log_dst.dst_log_id);
+
return 1;
} else {
+ PrintDebug("apic %u core %u: rejecting clustered IRQ (mda 0x%x != log_dst 0x%x)\n",
+ apic->lapic_id.val, core->cpu_id, mda, apic->log_dst.dst_log_id);
return 0;
}
}