include: Move waitq and timeout structs to kernel_structs.h
Struct definitions contain no inlines that depend on other code so should live early in the include tree. Upcoming refactoring needs this to break header dependency cycles. The kernel_structs.h header was designed for exactly this purpose. Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
This commit is contained in:
parent
15c52ed12a
commit
41220d2bea
3 changed files with 33 additions and 31 deletions
|
@ -76,26 +76,6 @@ extern "C" {
|
|||
#define K_HIGHEST_APPLICATION_THREAD_PRIO (K_HIGHEST_THREAD_PRIO)
|
||||
#define K_LOWEST_APPLICATION_THREAD_PRIO (K_LOWEST_THREAD_PRIO - 1)
|
||||
|
||||
#ifdef CONFIG_WAITQ_SCALABLE
|
||||
|
||||
typedef struct {
|
||||
struct _priq_rb waitq;
|
||||
} _wait_q_t;
|
||||
|
||||
extern bool z_priq_rb_lessthan(struct rbnode *a, struct rbnode *b);
|
||||
|
||||
#define Z_WAIT_Q_INIT(wait_q) { { { .lessthan_fn = z_priq_rb_lessthan } } }
|
||||
|
||||
#else
|
||||
|
||||
typedef struct {
|
||||
sys_dlist_t waitq;
|
||||
} _wait_q_t;
|
||||
|
||||
#define Z_WAIT_Q_INIT(wait_q) { SYS_DLIST_STATIC_INIT(&(wait_q)->waitq) }
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_OBJECT_TRACING
|
||||
#define _OBJECT_TRACING_NEXT_PTR(type) struct type *__next;
|
||||
#define _OBJECT_TRACING_LINKED_FLAG u8_t __linked;
|
||||
|
|
|
@ -207,6 +207,39 @@ bool z_smp_cpu_mobile(void);
|
|||
|
||||
#define _timeout_q _kernel.timeout_q
|
||||
|
||||
/* kernel wait queue record */
|
||||
|
||||
#ifdef CONFIG_WAITQ_SCALABLE
|
||||
|
||||
typedef struct {
|
||||
struct _priq_rb waitq;
|
||||
} _wait_q_t;
|
||||
|
||||
extern bool z_priq_rb_lessthan(struct rbnode *a, struct rbnode *b);
|
||||
|
||||
#define Z_WAIT_Q_INIT(wait_q) { { { .lessthan_fn = z_priq_rb_lessthan } } }
|
||||
|
||||
#else
|
||||
|
||||
typedef struct {
|
||||
sys_dlist_t waitq;
|
||||
} _wait_q_t;
|
||||
|
||||
#define Z_WAIT_Q_INIT(wait_q) { SYS_DLIST_STATIC_INIT(&(wait_q)->waitq) }
|
||||
|
||||
#endif
|
||||
|
||||
/* kernel timeout record */
|
||||
|
||||
struct _timeout;
|
||||
typedef void (*_timeout_func_t)(struct _timeout *t);
|
||||
|
||||
struct _timeout {
|
||||
sys_dnode_t node;
|
||||
s32_t dticks;
|
||||
_timeout_func_t fn;
|
||||
};
|
||||
|
||||
#endif /* _ASMLANGUAGE */
|
||||
|
||||
#endif /* ZEPHYR_KERNEL_INCLUDE_KERNEL_STRUCTS_H_ */
|
||||
|
|
|
@ -220,17 +220,6 @@ s64_t z_tick_get(void);
|
|||
|
||||
u64_t z_timeout_end_calc(k_timeout_t timeout);
|
||||
|
||||
/* timeouts */
|
||||
|
||||
struct _timeout;
|
||||
typedef void (*_timeout_func_t)(struct _timeout *t);
|
||||
|
||||
struct _timeout {
|
||||
sys_dnode_t node;
|
||||
s32_t dticks;
|
||||
_timeout_func_t fn;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue