Module Name: src Committed By: thorpej Date: Sat Apr 6 03:06:29 UTC 2019
Modified Files: src/distrib/sets/lists/comp: mi src/distrib/sets/lists/tests: module.mi src/share/man/man9: Makefile ipi.9 ucas.9 src/sys/arch/aarch64/aarch64: TODO fault.c fusu.S trap.c src/sys/arch/aarch64/include: machdep.h src/sys/arch/alpha/alpha: genassym.cf locore.s trap.c src/sys/arch/alpha/include: alpha.h pcb.h types.h src/sys/arch/amd64/amd64: copy.S trap.c src/sys/arch/amd64/include: types.h src/sys/arch/amiga/amiga: trap.c src/sys/arch/arm/arm: arm_machdep.c fusu.S lock_cas.S undefined.c src/sys/arch/arm/arm32: fault.c src/sys/arch/arm/include: locore.h types.h src/sys/arch/atari/atari: trap.c src/sys/arch/cesfic/cesfic: machdep.c trap.c src/sys/arch/hp300/hp300: trap.c src/sys/arch/hppa/hppa: copy.S machdep.c trap.c src/sys/arch/i386/i386: copy.S trap.c src/sys/arch/i386/include: types.h src/sys/arch/ia64/ia64: machdep.c support.S src/sys/arch/luna68k/luna68k: trap.c src/sys/arch/luna68k/stand/boot: machdep.c src/sys/arch/m68k/fpe: fpu_calcea.c fpu_emulate.c src/sys/arch/m68k/include: m68k.h src/sys/arch/m68k/m68k: compat_16_machdep.c copy.s m68k_machdep.c m68k_syscall.c m68k_trap.c regdump.c sunos_syscall.c src/sys/arch/mac68k/mac68k: trap.c src/sys/arch/mips/include: locore.h types.h src/sys/arch/mips/mips: bds_emul.S copy.S db_disasm.c db_interface.c fp.S lock_stubs_llsc.S lock_stubs_ras.S mips_emul.c mips_fixup.c trap.c src/sys/arch/mvme68k/mvme68k: trap.c src/sys/arch/news68k/news68k: trap.c src/sys/arch/next68k/next68k: trap.c src/sys/arch/powerpc/conf: files.powerpc src/sys/arch/powerpc/include: types.h src/sys/arch/powerpc/powerpc: locore_subr.S trap.c src/sys/arch/riscv/riscv: trap.c src/sys/arch/sh3/include: pcb.h src/sys/arch/sh3/sh3: db_disasm.c exception.c genassym.cf locore_subr.S sh3_machdep.c syscall.c vm_machdep.c src/sys/arch/sparc/sparc: compat_16_machdep.c db_trace.c locore.s machdep.c sunos_machdep.c trap.c src/sys/arch/sparc64/include: types.h src/sys/arch/sparc64/sparc64: copy.S src/sys/arch/sun2/sun2: trap.c src/sys/arch/sun3/sun3: trap.c src/sys/arch/usermode/include: types.h src/sys/arch/usermode/usermode: copy.c src/sys/arch/vax/vax: subr.S src/sys/arch/x68k/x68k: trap.c src/sys/compat/freebsd: freebsd_syscall.c src/sys/compat/linux/arch/alpha: linux_osf1.c src/sys/external/bsd/drm/dist/bsd-core: drmP.h src/sys/kern: subr_copy.c subr_prof.c src/sys/rump/librump/rumpkern: rumpcopy.c src/sys/sys: param.h systm.h src/sys/uvm: uvm_mmap.c src/tests/modules: Makefile Added Files: src/share/man/man9: ufetch.9 ustore.9 src/tests/modules/ufetchstore: Makefile.inc t_ufetchstore.c src/tests/modules/ufetchstore/module: Makefile common.h ufetchstore_tester.c Removed Files: src/share/man/man9: fetch.9 store.9 src/sys/arch/powerpc/powerpc: fubyte.c fuswintr.c subyte.c suswintr.c suword.c Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.2265 -r1.2266 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.17 -r1.18 src/distrib/sets/lists/tests/module.mi cvs rdiff -u -r1.435 -r1.436 src/share/man/man9/Makefile cvs rdiff -u -r1.16 -r0 src/share/man/man9/fetch.9 cvs rdiff -u -r1.2 -r1.3 src/share/man/man9/ipi.9 src/share/man/man9/ucas.9 cvs rdiff -u -r1.10 -r0 src/share/man/man9/store.9 cvs rdiff -u -r0 -r1.1 src/share/man/man9/ufetch.9 \ src/share/man/man9/ustore.9 cvs rdiff -u -r1.3 -r1.4 src/sys/arch/aarch64/aarch64/TODO cvs rdiff -u -r1.8 -r1.9 src/sys/arch/aarch64/aarch64/fault.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/aarch64/aarch64/fusu.S cvs rdiff -u -r1.16 -r1.17 src/sys/arch/aarch64/aarch64/trap.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/aarch64/include/machdep.h cvs rdiff -u -r1.20 -r1.21 src/sys/arch/alpha/alpha/genassym.cf cvs rdiff -u -r1.122 -r1.123 src/sys/arch/alpha/alpha/locore.s cvs rdiff -u -r1.133 -r1.134 src/sys/arch/alpha/alpha/trap.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/alpha/include/alpha.h cvs rdiff -u -r1.21 -r1.22 src/sys/arch/alpha/include/pcb.h cvs rdiff -u -r1.54 -r1.55 src/sys/arch/alpha/include/types.h cvs rdiff -u -r1.30 -r1.31 src/sys/arch/amd64/amd64/copy.S cvs rdiff -u -r1.118 -r1.119 src/sys/arch/amd64/amd64/trap.c cvs rdiff -u -r1.59 -r1.60 src/sys/arch/amd64/include/types.h cvs rdiff -u -r1.136 -r1.137 src/sys/arch/amiga/amiga/trap.c cvs rdiff -u -r1.54 -r1.55 src/sys/arch/arm/arm/arm_machdep.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/arm/fusu.S cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/arm/lock_cas.S cvs rdiff -u -r1.64 -r1.65 src/sys/arch/arm/arm/undefined.c cvs rdiff -u -r1.107 -r1.108 src/sys/arch/arm/arm32/fault.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/include/locore.h cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/include/types.h cvs rdiff -u -r1.114 -r1.115 src/sys/arch/atari/atari/trap.c cvs rdiff -u -r1.67 -r1.68 src/sys/arch/cesfic/cesfic/machdep.c cvs rdiff -u -r1.58 -r1.59 src/sys/arch/cesfic/cesfic/trap.c cvs rdiff -u -r1.152 -r1.153 src/sys/arch/hp300/hp300/trap.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/hppa/hppa/copy.S cvs rdiff -u -r1.9 -r1.10 src/sys/arch/hppa/hppa/machdep.c cvs rdiff -u -r1.108 -r1.109 src/sys/arch/hppa/hppa/trap.c cvs rdiff -u -r1.28 -r1.29 src/sys/arch/i386/i386/copy.S cvs rdiff -u -r1.299 -r1.300 src/sys/arch/i386/i386/trap.c cvs rdiff -u -r1.88 -r1.89 src/sys/arch/i386/include/types.h cvs rdiff -u -r1.41 -r1.42 src/sys/arch/ia64/ia64/machdep.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/ia64/ia64/support.S cvs rdiff -u -r1.70 -r1.71 src/sys/arch/luna68k/luna68k/trap.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/luna68k/stand/boot/machdep.c cvs rdiff -u -r1.26 -r1.27 src/sys/arch/m68k/fpe/fpu_calcea.c cvs rdiff -u -r1.38 -r1.39 src/sys/arch/m68k/fpe/fpu_emulate.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/m68k/include/m68k.h cvs rdiff -u -r1.16 -r1.17 src/sys/arch/m68k/m68k/compat_16_machdep.c cvs rdiff -u -r1.46 -r1.47 src/sys/arch/m68k/m68k/copy.s cvs rdiff -u -r1.9 -r1.10 src/sys/arch/m68k/m68k/m68k_machdep.c cvs rdiff -u -r1.52 -r1.53 src/sys/arch/m68k/m68k/m68k_syscall.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/m68k/m68k/m68k_trap.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/m68k/m68k/regdump.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/m68k/m68k/sunos_syscall.c cvs rdiff -u -r1.148 -r1.149 src/sys/arch/mac68k/mac68k/trap.c cvs rdiff -u -r1.103 -r1.104 src/sys/arch/mips/include/locore.h cvs rdiff -u -r1.67 -r1.68 src/sys/arch/mips/include/types.h cvs rdiff -u -r1.9 -r1.10 src/sys/arch/mips/mips/bds_emul.S \ src/sys/arch/mips/mips/lock_stubs_ras.S cvs rdiff -u -r1.16 -r1.17 src/sys/arch/mips/mips/copy.S cvs rdiff -u -r1.31 -r1.32 src/sys/arch/mips/mips/db_disasm.c cvs rdiff -u -r1.81 -r1.82 src/sys/arch/mips/mips/db_interface.c cvs rdiff -u -r1.49 -r1.50 src/sys/arch/mips/mips/fp.S cvs rdiff -u -r1.8 -r1.9 src/sys/arch/mips/mips/lock_stubs_llsc.S cvs rdiff -u -r1.26 -r1.27 src/sys/arch/mips/mips/mips_emul.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/mips/mips/mips_fixup.c cvs rdiff -u -r1.247 -r1.248 src/sys/arch/mips/mips/trap.c cvs rdiff -u -r1.109 -r1.110 src/sys/arch/mvme68k/mvme68k/trap.c cvs rdiff -u -r1.70 -r1.71 src/sys/arch/news68k/news68k/trap.c cvs rdiff -u -r1.89 -r1.90 src/sys/arch/next68k/next68k/trap.c cvs rdiff -u -r1.91 -r1.92 src/sys/arch/powerpc/conf/files.powerpc cvs rdiff -u -r1.57 -r1.58 src/sys/arch/powerpc/include/types.h cvs rdiff -u -r1.5 -r0 src/sys/arch/powerpc/powerpc/fubyte.c \ src/sys/arch/powerpc/powerpc/fuswintr.c \ src/sys/arch/powerpc/powerpc/subyte.c \ src/sys/arch/powerpc/powerpc/suswintr.c \ src/sys/arch/powerpc/powerpc/suword.c cvs rdiff -u -r1.56 -r1.57 src/sys/arch/powerpc/powerpc/locore_subr.S cvs rdiff -u -r1.154 -r1.155 src/sys/arch/powerpc/powerpc/trap.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/riscv/riscv/trap.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/sh3/include/pcb.h cvs rdiff -u -r1.22 -r1.23 src/sys/arch/sh3/sh3/db_disasm.c cvs rdiff -u -r1.66 -r1.67 src/sys/arch/sh3/sh3/exception.c cvs rdiff -u -r1.20 -r1.21 src/sys/arch/sh3/sh3/genassym.cf cvs rdiff -u -r1.56 -r1.57 src/sys/arch/sh3/sh3/locore_subr.S cvs rdiff -u -r1.106 -r1.107 src/sys/arch/sh3/sh3/sh3_machdep.c cvs rdiff -u -r1.15 -r1.16 src/sys/arch/sh3/sh3/syscall.c cvs rdiff -u -r1.78 -r1.79 src/sys/arch/sh3/sh3/vm_machdep.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/sparc/sparc/compat_16_machdep.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/sparc/sparc/db_trace.c cvs rdiff -u -r1.272 -r1.273 src/sys/arch/sparc/sparc/locore.s cvs rdiff -u -r1.329 -r1.330 src/sys/arch/sparc/sparc/machdep.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/sparc/sparc/sunos_machdep.c cvs rdiff -u -r1.197 -r1.198 src/sys/arch/sparc/sparc/trap.c cvs rdiff -u -r1.27 -r1.28 src/sys/arch/sparc64/include/types.h cvs rdiff -u -r1.7 -r1.8 src/sys/arch/sparc64/sparc64/copy.S cvs rdiff -u -r1.44 -r1.45 src/sys/arch/sun2/sun2/trap.c cvs rdiff -u -r1.144 -r1.145 src/sys/arch/sun3/sun3/trap.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/usermode/include/types.h cvs rdiff -u -r1.8 -r1.9 src/sys/arch/usermode/usermode/copy.c cvs rdiff -u -r1.35 -r1.36 src/sys/arch/vax/vax/subr.S cvs rdiff -u -r1.107 -r1.108 src/sys/arch/x68k/x68k/trap.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/freebsd/freebsd_syscall.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/linux/arch/alpha/linux_osf1.c cvs rdiff -u -r1.24 -r1.25 src/sys/external/bsd/drm/dist/bsd-core/drmP.h cvs rdiff -u -r1.8 -r1.9 src/sys/kern/subr_copy.c cvs rdiff -u -r1.48 -r1.49 src/sys/kern/subr_prof.c cvs rdiff -u -r1.22 -r1.23 src/sys/rump/librump/rumpkern/rumpcopy.c cvs rdiff -u -r1.584 -r1.585 src/sys/sys/param.h cvs rdiff -u -r1.281 -r1.282 src/sys/sys/systm.h cvs rdiff -u -r1.171 -r1.172 src/sys/uvm/uvm_mmap.c cvs rdiff -u -r1.15 -r1.16 src/tests/modules/Makefile cvs rdiff -u -r0 -r1.1 src/tests/modules/ufetchstore/Makefile.inc \ src/tests/modules/ufetchstore/t_ufetchstore.c cvs rdiff -u -r0 -r1.1 src/tests/modules/ufetchstore/module/Makefile \ src/tests/modules/ufetchstore/module/common.h \ src/tests/modules/ufetchstore/module/ufetchstore_tester.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.