Very Simple Kernel 0.1.0
Loading...
Searching...
No Matches
vsk.h
Go to the documentation of this file.
1/**
2 * @file
3 */
4#ifndef VSK_H
5#define VSK_H
6/**
7 * @defgroup vsk vsk
8 * @{
9 */
10
11#include "vsk_Assert.h"
12#include "vsk_CriticalSection.h"
13#include "vsk_Task.h"
14
15/**
16 * @brief User defined functions for the vsk module
17 */
18typedef struct vsk_Interface {
19 vsk_Task_Class_OnStart_t onStart; /**< Called on task scheduler start. */
20 vsk_Task_Class_OnIdle_t onIdle; /**< Called when the system is idle. */
21 vsk_Assert_OnFail_t onAssertFail; /**< Called when an assertion fails. */
22 vsk_CriticalSection_OnEnter_t onCriticalSectionEnter; /**< Called on entering a critical section. */
23 vsk_CriticalSection_OnExit_t onCriticalSectionExit; /**< Called on exiting a critical section. */
25
26/**
27 * @brief Initializes the vsk module.
28 *
29 * @param tickPeriodMillis The period at which the system ticks in milliseconds
30 * @param interface The interface for user hooks and platform specific functions
31 */
32void vsk_init(
33 uint16_t const tickPeriodMillis,
34 vsk_Interface_t const * const interface
35);
36
37/**
38 * @brief Propagates the system tick in the vsk module
39 *
40 * @remark Must be called from the system tick
41 */
42void vsk_onTick(void);
43
44/**
45 * @brief Starts the task scheduler
46 */
47void vsk_startScheduler(void);
48
49/** @} */
50#endif // VSK_H
void(* vsk_Assert_OnFail_t)(void)
On fail callback.
Definition vsk_Assert.h:22
void(* vsk_CriticalSection_OnEnter_t)(void)
On enter callback.
Definition vsk_CriticalSection.h:22
void(* vsk_CriticalSection_OnExit_t)(void)
On exit callback.
Definition vsk_CriticalSection.h:27
void(* vsk_Task_Class_OnStart_t)(void)
On start callback.
Definition vsk_Task.h:20
void(* vsk_Task_Class_OnIdle_t)(void)
On idle callback.
Definition vsk_Task.h:25
struct vsk_Interface vsk_Interface_t
User defined functions for the vsk module.
void vsk_startScheduler(void)
Starts the task scheduler.
Definition vsk.c:35
void vsk_onTick(void)
Propagates the system tick in the vsk module.
Definition vsk.c:28
void vsk_init(uint16_t const tickPeriodMillis, vsk_Interface_t const *const interface)
Initializes the vsk module.
Definition vsk.c:8
User defined functions for the vsk module.
Definition vsk.h:18
vsk_Task_Class_OnIdle_t onIdle
Definition vsk.h:20
vsk_Task_Class_OnStart_t onStart
Definition vsk.h:19
vsk_CriticalSection_OnExit_t onCriticalSectionExit
Definition vsk.h:23
vsk_CriticalSection_OnEnter_t onCriticalSectionEnter
Definition vsk.h:22
vsk_Assert_OnFail_t onAssertFail
Definition vsk.h:21