您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ validaddr函数代码示例

51自学网 2021-06-03 09:32:48
  C++
这篇教程C++ validaddr函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中validaddr函数的典型用法代码示例。如果您正苦于以下问题:C++ validaddr函数的具体用法?C++ validaddr怎么用?C++ validaddr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了validaddr函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sys_stat

longsys_stat(ulong *arg){	Chan *c;	uint l;	uchar buf[128];	/* old DIRLEN plus a little should be plenty */	char strs[128], *name;	Dir d;	char old[] = "old stat system call - recompile";	validaddr(arg[1], 116, 1);	validaddr(arg[0], 1, 0);	c = namec((char*)arg[0], Aaccess, 0, 0);	if(waserror()){		cclose(c);		nexterror();	}	l = devtab[c->type]->stat(c, buf, sizeof buf);	/* buf contains a new stat buf; convert to old. yuck. */	if(l <= BIT16SZ)	/* buffer too small; time to face reality */		error(old);	name = pathlast(c->path);	if(name)		l = dirsetname(name, strlen(name), buf, l, sizeof buf);	l = convM2D(buf, l, &d, strs);	if(l == 0)		error(old);	packoldstat((uchar*)arg[1], &d);		poperror();	cclose(c);	return 0;}
开发者ID:Akheon23,项目名称:nix-os,代码行数:33,


示例2: syswstat

voidsyswstat(Ar0* ar0, ...){	Chan *c;	char *aname;	uint8_t *p;	usize n;	va_list list;	va_start(list, ar0);	/*	 * int wstat(char* name, uchar* edir, int nedir);	 * should really be	 * usize wstat(char* name, uchar* edir, usize nedir);	 * but returning an unsigned is probably too	 * radical.	 */	aname = va_arg(list, char*);	p = va_arg(list, uint8_t*);	n = va_arg(list, usize);	p = validaddr(p, n, 0);	validstat(p, n);	c = namec(validaddr(aname, 1, 0), Aaccess, 0, 0);	va_end(list);	ar0->l = wstat(c, p, n);}
开发者ID:Shamar,项目名称:harvey,代码行数:28,


示例3: findblock

int findblock(int addr,int size,int begin) { int i,j,idx,ptr; ptr=addr; if (begin) {  idx=OFF1+addr-PTR;  while(1) {   while(((!validaddr(ptr))||lookup[idx])&&(idx<OFF2)) {    idx+=4;    ptr+=4;   }   if (idx>=OFF2) return 0;   if (freeblock(idx,size)) return idx;   idx+=4;   ptr+=4;  } } else {  idx=addr-PTR;  while(1) {   while(((!validaddr(ptr))||lookup[idx])&&(idx>OFF1)) {    idx-=4;    ptr-=4;   }   if (idx<OFF1) return 0;   if (freeblock(idx,size)) return idx;   idx-=4;   ptr-=4;  } }}
开发者ID:offensive-security,项目名称:exploit-database,代码行数:29,


示例4: findsblock

int findsblock(int sptr) { int optr,sidx,size; size=gfirst ? 0x2c:0x04; optr=sptr; while(sidx=findblock(sptr,size,1)) {  sptr=IDX2PTR(sidx);  if (gfirst) {   if (validaddr(sptr)) {    ALLOCBLOCK(sidx,size);    break;   } else sptr=optr;  } else {   if (validaddr(sptr-0x18)&&freeblock(sidx-0x18,4)&&freeblock(sidx+0x0c,4)&&       freeblock(sidx+0x10,4)&&freeblock(sidx-0x0e,4)) {    ALLOCBLOCK(sidx-0x18,4);    ALLOCBLOCK(sidx-0x0e,2);    ALLOCBLOCK(sidx,4);    ALLOCBLOCK(sidx+0x0c,4);    ALLOCBLOCK(sidx+0x10,4);    sidx-=0x18;    break;   } else sptr=optr;  }  sptr+=4;  optr=sptr;  } gfirst=0; return sidx;}
开发者ID:offensive-security,项目名称:exploit-database,代码行数:30,


示例5: sysunmount

