sched.h

来自「ADS环境下的类似linux内核的操作系统」· C头文件 代码 · 共 74 行

H
74
字号
/* MShowTec - www.mshowtec.com
** msLinux sched.h ver1.0
** 20051221 lmjx create limiao@mshowtec.com
**
*/

#ifndef MSLINUX_SCHED_H
#define MSLINUX_SCHED_H

#include "signal.h"

#define NR_TASKS (64)
#define HZ (100)

#define FIRST_TASK task[0]
#define LAST_TASK task[NR_TASKS-1]

#define TASK_RUNNING 			0
#define TASK_INTERRUPTIBLE		1
#define TASK_UNINTERRUPTIBLE 	2
#define TASK_ZOMBIE				3
#define TASK_STOPPED			4

#ifndef NULL
#define NULL 0
#endif

typedef int (*fn_ptr) ();

typedef struct {
   unsigned long p_TopOfStack; /* Where the 0x55 pattern is written to verify stack overflow */
   unsigned long p_SP;         /* Stack Pointer */
   unsigned long L_Stack_SZ;	/*Stack size*/
}t_Stack;

struct task_struct
{
/* cpu reg fields*/
	t_Stack stack;
/* these are hardcoded - don't touch */
	long state;			/* -1 unrunnable, 0 runnable, >0 stopped */
	long counter;
	long priority;
	long signal;
	struct sigaction sigaction[32];
	long blocked;			/* bitmap of masked signals */
/* various fields */
	int exit_code;
	long pid, father, pgrp, session, leader;
	unsigned short uid, euid, suid;
	unsigned short gid, egid, sgid;
	long alarm;
	long utime,cutime,start_time;
};

typedef struct task_struct tcb;

#define INIT_TASK \
{\
/* cpu reg*/	{0,0},\
/* state etc */0,15,15, \
/* signals */0, {{0},}, 0,\
/* pid etc.. */ 0, -1, 0, 0, 0, \
/* uid etc */ 0, 0, 0, 0, 0, 0, \
/* alarm */ 0, 0, 0, 0,\
}

extern long volatile jiffies;
extern long startup_time;
extern struct task_struct *current;
extern struct task_struct *task[];
extern struct task_struct task0;

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?