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

📄 lib.c

📁 toppers操作系统源码
💻 C
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel * *  Copyright (C) 2004 by SEIKO EPSON Corp, JAPAN * *  惧淡螟侯涪荚は·笆布の (1)×(4) の掘凤か·Free Software Foundation *  によって给山されている GNU General Public License の Version 2 に淡 *  揭されている掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェア *  を猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを·ライブラリ妨及など·戮のソフトウェア倡券に蝗 *      脱できる妨で浩芹邵する眷圭には·浩芹邵に燃うドキュメント∈网脱 *      荚マニュアルなど∷に·惧淡の螟侯涪山绩·この网脱掘凤および布淡 *      の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを·怠达に寥み哈むなど·戮のソフトウェア倡券に蝗 *      脱できない妨で浩芹邵する眷圭には·肌のいずれかの掘凤を塔たすこ *      とˉ *    (a) 浩芹邵に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟 *        侯涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 浩芹邵の妨轮を·侍に年める数恕によって·TOPPERSプロジェクトに *        鼠桂することˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚およびTOPPERSプロジェクトを倘勒することˉ * *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚お *  よびTOPPERSプロジェクトは·塑ソフトウェアに簇して·その努脱材墙拉も *  崔めて·いかなる瘦沮も乖わないˉまた·塑ソフトウェアの网脱により木 *  儡弄または粗儡弄に栏じたいかなる禄巢に簇しても·その勒扦を砷わないˉ * */#include	"smcvals.h"#include	"stdio.h"#include	"cpu_rename.h"FILE	_iob[FOPEN_MAX + 1];		/* standard i/o stream */FILE	*stdin; 			/* standard input */FILE	*stdout;			/* standard output */FILE	*stderr;			/* standard error */int 	errno;				/* error number */unsigned int  seed; 			/* seed of random value */unsigned char *ucNxtAlcP;	/* next memory allocate address */unsigned char *ucBefAlcP;	/* one previous allocated address */unsigned char *end_alloc;	/* end memory allocate address */#ifndef DBL_LNG_TYPE#define DBL_LNG_TYPE/*  the architecture of double floating point * *   0 1          11                  31 32                               63 bit *   ----------------------------------------------------------------------- *  | |   exponent  |                    fraction                           | *   ----------------------------------------------------------------------- * *  |               |                   |                                   | *  |     12bits          20 bits       |             32 bits               | *  |            lower word             |            higher word            | * *         bit    0         sign bit         (  1 bit  ) *              1 - 11      exponent part    ( 11 bits ) *             12 - 63      fraction part    ( 52 bits ) * */typedef union {		struct {#ifdef	BIG_ENDIAN			unsigned long _LL;			unsigned long _LH;#else			unsigned long _LH;			unsigned long _LL;#endif		} st;	} DBL_LNG;#endifDBL_LNG _HUGE;				/* HUGE VALUE */unsigned char *_STACK_TOP;		/* address of stack top */unsigned char *_STACK_BOTTOM;		/* address of stack bottom */long gm_sec;/* * initialize routine */void init_lib(){  /* initialize allocate address */  end_alloc = (unsigned char *)_STACK_TOP;  ucNxtAlcP = (unsigned char *)(_BOUND((unsigned long)_STACK_BOTTOM));  ucBefAlcP = (unsigned char *)NULL;  errno = 0;				/* clear error number */  seed = 1; 				/* initialize random seed */  gm_sec = -1;				/* initialize time */  _HUGE.st._LL = 0x7ff00000;		/* HUGE VALUE */  _HUGE.st._LH = 0;/* *  INITIALIZE STANDARD STREAMS */  _iob[0]._flg = _UGETN;		/* initialize stdin stream */  _iob[0]._buf = 0;  _iob[0]._fd = 0;  _iob[1]._flg = _UGETN;		/* initialize stdout stream */  _iob[1]._buf = 0;  _iob[1]._fd = 1;  _iob[2]._flg = _UGETN;		/* initialize stderr stream */  _iob[2]._buf = 0;  _iob[2]._fd = 2;  stdin = &_iob[0];  stdout = &_iob[1];  stderr = &_iob[2];}

⌨️ 快捷键说明

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