printk("TBOOT: found shared page at phys addr %lx:\n", p_tboot_shared);
printk(" version: %d\n", tboot_shared->version);
printk(" log_addr: 0x%08x\n", tboot_shared->log_addr);
- printk(" shutdown_entry32: 0x%08x\n", tboot_shared->shutdown_entry32);
- printk(" shutdown_entry64: 0x%08x\n", tboot_shared->shutdown_entry64);
+ printk(" shutdown_entry: 0x%08x\n", tboot_shared->shutdown_entry);
printk(" shutdown_type: %d\n", tboot_shared->shutdown_type);
printk(" s3_tb_wakeup_entry: 0x%08x\n", tboot_shared->s3_tb_wakeup_entry);
printk(" s3_k_wakeup_entry: 0x%08x\n", tboot_shared->s3_k_wakeup_entry);
write_ptbase(idle_vcpu[0]);
-#ifdef __x86_64__
- asm volatile ( "call *%%rdi" :: "D" (g_tboot_shared->shutdown_entry64) );
-#else
- asm volatile ( "call *%0" :: "r" (g_tboot_shared->shutdown_entry32) );
-#endif
+ ((void(*)(void))(unsigned long)g_tboot_shared->shutdown_entry)();
BUG(); /* should not reach here */
}
uuid_t uuid; /* {663C8DFF-E8B3-4b82-AABF-19EA4D057A08} */
uint32_t version; /* Version number: 0x01, 0x02, ... */
uint32_t log_addr; /* physical addr of tb_log_t log */
- uint32_t shutdown_entry32; /* entry point for tboot shutdown from 32b */
- uint32_t shutdown_entry64; /* entry point for tboot shutdown from 64b */
+ uint32_t shutdown_entry; /* entry point for tboot shutdown */
uint32_t shutdown_type; /* type of shutdown (TB_SHUTDOWN_*) */
uint32_t s3_tb_wakeup_entry;/* entry point for tboot s3 wake up */
uint32_t s3_k_wakeup_entry; /* entry point for xen s3 wake up */