Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
gnss.h
Go to the documentation of this file.
1
10#ifndef INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_H_
12
13#include <zephyr/kernel.h>
14
17
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#ifdef CONFIG_TASK_RUNNER_TASK_GNSS_THREAD
25
33void gnss_task_fn(const struct task_schedule *schedule, struct k_poll_signal *terminate,
34 void *gnss_dev);
35
43#define GNSS_TASK(define_mem, define_config, gnss_ptr) \
44 IF_ENABLED(define_mem, (K_THREAD_STACK_DEFINE(gnss_stack_area, \
45 CONFIG_TASK_RUNNER_TASK_GNSS_STACK_SIZE); \
46 struct k_thread gnss_thread_obj)) \
47 IF_ENABLED(define_config, \
48 ({ \
49 .name = "gnss", \
50 .task_id = TASK_ID_GNSS, \
51 .exec_type = TASK_EXECUTOR_THREAD, \
52 .flags = TASK_FLAG_ARG_IS_DEVICE, \
53 .task_arg.dev = gnss_ptr, \
54 .executor.thread = \
55 { \
56 .thread = &gnss_thread_obj, \
57 .task_fn = gnss_task_fn, \
58 .stack = gnss_stack_area, \
59 .stack_size = K_THREAD_STACK_SIZEOF(gnss_stack_area), \
60 }, \
61 }))
62
63#endif /* CONFIG_TASK_RUNNER_TASK_GNSS_THREAD */
64
65#ifdef CONFIG_TASK_RUNNER_TASK_GNSS_WORKQUEUE
66
72void gnss_task_fn(struct k_work *work);
73
81#define GNSS_TASK(define_mem, define_config, gnss_ptr) \
82 IF_ENABLED(define_config, ({.name = "gnss", \
83 .task_id = TASK_ID_GNSS, \
84 .exec_type = TASK_EXECUTOR_WORKQUEUE, \
85 .flags = TASK_FLAG_ARG_IS_DEVICE, \
86 .task_arg.dev = gnss_ptr, \
87 .executor.workqueue = { \
88 .worker_fn = gnss_task_fn, \
89 }}))
90
91#endif /* CONFIG_TASK_RUNNER_TASK_GNSS_WORKQUEUE */
92
93#ifdef __cplusplus
94}
95#endif
96
97#endif /* INFUSE_SDK_INCLUDE_INFUSE_TASK_RUNNER_TASKS_GNSS_H_ */
Task Runner task scheduling.
Schedule for a given task.
Definition schedule.h:143
Task Runner Task API.