longsysunmount(ulong *arg){	Chan *cmount, *cmounted;	cmounted = 0;	validaddr(arg[1], 1, 0);	cmount = namec((char *)arg[1], Amount, 0, 0);	if(waserror()) {		cclose(cmount);		if(cmounted)			cclose(cmounted);		nexterror();	}	if(arg[0]) {		/*		 * This has to be namec(..., Aopen, ...) because		 * if arg[0] is something like /srv/cs or /fd/0,		 * opening it is the only way to get at the real		 * Chan underneath.		 */		validaddr(arg[0], 1, 0);		cmounted = namec((char*)arg[0], Aopen, OREAD, 0);	}	cunmount(cmount, cmounted);	poperror();	cclose(cmount);	if(cmounted)		cclose(cmounted);	return 0;}
开发者ID:Akheon23,项目名称:nix-os,代码行数:33,


示例6: syssemalt

voidsyssemalt(Ar0 *ar0, ...){	Proc *up = externup();	int **sl;	int i, *np, ns;	Segment *sg;	Sem *ksl[16];	va_list list;	va_start(list, ar0);	/*	 * void semalt(int*[], int);	 */	ar0->i = -1;	sl = va_arg(list, int**);	ns = va_arg(list, int);	sl = validaddr(sl, ns * sizeof(int*), 1);	if(ns > nelem(ksl))		panic("syssemalt: bug: too many semaphores in alt");	for(i = 0; i < ns; i++){		np = sl[i];		np = validaddr(np, sizeof(int), 1);		evenaddr(PTR2UINT(np));		if((sg = seg(up, PTR2UINT(np), 0)) == nil)			error(Ebadarg);		ksl[i] = segmksem(sg, np);	}	ar0->i = semalt(ksl, ns);	va_end(list);}
开发者ID:Shamar,项目名称:harvey,代码行数:31,


示例7: syswstat

longsyswstat(ulong *arg){	Chan *c;	uint l;	l = arg[2];	validaddr(arg[1], l, 0);	validstat((uchar*)arg[1], l);	validaddr(arg[0], 1, 0);	c = namec((char*)arg[0], Aaccess, 0, 0);	return wstat(c, (uchar*)arg[1], l);}
开发者ID:Akheon23,项目名称:nix-os,代码行数:13,


示例8: sysunmount

voidsysunmount(Ar0* ar0, ...){	Proc *up = externup();	char *name, *old;	Chan *cmount, *cmounted;	va_list list;	va_start(list, ar0);	/*	 * int unmount(char* name, char* old);	 */	name = va_arg(list, char*);	old = va_arg(list, char*);	cmount = namec(validaddr(old, 1, 0), Amount, 0, 0);	va_end(list);	cmounted = nil;	if(name != nil) {		if(waserror()) {			cclose(cmount);			nexterror();		}		/*		 * This has to be namec(..., Aopen, ...) because		 * if arg[0] is something like /srv/cs or /fd/0,		 * opening it is the only way to get at the real		 * Chan underneath.		 */		cmounted = namec(validaddr(name, 1, 0), Aopen, OREAD, 0);		poperror();	}	if(waserror()) {		cclose(cmount);		if(cmounted != nil)			cclose(cmounted);		nexterror();	}	cunmount(cmount, cmounted);	cclose(cmount);	if(cmounted != nil)		cclose(cmounted);	poperror();	ar0->i = 0;}
开发者ID:Shamar,项目名称:harvey,代码行数:49,


示例9: sysziofree

voidsysziofree(Ar0 *ar0, ...){	Mach *m = machp();	Zio *io;	int nio, i;	Segment *s;	va_list list;	va_start(list, ar0);	/*	 * zfree(Zio io[], int nio);	 */	io = va_arg(list, Zio*);	nio = va_arg(list, int);	va_end(list);	io = validaddr(io, sizeof io[0] * nio, 1);	for(i = 0; i < nio; i++){		s = seg(m->externup, PTR2UINT(io[i].data), 1);		if(s == nil)			error("invalid address in zio");		if((s->type&SG_ZIO) == 0){			qunlock(&s->lk);			error("segment is not a zero-copy segment");		}		zputaddr(s, PTR2UINT(io[i].data));		qunlock(&s->lk);		io[i].data = nil;		io[i].size = 0;	}}
开发者ID:npe9,项目名称:harvey,代码行数:31,


示例10: sysseek

longsysseek(ulong *arg){	validaddr(arg[0], BY2V, 1);	sseek(arg);	return 0;}
开发者ID:Akheon23,项目名称:nix-os,代码行数:7,


示例11: sysopen

voidsysopen(Ar0* ar0, ...){	Proc *up = externup();	va_list list;	char *aname;	int fd, omode;	Chan *c;	/*	 * int open(char* file, int omode);	 */	va_start(list, ar0);	aname = va_arg(list, char*);	omode = va_arg(list, int);	va_end(list);	openmode(omode);	/* error check only */	c = nil;	if(waserror()){		if(c != nil)			cclose(c);		nexterror();	}	aname = validaddr(aname, 1, 0);	c = namec(aname, Aopen, omode, 0);	fd = newfd(c);	if(fd < 0)		error(Enofd);	poperror();	ar0->i = fd;}
开发者ID:Shamar,项目名称:harvey,代码行数:33,


示例12: sysfversion

longsysfversion(ulong *arg){	char *vers;	uint arglen, m, msize;	Chan *c;	msize = arg[1];	vers = (char*)arg[2];	arglen = arg[3];	validaddr(arg[2], arglen, 1);	/* check there's a NUL in the version string */	if(arglen==0 || memchr(vers, 0, arglen)==0)		error(Ebadarg);	c = fdtochan(arg[0], ORDWR, 0, 1);	if(waserror()){		cclose(c);		nexterror();	}	m = mntversion(c, vers, msize, arglen);	cclose(c);	poperror();	return m;}
开发者ID:CoryXie,项目名称:nix-os,代码行数:26,


示例13: sysfwstat

voidsysfwstat(Ar0* ar0, ...){	Chan *c;	int fd;	uint8_t *p;	usize n;	va_list list;	va_start(list, ar0);	/*	 * int fwstat(int fd, uchar* edir, int nedir);	 * should really be	 * usize wstat(int fd, uchar* edir, usize nedir);	 * but returning an unsigned is probably too	 * radical.	 */	fd = va_arg(list, int);	p = va_arg(list, uint8_t*);	n = va_arg(list, usize);	p = validaddr(p, n, 0);	validstat(p, n);	c = fdtochan(fd, -1, 1, 1);	va_end(list);	ar0->l = wstat(c, p, n);}
开发者ID:Shamar,项目名称:harvey,代码行数:28,


示例14: sysfd2path

voidsysfd2path(Ar0* ar0, ...){	Chan *c;	char *buf;	int fd;	usize nbuf;	va_list list;	va_start(list, ar0);	/*	 * int fd2path(int fd, char* buf, int nbuf);	 * should be	 * int fd2path(int fd, char* buf, usize nbuf);	 */	fd = va_arg(list, int);	buf = va_arg(list, char*);	nbuf = va_arg(list, usize);	va_end(list);	buf = validaddr(buf, nbuf, 1);	c = fdtochan(fd, -1, 0, 1);	snprint(buf, nbuf, "%s", chanpath(c));	cclose(c);	ar0->i = 0;}
开发者ID:Shamar,项目名称:harvey,代码行数:27,


示例15: syscreate

voidsyscreate(Ar0* ar0, ...){	Proc *up = externup();	char *aname;	int fd, omode, perm;	Chan *c;	va_list list;	va_start(list, ar0);	/*	 * int create(char* file, int omode, uint32_t perm);	 * should be	 * int create(char* file, int omode, int perm);	 */	aname = va_arg(list, char*);	omode = va_arg(list, int);	perm = va_arg(list, int);	va_end(list);	openmode(omode & ~OEXCL);	/* error check only; OEXCL okay here */	c = nil;	if(waserror()) {		if(c != nil)			cclose(c);		nexterror();	}	c = namec(validaddr(aname, 1, 0), Acreate, omode, perm);	fd = newfd(c);	if(fd < 0)		error(Enofd);	poperror();	ar0->i = fd;}
开发者ID:Shamar,项目名称:harvey,代码行数:35,


