> i had to make the following changes to the kernel for xen3 to match up > to recent labs pc kernel and to compile successfully. can anyone > verify the changes are correct? (i could to a smoke test on EC2, but > don't feel adventurous at the moment)
The evenaddr function in trap.c should be replaced by validalign: void validalign(uintptr addr, unsigned align) { /* * Plan 9 is a 32-bit O/S, and the hardware it runs on * does not usually have instructions which move 64-bit * quantities directly, synthesizing the operations * with 32-bit move instructions. Therefore, the compiler * (and hardware) usually only enforce 32-bit alignment, * if at all. * * Take this out if the architecture warrants it. */ if(align == sizeof(vlong)) align = sizeof(long); /* * Check align is a power of 2, then addr alignment. */ if((align != 0 && !(align & (align-1))) && !(addr & (align-1))) return; postnote(up, 1, "sys: odd address", NDebug); error(Ebadarg); /*NOTREACHED*/ } This is a change done by Jim McKie on 2014-05-15. -- David du Colombier