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

📄 sys_config.c

📁 嵌入式系统开发 TOPPERS and JSP Kernel Release 1.3 TOPPERS = Toyohashi Open Platform for Embedded Real-Tim
💻 C
字号:
/* *  TOPPERS/JSP Kernel *      Toyohashi Open Platform for Embedded Real-Time Systems/ *      Just Standard Profile Kernel * *  Copyright (C) 2000,2001 by Embedded and Real-Time Systems Laboratory *                              Toyohashi Univ. of Technology, JAPAN *  Copyright (C) 2002 by Monami software, Limited Partners. *  Copyright (C) 2002 by MURANAKA Masaki * *  惧淡螟侯涪荚は·Free Software Foundation によって给山されている *  GNU General Public License の Version 2 に淡揭されている掘凤か·笆 *  布の(1)×(4)の掘凤を塔たす眷圭に嘎り·塑ソフトウェア∈塑ソフトウェ *  アを猖恃したものを崔むˉ笆布票じ∷を蝗脱ˇ剩澜ˇ猖恃ˇ浩芹邵∈笆布· *  网脱と钙ぶ∷することを痰浸で钓满するˉ *  (1) 塑ソフトウェアをソ〖スコ〖ドの妨で网脱する眷圭には·惧淡の螟侯 *      涪山绩·この网脱掘凤および布淡の痰瘦沮惮年が·そのままの妨でソ〖 *      スコ〖ド面に崔まれていることˉ *  (2) 塑ソフトウェアを浩网脱材墙なバイナリコ〖ド∈リロケ〖タブルオブ *      ジェクトファイルやライブラリなど∷の妨で网脱する眷圭には·网脱 *      に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯涪山绩· *      この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *  (3) 塑ソフトウェアを浩网脱稍材墙なバイナリコ〖ドの妨または怠达に寥 *      み哈んだ妨で网脱する眷圭には·肌のいずれかの掘凤を塔たすことˉ *    (a) 网脱に燃うドキュメント∈网脱荚マニュアルなど∷に·惧淡の螟侯 *        涪山绩·この网脱掘凤および布淡の痰瘦沮惮年を非很することˉ *    (b) 网脱の妨轮を·侍に年める数恕によって·惧淡螟侯涪荚に鼠桂する *        ことˉ *  (4) 塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じるいかなる禄 *      巢からも·惧淡螟侯涪荚を倘勒することˉ * *  塑ソフトウェアは·痰瘦沮で捏丁されているものであるˉ惧淡螟侯涪荚は· *  塑ソフトウェアに簇して·その努脱材墙拉も崔めて·いかなる瘦沮も乖わ *  ないˉまた·塑ソフトウェアの网脱により木儡弄または粗儡弄に栏じたい *  かなる禄巢に簇しても·その勒扦を砷わないˉ * *  @(#) $Id: sys_config.c,v 1.2 2002/04/10 12:08:17 honda Exp $ *//* *	タ〖ゲットシステム巴赂モジュ〖ル∈PC/AT脱∷ */#include "jsp_kernel.h"#include "cpu_insn.h"#include "irc.h"#include "irc_inline.h"/* *  タ〖ゲットシステム巴赂の介袋步 */voidsys_initialize(){	irc_initialize();}/* *  タ〖ゲットシステムの姜位 */voidsys_exit(void){	while(1);}ER irc_eoi_irq(UB irq){	UW mask;	BOOL cpu_locked;	cpu_locked = sense_lock();	if(!cpu_locked)	{		i386_lock_cpu();	}	mask = 1 << (irq & 7);	if (irq < 8)	{		outb(0x21, inb(0x21) | mask);/* block the irq */		outb(0x20, 0x20);/* acknowledge the irq */		outb(0x20, 0x0B);		if (inb(0x20) & mask)			syslog_0(LOG_EMERG, "irq still active");	}	else 	{		unsigned foo;		outb(0xA1, inb(0xA1) | mask);/* block */		outb(0xA0, 0x20);/* acknowledge */		outb(0xA0, 0x0B);		if ((foo = inb(0xA0)) == 0)			outb(0x20, 0x20);		if (foo & mask)		syslog_0(LOG_EMERG, "irqslave still active");	}	if(!cpu_locked)	{		i386_unlock_cpu();	}	return E_OK;}ER irc_dis_irq(UB irq){	BOOL cpu_locked;	cpu_locked = sense_lock();	if(!cpu_locked)	{		i386_lock_cpu();	}	if(irq < 8)	{		outb(0x21, inb(0x21) | (1 << irq));	}	else	{		outb(0xA1, inb(0xA1) | (1 << (irq - 8)));	}	if(!cpu_locked)	{		i386_unlock_cpu();	}	return E_OK;}ER irc_ena_irq(UB irq){	BOOL cpu_locked;	cpu_locked = sense_lock();	if(!cpu_locked)	{		i386_lock_cpu();	}	if(irq < 8)	{		outb(0x21, inb(0x21) & ~(1 << irq));	}	else	{		outb(0xA1, inb(0xA1) & ~(1 << (irq - 8)));	}	if(!cpu_locked)	{		i386_unlock_cpu();	}	return E_OK;}#ifdef WITH_STUB#error "WITH_STUB option isn't supported in this release."#define SYS_PUT_CHAR(c) stub_putc(c)#else#include "serial.h"	/*  serial_write( )  */#define SYS_PUT_CHAR(c) {		\	char cc=c;			\	serial_write(1, &cc, 1);	\}#endif /* WITH_STUB */voidsys_putc(char c){    if (c == '\n') {        SYS_PUT_CHAR('\r');    }    SYS_PUT_CHAR(c);}

⌨️ 快捷键说明

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