tp/include/revolution/os/OSTime.h

45 lines
1.1 KiB
C

#ifndef _REVOLUTION_OSTIME_H_
#define _REVOLUTION_OSTIME_H_
#include <revolution/types.h>
#ifdef __cplusplus
extern "C" {
#endif
// Time base frequency = 1/4 bus clock
#define OS_TIME_SPEED (OS_BUS_CLOCK / 4)
// OS time -> Real time
#define OS_TICKS_TO_SEC(x) ((x) / (OS_TIME_SPEED))
#define OS_TICKS_TO_MSEC(x) ((x) / (OS_TIME_SPEED / 1000))
#define OS_TICKS_TO_USEC(x) (((x)*8) / (OS_TIME_SPEED / 125000))
#define OS_TICKS_TO_NSEC(x) (((x)*8000) / (OS_TIME_SPEED / 125000))
// Real time -> OS time
#define OS_SEC_TO_TICKS(x) ((x) * (OS_TIME_SPEED))
#define OS_MSEC_TO_TICKS(x) ((x) * (OS_TIME_SPEED / 1000))
#define OS_USEC_TO_TICKS(x) ((x) * (OS_TIME_SPEED / 125000) / 8)
#define OS_NSEC_TO_TICKS(x) ((x) * (OS_TIME_SPEED / 125000) / 8000)
#define USEC_MAX 1000
#define MSEC_MAX 1000
#define MONTH_MAX 12
#define WEEK_DAY_MAX 7
#define YEAR_DAY_MAX 365
#define SECS_IN_MIN 60
#define SECS_IN_HOUR (SECS_IN_MIN * 60)
#define SECS_IN_DAY (SECS_IN_HOUR * 24)
#define SECS_IN_YEAR (SECS_IN_DAY * 365)
#define BIAS 0xB2575
#define __OSSystemTime (OSTime*)0x800030D8
#ifdef __cplusplus
}
#endif
#endif // _REVOLUTION_OSTIME_H_