Lines Matching refs:handler

166  *	@nb: Info about handler function to be called
169 * 0: Restart handler of last resort,
171 * 128: Default restart handler; use if no other
172 * restart handler is expected to be available,
175 * 255: Highest priority restart handler, will
186 * If more than one function is registered, the restart handler priority
192 * restart handlers may exist; for example, one restart handler might
194 * In such cases, the restart handler which only restarts part of the
209 * restart handler
212 * Unregisters a previously registered restart handler function.
223 * do_kernel_restart - Execute kernel restart handler call chain
230 * Restarts the system immediately if a restart handler function has been
332 struct sys_off_handler *handler;
335 handler = container_of(nb, struct sys_off_handler, nb);
336 data.cb_data = handler->cb_data;
339 data.dev = handler->dev;
341 return handler->sys_off_cb(&data);
348 struct sys_off_handler *handler;
352 * Platforms like m68k can't allocate sys_off handler dynamically
356 handler = &platform_sys_off_handler;
357 if (handler->cb_data)
365 handler = kzalloc(sizeof(*handler), flags);
366 if (!handler)
370 return handler;
373 static void free_sys_off_handler(struct sys_off_handler *handler)
375 if (handler == &platform_sys_off_handler)
376 memset(handler, 0, sizeof(*handler));
378 kfree(handler);
382 * register_sys_off_handler - Register sys-off handler
388 * Registers system power-off or restart handler that will be invoked
390 * should return NOTIFY_DONE to permit execution of the next handler in
396 * Only one handler can be registered at the non-default priority level,
408 struct sys_off_handler *handler;
411 handler = alloc_sys_off_handler(priority);
412 if (IS_ERR(handler))
413 return handler;
417 handler->list = &power_off_prep_handler_list;
418 handler->blocking = true;
422 handler->list = &power_off_handler_list;
426 handler->list = &restart_prep_handler_list;
427 handler->blocking = true;
431 handler->list = &restart_handler_list;
435 free_sys_off_handler(handler);
439 handler->nb.notifier_call = sys_off_notify;
440 handler->nb.priority = priority;
441 handler->sys_off_cb = callback;
442 handler->cb_data = cb_data;
443 handler->mode = mode;
445 if (handler->blocking) {
447 err = blocking_notifier_chain_register(handler->list,
448 &handler->nb);
450 err = blocking_notifier_chain_register_unique_prio(handler->list,
451 &handler->nb);
454 err = atomic_notifier_chain_register(handler->list,
455 &handler->nb);
457 err = atomic_notifier_chain_register_unique_prio(handler->list,
458 &handler->nb);
462 free_sys_off_handler(handler);
466 return handler;
471 * unregister_sys_off_handler - Unregister sys-off handler
472 * @handler: Sys-off handler
474 * Unregisters given sys-off handler.
476 void unregister_sys_off_handler(struct sys_off_handler *handler)
480 if (IS_ERR_OR_NULL(handler))
483 if (handler->blocking)
484 err = blocking_notifier_chain_unregister(handler->list,
485 &handler->nb);
487 err = atomic_notifier_chain_unregister(handler->list,
488 &handler->nb);
493 free_sys_off_handler(handler);
499 struct sys_off_handler *handler = data;
501 unregister_sys_off_handler(handler);
505 * devm_register_sys_off_handler - Register sys-off handler
506 * @dev: Device that registers handler
512 * Registers resource-managed sys-off handler.
522 struct sys_off_handler *handler;
524 handler = register_sys_off_handler(mode, priority, callback, cb_data);
525 if (IS_ERR(handler))
526 return PTR_ERR(handler);
527 handler->dev = dev;
530 handler);
535 * devm_register_power_off_handler - Register power-off handler
540 * Registers resource-managed sys-off handler with a default priority
557 * devm_register_restart_handler - Register restart handler
562 * Registers resource-managed sys-off handler with a default priority
602 struct sys_off_handler *handler;
604 handler = register_sys_off_handler(SYS_OFF_MODE_POWER_OFF,
608 if (IS_ERR(handler))
609 return PTR_ERR(handler);
611 platform_power_off_handler = handler;
647 * do_kernel_power_off - Execute kernel power-off handler call chain
651 * Powers off the system immediately if a power-off handler function has
678 * Returns true if power-off handler is registered and system can be