plan 9 kernel history: overview | file list | diff list

1991/0318/port/sysproc.c (diff list | history)

1991/0118/sys/src/9/port/sysproc.c:42,511991/0318/sys/src/9/port/sysproc.c:42,51 (short | long | prev | next)
1990/0227    
	 * Save time: only copy u-> data and useful stack 
	 */ 
1990/1211    
	clearmmucache(); 
1990/0227    
	memcpy((void*)upa, u, sizeof(User)); 
1991/0318    
	memmove((void*)upa, u, sizeof(User)); 
1990/0227    
	n = USERADDR+BY2PG - (ulong)&lastvar; 
	n = (n+32) & ~(BY2WD-1);	/* be safe & word align */ 
1990/0614    
	memcpy((void*)(upa+BY2PG-n), (void*)(USERADDR+BY2PG-n), n); 
1991/0318    
	memmove((void*)(upa+BY2PG-n), (void*)(USERADDR+BY2PG-n), n); 
1990/0227    
	((User *)upa)->p = p; 
1990/0614    
	kunmap(k); 
1990/0227    
 
1991/0118/sys/src/9/port/sysproc.c:79,881991/0318/sys/src/9/port/sysproc.c:79,88
1990/0227    
			p->seg[SSEG].o->pte[i].page = np; 
			if(i == 0){	/* only part of last stack page */ 
1990/0614    
				memset((void*)VA(k), 0, usp); 
				memcpy((void*)(VA(k)+usp), 
1991/0318    
				memmove((void*)(VA(k)+usp), 
1990/0614    
					(void*)(op->va+usp), BY2PG-usp); 
1990/0227    
			}else		/* all of higher pages */ 
1990/0614    
				memcpy((void*)VA(k), (void*)op->va, BY2PG); 
1991/0318    
				memmove((void*)VA(k), (void*)op->va, BY2PG); 
1990/0614    
			kunmap(k); 
1990/0227    
		} 
	} 
1991/0118/sys/src/9/port/sysproc.c:133,1391991/0318/sys/src/9/port/sysproc.c:133,139
1990/0227    
	pid = p->pid; 
	memset(p->time, 0, sizeof(p->time)); 
	p->time[TReal] = MACHP(0)->ticks; 
	memcpy(p->text, u->p->text, NAMELEN); 
1991/0318    
	memmove(p->text, u->p->text, NAMELEN); 
1990/0227    
	ready(p); 
	flushmmu(); 
1990/1211    
	clearmmucache(); 
1991/0118/sys/src/9/port/sysproc.c:185,1911991/0318/sys/src/9/port/sysproc.c:185,191
1990/0227    
	/* 
	 * Process #! /bin/sh args ... 
	 */ 
	memcpy(line, &exec, sizeof(Exec)); 
1991/0318    
	memmove(line, &exec, sizeof(Exec)); 
1990/0227    
	if(indir || line[0]!='#' || line[1]!='!') 
		goto Err; 
	n = shargs(line, n, progarg); 
1991/0118/sys/src/9/port/sysproc.c:265,2751991/0318/sys/src/9/port/sysproc.c:265,275
1990/0227    
		} 
		*argv++ = charp + (USTKTOP-TSTKTOP); 
		n = strlen(*argp) + 1; 
		memcpy(charp, *argp++, n); 
1991/0318    
		memmove(charp, *argp++, n); 
1990/0227    
		charp += n; 
	} 
 
	memcpy(p->text, elem, NAMELEN); 
1991/0318    
	memmove(p->text, elem, NAMELEN); 
1990/0227    
 
	/* 
	 * Committed.  Free old memory 
1991/0118/sys/src/9/port/sysproc.c:448,4541991/0318/sys/src/9/port/sysproc.c:448,454
1990/0227    
	char buf[ERRLEN]; 
 
1990/11211    
	validaddr(arg[0], ERRLEN, 1); 
	memcpy((char*)arg[0], u->error, ERRLEN); 
1991/0318    
	memmove((char*)arg[0], u->error, ERRLEN); 
1990/0227    
	return 0; 
} 
 
1991/0118/sys/src/9/port/sysproc.c:465,4711991/0318/sys/src/9/port/sysproc.c:465,471
1990/0227    
	if(arg[0] == 0) 
		pgrpcpy(pg, u->p->pgrp); 
1990/1009    
	else 
		memcpy(pg->user, u->p->pgrp->user, NAMELEN); 
1991/0318    
		memmove(pg->user, u->p->pgrp->user, NAMELEN); 
1990/0227    
	closepgrp(u->p->pgrp); 
	u->p->pgrp = pg; 
	return pg->pgrpid; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)