Commit Graph

640 Commits

Author SHA1 Message Date
pooka
4465a9263d Rename _rumpuser_malloc to rumpuser__malloc so that all exported
rumpuser symbols start with "rumpuser".
(no major bumps or compat will be provided)
2009-01-07 19:49:48 +00:00
pooka
1dbafce17b Add md crud to allow libkern softfloat code to build.
And while here, make alpha use the real elf relocation code.
2009-01-06 17:04:01 +00:00
mjf
89df864a44 Add missing dollar sign ($) for $NetBSD$ tag. 2009-01-06 15:52:27 +00:00
pooka
5e4b7cd86e powerpc md stuff for libkern 2009-01-06 13:20:34 +00:00
pooka
835b96d4ab adjust LD32DIR comment. per discussion with mrg 2009-01-06 01:00:57 +00:00
pooka
80508c50c5 Rename malloc() to kern_malloc() to avoid name conflict with libc.
Now it is possible to use the kernel linker with rump.
2009-01-05 21:42:37 +00:00
pooka
6ddc756654 Assemble with _LOCORE. 2009-01-05 14:35:47 +00:00
pooka
2f633898ae g/c unused rumpuser bswap routines 2009-01-05 01:51:31 +00:00
pooka
b319317906 Include libkern contents in librump. 2009-01-04 20:30:21 +00:00
pooka
3c58d5b25f My clever hack was not enough. Disable DELAY via ifndef _RUMPKERN in
subr_prf until I manage to get all archs in line with a proper MI
signature.
2009-01-02 22:03:00 +00:00
pooka
055c86bdde Sauce with some kludges:
* revert rev 1.68 of emul.c: delay() is hopelessly MD and needs
  whipping (not the fun kind)
* #undef DELAY in cpu.h

This will hopefully fix build for all archs and give me time to
hop through our 46521 fine archs and edit the headers.
2009-01-02 16:18:59 +00:00
pooka
b55ef665bd Add kludge to allow amd64 compat to build. This is not a proper
fix which most likely requires some compat lib build infra toggle.
2009-01-02 14:03:15 +00:00
pooka
624b664af1 Export delay, _delay and delay_func symbols to attempt to appease
the macro mania set over all architectures.
2009-01-02 11:39:26 +00:00
pooka
72858b67bf Define -DMODULAR in Makefile.rump instead of the sys/rump/librump
Makefile.inc so that it gets picked up by UPDATE=1
2009-01-02 11:13:38 +00:00
pooka
23bce3395a printf needs IPL_HIGH 2009-01-02 10:45:26 +00:00
pooka
167269d42c Include kernel printf routines in rump instead of relying on the
magic libc symbol.  This also allows to bid farewell to subr_prf2.c
and merge the contents back to subr_prf.c.  The host kernel bridging
is now done via rumpuser_putchar().
2009-01-02 02:54:13 +00:00
pooka
b5d970336b disable strict aliasing to mirror kernel build flags 2009-01-01 22:16:35 +00:00
pooka
bd4f61f139 add missing "arch/" as noted by a few people 2009-01-01 20:30:45 +00:00
pooka
3945d47397 Purge multiple kernel opt files. 2009-01-01 19:43:57 +00:00
pooka
69a1713a8e fix format 2009-01-01 19:33:40 +00:00
pooka
afadc531af missed cvs add in previous commit:
Define MODULAR for rump core components.  This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
2009-01-01 19:11:18 +00:00
pooka
9a722ef702 Define MODULAR for rump core components. This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
2009-01-01 19:07:43 +00:00
pooka
360af828c1 Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
2009-01-01 16:50:30 +00:00
pooka
c26a0d893f update description of include 2008-12-31 13:18:06 +00:00
pooka
94dc15e204 Include rb.c instead of relying on it being in libc. 2008-12-31 13:08:57 +00:00
pooka
cb118e551d yank debug printf from previous 2008-12-31 00:57:45 +00:00
pooka
e8b4276abd Reset proc0 cwdi after unmount. Makes is possible to mount/unmount/mount
in one process.
(XXX: this code is still horrible)

