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

📄 kernel.h

📁 VRTX操作系统
💻 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


*************************************************************************/
/* Revision History:
1.1  P.Cumming  31.5.96  vmc_keep_FIQ_enabled declared
*/

#include "error.h"
#include "task.h" /* needed for struct tentry */

/*Symbolic constants used by VRTX */

typedef unsigned int	word;
/*	deleted by chwon
typedef unsigned long	vmc_event_t;
*/

#define	OK		0
#define	SYSERR		-1
#define SYSCALL 	int
#define	SYSCALLi	int
#define	SYSCALLu	unsigned int
#define	SYSCALLc	char
#define SYSCALLul	unsigned long
#define SYSCALLl	long
#define	SYSCALLv	void
#define	UINT		unsigned int
#define ULONG		unsigned long
#define UCHAR		unsigned char
#define	LOCAL		static
#define TASK		void
#define WORD		word
#define BYTE		unsigned char
#define SHORT		unsigned char
#define FALSE		0
#define	TRUE		1
#define	MINPRIO		126
#define IDLEPRIO	MINPRIO+1
#define	INITRET		vmc_userexit_ptr
#define	INITF  		0x00	/* interrupts enabled when God creates task*/
#define INITSTKBV	0xaaaa  /* stored at the bottom of the stack */

#ifndef H83

#define VMC_ATOMIC_32_BIT_RW

#endif

extern	unsigned long	vmc_timer_timeout, vmc_task_timeout;
extern	unsigned char	vmc_readyhead, vmc_delayhead, 
			vmc_timer_head, vmc_mboxhead, vmc_keep_FIQ_enabled;
extern	int	vmc_timeslice, vmc_quantum, vmc_nflag, vmc_ntsk;
extern  int	vmc_nqueue, vmc_ntimers, vmc_npart;
extern	char	vmc_sched_count, vmc_sched_needed;

extern	void	vmc_taskinit(struct tentry *, char *, int, void (*)(void *), int);
extern	int	vmc_tcreate(TASK (*)(void *), char *, int, int, int, int);
extern	int	vmc_fcreate(unsigned long);
extern  void	vmc_tresched(void), 
		vmc_ContextSwitch(char **, char **), vmc_panic(void);
extern	void	(*vmc_userexit_ptr)(void), (*vmc_panic_ptr)(void);
extern	void	vmc_vt_handler(unsigned long);
extern  int	vmc_qcreate(char **, int), vmc_vtcreate(void);
extern	int	vmc_usr_sysinit(void);
extern	int	vmc_pcreate(char *,unsigned long, unsigned long, unsigned char);

extern	SYSCALLv	ui_exit(void), ui_enter(void);
extern	SYSCALLv	sc_tsuspend(int,int,int *), sc_tresume(int,int,int *);
extern	SYSCALLv	sc_tslice(unsigned int), sc_unlock(void);

#define vmc_sched_disable() ++vmc_sched_count
#define vmc_sched_enable()  sc_unlock()


/* Not sure why this was changed - DH
#ifdef ARM
void	vmc_sched_enable(void);
#else
#define vmc_sched_enable()  sc_unlock()
#endif
*/

⌨️ 快捷键说明

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