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

📄 utils.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include "flashfs.h"char*	prog;ulong	sectsize;ulong	nsects;uchar*	sectbuff;int	readonly;ulong	delta;int	eparity;uchar	magic[]	= { MAGIC0, MAGIC1, MAGIC2, FFSVERS };intputc3(uchar *buff, ulong v){	if(v < (1 << 7)) {		buff[0] = v;		return 1;	}	if(v < (1 << 13)) {		buff[0] = 0x80 | (v >> 7);		buff[1] = v & ((1 << 7) - 1);		return 2;	}	if(v < (1 << 21)) {		buff[0] = 0x80 | (v >> 15);		buff[1] = 0x80 | ((v >> 8) & ((1 << 7) - 1));		buff[2] = v;		return 3;	}	fprint(2, "%s: putc3 fail 0x%lux, called from %#p\n", prog, v, getcallerpc(&buff));	abort();	return -1;}intgetc3(uchar *buff, ulong *p){	int c, d;	c = buff[0];	if((c & 0x80) == 0) {		*p = c;		return 1;	}	c &= ~0x80;	d = buff[1];	if((d & 0x80) == 0) {		*p = (c << 7) | d;		return 2;	}	d &= ~0x80;	*p = (c << 15) | (d << 8) | buff[2];	return 3;}ulongget4(uchar *b){	return	(b[0] <<  0) |		(b[1] <<  8) |		(b[2] << 16) |		(b[3] << 24);}voidput4(uchar *b, ulong v){	b[0] = v >>  0;	b[1] = v >>  8;	b[2] = v >> 16;	b[3] = v >> 24;}

⌨️ 快捷键说明

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