Zephyr Project API
3.1.0
A Scalable Open Source RTOS
policy.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Intel Corporation.
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_INCLUDE_PM_POLICY_H_
8
#define ZEPHYR_INCLUDE_PM_POLICY_H_
9
10
#include <
stdbool.h
>
11
#include <
stdint.h
>
12
13
#include <
zephyr/pm/state.h
>
14
#include <
zephyr/sys/slist.h
>
15
16
#ifdef __cplusplus
17
extern
"C"
{
18
#endif
19
34
typedef
void (*
pm_policy_latency_changed_cb_t
)(
int32_t
latency);
35
37
struct
pm_policy_latency_request
{
38
sys_snode_t
node
;
40
uint32_t
value
;
41
};
42
58
const
struct
pm_state_info
*
pm_policy_next_state
(
uint8_t
cpu,
int32_t
ticks);
59
63
#define PM_ALL_SUBSTATES (UINT8_MAX)
64
65
#if defined(CONFIG_PM) || defined(__DOXYGEN__)
84
void
pm_policy_state_lock_get
(
enum
pm_state
state
,
uint8_t
substate_id
);
85
95
void
pm_policy_state_lock_put
(
enum
pm_state
state
,
uint8_t
substate_id
);
96
107
bool
pm_policy_state_lock_is_active
(
enum
pm_state
state
,
uint8_t
substate_id
);
108
118
void
pm_policy_latency_request_add
(
struct
pm_policy_latency_request
*req,
119
uint32_t
value);
120
127
void
pm_policy_latency_request_update
(
struct
pm_policy_latency_request
*req,
128
uint32_t
value);
129
135
void
pm_policy_latency_request_remove
(
struct
pm_policy_latency_request
*req);
136
142
void
pm_policy_latency_changed
(
pm_policy_latency_changed_cb_t
cb);
143
#else
144
static
inline
void
pm_policy_state_lock_get
(
enum
pm_state
state
,
uint8_t
substate_id
)
145
{
146
ARG_UNUSED(
state
);
147
ARG_UNUSED(
substate_id
);
148
}
149
150
static
inline
void
pm_policy_state_lock_put
(
enum
pm_state
state
,
uint8_t
substate_id
)
151
{
152
ARG_UNUSED(
state
);
153
ARG_UNUSED(
substate_id
);
154
}
155
156
static
inline
bool
pm_policy_state_lock_is_active
(
enum
pm_state
state
,
uint8_t
substate_id
)
157
{
158
ARG_UNUSED(
state
);
159
ARG_UNUSED(
substate_id
);
160
161
return
false
;
162
}
163
164
static
inline
void
pm_policy_latency_request_add
(
165
struct
pm_policy_latency_request
*req,
uint32_t
value)
166
{
167
ARG_UNUSED(req);
168
ARG_UNUSED(value);
169
}
170
171
static
inline
void
pm_policy_latency_request_update
(
172
struct
pm_policy_latency_request
*req,
uint32_t
value)
173
{
174
ARG_UNUSED(req);
175
ARG_UNUSED(value);
176
}
177
178
static
inline
void
pm_policy_latency_request_remove
(
179
struct
pm_policy_latency_request
*req)
180
{
181
ARG_UNUSED(req);
182
}
183
#endif
/* CONFIG_PM */
184
189
#ifdef __cplusplus
190
}
191
#endif
192
193
#endif
/* ZEPHYR_INCLUDE_PM_POLICY_H_ */
pm_state
pm_state
Definition:
state.h:27
pm_policy_state_lock_put
void pm_policy_state_lock_put(enum pm_state state, uint8_t substate_id)
Decrease a power state lock counter.
pm_policy_state_lock_is_active
bool pm_policy_state_lock_is_active(enum pm_state state, uint8_t substate_id)
Check if a power state lock is active (not allowed).
pm_policy_latency_request_update
void pm_policy_latency_request_update(struct pm_policy_latency_request *req, uint32_t value)
Update a latency requirement.
pm_policy_latency_request_add
void pm_policy_latency_request_add(struct pm_policy_latency_request *req, uint32_t value)
Add a new latency requirement.
pm_policy_latency_request_remove
void pm_policy_latency_request_remove(struct pm_policy_latency_request *req)
Remove a latency requirement.
pm_policy_latency_changed
void pm_policy_latency_changed(pm_policy_latency_changed_cb_t cb)
Set the callback to be called when maximum latency changes.
pm_policy_latency_changed_cb_t
void(* pm_policy_latency_changed_cb_t)(int32_t latency)
Callback to notify when maximum latency changes.
Definition:
policy.h:34
pm_policy_state_lock_get
void pm_policy_state_lock_get(enum pm_state state, uint8_t substate_id)
Increase a power state lock counter.
state
state
Definition:
http_parser_state.h:29
pm_policy_next_state
const struct pm_state_info * pm_policy_next_state(uint8_t cpu, int32_t ticks)
Definition:
main.c:26
slist.h
Single-linked list implementation.
sys_snode_t
struct _snode sys_snode_t
Definition:
slist.h:33
state.h
stdbool.h
stdint.h
uint32_t
__UINT32_TYPE__ uint32_t
Definition:
stdint.h:90
int32_t
__INT32_TYPE__ int32_t
Definition:
stdint.h:74
uint8_t
__UINT8_TYPE__ uint8_t
Definition:
stdint.h:88
pm_policy_latency_request
Latency request.
Definition:
policy.h:37
pm_policy_latency_request::value
uint32_t value
Definition:
policy.h:40
pm_policy_latency_request::node
sys_snode_t node
Definition:
policy.h:38
pm_state_info
Definition:
state.h:114
pm_state_info::substate_id
uint8_t substate_id
Definition:
state.h:141
include
zephyr
pm
policy.h
Generated on Fri Oct 14 2022 07:25:58 for Zephyr Project API by
1.9.2