unmap = ((struct proc_mm_op) { .op 	= MM_MUNMAP, .u 	= { .munmap	= { .addr 	= (unsigned long) addr, .len		= len } } } ); n = os_write_file(fd, &unmap, sizeof(unmap)); if(n != sizeof(unmap)) { if(n < 0) return(n); else if(n > 0) return(-EIO); } 
if(proc_mm){ struct proc_mm_op unmap; int fd = mm_idp->u.mm_fd; unmap = ((struct proc_mm_op) { .op	= MM_MUNMAP, .u	= { .munmap	= { .addr	= (unsigned long) addr, .len		= len } } } ); n = os_write_file(fd, &unmap, sizeof(unmap)); if(n != sizeof(unmap)) { if(n < 0) return(n); else if(n > 0) return(-EIO); } } else { int res; unsigned long args[] = { (unsigned long) addr, len, 0, 0, 0, 0 }; 
int unmap(int fd, void *addr, unsigned long len){	struct proc_mm_op unmap;	int n;	unmap = ((struct proc_mm_op) { .op 	= MM_MUNMAP,				       .u 	= 				       { .munmap	= 					 { .addr 	= (unsigned long) addr,					   .len		= len } } } );	n = os_write_file(fd, &unmap, sizeof(unmap));	if(n != sizeof(unmap)) {		if(n < 0)			return(n);		else if(n > 0)			return(-EIO);	}	return(0);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d67b569f5f620c0fb95d5212642746b7ba9d29e4/mem_user.c/buggy/arch/um/kernel/skas/mem_user.c