📄 task.h
字号:
/*************************************************************************
Copyright (c) 1999 Mentor Graphics Corporation.
IMPORTANT - USE OF THIS SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS
CAREFULLY READ THE LICENSE AGREEMENT BEFORE USING THE SOFTWARE
*************************************************************************/
/* task.h */
#ifndef TASK_H_INCLUDED
#define TASK_H_INCLUDED
/*task control block declarations and defined constants */
#define TBSRECV 0x1
#define TBSMBOX 0x2
#define TBSFLAG 0x4
#define TBSEXEC 0x8
#define TBSREADY 0x10
#define TBSSUSP 0x20
#define TBSDELAY 0x40
#define TBSQUEUE 0x80
#define TSKNMLEN 7
#define IDLETSK 0
#define NO_TID 255
#define isbadtid(x) ((unsigned)(x) >= vmc_ntsk)
/* task control block entry */
struct tentry {
unsigned char tstate; /* task state */
unsigned char tprio; /* task priority */
unsigned char prio_next; /* Next in the priority list */
unsigned char prio_prev; /* Prev in the priority list */
char *pregs; /* processor registers */
unsigned long timeout; /* timeout if on the delta list */
unsigned char time_next; /* Next in the delta list */
unsigned char time_prev; /* Prev in the delta list */
unsigned char workq_next; /* Next task on the work queue */
char pad; /* Padding to align - for speedup */
union {
struct {
unsigned long tfmask; /* event flags mask */
unsigned char tfevgroup; /* event flags group */
unsigned char tfopt; /* option */
} event;
struct {
char *message; /* Message posted here when blocked */
char **mboxp; /* mailbox address */
} mbox;
struct {
char *message; /* Message posted here when blocked */
unsigned char qid; /* qid of the queue */
} queue;
} object;
};
struct task_ent{
void (*task_addr)();
char *stack_addr;
short stack_size;
unsigned char prio;
void *arg;
char state;
};
extern struct task_ent vmc_usr_tasktab[];
extern struct tentry vmc_tasktab[];
extern unsigned char vmc_nexttask;
extern unsigned char vmc_exectid;
extern unsigned char vmc_workqueue_tail, vmc_workqueue_head;
extern unsigned char vmc_ready_unsafe;
extern void (*vmc_tswitch)(struct tentry *, struct tentry *);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -