tty.c

来自「ADS环境下的类似linux内核的操作系统」· C语言 代码 · 共 75 行

C
75
字号
/* MShowTec - www.mshowtec.com
** msLinux tty.c ver1.0
** 20051221 lmjx create limiao@mshowtec.com
**
*/

#define MSLINUX_TTY_C

#include "cpu_reg.h"
#include "tty.h"
#include "dev.h"
#include "sem.h"

void tty_init()
{
	//tty
	*(unsigned long*)ARM7_UCON = 1;
}


int tty_out(char*buf)
{
	int i = 0;
	while(buf[i]!= 0){
		*(unsigned long*)(ARM7_UTXBUF) = buf[i++];
	}
	
	return i;
}

int tty_in(char *buf)
{
	int i = 0;
	
	semaphore_take(1);
	
	while(tty_str_buf[i]){
		*buf++ = tty_str_buf[i++];
	}
	*buf = 0;
	
	return i;	
}

static long tty_ioctrl()
{
	int cmd;
	long para,ret = 0;

	cmd = dev_get_cmd(DEV_TTY);
	para = dev_get_para(DEV_TTY);
	
	switch(cmd){
		case IOCTRL_INIT:
			tty_init();
			break;
		case IOCTRL_RD:
			ret = tty_in((char*)para);
			break;
		case IOCTRL_WE:
			ret = tty_out((char*)para);
			break;
		default:
			break;
	}

	return ret;	
}

void tty_register()
{
	dev_register(DEV_TTY, tty_ioctrl);
}

⌨️ 快捷键说明

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