extern asmlinkage long (*original_reboot)(int magic1, int magic2, unsigned int cmd, void __user *arg);
+#if 1
static struct notifier_block dummy_notifier_reboot = {
.notifier_call = NULL,
.next = NULL,
};
BLOCKING_NOTIFIER_HEAD(notifier_head);
+#endif
void kernel_restart_prepare(char *cmd)
{
+#if 0
+#warning assuming kernel_restart_prepare is at 0xc00779cc
+ void (*original_kernel_restart_prepare)(char *) = (void (*)(char *))0xc00779cc;
+ //void (*original_kernel_restart_prepare)(char *) = (void (*)(char *))KERNEL_RESTART_PREPARE;
+ return original_kernel_restart_prepare(cmd);
+#else
register_reboot_notifier(&dummy_notifier_reboot);
notifier_head.head=dummy_notifier_reboot.next;
unregister_reboot_notifier(&dummy_notifier_reboot);
blocking_notifier_call_chain(¬ifier_head, SYS_RESTART, cmd);
system_state = SYSTEM_RESTART;
-// device_shutdown();
-// sysdev_shutdown();
+ //device_shutdown();
+ //sysdev_shutdown();
+#endif
}
/*