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

📄 rdb.c

📁 著名操作系统Plan 9的第三版的部分核心源代码。现在很难找到了。Plan 9是bell实验室开发的Unix后继者。
💻 C
字号:
#include "u.h"#include "../port/lib.h"#include "mem.h"#include "dat.h"#include "fns.h"#include "io.h"#include "ureg.h"extern Queue *printq;#define DBG	if(0)scrprint#pragma varargck argpos scrprint 1static Ureg ureg;static voidscrprint(char *fmt, ...){	char buf[128];	va_list va;	int n;	va_start(va, fmt);	n = doprint(buf, buf+sizeof buf, fmt, va)-buf;	va_end(va);	putstrn(buf, n);}static char*getline(void){	static char buf[128];	int i, c;	for(;;){		for(i=0; i<nelem(buf) && (c=serialgetc()) != '\n'; i++){			DBG("%c...", c);			buf[i] = c;		}		if(i < nelem(buf)){			buf[i] = 0;			return buf;		}	}}static void*addr(char *s, Ureg *ureg){	ulong a;	a = strtoul(s, 0, 16);	if(a < sizeof(Ureg))		return ((uchar*)ureg)+a;	return (void*)a;}static voidtalkrdb(Ureg *ureg){	uchar *a;	char *req;	printq = nil;	// turn off serial console//	scrprint("Plan 9 debugger\n");	iprint("Edebugger reset\n");	for(;;){		req = getline();		switch(*req){		case 'r':			a = addr(req+1, ureg);			DBG("read %p\n", a);			iprint("R%.8lux %.2ux %.2ux %.2ux %.2ux\n", strtoul(req+1, 0, 16), a[0], a[1], a[2], a[3]);			break;/* *		case Tmput:			n = min[4];			if(n > 4){				mesg(Rerr, Ecount);				break;			}			a = addr(min+0);			scrprint("mput %.8lux\n", a);			memmove(a, min+5, n);			mesg(Rmput, mout);			break; * */		default:			DBG("unknown %c\n", *req);			iprint("Eunknown message\n");			break;		}	}}voidrdb(void){	splhi();	iprint("rdb...");	callwithureg(talkrdb);}

⌨️ 快捷键说明

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