Commit Graph

2480 Commits

Author SHA1 Message Date
pooka
795967533e Some rump kernel components for interfacing with the environment need
to access both NetBSD kernel facilities and facilities provided by the
environment.

Where the environment's headers can be #included without namespace
conflict (which can be done - with care - for some Xen mini-os
headers), it is convenient to simply allow the rump kernel code to
call directly into the environment.

This also requires not mangling the symbol names.

So provide a variable RUMP_SYM_NORENAME which can be set by a component
namefile to a series of symbols or symbol prefixes (in makefile-quoted
awk regexp syntax).  For example, in the rumpuser-xen xenbus driver:
 RUMP_SYM_NORENAME=xenbus_|HYPERVISOR_|wake$$|block$$|schedule$$|force_evtchn

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
(proposed on rumpkernel-users; very minor modification by myself)
2014-06-20 11:57:56 +00:00
pooka
4799824b3f Fix error return for rump_vfs_makeonedevnode()
from Ian Jackson <Ian.Jackson@eu.citrix.com>
2014-06-20 11:27:25 +00:00
alnsn
9fc0501842 Revert last change. This is not the right place for rumpuser_sync_icache(). 2014-06-18 19:50:32 +00:00
alnsn
f6181a22c5 Antti objected to including rumpuser_sync_icache. Exclude it from the build. 2014-06-17 08:42:35 +00:00
alnsn
bb8c3186cb Implement rumpuser_sync_icache hypercall. 2014-06-17 06:31:47 +00:00
pooka
bb567b2891 Add cat, rpcgen and stat to TOOLS_BUILDRUMP. They're useful for
installing headers for the app stack cases that need it done, and small
enough to not matter for the kernel-only cases that don't.
2014-06-15 14:36:57 +00:00
pooka
db668d0723 update comment 2014-06-15 12:58:01 +00:00
pooka
e7f2e099a2 call config_create_mountrootthreads(), if applicable 2014-06-13 15:51:13 +00:00
pooka
a25813f127 Add rump_boot_etfs_register(), which can be used to specify etfs
nodes that will be available immediately when mountroot is done
and file systems are available.

The intended use is for example for firmware images to be available when
config_mountroot() hooks run.
2014-06-13 15:45:01 +00:00
pooka
a554de2109 make sure we don't underflow the memlimit 2014-06-13 11:53:48 +00:00
pooka
fed90df329 fill in a few more uvmexp entries 2014-06-13 11:48:56 +00:00
joerg
16691bd24e Regenerate 2014-06-12 21:42:26 +00:00
rmind
264c0a1580 Restore the assert in RUMP's softint_schedule_cpu() and just ensure
curcpu() in the caller.
2014-06-09 13:03:16 +00:00
rmind
63efbb4369 RUMP's softint_schedule_cpu: comment out an assert for now. 2014-06-08 15:24:34 +00:00
rmind
ebd0b29ba9 Make kpreempt_disabled() always return true in RUMP kernels for now.
May revisit once RUMP provides better splfoo/splx() handling.
2014-06-07 11:08:09 +00:00
rmind
60d350cf6d - Implement pktqueue interface for lockless IP input queue.
- Replace ipintrq and ip6intrq with the pktqueue mechanism.
- Eliminate kernel-lock from ipintr() and ip6intr().
- Some preparation work to push softnet_lock out of ipintr().

Discussed on tech-net.
2014-06-05 23:48:16 +00:00
rmind
06dd4db047 librump: add kpreempt_disabled(9) and softint_schedule_cpu(9). 2014-06-05 23:43:04 +00:00
rmind
9c5de97f11 librump: include pcq(9) interface. 2014-06-05 23:42:25 +00:00
joerg
b8fbec4871 Regen. 2014-06-03 21:16:37 +00:00
joerg
57f7a68562 Regen. 2014-06-03 19:30:48 +00:00
njoly
c2f72e5f92 Regen for utimes(2). 2014-05-29 10:42:23 +00:00
njoly
6ef574d8cc Ajust for compat linux utimes(2) change. 2014-05-29 10:41:48 +00:00
justin
129ca10eeb Add missing __diagused in rump code 2014-05-28 20:57:22 +00:00
pooka
77684a56d8 mvphy is not configured, so don't try to build it 2014-05-26 19:55:53 +00:00
pooka
bc09db942d Call biodone() in the bdev_strategy() error via a pointer. Decouples
subr_devsw from VFS -- not that I/O buffers are _VFS_ entities -- and
eliminates the last weak alias from librump, which means things now
fully work on glibc (w/o LD_DYNAMIC_WEAK) and musl.

