Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
[pandora-kernel.git] / arch / x86 / kernel / asm-offsets_64.c
index 778953b..d1b6ed9 100644 (file)
 #include <asm/segment.h>
 #include <asm/thread_info.h>
 #include <asm/ia32.h>
+#include <asm/bootparam.h>
 
 #define DEFINE(sym, val) \
         asm volatile("\n->" #sym " %0 " #val : : "i" (val))
 
 #define BLANK() asm volatile("\n->" : : )
 
+#define OFFSET(sym, str, mem) \
+       DEFINE(sym, offsetof(struct str, mem))
+
 #define __NO_STUBS 1
 #undef __SYSCALL
 #undef _ASM_X86_64_UNISTD_H_
@@ -76,10 +80,44 @@ int main(void)
        DEFINE(pbe_orig_address, offsetof(struct pbe, orig_address));
        DEFINE(pbe_next, offsetof(struct pbe, next));
        BLANK();
+#define ENTRY(entry) DEFINE(pt_regs_ ## entry, offsetof(struct pt_regs, entry))
+       ENTRY(rbx);
+       ENTRY(rbx);
+       ENTRY(rcx);
+       ENTRY(rdx);
+       ENTRY(rsp);
+       ENTRY(rbp);
+       ENTRY(rsi);
+       ENTRY(rdi);
+       ENTRY(r8);
+       ENTRY(r9);
+       ENTRY(r10);
+       ENTRY(r11);
+       ENTRY(r12);
+       ENTRY(r13);
+       ENTRY(r14);
+       ENTRY(r15);
+       ENTRY(eflags);
+       BLANK();
+#undef ENTRY
+#define ENTRY(entry) DEFINE(saved_context_ ## entry, offsetof(struct saved_context, entry))
+       ENTRY(cr0);
+       ENTRY(cr2);
+       ENTRY(cr3);
+       ENTRY(cr4);
+       ENTRY(cr8);
+       BLANK();
+#undef ENTRY
        DEFINE(TSS_ist, offsetof(struct tss_struct, ist));
        BLANK();
        DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx));
        BLANK();
        DEFINE(__NR_syscall_max, sizeof(syscalls) - 1);
+
+       BLANK();
+       OFFSET(BP_scratch, boot_params, scratch);
+       OFFSET(BP_loadflags, boot_params, hdr.loadflags);
+       OFFSET(BP_hardware_subarch, boot_params, hdr.hardware_subarch);
+       OFFSET(BP_version, boot_params, hdr.version);
        return 0;
 }