MOS Source Code
Loading...
Searching...
No Matches
power.cpp
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-3.0-or-later
2
3#include "mos/misc/power.hpp"
4
7
8#include <mos/allocator.hpp>
10#include <mos_stdlib.hpp>
11
18
20
29
30[[noreturn]] void power_shutdown(void)
31{
32 pr_info("system shutdown initiated");
34 {
35 e->callback(e->data);
36 list_remove(e);
37 delete e;
38 }
39
40 pr_info("Bye!");
42}
bool callback(pb_istream_t *stream, uint8_t *buf, size_t count)
MOSAPI void linked_list_init(list_node_t *head_node)
Initialise a circular double linked list.
Definition list.cpp:15
MOSAPI void list_node_append(list_node_t *head, list_node_t *item)
Definition list.cpp:68
#define list_foreach(t, v, h)
Iterate over a list.
Definition list.hpp:89
#define list_node(element)
Get the ‘list_node’ of a list element. This is exactly the reverse of ‘list_entry’ above.
Definition list.hpp:74
list_node_t list_head
A linked list head.
Definition list.hpp:23
#define list_remove(element)
Definition list.hpp:80
T * create(Args &&...args)
Definition allocator.hpp:10
static list_head pm_notifiers
Definition power.cpp:19
void power_shutdown(void)
Shutdown the system.
Definition power.cpp:30
void power_register_shutdown_callback(power_callback_t callback, void *data)
Register a callback to be called when the system is about to shut down.
Definition power.cpp:21
void(* power_callback_t)(void *data)
Definition power.hpp:6
#define pr_info(fmt,...)
Definition printk.hpp:35
void platform_shutdown()
Definition power.cpp:13
as_linked_list
Definition power.cpp:14
power_callback_t callback
Definition power.cpp:15
void * data
Definition power.cpp:16