|
@@ -8,7 +8,6 @@
|
|
#include <linux/mm.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/utsname.h>
|
|
#include <linux/utsname.h>
|
|
#include <linux/mman.h>
|
|
#include <linux/mman.h>
|
|
-#include <linux/notifier.h>
|
|
|
|
#include <linux/reboot.h>
|
|
#include <linux/reboot.h>
|
|
#include <linux/prctl.h>
|
|
#include <linux/prctl.h>
|
|
#include <linux/highuid.h>
|
|
#include <linux/highuid.h>
|
|
@@ -319,6 +318,37 @@ void kernel_restart_prepare(char *cmd)
|
|
syscore_shutdown();
|
|
syscore_shutdown();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * register_reboot_notifier - Register function to be called at reboot time
|
|
|
|
+ * @nb: Info about notifier function to be called
|
|
|
|
+ *
|
|
|
|
+ * Registers a function with the list of functions
|
|
|
|
+ * to be called at reboot time.
|
|
|
|
+ *
|
|
|
|
+ * Currently always returns zero, as blocking_notifier_chain_register()
|
|
|
|
+ * always returns zero.
|
|
|
|
+ */
|
|
|
|
+int register_reboot_notifier(struct notifier_block *nb)
|
|
|
|
+{
|
|
|
|
+ return blocking_notifier_chain_register(&reboot_notifier_list, nb);
|
|
|
|
+}
|
|
|
|
+EXPORT_SYMBOL(register_reboot_notifier);
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * unregister_reboot_notifier - Unregister previously registered reboot notifier
|
|
|
|
+ * @nb: Hook to be unregistered
|
|
|
|
+ *
|
|
|
|
+ * Unregisters a previously registered reboot
|
|
|
|
+ * notifier function.
|
|
|
|
+ *
|
|
|
|
+ * Returns zero on success, or %-ENOENT on failure.
|
|
|
|
+ */
|
|
|
|
+int unregister_reboot_notifier(struct notifier_block *nb)
|
|
|
|
+{
|
|
|
|
+ return blocking_notifier_chain_unregister(&reboot_notifier_list, nb);
|
|
|
|
+}
|
|
|
|
+EXPORT_SYMBOL(unregister_reboot_notifier);
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* kernel_restart - reboot the system
|
|
* kernel_restart - reboot the system
|
|
* @cmd: pointer to buffer containing command to execute for restart
|
|
* @cmd: pointer to buffer containing command to execute for restart
|