Crinit -- Configurable Rootfs Init
Loading...
Searching...
No Matches
timer.h
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
2#ifndef __TIMER_H__
3#define __TIMER_H__
4
5#include <bits/types/struct_itimerspec.h>
6#include <stdbool.h>
7#include <stdint.h>
8#include <time.h>
9
13typedef struct crinitTimerDef {
14 uint8_t wDay;
15 uint16_t years[2];
16 uint8_t month[2];
17 uint8_t days[2];
18 uint8_t hours[2];
19 uint8_t minutes[2];
20 uint8_t seconds[2];
21 int8_t timezone[2];
23
27typedef struct crinitTimer {
29 char *name;
30 size_t refs;
31 struct itimerspec next;
33
41
51
61#define CO_RANGE(start, test, end) (((start) <= (test)) && ((test) < (end)))
71#define CC_RANGE(start, test, end) (((start) <= (test)) && ((test) <= (end)))
81#define OC_RANGE(start, test, end) (((start) < (test)) && ((test) <= (end)))
91#define OO_RANGE(start, test, end) (((start) < (test)) && ((test) < (end)))
92
101int crinitSPrintTimerDef(char *s, crinitTimerDef_t *td);
108
118
127struct timespec crinitTimerNextTime(struct timespec *last, crinitTimerDef_t *td);
128
138struct tm *crinitZonedTimeR(const time_t *time, int8_t timezone[2], struct tm *restrict result);
147bool crinitCheckTimerTime(struct timespec ts, crinitTimerDef_t *td);
148
149#endif // __TIMER_H__
Definition timer.h:13
uint8_t days[2]
Definition timer.h:17
uint8_t minutes[2]
Definition timer.h:19
uint8_t month[2]
Definition timer.h:16
uint8_t seconds[2]
Definition timer.h:20
uint8_t wDay
Definition timer.h:14
uint16_t years[2]
Definition timer.h:15
int8_t timezone[2]
Definition timer.h:21
uint8_t hours[2]
Definition timer.h:18
Definition timer.h:27
struct itimerspec next
Definition timer.h:31
char * name
Definition timer.h:29
crinitTimerDef_t def
Definition timer.h:28
size_t refs
Definition timer.h:30
struct timespec crinitTimerNextTime(struct timespec *last, crinitTimerDef_t *td)
Definition timer.c:350
struct crinitTimer crinitTimer_t
bool crinitTimerParse(char *s, crinitTimerDef_t *td)
struct tm * crinitZonedTimeR(const time_t *time, int8_t timezone[2], struct tm *restrict result)
Definition timer.c:342
struct crinitTimerDef crinitTimerDef_t
int crinitSPrintTimerDef(char *s, crinitTimerDef_t *td)
Definition timer.c:109
void crinitTimerSetDefault(crinitTimerDef_t *td)
Definition timer.c:78
void crinitPrintTimerDef(crinitTimerDef_t *td)
Definition timer.c:149
bool crinitCheckTimerDef(crinitTimerDef_t *td)
Definition timer.c:155
bool crinitCheckTimerTime(struct timespec ts, crinitTimerDef_t *td)
Definition timer.c:210