40 #ifndef picox_core_detail_xtime_h_ 41 #define picox_core_detail_xtime_h_ 58 #define X_TICKS_PER_SEC X_CONF_TICKS_PER_SEC 70 #define X_TICKS_FOREVER ((XTicks)-1) 173 #define x_ticks_now x_port_ticks_now 174 #define x_gettimeofday x_port_gettimeofday 175 #define x_msleep x_port_msleep 176 #define x_usleep x_port_usleep 177 #define x_mdelay x_port_mdelay 178 #define x_udelay x_port_mdelay 240 #define X_MSEC_TO_TICKS(msec) (X_DIV_ROUNDUP((msec) * X_TICKS_PER_SEC, 1000)) 241 #define X_USEC_TO_TICKS(usec) (X_DIV_ROUNDUP((usec) * X_TICKS_PER_SEC, 1000) / 1000) 242 #define X_TICKS_TO_MSEC(ticks) (((ticks) * 1000) / X_TICKS_PER_SEC) 243 #define X_TICKS_TO_USEC(ticks) ((((ticks) * 1000) / X_TICKS_PER_SEC) * 1000) 257 #define x_timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) 259 #define x_timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) 261 #define x_timercmp(tvp, uvp, cmp) \ 262 (((tvp)->tv_sec == (uvp)->tv_sec) ? \ 263 ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ 264 ((tvp)->tv_sec cmp (uvp)->tv_sec)) 266 #define x_timeradd(tvp, uvp, vvp) \ 268 (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ 269 (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ 270 if ((vvp)->tv_usec >= X_INT32_C(1000000)) \ 273 (vvp)->tv_usec -= X_INT32_C(1000000); \ 277 #define x_timersub(tvp, uvp, vvp) \ 279 (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ 280 (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ 281 if ((vvp)->tv_usec < 0) \ 284 (vvp)->tv_usec += X_INT32_C(1000000); \ 298 x_gettimeofday(&tv, NULL);
int32_t XSeconds
秒単位の時間を格納する型です
Definition: xtime.h:97
XTicks x_port_ticks_now(void)
現在のチック時間を返します
Definition: xtime.c:86
uint32_t XTime
time_tの代替をするシステム時刻を格納するための型です
Definition: xtime.h:80
int32_t XTicks
システムチックを格納する型です
Definition: xtime.h:63
void x_port_mdelay(XMSeconds msec)
ミリ秒単位のディレイを行います
Definition: xtime.c:161
int32_t XMSeconds
ミリ秒単位の時間を格納する型です
Definition: xtime.h:102
int x_port_gettimeofday(XTimeVal *tv, void *tz_dammy)
現在時刻を返します
Definition: xtime.c:57
#define X_DIV_ROUNDUP(dividend, divisor)
あまりの切り上げを行う整数除算です
Definition: xutils.h:171
int32_t tv_usec
Definition: xtime.h:88
void x_port_usleep(XUSeconds usec)
マイクロ秒単位のスリープを行います
Definition: xtime.c:135
static XTimeVal x_gettimeofday2(void)
現在時刻を返します
Definition: xtime.h:291
static XMSeconds x_ticks_to_msec(XTicks ticks)
チックをミリ秒に変換した値を返します
Definition: xtime.h:214
#define X_TICKS_PER_SEC
Definition: xtime.h:58
高精度のシステム時刻を格納するための型です
Definition: xtime.h:85
int32_t XUSeconds
マイクロ秒単位の時間を格納する型です
Definition: xtime.h:107
static XTicks x_msec_to_ticks(XMSeconds msec)
ミリ秒をチックに変換した値を返します
Definition: xtime.h:196
static XUSeconds x_ticks_to_usec(XTicks ticks)
チックをマイクロ秒に変換した値を返します
Definition: xtime.h:223
static XTicks x_usec_to_ticks(XUSeconds usec)
マイクロ秒をチックに変換した値を返します
Definition: xtime.h:205
void x_port_udelay(XUSeconds usec)
マイクロ秒単位のディレイを行います
Definition: xtime.c:194
void x_port_msleep(XMSeconds msec)
ミリ秒単位のスリープを行います
Definition: xtime.c:109