problem reported by stacktic
2008-12-31 00:57:15 +00:00
pooka
dfa6b36e0e Move list of rump-uses-kmod archs to bsd.own.mk for wider consumption. 2008-12-30 21:31:10 +00:00
pooka
3b189207d8 Switch amd64 rumps to the kernel ABI. 2008-12-30 19:05:40 +00:00
pooka
593f6357c6 -I${RUMPTOP}/librump/rumpkern so that build from src/lib works.
noted by Geoff Wing on current-users
2008-12-30 09:49:21 +00:00
pooka
9c5307acaa properly handle kthread_exit() 2008-12-30 00:36:38 +00:00
pooka
9fd33357b3 Provide ifunit stub in the same place as others. 2008-12-29 23:18:35 +00:00
pooka
8a1a1e1e27 * make features match those of the nfs module just to have them in-sync
* remove stubs.c since all are now provided by rumpnet
2008-12-29 23:17:42 +00:00
pooka
14d6fd5a0b __weak_alias some more networking symbols for the benefit of the
nfs boot code in case not using the full networking stack.
2008-12-29 23:12:11 +00:00
pooka
f8829b7dcb Switch i386 away from rump/include/machine. This means that rump
on i386 now uses the native kernel ABI.  This in turn means that
rump modules and kernel modules are binary equivalent and can be
used interchangeably.
2008-12-29 22:16:15 +00:00
pooka
d19a006d1c Register a dummy block device for rump, since some file systems do
a sanity check to see if the block device exists.  This dummy block
device should eventually replace rump specfs.
2008-12-29 20:39:49 +00:00
pooka
b03bd9bf49 We are conseptually a module, so -D_MODULE. Group CPPFLAGS better. 2008-12-29 18:53:57 +00:00
pooka
614c33507f include subr_devsw in rumpkern 2008-12-29 17:45:55 +00:00
pooka
8583cae233 Rename specfs_lock as device_lock and move it from specfs to devsw.
Relaxes kernel dependency on vfs.
2008-12-29 17:41:18 +00:00
pooka
841fb873aa sprinkle static 2008-12-29 14:35:05 +00:00
cegger
beb4d1e5cc undo turn malloc flags to enums.
Requested by christos.

Keep malloc flag defines in kernel section.
2008-12-21 17:49:55 +00:00
cegger
c9114d086d Turn malloc flags into an enum. Fixes build breakage. 2008-12-20 09:17:55 +00:00
pgoyette
9c68331911 Store config(1)'s root filesystem type as a text string rather than
embedding the address of its xxx_mountroot() in swapnetbsd.c.  This
permits booting of kernels with hard-wired filesystem type even if the
filesystem is in a loadable module (ie, not linked into the kernel
image).

Discussed on current-users.  Tested on amd64 and i386 with both hard-
wired and '?' filesystem times, and on both modular and monolithic
kernels.

Thanks to pooka@ for code review and suggestions.

Addresses my PR kern/40167
2008-12-19 17:11:57 +00:00
pooka
e222420f88 CTASSERT kcondvar size 2008-12-19 09:50:04 +00:00
pooka
cf6dee5091 fix build
(hi thorpej!  the first one is always free ;)
2008-12-19 09:33:40 +00:00
pooka
7b7b68ba71 include vfs_xattr.c 2008-12-19 00:57:24 +00:00
pooka
52d070140e include snprintb 2008-12-18 11:16:36 +00:00
pooka
74bf412512 .PATH maintenance 2008-12-18 11:09:34 +00:00
pooka
a768afd60b __KERNEL_RCSID 2008-12-18 00:24:12 +00:00
pooka
08c8c2d4d4 __RCSID 2008-12-18 00:21:52 +00:00
pooka
df8e80be1a Separate the timer thread and soft interrut workers. Use a dynamic
size pool of workers to make sure there are enough for processing
the scheduled soft interrupts.
2008-12-18 00:12:00 +00:00
pooka
c60be09da1 If available (__NetBSD__), use pthread_setname_np() to set the
thread name for kthread_create().
2008-12-17 20:16:28 +00:00
pooka
b1e593bee5 Pick PPC_OEA over PPC_IBM4XX. I've decided I like it more.
(plus it hopefully builds without source changes)
2008-12-16 23:49:48 +00:00
pooka
49751f013b remove some completed TODO items and add new ones 2008-12-16 23:34:28 +00:00
pooka
abe4c2aeb6 liberate trailing whitespace 2008-12-16 23:17:17 +00:00
pooka
994144641d -Isys/arch is used in kernel builds 2008-12-16 23:16:46 +00:00
pooka
f5ffdf8399 Mark pages busy during VOP_PUTPAGES(). Deals with KASSERT in nfs write. 2008-12-16 14:48:31 +00:00
pooka
1355265509 Make rumpflushva flush only the atop info for a certain uvm object.
Better, but still not completely race-free (if two threads call
RUMP_VOP_PUTPAGES() directly for the same vm object).
2008-12-16 14:07:25 +00:00
pooka
af473973e4 Also assign a value to pmap_extract_p.
(3rd time's the charm, maybe i finally got it right?)
2008-12-15 00:12:54 +00:00
pooka
864681f9a5 Fix another error in sparc pmap_extract_p, as prompted by mrg 2008-12-15 00:10:48 +00:00
pooka
649c12eb68 If the arch uses __BSWAP_RENAME, provide non-namespaced kernel
symbols which just call the libc symbols.  Allows to get rid of
rump machine/bswap.h.

XXX:
1) this is unlikely to work on non-NetBSD
==>
2) should look into including libkern in librump
2008-12-14 19:58:29 +00:00
pooka
5ca3e3371e * fix pmap_extract() prototype
* sparc64 also defines __sparc__.  deal with it
2008-12-13 17:11:34 +00:00
pooka
1bc395ab02 Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).

