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

📄 solio.c

📁 早期freebsd实现
💻 C
字号:
/* *  solIo.c * *	remade by A.Fujita, DEC-16-1992 */#include "sol.h"#include "solKbd.h"int lastEventTime = 0;static void (* solIoHandler)(); voidsolSetIoHandler( ioHandler )void (* ioHandler)(); {#ifdef	DEBUG	fprintf(stderr, "solSetIoHandler\t[solIo.c]\tStart\n");#endif	solIoHandler = ioHandler;#ifdef	DEBUG	fprintf(stderr, "solSetIoHandler\t[solIo.c]\tEnd\n");#endif}voidsolWakeupProc(blockData, result, pReadmask)pointer blockData;unsigned long   result;pointer pReadmask;{	long devicesReadable[mskcnt];	if(result <= 0) return;	MASKANDSETBITS(devicesReadable, LastSelectMask, EnabledDevices);	if(ANYSET(devicesReadable)) {		(* solIoHandler)();	}}voidProcessInputEvents(){	mieqProcessInputEvents();	miPointerUpdate();}solDevEvt	evtbuf[MAXEVENTS];voidsolEnqueueEvents(){	DevicePtr     	pPtr;	DevicePtr     	pKbd;	struct msdata 	*ptrEvents;		unsigned char 	*KbdEvents;	register int	numEvt;	register solDevEvtPtr evp;	Bool	 	ptrRetry, kbdRetry;					pPtr = LookupPointerDevice();	pKbd = LookupKeyboardDevice();	evp = evtbuf;	numEvt = solDevGetEvents(evp);	while (numEvt-- > 0) {		if (evp->type == EvtKey) {			solKbdEnqueueEvent(pKbd, evp);		} else {			solMouseEnqueueEvent(pPtr, evp);		}		evp++;	}/*	if (!pPtr->on || !pKbd->on)		return;	kbdRetry = TRUE;	while( kbdRetry ) {		KbdEvents = solKbdGetEvents(pKbd, &nk, &kbdRetry); 			while(nk--) {			solKbdEnqueueEvent(pKbd, KbdEvents++);		}	}	ptrRetry = TRUE;	while( ptrRetry ) {		ptrEvents = solMouseGetEvents(pPtr, &np, &ptrRetry); 			while(np--) {			solMouseEnqueueEvent(pPtr, ptrEvents++);		}	} */}

⌨️ 快捷键说明

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