DEFINE(SYS_ERROR0,           0x9f0000);
   BLANK();
   DEFINE(SIZEOF_MACHINE_DESC,  sizeof(struct machine_desc));
+  DEFINE(MACHINFO_TYPE,                offsetof(struct machine_desc, nr));
+  DEFINE(MACHINFO_NAME,                offsetof(struct machine_desc, name));
+  DEFINE(MACHINFO_PHYSIO,      offsetof(struct machine_desc, phys_io));
+  DEFINE(MACHINFO_PGOFFIO,     offsetof(struct machine_desc, io_pg_offst));
+  DEFINE(PROCINFO_INITFUNC,    offsetof(struct proc_info_list, __cpu_flush));
+  DEFINE(PROCINFO_MMUFLAGS,    offsetof(struct proc_info_list, __cpu_mmu_flags));
   return 0; 
 }
 
 #include <asm/mach-types.h>
 #include <asm/procinfo.h>
 #include <asm/ptrace.h>
+#include <asm/asm-offsets.h>
 #include <asm/thread_info.h>
 #include <asm/system.h>
 
-#define PROCINFO_INITFUNC       12
-#define MACHINFO_TYPE          0
-
 /*
  * Kernel startup entry point.
  * ---------------------------
 
 #include <asm/thread_info.h>
 #include <asm/system.h>
 
-#define PROCINFO_MMUFLAGS      8
-#define PROCINFO_INITFUNC      12
-
-#define MACHINFO_TYPE          0
-#define MACHINFO_PHYSIO                4
-#define MACHINFO_PGOFFIO       8
-#define MACHINFO_NAME          12
-
 #define KERNEL_RAM_ADDR        (PAGE_OFFSET + TEXT_OFFSET)
 
 /*