(forgot to commmit with others)
2008-12-13 15:37:13 +00:00
pooka
22c85f18af Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).
2008-12-13 15:34:48 +00:00
pooka
0d12ba9def Add a few MD ifdefs into the rump pmap stubs to enable us to get
rid of the local pmap.h and unify the pmap ABI with the kernel.
(XXX: compiles but doesn't work on vax)

Thanks once again to Greg Oster for helping with testbuilds.
2008-12-12 18:46:43 +00:00
pooka
0e6117b96f Apparently some ports rely on cpu.h including machine/pcb.h. 2008-12-11 16:25:23 +00:00
pooka
7243af74cb Make non-mpsafe threads KERNEL_LOCK() before starting execution. 2008-12-10 18:47:01 +00:00
pooka
37e12a5643 Make kernel biglock recursecount volatile. 2008-12-10 14:55:25 +00:00
pooka
ee352f3d33 Make kernel_pmap_ptr a const. Requested by steve_martin. 2008-12-10 11:10:17 +00:00
pooka
29d439f898 Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module.  pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
2008-12-09 20:45:44 +00:00
pooka
6a5161dfcb Remove rump cpu_counter.h in favour of the arch native one. I'm
sure there was a reason why I originally added this, but I can't
find what would break without it now.  If something does pop up,
I'll fix it properly this time instead of adding silly headers.
2008-12-08 13:31:58 +00:00
pooka
316be31a2e Instead of punishing all archs for a fake vmparam.h, punish only
evbppc for its insolence and pick a ppc cpu family at random in
Makefile.rump.
2008-12-08 12:57:33 +00:00
pooka
839034650f * hang all mountpoints from rootvnode in our virtual mount hierarchy
* set VV_ROOT for the rootvnode to make getcwd realize it has met
  its journey's end
2008-11-27 16:40:40 +00:00
pooka
31b0163f0d Add nfs server rump library.
(not descended into on purpose)
2008-11-27 14:14:30 +00:00
pooka
35861926cc Link in a networking domain, required by nfs. 2008-11-27 11:31:59 +00:00
pooka
f50af27351 Move more vfs-related vm routines from rumpkern to rumpvfs. 2008-11-27 08:13:15 +00:00
pooka
2ee7b4e103 Remove the whole magic ubc window thingie. All file systems use
ubc_uiomove() now, so we can hook ourselves there.
2008-11-27 08:05:27 +00:00
pooka
23046e71b2 Add a few symbols required by nfsd 2008-11-26 15:04:02 +00:00
pooka
e40a46d006 regen 2008-11-26 15:02:05 +00:00
pooka
eaff187ca4 Add dummy pr_ctloutput. I'm sure I had one at some point, since
it's required for rump_nfs to work, but I guess I lost it somewhere.
(yes, it should actually be implemented also)
2008-11-26 07:19:48 +00:00
pooka
d6457e83e1 Make sockin radix-capable. 2008-11-25 20:42:01 +00:00
pooka
eebcd28057 Support PRU_BIND / PRU_LISTEN / PRU_ACCEPT in sockin. 2008-11-25 20:39:57 +00:00
pooka
50176705eb Take reference for proc0 rootdir vnode. 2008-11-25 20:35:46 +00:00
pooka
e346dcad76 "Manually" call rn_init() to make sure it's done. The real kernel
hooks it up with domain constructors in a fascinating way.
2008-11-25 18:44:05 +00:00
pooka
ec538307e6 fix comment (no functional change) 2008-11-25 18:38:08 +00:00
pooka
922d39c2b2 Heave-ho radix.c from librumpnet_net to librumpnet. 2008-11-25 18:36:08 +00:00
pooka
dbeec14d9d Make sure we write a positive length of data. 2008-11-21 18:02:17 +00:00
pooka
bedcc68e65 rump_vfs_load() is really rump_module_load(), so call it that and
move it from rumpvfs to rumpkern.
2008-11-21 06:09:51 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
pooka
e10fef6cd2 Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer
include the file system code.  File system rumps explicitly need
to include rumpvfs from now on.
2008-11-19 14:10:48 +00:00
ad
20514c29be +evcnt_detach 2008-11-19 12:20:40 +00:00
pooka
7fca80b0ff note rumpnet 2008-11-18 13:08:34 +00:00
pooka
72b66cb31e Pass biodone() to rumpuser as a callback instead of hardcoding it.
Also, explicitly init rumpuser async io thread.
2008-11-18 12:39:35 +00:00
pooka
48d146fba6 cwd is logically a vfs concept, so take it out from the bosom of
kern_descrip and into vfs_cwd.  No functional change.
2008-11-18 11:36:58 +00:00
pooka
d76a9369e5 Remove rump_vp locking interfaces, use RUMP_VOP instead. 2008-11-17 13:24:14 +00:00
pooka
11a6424f3c regen 2008-11-17 13:20:39 +00:00
pooka
b81cfcf61f adjust comments out of lock.h 2008-11-17 13:20:22 +00:00
pooka
a1e0d479f4 regen 2008-11-17 13:11:24 +00:00
pooka
aab859210b include those appetizing lockmanger flags 2008-11-17 13:10:44 +00:00
pooka
50cbbdb2d5 No need to .WAIT anymore: headers are done in a separate pass and
binaries are no longer in this subtree.
2008-11-17 10:21:44 +00:00
pooka
e349d81775 Tune CFLAGS to a consistent default. 2008-11-17 09:03:51 +00:00
pooka
fa86dc99d5 reregen to get those most important rcsids right 2008-11-17 08:59:33 +00:00
pooka
e45e5fef43 Descend into include/rump and install headers. 2008-11-17 08:54:39 +00:00
pooka
20a993658a Move rump public headers to include/rump 2008-11-17 08:53:12 +00:00
pooka
85eff24b94 regen 2008-11-17 08:52:18 +00:00
pooka
0a380919d5 Add script to statically generate rumpdefs.h instead of doing it buildtime. 2008-11-17 08:49:55 +00:00
pooka
e5da604114 Add more verbose commentage to the module thread non-creation. 2008-11-17 08:43:41 +00:00
pooka
80610738b1 Ignore the module unload thread. 2008-11-17 08:41:28 +00:00
pooka
98bf46c51a <sys/buf.h> police 2008-11-16 18:44:07 +00:00
pooka
9c3d490eb5 regen 2008-11-16 18:41:05 +00:00
pooka
ab7329f0f7 explicitly include <sys/buf.h> since we explicitly use it 2008-11-16 18:37:28 +00:00
pooka
e6f5280c8d Add comments on how to do tap and bridging required for sensible
full networking stack operation.
2008-11-14 14:24:00 +00:00
pooka
1941578e57 slap some sort of copyright here 2008-11-14 14:17:53 +00:00
pooka
fe762e15b2 Clearly state that VOP_BMAP panic in putpages is because I'm a lazy bum.
(although I can't really think of any scenario where VOP_BMAP could
legally fail)
2008-11-14 11:57:07 +00:00
christos
d296aa9163 fix compilation and lint warnings. 2008-10-30 01:54:24 +00:00
minskim
13a938dd6c Remove trailing whitespace. 2008-10-26 18:39:01 +00:00
apb
f46c1de7cb Use ${TOOL_SED} instead if plain sed in Makefiles. 2008-10-25 22:27:34 +00:00
pooka
afbf917f75 Alpha requires 8k pages for mbuf size calculation to work (maybe
sparc64 too?).  Make it so.
2008-10-16 22:05:12 +00:00
wrstuden
7e10f527c2 Regen syscall tables. I forgot to do it after revivesa. While pooka
did some, not all are regenerated. Do them all at once for consistency.
2008-10-16 20:12:23 +00:00
christos
75e8ce56c6 revert stack protector change. 2008-10-16 19:35:07 +00:00
pooka
7555810672 regen: ioctl 2008-10-16 19:33:11 +00:00
pooka
6d68e64d68 Add an example of how to configure the virtual interface address
and the default gateway.

(this will probably go into some library eventually, but now it'll
just sit here as an example)
2008-10-16 19:28:26 +00:00
pooka
710b373bce Before I sort all the COMPAT_RIDICULOUSLYPREHISTORIC ioctl stuff
out, add a weak alias for ifunit() so that utils can be linked with
sockin.
2008-10-16 19:27:24 +00:00
pooka
a208c2294a Deal with the ld.so/linkset brokenness and compile all of libnet
and libnetinet into a big bunch for now.  If they were separate
libraries, the DOMAIN_DEFINE() in the latter on the linkline would
not get noticed at "boot" time because of the abovementioned
brokenness.  One of these days I'll add code to dlopen() the
libraries and resplit them, but this will allow things to work
until then.
2008-10-16 19:14:51 +00:00
pooka
2690ed220b Ignore stack-protector, since with nfs_bio.c it gets its life force
drained out.  Yes, this is a quick kludge, should rather fix
nfs_bio.c to be less silly.
2008-10-16 19:06:40 +00:00
pooka
19b5350e77 call rump_netisr_init() 2008-10-16 16:41:07 +00:00
pooka
346ffecff3 ...... except that the compat converter is actually supposed to convert
the ioctl, not return random garbage.  It returning random garbage
causes an interface with an interesting netmask to get set and
hence a very interesting effect when you try to add a route for
your system.

All in all, a very healthy debugging session (if you're a vampire
or a wraith).
2008-10-16 16:40:39 +00:00
pooka
a60de16dcb ... except that compat_ifioctl() must know how to route the
commands further.
2008-10-16 15:02:10 +00:00
pooka
61c2d7025c Add a few compat stubs. They shouldn't be required at all, but I
don't currently have the time to wage a holy war against how the
kernel decides it wants them.
2008-10-16 14:38:39 +00:00
pooka
8447026c71 appease 64bit gcc 2008-10-16 13:36:06 +00:00
pooka
37b61acf1e * descend into rump/net
* descend into fs/lib/libnfs
2008-10-16 09:29:43 +00:00
pooka
ce2bb4bac6 Add a prototype to allow this to build (will be moved to a better
place later).
2008-10-16 09:25:30 +00:00
pooka
e66325797b kill default DBG=-g 2008-10-16 09:24:51 +00:00
pooka
47c581b572 nfs_boot calls some networking stack routines directly. Since rump
will not invoke nfs_boot in the foreseeable future, provide those
routines as stubs in case sockin is used instead of the real
networking stack.
2008-10-15 22:25:26 +00:00
pooka
2d1a1a1ecf Don't descend into rumptest automatically. Otherwise a manual
"make install" in this directory does some funnies.
2008-10-15 20:41:11 +00:00
pooka
1ff56ab29e One more init I happened to forget: iostat_init() 2008-10-15 20:15:37 +00:00
pooka
cf82732ba2 Revert weird revivesa merge botch. (Hi Bill!) 2008-10-15 13:57:03 +00:00
pooka
edfec78484 add -lrumpnet 2008-10-15 13:11:45 +00:00
pooka
8fb0c4b043 Add support bits necessary for rumpnet functionality. 2008-10-15 13:04:26 +00:00
pooka
f7c6dc5e73 provide rumpuser_net_connect() 2008-10-15 13:02:29 +00:00
pooka
687fd3f77a regen: few networking calls 2008-10-15 13:02:01 +00:00
pooka
ab368d7178 Add the basic rump networking library, which provides e.g. sockets
and mbufs.  This is required by all network-using rump applications.
2008-10-15 13:00:39 +00:00
pooka
ba12d8328e Call rump_sys_setsockopt(SO_RCVTIMEO) for el-cheapo "async" socket i/o. 2008-10-15 11:45:35 +00:00
pooka
7dd6651a0a Mostly support TCP, mostly meaning "client-side TCP", since listen,
accept etc. is not supported yet.  Disconnect is not really supported
either, but doesn't matter in most cases.
2008-10-15 11:43:38 +00:00
ad
1ec58d56ef - Rename cpu_lookup_byindex() to cpu_lookup(). The hardware ID isn't of
interest to MI code. No functional change.
- Change /dev/cpu to operate on cpu index, not hardware ID. Now cpuctl
  shouldn't print confused output.
2008-10-15 08:13:17 +00:00
wrstuden
4fb41e761e Merge wrstuden-revivesa into HEAD. Catch some files that I forgot
to revive on HEAD in previous commit.
2008-10-15 06:52:38 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
pooka
fe413fd0f6 +IPL_SOFTNET 2008-10-14 14:09:29 +00:00
pooka
6fd4c68b67 Add some more trivial emulations. 2008-10-14 10:42:27 +00:00
pooka
a48233737f score some stubs 2008-10-14 10:32:38 +00:00