Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!wuarchive!mit-eddie!bu.edu!bu-cs!lectroid!jjmhome!m2c!umvlsi!dime!dime.cs.umass.edu!moss From: moss@takahe.cs.umass.edu (Eliot &) Newsgroups: comp.unix.wizards Subject: Re: What new system calls do you want in BSD? Message-ID: Date: 31 Jan 90 14:07:31 GMT References: <12157@stealth.acf.nyu.edu> <23527@stealth.acf.nyu.edu> <-AE1R04xds13@ficc.uu.net> Sender: root@dime.cs.umass.edu Reply-To: Moss@cs.umass.edu Distribution: usa Organization: Dept of Comp and Info Sci, Univ of Mass (Amherst) Lines: 23 In-reply-to: peter@ficc.uu.net's message of 29 Jan 90 15:34:27 GMT Another system call (that I feel any virtual memory system ought to support) is one to move a range of pages from one location in the address space to another. This is sometimes desirable for garbage collectors, etc. Note that one need not move the *data*, only the page table entries (though it is certainly more complicated than just a block move within the OS). Note that the call should work even if the range overlaps with itself. It is the page level analog of memcpy. The size of the region should probably *not* be specified in terms of pages, but rather bytes, and the source and destination addresses as byte addresses, too. The call should fail if the addresses are not page aligned and the quantity to move is not a multiple of the page size. If one allows additional arguments for adjusting the protection, and allows the source and/or destination to be associated with different processes and/or files, a general move/messaging operator results. Eliot -- J. Eliot B. Moss, Assistant Professor Department of Computer and Information Science Lederle Graduate Research Center University of Massachusetts Amherst, MA 01003 (413) 545-4206; Moss@cs.umass.edu