示例16: sysfversion

voidsysfversion(Ar0* ar0, va_list list){	Chan *c;	char *version;	int fd;	u32int msize;	usize nversion;	/*	 * int fversion(int fd, int bufsize, char *version, int nversion);	 * should be	 * usize fversion(int fd, u32int msize, char *version, usize nversion);	 */	fd = va_arg(list, int);	msize = va_arg(list, u32int);	version = va_arg(list, char*);	nversion = va_arg(list, usize);	version = validaddr(version, nversion, 1);	/* check there's a NUL in the version string */	if(nversion == 0 || memchr(version, 0, nversion) == nil)		error(Ebadarg);	c = fdtochan(fd, ORDWR, 0, 1);	if(waserror()){		cclose(c);		nexterror();	}	ar0->u = mntversion(c, msize, version, nversion);	cclose(c);	poperror();}
开发者ID:0intro,项目名称:enhanced-plan9,代码行数:34,


示例17: sysfversion

uintptrsysfversion(va_list list){	uint msize, arglen;	char *vers;	Chan *c;	int fd;	fd = va_arg(list, int);	msize = va_arg(list, uint);	vers = va_arg(list, char*);	arglen = va_arg(list, uint);	validaddr((uintptr)vers, arglen, 1);	/* check there's a NUL in the version string */	if(arglen==0 || memchr(vers, 0, arglen)==0)		error(Ebadarg);	c = fdtochan(fd, ORDWR, 0, 1);	if(waserror()){		cclose(c);		nexterror();	}	msize = mntversion(c, vers, msize, arglen);	cclose(c);	poperror();	return msize;}
开发者ID:Nurb432,项目名称:plan9front,代码行数:26,


示例18: sysremove

longsysremove(ulong *arg){	Chan *c;	validaddr(arg[0], 1, 0);	c = namec((char*)arg[0], Aremove, 0, 0);	/*	 * Removing mount points is disallowed to avoid surprises	 * (which should be removed: the mount point or the mounted Chan?).	 */	if(c->ismtpt){		cclose(c);		error(Eismtpt);	}	if(waserror()){		c->type = 0;	/* see below */		cclose(c);		nexterror();	}	devtab[c->type]->remove(c);	/*	 * Remove clunks the fid, but we need to recover the Chan	 * so fake it up.  rootclose() is known to be a nop.	 */	c->type = 0;	poperror();	cclose(c);	return 0;}
开发者ID:Akheon23,项目名称:nix-os,代码行数:30,


示例19: sysexits

uintptrsysexits(va_list list){	char *status;	char *inval = "invalid exit string";	char buf[ERRMAX];	status = va_arg(list, char*);	if(status != nil){		if(waserror())			status = inval;		else{			validaddr((uintptr)status, 1, 0);			if(vmemchr(status, 0, ERRMAX) == nil){				memmove(buf, status, ERRMAX);				buf[ERRMAX-1] = 0;				status = buf;			}			poperror();		}	}	pexit(status, 1);	return 0;	/* not reached */}
开发者ID:srk-cmu,项目名称:9problems,代码行数:25,


示例20: sys_wait

uintptrsys_wait(va_list list){	ulong pid;	Waitmsg w;	OWaitmsg *ow;	ow = va_arg(list, OWaitmsg*);	if(ow == nil)		pid = pwait(nil);	else {		validaddr((uintptr)ow, sizeof(OWaitmsg), 1);		evenaddr((uintptr)ow);		pid = pwait(&w);	}	if(ow != nil){		readnum(0, ow->pid, NUMSIZE, w.pid, NUMSIZE);		readnum(0, ow->time+TUser*NUMSIZE, NUMSIZE, w.time[TUser], NUMSIZE);		readnum(0, ow->time+TSys*NUMSIZE, NUMSIZE, w.time[TSys], NUMSIZE);		readnum(0, ow->time+TReal*NUMSIZE, NUMSIZE, w.time[TReal], NUMSIZE);		strncpy(ow->msg, w.msg, sizeof(ow->msg)-1);		ow->msg[sizeof(ow->msg)-1] = '/0';	}	return pid;}
开发者ID:srk-cmu,项目名称:9problems,代码行数:25,


