opuntiaOS - an operating system targeting x86 and ARMv7
at master 35 lines 1.2 kB view raw
1/* 2 * Copyright (C) 2020-2022 The opuntiaOS Project Authors. 3 * + Contributed by Nikita Melekhin <nimelehin@gmail.com> 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9#ifndef _KERNEL_TIME_TIME_MANAGER_H 10#define _KERNEL_TIME_TIME_MANAGER_H 11 12#include <drivers/generic/timer.h> 13#include <libkern/atomic.h> 14#include <libkern/bits/time.h> 15#include <libkern/types.h> 16#include <platform/generic/cpu.h> 17 18extern time_t ticks_since_boot; 19extern time_t ticks_since_second; 20 21bool timeman_is_leap_year(uint32_t year); 22uint32_t timeman_days_in_years_since_epoch(uint32_t year); 23uint32_t timeman_days_in_months_since_soy(uint8_t month, uint32_t year); 24time_t timeman_to_seconds_since_epoch(uint8_t secs, uint8_t mins, uint8_t hrs, uint8_t day, uint8_t month, uint32_t year); 25 26int timeman_setup(); 27void timeman_timer_tick(); 28 29time_t timeman_now(); 30time_t timeman_seconds_since_boot(); 31time_t timeman_get_ticks_from_last_second(); 32static inline time_t timeman_ticks_per_second() { return TIMER_TICKS_PER_SECOND; }; 33static inline time_t timeman_ticks_since_boot() { return THIS_CPU->stat_ticks_since_boot; }; 34 35#endif /* _KERNEL_TIME_TIME_MANAGER_H */