Home | History | Annotate | Download | only in rumpkern
History log of /src/sys/rump/librump/rumpkern/rumpcopy.c
RevisionDateAuthorComments
 1.25  01-Jul-2020  riastradh copystr is now in libkern; don't redefine it in rumpcopy.c.

Should fix build breakage from the copystr changes.
 1.24  05-Apr-2020  kamil Return early on 0-sized transfers (usually to/from NULL-objects)

This logic is already present in subr_copy.c:copyin_vmspace() and
rumpcopy.c:copyinstr().

This avoids memcpy() calls for NULL objects that is Undefined Behavior,
allowed in the kernel space (-fno-delete-null-pointer-checks), but not
in userland.

Reported by UBSan.
 1.23  06-Apr-2019  thorpej Overhaul the API used to fetch and store individual memory cells in
userspace. The old fetch(9) and store(9) APIs (fubyte(), fuword(),
subyte(), suword(), etc.) are retired and replaced with new ufetch(9)
and ustore(9) APIs that can return proper error codes, etc. and are
implemented consistently across all platforms. The interrupt-safe
variants are no longer supported (and several of the existing attempts
at fuswintr(), etc. were buggy and not actually interrupt-safe).

Also augmement the ucas(9) API, making it consistently available on
all plaforms, supporting uniprocessor and multiprocessor systems, even
those that do not have CAS or LL/SC primitives.

Welcome to NetBSD 8.99.37.
 1.22  25-May-2016  christos branches: 1.22.18;
Introduce security.pax.mprotect.ptrace sysctl which can be used to bypass
mprotect settings so that debuggers can write to the text segment of traced
processes so that they can insert breakpoints. Turned off by default.
Ok: chuq (for now)
 1.21  26-Jan-2016  pooka Put the kernelside rump kernel headers into <rump-sys> instead of
sprinkling them around the faction directories. Avoids having
to add a CPPFLAGS (or several) to pretty much every component
Makefile.

Leave compat headers around in the old locations.

The commit changes some autogenerated files, but I'll fix the
generators shortly and regen.
 1.20  18-Apr-2015  pooka Give remote clients struct pmap storage. Although the pmap is unused,
that way we can sure that the pmap macro framework doesn't access all
the wrong places.
 1.19  03-Jan-2015  pooka Put all sysproxy routines to their own C module, sysproxy.c
 1.18  26-Jul-2013  njoly branches: 1.18.6;
Make copyinstr/copyoutstr return EFAULT for special NULL "user"
address.
Ok pooka@.
 1.17  18-Jan-2011  haad branches: 1.17.6; 1.17.16; 1.17.20;
Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
 1.16  13-Jan-2011  pooka branches: 1.16.2;
Introduce RUMP_LOCALPROC_P() macro and use it.
 1.15  09-Jan-2011  pooka Shortcircuit remote 0-len copyin/out already in the kernel.
 1.14  09-Jan-2011  pooka accept '\0' as a valid string
 1.13  25-Nov-2010  pooka *facepalm*, adjust remote copyinstr to work in cases where the end
of the max copyin extends to an unmapped page.

Noticed, as usual, by tests.
 1.12  22-Nov-2010  pooka the usual wuninit stuff
 1.11  22-Nov-2010  pooka Support physio for remote processes.
==> add support for remote vmspace vmapbuf/vunmapbuf
==> add proper support for copyin/out_vmspace
==> add support for remote vmspace uvm_io
==> add support for non-curproc rumpuser_sp_copyin/out
==> store remote context in vm_map->pmap instead of
pthread_specificdata

In short, makes read/write of most (all?) block devices work from
a remote rump client via rump syscalls.
 1.10  17-Nov-2010  pooka cleanup some old garbage
 1.9  09-Nov-2010  pooka Fix off-by-one in the rpc path of copyinstr()
 1.8  09-Nov-2010  pooka fix copystr/copyinstr/copyoutstr to return ENAMETOOLONG where appropriate
 1.7  29-Oct-2010  pooka minor knf
 1.6  27-Oct-2010  pooka Start rework of system call proxying over socket ("sysproxy").
This incarnation is written in the user namespace as opposed to
the previous one which was done in kernel namespace. Also, rump
does all the handshaking now instead of excepting an application
to come up with the user namespace socket.

There's still a lot to do, including making code "a bit" more
robust, actually running different clients in a different process
inside the kernel and splitting the client side library from librump.
I'm committing this now so that I don't lose it, plus it generally
works as long as you don't use it in unexcepted ways: i've tested
ifconfig(8), route(8), envstat(8) and sysctl(8).
 1.5  18-Jul-2010  pooka Ignore errors when copyin/out len == 0.
 1.4  12-Jul-2010  pooka Implement poor man's (or woman's) fault handler (or handlim).

from Stan (or Loretta)
 1.3  10-Jun-2010  pooka Use kern_proc.c instead of a collection of stubs. But what we
really wanted from this commit was the support for proc_specificdata.

TODO: make creating a new process actually use kern_proc and
maybe even add an interface which starts a process with
"any pid you don't like"
 1.2  04-Nov-2009  pooka branches: 1.2.2; 1.2.4; 1.2.6;
trim trailing whitespace
 1.1  04-Nov-2009  pooka move copy-related routines to their own module
 1.2.6.2  05-Mar-2011  rmind sync with head
 1.2.6.1  03-Jul-2010  rmind sync with head
 1.2.4.3  11-Aug-2010  yamt sync with head.
 1.2.4.2  11-Mar-2010  yamt sync with head
 1.2.4.1  04-Nov-2009  yamt file rumpcopy.c was added on branch yamt-nfs-mp on 2010-03-11 15:04:38 +0000
 1.2.2.2  06-Nov-2010  uebayasi Sync with HEAD.
 1.2.2.1  17-Aug-2010  uebayasi Sync with HEAD.
 1.16.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.17.20.1  28-Aug-2013  rmind sync with head
 1.17.16.2  03-Dec-2017  jdolecek update from HEAD
 1.17.16.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.17.6.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.18.6.4  29-May-2016  skrll Sync with HEAD
 1.18.6.3  19-Mar-2016  skrll Sync with HEAD
 1.18.6.2  06-Jun-2015  skrll Sync with HEAD
 1.18.6.1  06-Apr-2015  skrll Sync with HEAD
 1.22.18.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.22.18.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed