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

📄 io.c

📁 The main purpose of this project is to add a new scheduling algorithm to GeekOS and to implement a s
💻 C
字号:
/* * x86 port IO routines * Copyright (c) 2001, David H. Hovemeyer <daveho@cs.umd.edu> * $Revision: 1.10 $ *  * This is free software.  You are permitted to use, * redistribute, and modify it as specified in the file "COPYING". */#include <geekos/io.h>/* * Write a byte to an I/O port. */void Out_Byte(ushort_t port, uchar_t value){    __asm__ __volatile__ (	"outb %b0, %w1"	:	: "a" (value), "Nd" (port)    );}/* * Read a byte from an I/O port. */uchar_t In_Byte(ushort_t port){    uchar_t value;    __asm__ __volatile__ (	"inb %w1, %b0"	: "=a" (value)	: "Nd" (port)    );    return value;}/* * Write a word to an I/O port. */void Out_Word(ushort_t port, ushort_t value){    __asm__ __volatile__ (	"outw %w0, %w1"	:	: "a" (value), "Nd" (port)    );}/* * Read a byte from an I/O port. */ushort_t In_Word(ushort_t port){    ushort_t value;    __asm__ __volatile__ (	"inw %w1, %w0"	: "=a" (value)	: "Nd" (port)    );    return value;}/* * Short delay.  May be needed when talking to some * (slow) I/O devices. */void IO_Delay(void){    uchar_t value = 0;    __asm__ __volatile__ (	"outb %0, $0x80"	:	: "a" (value)    );}

⌨️ 快捷键说明

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