The whole code path is suspect anyway, since nothing prevents the device
from escaping after the lookup, suggesting that the whole error path
should be handled by the caller, but oh well.
2014-05-25 16:31:51 +00:00
pooka
984f14ab1c Permissions work better if you specify them in octal ...
Also, do an explicit chmod of /tmp to account for cmask getting in the way.
2014-05-23 10:56:36 +00:00
pooka
7b9bf19905 create /tmp at bootstrap, default TMPDIR used by some programs (e.g. ed) 2014-05-22 12:31:28 +00:00
rmind
4ae03c1815 - Split off PRU_ATTACH and PRU_DETACH logic into separate functions.
- Replace malloc with kmem and eliminate M_PCB while here.
- Sprinkle more asserts.
2014-05-19 02:51:24 +00:00
rmind
37af0cc75d Fix RUMP build. 2014-05-18 17:57:44 +00:00
rmind
9cf83d0317 Fix RUMP build. 2014-05-18 14:03:26 +00:00
dholland
7de8c6f8a6 Move lfs_getpages and lfs_putpages to their own file. 2014-05-16 09:34:03 +00:00
pooka
75b2fca271 comment meets reality 2014-05-09 06:12:48 +00:00
hannken
42c8d67c49 Add a global vnode cache:
- vcache_get() retrieves a referenced and initialised vnode / fs node pair.
- vcache_remove() removes a vnode / fs node pair from the cache.

On cache miss vcache_get() calls new vfs operation vfs_loadvnode() to
initialise a vnode / fs node pair.  This call is guaranteed exclusive,
no other thread will try to load this vnode / fs node pair.

Convert ufs/ext2fs, ufs/ffs and ufs/mfs to use this interface.

Remove now unused ufs/ufs_ihash

Discussed on tech-kern.

Welcome to 6.99.41
2014-05-08 08:21:53 +00:00
njoly
fa686015bc Regen for pread/pwrite signature. 2014-05-04 10:31:10 +00:00
njoly
470da95e01 Adjust pread/pwrite signature to match reality. 2014-05-04 10:30:39 +00:00
pooka
30ef45d967 regen 2014-04-27 16:30:09 +00:00
pooka
ab08c00801 unsprinkle const to fix clang build. mmm, travis ci 2014-04-27 16:28:21 +00:00
pooka
0cafe662ce weak alias removal implication: rumpuser_dl_globalsym() can now sleep
with the fishes.
2014-04-27 15:18:59 +00:00
pooka
9251b8c304 Eliminate weak symbols from rump kernel syscall handlers, part 7:
Build component constructors which establish syscalls at boottime.
2014-04-27 15:15:13 +00:00
pooka
97a5db624d Eliminate weak symbols from rump kernel syscall handlers, part 6:
Generate component constructors which establish non-modular syscalls.
2014-04-27 15:13:57 +00:00
pooka
4d8864ed4f Eliminate weak symbols from rump kernel syscall handlers, part 5:
regen syscalls to eliminate weak aliases and link-time initialization
2014-04-27 15:11:22 +00:00
pooka
f7f79bc05e Eliminate weak symbols from rump kernel syscall handlers, part 4:
Do not query system call handlers by using the rumpuser_dl_globalsym()
hypercall -- it will not work in environments which are not in control
of their own symbols (e.g. rumpuser-xen).  Instead, provide
rump_syscall_boot_establish(), which component constructors can use
to establish their non-modular syscalls.
2014-04-27 15:08:52 +00:00
pooka
28fecddfbc Eliminate weak symbols from rump kernel syscall handlers, part 3:
Add a tool to autogenerate callbacks from components to establish system
call handlers for non-modular syscalls.
2014-04-27 15:05:30 +00:00
pooka
c09af715b5 don't invade the __toolchain namespace 2014-04-26 11:23:56 +00:00
pooka
cd5f3c7d0b Move a few stubs to where they really belong; allows us to create
them as strong instead of weak symbols.
2014-04-26 11:23:03 +00:00
pooka
99ad67a71c kill weak aliases which are no longer necessary 2014-04-26 11:17:55 +00:00
pooka
2cd42818a5 cpu_reboot() is more of an emul.c thing than a rump.c thing 2014-04-25 19:56:01 +00:00
pooka
21061bdf88 gardenize: function calls over #ifdefs 2014-04-25 18:31:35 +00:00
pooka
d6ce63669d gardenize rump.c: move data structure helper routines to accessors.c 2014-04-25 18:25:38 +00:00
pooka
10b8dd3fa2 gardenizing rump.c: move rump_lockdebug to locks.c 2014-04-25 18:13:59 +00:00