📄 time.h
字号:
#ifndef OS_KERNEL_TIME
#define OS_KERNEL_TIME
struct kernel_time {
int v_h,v_m,v_l;
};
void set_semaphore_time(int semaphore_id,struct kernel_time *time_new);
void kernel_semaphore_time_deal(void );
#define TIME_INCREASE_STEP 1
#define MOST_TIME_LOW (1024*1024*1024)
#define MOST_TIME_MIDDLE (1024*1024*1024)
#define MOST_TIME_HIGH (1024*1024*1024)
#define MINIMAL_TIME_STEP_LOW TIME_INCREASE_STEP
#define MINIMAL_TIME_STEP_MIDDLE 0
#define MINIMAL_TIME_STEP_HIGH 0
#define COPY_TIME(x,y) \
{ \
(y).v_l=(x).v_l; \
(y).v_m=(x).v_m; \
(y).v_h=(x).v_h; \
}
#define SET_MOST_TIME(x) \
{ \
(x).v_l=(MOST_TIME_LOW -1); \
(x).v_m=(MOST_TIME_MIDDLE-1); \
(x).v_h=(MOST_TIME_HIGH -1); \
}
#define SET_MINIMAL_STEP(x) \
{ \
(x).v_l=(MINIMAL_TIME_STEP_LOW); \
(x).v_m=(MINIMAL_TIME_STEP_MIDDLE); \
(x).v_h=(MINIMAL_TIME_STEP_HIGH); \
}
#define SET_CURRENT_TIME(x) \
{ \
(x).v_l=(os->current_time.v_l); \
(x).v_m=(os->current_time.v_m); \
(x).v_h=(os->current_time.v_h); \
}
#define CLEAR_TIME(x) \
{ \
(x).v_l=0; \
(x).v_m=0; \
(x).v_h=0; \
}
#define TIME_ADD(x,y) \
{ \
(y).v_l=(y).v_l+(x).v_l; \
(y).v_m=(y).v_m+(((y).v_l)/MOST_TIME_LOW); \
(y).v_l=(((y).v_l)%MOST_TIME_LOW); \
\
(y).v_m=(y).v_m+(x).v_m; \
(y).v_h=(y).v_h+(((y).v_m)/MOST_TIME_MIDDLE); \
(y).v_m=(((y).v_m)%MOST_TIME_MIDDLE); \
\
(y).v_h=(y).v_h+(x).v_h; \
\
}
#define TIME_INC(x,y) \
{ \
(y).v_l=(y).v_l+x; \
(y).v_m=(y).v_m+(((y).v_l)/MOST_TIME_LOW); \
(y).v_l=(((y).v_l)%MOST_TIME_LOW); \
\
(y).v_h=(y).v_h+(((y).v_m)/MOST_TIME_MIDDLE); \
(y).v_m=(((y).v_m)%MOST_TIME_MIDDLE); \
}
#define TIME_SUB(x,y) \
{ \
(y).v_l=(y).v_l-(x).v_l; \
for(;;) \
if((y).v_l>=0) \
break; \
else{ \
(y).v_m--; \
(y).v_l=y.v_l+MOST_TIME_LOW); \
} \
\
(y).v_m=(y).v_m-(x).v_m; \
for(;;) \
if((y).v_m>=0) \
break; \
else{ \
(y).v_h--; \
(y).v_m=(y).v_m+MOST_TIME_MIDDLE;\
} \
(y).v_h=(y).v_h-(x).v_h; \
}
#define TIME_EQUAL(x,y) \
( \
((x).v_h==(y).v_h) \
&&((x).v_m==(y).v_m) \
&&((x).v_l==(y).v_l) \
)
#define TIME_NOT_EQUAL(x,y) \
( \
((x).v_h!=(y).v_h) \
||((x).v_m!=(y).v_m) \
||((x).v_l!=(y).v_l) \
)
#define TIME_GREAT(x,y) \
( \
((x).v_h>(y).v_h)?TRUE: \
((x).v_h<(y).v_h)?FALSE:\
((x).v_m>(y).v_m)?TRUE: \
((x).v_m<(y).v_m)?FALSE:\
((x).v_l>(y).v_l)?TRUE: \
FALSE \
)
#define TIME_GREAT_AND_EQUAL(x,y) \
( \
((x).v_h>(y).v_h)?TRUE:\
((x).v_h<(y).v_h)?FALSE:\
((x).v_m>(y).v_m)?TRUE: \
((x).v_m<(y).v_m)?FALSE:\
((x).v_l>=(y).v_l)?TRUE:\
FALSE \
)
#define TIME_LESS(x,y) \
( \
((x).v_h<(y).v_h)?TRUE: \
((x).v_h>(y).v_h)?FALSE:\
((x).v_m<(y).v_m)?TRUE: \
((x).v_m>(y).v_m)?FALSE:\
((x).v_l<(y).v_l)?TRUE: \
FALSE \
)
#define TIME_LESS_AND_EQUAL(x,y) \
( \
((x).v_h<(y).v_h)?TRUE: \
((x).v_h>(y).v_h)?FALSE:\
((x).v_m<(y).v_m)?TRUE: \
((x).v_m>(y).v_m)?FALSE:\
((x).v_l<=(y).v_l)?TRUE:\
FALSE \
)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -