privalloc.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 46 行

C
46
字号
#include <u.h>#include <libc.h>static Lock	privlock;static int	privinit;static void	**privs;extern void	**_privates;extern int	_nprivates;void **privalloc(void){	void **p;	int i;	lock(&privlock);	if(!privinit){		privinit = 1;		if(_nprivates){			_privates[0] = 0;			for(i = 1; i < _nprivates; i++)				_privates[i] = &_privates[i - 1];			privs = &_privates[i - 1];		}	}	p = privs;	if(p != nil){		privs = *p;		*p = nil;	}	unlock(&privlock);	return p;}voidprivfree(void **p){	lock(&privlock);	if(p != nil && privinit){		*p = privs;		privs = p;	}	unlock(&privlock);}

⌨️ 快捷键说明

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