|
From: Kenn H. <ke...@us...> - 2004-09-30 08:27:06
|
Update of /cvsroot/linux-vax/kernel-2.5/include/asm-vax In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27333/include/asm-vax Modified Files: mv.h Log Message: Stuff the actual contents of the machvec_match structures into the relevant section, rather than pointers to them (simplifies the code). Also need to be careful about pointers to things in the kernel at this early stage of boot. In code, we've got MOVAx instructions with PC-relative addressing that are nicely position independent, but pointers embedded in data structures by the linker (such as machvec_match.mv) will always have S0-space addresses (such as 0x80123456). So, the new id_cpu function needs to correct for this before returning to the boot code. Was the first-cut matching stuff boot tested on KA46? I can't see how it would have worked :-) Index: mv.h =================================================================== RCS file: /cvsroot/linux-vax/kernel-2.5/include/asm-vax/mv.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- mv.h 29 Sep 2004 14:20:27 -0000 1.22 +++ mv.h 30 Sep 2004 08:26:56 -0000 1.23 @@ -66,8 +66,8 @@ #undef USE_NEW_VECTORS #ifdef USE_NEW_VECTORS /* - * This defines a match for a machine vector and a macro to install - * such a match structure. + * This defines a match for a machine vector and a macro to place + * such a match structure into the right section at link time */ struct machvec_match { struct vax_mv *mv; @@ -78,10 +78,8 @@ unsigned long sidex_match; }; -#define SET_VECTOR(vec) \ - static struct machvec_match *__init_vecmatch_##vec \ - __attribute_used__ \ - __attribute__((__section__(".init.vecmatch"))) = &(vec) +#define __CPU_MATCH __attribute__((__section__(".init.vecmatch"))) + #endif /* USE_NEW_VECTORS */ |