⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.h

📁 国内一位牛人自己开发的操作系统
💻 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 + -