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

📄 mem.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#/* *//* *	Memory special file *	minor device 0 is physical memory *	minor device 1 is kernel memory *	minor device 2 is EOF/RATHOLE */#include "../h/param.h"#include "../h/dir.h"#include "../h/user.h"#include "../h/conf.h"#include "../h/seg.h"mmread(dev){	register c, bn, on;	int a, d;	if(minor(dev) == 2)		return;	do {		bn = u.u_offset >> 6;		on = u.u_offset & 077;		a = UISA->r[0];		d = UISD->r[0];		spl7();		UISA->r[0] = bn;		UISD->r[0] = 077406;		if(minor(dev) == 1)			UISA->r[0] = (ka6-6)->r[(bn>>7)&07] + (bn & 0177);		if ((c = fuibyte((caddr_t)on)) < 0)			u.u_error = ENXIO;		UISA->r[0] = a;		UISD->r[0] = d;		spl0();	} while(u.u_error==0 && passc(c)>=0);}mmwrite(dev){	register c, bn, on;	int a, d;	if(minor(dev) == 2) {		u.u_count = 0;		return;	}	for(;;) {		bn = u.u_offset >> 6;		on = u.u_offset & 077;		if ((c=cpass())<0 || u.u_error!=0)			break;		a = UISA->r[0];		d = UISD->r[0];		spl7();		UISA->r[0] = bn;		UISD->r[0] = 077406;		if(minor(dev) == 1)			UISA->r[0] = (ka6-6)->r[(bn>>7)&07] + (bn & 0177);		if (suibyte((caddr_t)on, c) < 0)			u.u_error = ENXIO;		UISA->r[0] = a;		UISD->r[0] = d;		spl0();	}}

⌨️ 快捷键说明

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