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
pooka
8a7a4b8184
Add a simple example of how to use rump networking facilities.
...
This just contacts www.NetBSD.org, does GET / and displays the
result.
It either uses the host kernel socket provided PF_INET or the kernel
TCP/IP stack running in userspace (via if_virt and /dev/tap),
depending on the libraries it's linked with.
(not built yet, as I need to commit some more bits from my local
tree for it work)
2008-10-14 00:56:24 +00:00
pooka
65f822a3e5
Make the "something random" ethernet address ETHER_IS_LOCAL
...
(address assignment probably needs some more work if we want to
support multiple interfaces).
hat tip to Quentin Garnier
2008-10-14 00:50:44 +00:00
pooka
5ca4322cea
Add tcp debugging as a build option.
2008-10-13 22:24:06 +00:00
pooka
e6b645ca82
Dear diary: an ethernet address with 0x01 set in the first octet
...
is an ethernet multicast address. TCP does not like ethernet
multicast addresses.
2008-10-13 22:05:15 +00:00
pooka
1c4adfb91b
award unlimited sbsize rlimit
2008-10-13 19:41:13 +00:00
pooka
c4be8eb459
regen: properly create weak references to sys_foo()
2008-10-13 18:17:43 +00:00
pooka
0473281d9b
rump_enosys() is autogenerated into rump_syscalls (makes things
...
actually work)
2008-10-13 18:17:07 +00:00
pooka
c65f514a40
Add uid_init() I managed to miss earlier.
2008-10-13 18:03:53 +00:00
pooka
d10342d64b
regen - weak aliasing for default syscall
2008-10-13 16:25:52 +00:00
pooka
42349670d9
add rump_enosys()
2008-10-13 16:20:09 +00:00
pooka
28f7a87951
Provide psignal() so that we don't get linked against psignal(3).
...
As there is no real process model currently, just "trap" the signals
appropriately.
2008-10-13 11:14:14 +00:00
pooka
fac4c8d11a
Add some shameful kludges for the vax build. Eventually I'd like
...
to use the native kernel machine directory, so don't waste too much
effort fighting this now.
2008-10-12 22:08:08 +00:00
pooka
123cb9861c
Add callout inits which I managed to not commit earlier with the
...
rest of the callout stuff.
problem noticed by Arnaud Ysmal
2008-10-12 18:52:56 +00:00
pooka
2027ca6b58
Include <machine/cpu> for the benefit of archs where it doesn't happen
...
accidentally automagically.
Pointed out by Havard.
2008-10-11 16:23:24 +00:00
pooka
7e5aba5af0
Move uidinfo to its own module in kern_uidinfo.c and include in rump.
...
No functional change to uidinfo.
2008-10-11 13:40:57 +00:00
pooka
be7784b146
Provide time_uptime and push it forward every now and then if we happen
...
to have the timer thread. rump uptime - woohoo.
2008-10-10 21:00:30 +00:00
pooka
1fbd8b20a8
* implement uvm_km_alloc/free_poolpage()
...
* add silly stubs for uvm_lwp_hold/rele()
2008-10-10 20:51:44 +00:00
pooka
02758afb77
reorganize routines a bit better. no functional change
2008-10-10 20:45:21 +00:00
pooka
b34df86410
remember to call percpu_init()
2008-10-10 20:24:10 +00:00
pooka
0337729dd1
Add a simple percpu implementation (which isn't actually percpu at
...
all, since we don't currently have the notion of "real" cpu in
rump...but that's beyond the point).
2008-10-10 20:19:35 +00:00
pooka
963a1891c7
fix brainfart: kthread_create() sets curlwp
2008-10-10 20:13:58 +00:00
pooka
b33ee0fb5c
Support callouts and call callout_hardclock() from the timer
...
interrupt thread.
The sleepq implementation required for callouts is horrible, kludged
only for callouts, and generally unacceptable. It needs revisiting,
but I'm not sure yet should rump or kern_timeout be improved. It's
almost untested as of now, but committing this will give me some
maneuvering space while letting application compile.
2008-10-10 13:14:41 +00:00
pooka
a868d2c97b
add kern_rate, subr_iostat and subr_once
2008-10-09 21:30:06 +00:00
pooka
f3efa1ae96
Reorganize SRCS+= into smaller chunks to make adding new files
...
easier. No functional change.
2008-10-09 21:25:50 +00:00
pooka
f88be1435b
Rewrite interrupts to provide better softintr support, i.e. not
...
execute them simply in the context of the scheduling code, as this
does not work for all applications (e.g. networking soft interrupts).
Rather, schedule them and execute them from a separate context.
Also provide a timer which for now executes just hardclock_callout()
(well, at least after callouts are included in librump, which is
soon).
2008-10-09 19:40:52 +00:00
pooka
d22cdb027a
No point in having our private atomic ops, just use the ones now
...
available in libc.
2008-10-09 17:58:33 +00:00
pooka
c453d67e49
Compile all rump kernel portions with -DMULTIPROCESSOR.
2008-10-09 13:40:38 +00:00
pooka
25a1a46f4b
Unsupport ltsleep() called with an interlock. Not that it was
...
really supported before either, since without MULTIPROCESSOR it's
just a nop.
2008-10-09 13:39:59 +00:00
pooka
287270f554
Bump virtual page shift from 10 to 12. Otherwise the mbuf generating
...
macros fail to operate properly due to M_EXT_MAXPAGES being too
large and hence struct _m_ext being over MSIZE already by itself.
2008-10-09 12:34:36 +00:00
pooka
8ffd7b368a
document libraries in rump/net/lib
2008-10-09 11:50:08 +00:00
pooka
02100cd42d
Wrap potentially blocking operations to drop and retake the kernel
...
giant lock.
2008-10-09 01:19:06 +00:00
pooka
01f8a524d4
Rewrite kernel lockus maximus handling to be correct.
2008-10-09 01:17:48 +00:00
pooka
ea7f1c6709
check return value of rump_init()
2008-10-08 11:01:28 +00:00
pooka
f4ce96e86b
check rump_init() return value
2008-10-07 23:22:05 +00:00
pooka
5877c6dc5e
Embed library build version into the init call and refuse to init
...
if they don't match. In other words, this is a lightweight library
major number.
2008-10-07 23:16:59 +00:00
pooka
e15435197f
Make libnfs compile.
2008-10-06 01:00:57 +00:00
pooka
f4c6b13e6b
Locally descend into new directories (build does not descend here yet).
2008-10-06 00:32:02 +00:00
pooka
61e869be3c
Implement a virtual userspace networking interface. This is required
...
for any sensible operation when running the entire TCP/IP stack in
userspace (as opposed to libsockin which uses host kernel networking
to provide PF_INET).
While this basically works (although it is quite barebones), it
depends on some bit of cleanup in librump and is not built by
default yet.
2008-10-06 00:30:32 +00:00
pooka
86cf71862e
Provide the TCP/IP as a rump library.
2008-10-06 00:27:48 +00:00
pooka
8fb9f99bba
Provide essentially sys/net as a rump library.
2008-10-06 00:27:06 +00:00
pooka
ad9bbd7b26
Add a very simplistic PF_INET/SOCK_DGRAM domain/proto implementation,
...
which delegates the work to host kernel sockets. This does not
run the entire kernel TCP/IP stack in userspace and therefore does
not require the ability to send or receive raw packets. This
implies that root priviledges are not required. As already said
above, only supports UDPv4 for now. Extending should be easy.
2008-10-02 21:59:19 +00:00
pooka
982852e71e
Add some routines related to networking.
2008-10-02 21:37:59 +00:00
pooka
fc745dffe8
Remove rumpuser_yield(). Not only doesn't it really make sense
...
here, some kind soul made it completely empty.
2008-10-02 19:37:23 +00:00
pooka
43242e6cbe
Make spec_fsync() a do-nothing instead of a do-panic. Some file
...
systems have it directly in the specfs op vector.
2008-09-30 21:47:33 +00:00
pooka
85ca5618f1
Check that we apply the previous kludge only to the root vnode.
2008-09-30 21:00:39 +00:00
pooka
24fd6139c3
When paging in data, do not try to read past "disk" EOF. This
...
fixes reads for file systems which are not bound by such mundane
limitations as block size (example: nfs).
2008-09-30 20:08:23 +00:00
pooka
4fb0fb162c
Make sure proc0.p_vmspace qualifies as VMSPACE_IS_KERNEL_P().
2008-09-30 19:50:16 +00:00
pooka
44e0ae2322
Switch to std kern_auth.
2008-09-30 19:25:56 +00:00
pooka
8bf6577840
Always set HASBUF when creating a componentname.
2008-09-30 16:51:26 +00:00
pooka
eb50fe2242
Add an unspeakable kludge for nfs, which keeps an explicit reference
...
to the root vnode. Properly fixing this would require fixing p2k,
which would require fixing puffs, which has some optimizations,
which are incompatible with kernel file systems... guess my Eyes
of the Overworld were misplaced at that time.
2008-09-30 15:26:54 +00:00
reinoud
19eb6cb8aa
Remove the not anymore used UDF_READWRITE flag.
2008-09-28 09:02:45 +00:00
pooka
2208b2d0df
add WARNS=4
2008-09-27 20:49:55 +00:00
pooka
9db630e082
Help out reinoud a bit with the challenge of adding vfs_dirhash.c here
2008-09-27 16:03:30 +00:00
pooka
dd1721fa8d
Move global malloc types from kern_malloc into a separate module.
2008-09-25 16:23:45 +00:00
pooka
e90eb67076
* fsync after !B_ASYNC write
...
* replace some b_flags magic with BUF_ISREAD/WRITE()
2008-09-11 13:42:35 +00:00
tron
b8771f491d
Fix build problem with puffs enabled caused by the fix for PR kern/39493.
...
Problem noted by Thomas Klausner, patch provided by Juan RP.
2008-09-09 19:22:00 +00:00
pooka
e63b31a974
Give lwp0 an fd table and cwd. Allows easier direct use of rump.
2008-09-07 20:17:03 +00:00
pooka
429abb75bf
regen: return -1 for error
2008-09-07 19:28:29 +00:00
pooka
aa224b94d6
fix broken break (oh the irony)
2008-09-05 10:42:09 +00:00
pooka
795cda8d6a
Add rump support for sysvbfs.
2008-09-04 12:21:25 +00:00
pooka
827e91dd6f
Make syspuffs mount code supply mount_syspuffs_parseargs() like
...
the other mount binaries do. Now syspuffs can be used to run all
puffs file systems as utilities. This includes fuse file systems
and becomes interesting with the fs-utils project. We can now do
e.g. this:
ReFUSE ntfs-3g:
golem> echo hello | fsu_write/fsu_write ntfs-3g puffs ~/img/ntfs.img dafile
golem> fsu_cat/fsu_cat ntfs-3g puffs ~/img/ntfs.img dafile
hello
golem>
puffs sysctlfs:
golem> fsu_ls/fsu_ls mount_sysctlfs puffs sysctl -l ddb
total 0
-r-xr-xr-x 1 pooka users 1 Sep 2 22:11 commandonenter
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 fromconsole
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 lines
-r-xr-xr-x 1 pooka users 8 Sep 2 22:11 maxoff
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 maxwidth
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 onpanic
-r-xr-xr-x 1 pooka users 3 Sep 2 22:11 radix
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 tabstops
-r-xr-xr-x 1 pooka users 2 Sep 2 22:11 tee_msgbuf
Same works for psshfs etcetc.
In other words, this provides total integration for "normal"
in-kernel file systems and puffs/fuse file systems on the ukfs
library level.
Note: implementation is still "first stab" and the fs-utils usage
will no doubt change.
2008-09-02 19:38:25 +00:00
pooka
38b7d91d61
Add IPL_SOFTCLOCK, something required it (although I can't quite
...
recall what, this has been floating in my tree for a while)
2008-09-02 19:27:35 +00:00
pooka
4b9a5d92cf
Since putter wants complete frames, make sure we can hand them to it.
2008-08-15 15:02:28 +00:00
pooka
4b5f80486c
Make it possible to control starting of threads per env variable
...
instead of only at compile-time.
2008-08-12 10:04:57 +00:00
pooka
96a0d293a7
Don't create a new proc structure for kthreads (pid == 0).
...
XXX: this routine should probably do better accounting and consistency
checks as well.
2008-08-08 14:40:07 +00:00
pooka
0fca7fa92c
minor nit: fix header #ifndef namespacing
2008-08-08 13:57:59 +00:00