示例21: sysexits

int32_tsysexits(uint32_t *arg){	char *status;	char *inval = "invalid exit string";	char buf[ERRMAX];	status = (char*)arg[0];	if(status){		if(waserror())			status = inval;		else{			validaddr((uint32_t)status, 1, 0);			if(vmemchr(status, 0, ERRMAX) == 0){				memmove(buf, status, ERRMAX);				buf[ERRMAX-1] = 0;				status = buf;			}		}		poperror();	}	pexit(status, 1);	return 0;		/* not reached */}
开发者ID:npe9,项目名称:harvey,代码行数:25,


示例22: sysnotify

longsysnotify(ulong *arg){	if(arg[0] != 0)		validaddr(arg[0], sizeof(ulong), 0);	up->notify = (int(*)(void*, char*))(arg[0]);	return 0;}
开发者ID:hckjsnzf,项目名称:selflib,代码行数:8,


示例23: sysseek

longsysseek(ulong *arg){	validaddr(arg[0], sizeof(vlong), 1);	validalign(arg[0], sizeof(vlong));	sseek(arg);	return 0;}
开发者ID:carriercomm,项目名称:plan9-gpl,代码行数:8,


示例24: fsave

static voidfsave(Ureg*, int, void *d, Internal*, Internal*){	validaddr(d, 108, 1);	memmove(d, &I387, 108);	I387.control = 0x037F;	I387.status = 0;	I387.tag = 0;}
开发者ID:8l,项目名称:inferno,代码行数:9,


示例25: loadi16

static voidloadi16(void *s, Internal *d){	Word w;	validaddr(s, 2, 0);	w = *(short*)s;	fpiw2i(d, &w);}
开发者ID:8l,项目名称:inferno,代码行数:9,


示例26: findfblock

int findfblock(int fptr,int i1,int i2,int i3) { int fidx,optr; optr=fptr; while(fidx=findblock(fptr,4,0)) {  fptr=IDX2PTR(fidx);  if (validaddr(fptr-i2)&&validaddr(fptr-i2-i3)&&freeblock(fidx-i3,4)&&      freeblock(fidx-i2-i3,4)&&freeblock(fidx-i2-i3+i1,4)) {   ALLOCBLOCK(fidx,4);   ALLOCBLOCK(fidx-i3,4);   ALLOCBLOCK(fidx-i2-i3,4);   ALLOCBLOCK(fidx-i2-i3+i1,4);   break;  } else fptr=optr;  fptr-=4;  optr=fptr; } return fidx;}
开发者ID:offensive-security,项目名称:exploit-database,代码行数:18,


示例27: _sysstat

long_sysstat(char *name, void *buf, long n){	Chan *c;	uint l;	l = n;	validaddr(buf, l, 1);	validaddr(name, 1, 0);	c = namec(name, Aaccess, 0, 0);	if(waserror()){		cclose(c);		nexterror();	}	l = devtab[c->type]->stat(c, buf, l);	poperror();	cclose(c);	return l;}
开发者ID:99years,项目名称:plan9,代码行数:19,


示例28: sysnotify

uintptrsysnotify(va_list list){	int (*f)(void*, char*);	f = va_arg(list, void*);	if(f != nil)		validaddr((uintptr)f, sizeof(void*), 0);	up->notify = f;	return 0;}
开发者ID:srk-cmu,项目名称:9problems,代码行数:10,


示例29: sys_fsession

longsys_fsession(ulong *arg){	/* deprecated; backwards compatibility only */	if(arg[2] == 0)		error(Ebadarg);	validaddr(arg[1], arg[2], 1);	((uchar*)arg[1])[0] = '/0';	return 0;}
开发者ID:CoryXie,项目名称:nix-os,代码行数:11,


示例30: storei16

static voidstorei16(Internal s, void *d){	Word w;	validaddr(d, 2, 1);	fpii2w(&w, &s);	if((short)w != w)		;	/* overflow */	*(short*)d = w;}
开发者ID:8l,项目名称:inferno,代码行数:11,



注:本文中的validaddr函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ validateAddress函数代码示例
C++ valid_user_regs函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。