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

📄 console.h

📁 nachos系统作业 实现线程系统 实现一个电梯模拟 附实验报告
💻 H
字号:
// console.h //	Data structures to simulate the behavior of a terminal//	I/O device.  A terminal has two parts -- a keyboard input,//	and a display output, each of which produces/accepts //	characters sequentially.////	The console hardware device is asynchronous.  When a character is//	written to the device, the routine returns immediately, and an //	interrupt handler is called later when the I/O completes.//	For reads, an interrupt handler is called when a character arrives. ////	The user of the device can specify the routines to be called when //	the read/write interrupts occur.  There is a separate interrupt//	for read and write, and the device is "duplex" -- a character//	can be outgoing and incoming at the same time.////  DO NOT CHANGE -- part of the machine emulation//// Copyright (c) 1992-1993 The Regents of the University of California.// All rights reserved.  See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#ifndef CONSOLE_H#define CONSOLE_H#include "copyright.h"#include "utility.h"// The following class defines a hardware console device.// Input and output to the device is simulated by reading // and writing to UNIX files ("readFile" and "writeFile").//// Since the device is asynchronous, the interrupt handler "readAvail" // is called when a character has arrived, ready to be read in.// The interrupt handler "writeDone" is called when an output character // has been "put", so that the next character can be written.class Console {  public:    Console(char *readFile, char *writeFile, VoidFunctionPtr readAvail, 	VoidFunctionPtr writeDone, int callArg);				// initialize the hardware console device    ~Console();			// clean up console emulation// external interface -- Nachos kernel code can call these    void PutChar(char ch);	// Write "ch" to the console display, 				// and return immediately.  "writeHandler" 				// is called when the I/O completes.     char GetChar();	   	// Poll the console input.  If a char is 				// available, return it.  Otherwise, return EOF.    				// "readHandler" is called whenever there is 				// a char to be gotten// internal emulation routines -- DO NOT call these.     void WriteDone();	 	// internal routines to signal I/O completion    void CheckCharAvail();  private:    int readFileNo;			// UNIX file emulating the keyboard     int writeFileNo;			// UNIX file emulating the display    VoidFunctionPtr writeHandler; 	// Interrupt handler to call when 					// the PutChar I/O completes    VoidFunctionPtr readHandler; 	// Interrupt handler to call when 					// a character arrives from the keyboard    int handlerArg;			// argument to be passed to the 					// interrupt handlers    bool putBusy;    			// Is a PutChar operation in progress?					// If so, you can't do another one!    char incoming;    			// Contains the character to be read,					// if there is one available. 					// Otherwise contains EOF.};#endif // CONSOLE_H

⌨️ 快捷键说明

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