David van Moolenbroek
3affa4c796
'service' null pointer dereference fix
2009-05-12 16:52:00 +00:00
Ben Gras
909c1bb8a7
don't bother with unmapping physical memory in non-sanitycheck mode.
2009-05-12 11:51:53 +00:00
Ben Gras
581e68433a
basic sparepage optimisation
...
some simplification of linear/virtual address translation
(less hardcoding and more use of arch_*2* functions)
2009-05-12 11:38:29 +00:00
Ben Gras
f9e81cb57b
remove bogus arch_map2vir calls
2009-05-12 11:36:15 +00:00
Ben Gras
6fad23f500
don't call this function with a bogus addr (done by region.c print code)
2009-05-12 11:35:49 +00:00
Ben Gras
d2caeb6146
start all processes, including VM, in VM_PROCSTART in linear address space,
...
to make space for kernel to be able to map in things below there.
2009-05-11 19:11:37 +00:00
Ben Gras
ade4c03b73
Don't build arch objs more than once.
2009-05-11 19:05:45 +00:00
Ben Gras
7c88767f75
remove debug msg
2009-05-11 11:57:20 +00:00
David van Moolenbroek
0ac1aaccca
Limited support for nested FS->VFS requests during VFS->FS call.
...
- Changed VFS-FS protocol to only store OK or negative error code in
m_type field of reply messages.
- Changed VFS to treat nonzero positive replies from FS as requests.
- Added backwards compatibility to VFS and MFS.
No protection of global data structures is provided in VFS, so many
VFS calls cannot be made safely by FS servers during many FS calls.
Use with caution (or, preferably, not at all).
2009-05-11 10:02:28 +00:00
David van Moolenbroek
e08b38a5c4
regression fix: vfs lookup passes incorrect chroot information after crossing mountpoints
2009-05-09 17:53:22 +00:00
David van Moolenbroek
293be6b80b
quick cleanup of old mfs cruft from vfs
2009-05-08 14:12:41 +00:00
Ben Gras
dc1238b7b9
make unpause() decrease susp_count, as it shouldn't be decreased
...
if the process was REVIVING. (susp_count doesn't count those
processes.) this together with dev_io SELECT suspend side effect
for asynch. character devices solves the hanging pipe bug. or
at last vastly improves it.
added sanity checks, turned off by default.
made the {NOT_,}{SUSPENDING,REVIVING} constants weirder to
help sanity checking.
2009-05-08 13:56:41 +00:00
David van Moolenbroek
113b1ec5f3
remove unused global variable from vfs
2009-05-08 13:54:01 +00:00
Ben Gras
ece26e2731
don't suspend the process as a side-effect if
...
device returns SUSPEND if it's select; select already
does this.
2009-05-08 13:50:29 +00:00
David van Moolenbroek
2a48c4ad48
Reenable RS table dump from IS (Shift+F6)
2009-05-08 12:38:14 +00:00
Ben Gras
a38287067a
disable scary looking debug messages.
2009-05-07 09:58:16 +00:00
Ben Gras
746e138036
turn off scary looking debug messages.
2009-05-07 09:57:43 +00:00
Ben Gras
8b72765e39
ignore errors of pipe read (can happen with shutdown now,
...
now that all fd's are closed neatly in vfs), change messaging
in unexpected restarts
2009-05-06 15:38:32 +00:00
Ben Gras
fd7ef243e4
cleanup of vfs shutdown logic; makes clean unmounts easier (but
...
needs checking if fp_wd or fp_rd is NULL before use)
2009-04-29 16:59:18 +00:00
Ben Gras
b7e23b70e8
- delete unused .h files
...
- slight code cleanup
- neater exit procedure: exit when unmount
message received and kill signal (from RS 'down' or
reboot/shutdown) received (speed up unmount, but don't
confuse VFS by exiting before/during unmount msg)
2009-04-27 16:13:51 +00:00
Ben Gras
a12113e476
process restarts are pretty rare/serious.
2009-04-27 14:07:47 +00:00
Ben Gras
60e7602aad
When we receive a PROC_EVENT message from PM, exit nicely; avoids
...
annoying graceful RS timeout on unmount.
2009-04-27 12:02:31 +00:00
Ben Gras
ef8a741301
set global flag for kernel pages, so tlb entries for kernel aren't thrown
...
away on cr3 reload. minor optimization.
2009-04-23 15:11:16 +00:00
Arun Thomas
e9e1ae1cfc
Move queue.h to include/sys so that it can be used elsewhere. Pull in
...
FreeBSD's r179210 queue.h.
2009-04-22 20:02:39 +00:00
Arun Thomas
3b37103fa3
Make the rtl8139 and orinoco drivers handle the system shutdown case
...
like other drivers. Also, some minor cleanups.
2009-04-22 12:42:37 +00:00
Ben Gras
2dd02cc560
mark pages whose refcount were >1 and drop to 1 and are
...
read/write writable in the pagetable right away instead of waiting for
a pagefault. minor optimization.
some a sanity check of SLAB-allocated pointers.
vm gets its own _exit and __exit like PM, so the stock (library) panic works.
2009-04-22 12:39:29 +00:00
Ben Gras
e0f3a5acf1
- enable ipc warnings by default
...
- ipc checking code in kernel didn't properly catch the
sendrec() to self case; added special case check
- triggered by PM using stock panic() - needs its own _exit()
reported by Joren l'Ami.
2009-04-17 13:46:37 +00:00
Ben Gras
e5717f7aef
clarify not found error message a bit.
2009-04-14 14:16:24 +00:00
Ben Gras
51596bc608
print who the message is from.
2009-04-02 11:56:50 +00:00
Ben Gras
73ee8b8b99
don't make susp_count negative.
2009-04-02 11:44:26 +00:00
Ben Gras
dc9a1bc30c
increment nph when printing physical regions; suggested by Guanqun Lu
2009-03-31 14:26:24 +00:00
Ben Gras
3bb80322d9
suppress more mostly-harmless messages.
2009-03-26 16:11:27 +00:00
Ben Gras
2d1c884e35
suppress these noisy, alarming messages.
2009-03-26 15:56:08 +00:00
Ben Gras
8af5f877bc
2009-03-04 17:44:34 +00:00
Ben Gras
3f6e061948
fix error check
2009-03-04 17:38:27 +00:00
Ben Gras
733d6c1ef6
help debugging cause of these sometimes odd calls.
2009-02-17 12:09:59 +00:00
Ben Gras
570b9cd753
Checking wrong inode pointer for refcount in mount (!)
2009-02-17 09:50:02 +00:00
Ben Gras
59e972f074
let drivers allocate memory at 64k physical boundary.
2009-02-12 12:26:08 +00:00
Ben Gras
b696823379
stingy stack.
2009-02-06 16:29:00 +00:00
Ben Gras
c628f24bc2
moved stacktrace to sysctl, as vmctl is very privileged so can't
...
be used outside VM. IS code cleanup. added stacktrace feature to IS.
2009-01-27 12:54:33 +00:00
Ben Gras
3cc092ff06
. new kernel call sysctl for generic unprivileged system operations;
...
now used for printing diagnostic messages through the kernel message
buffer. this lets processes print diagnostics without sending messages
to tty and log directly, simplifying the message protocol a lot and
reducing difficulties with deadlocks and other situations in which
diagnostics are blackholed (e.g. grants don't work). this makes
DIAGNOSTICS(_S), ASYN_DIAGNOSTICS and DIAG_REPL obsolete, although tty
and log still accept the codes for 'old' binaries. This also simplifies
diagnostics in several servers and drivers - only tty needs its own
kputc() now.
. simplifications in vfs, and some effort to get the vnode references
right (consistent) even during shutdown. m_mounted_on is now NULL
for root filesystems (!) (the original and new root), a less awkward
special case than 'm_mounted_on == m_root_node'. root now has exactly
one reference, to root, if no files are open, just like all other
filesystems. m_driver_e is unused.
2009-01-26 17:43:59 +00:00
Ben Gras
4984a86f32
don't hang on disappearing filesystem.
2009-01-26 13:02:41 +00:00
Ben Gras
539192f4c3
must be unsigned for base+limit check to to work
2009-01-22 13:05:20 +00:00
Ben Gras
86e7e4828e
sanity check function
2009-01-20 13:43:18 +00:00
Ben Gras
45ec30f6af
mostly harmless sanity checks.
2009-01-20 13:43:00 +00:00
Ben Gras
4f08002c2c
RS needs a bit more memory
2009-01-14 08:55:48 +00:00
Ben Gras
5cbcc11ed3
compile fix for new lock timings
2009-01-12 22:14:43 +00:00
Ben Gras
628ed99101
CPROFILE wants this
2009-01-09 21:11:23 +00:00
Ben Gras
d2757d4b73
debug buffer slightly usabler.
2008-12-19 15:19:42 +00:00
Ben Gras
866a4a667e
phys addr arg of 0 must be possible for pt_writemap too (instead of meaning
...
unmap).
2008-12-19 13:29:12 +00:00
Ben Gras
8072ef5509
oops, shouldn't be on in svn.
2008-12-18 17:42:29 +00:00
Ben Gras
3121eec6bd
. map text (kernel's and processes') in readonly
...
. map kernel in non-user
. don't map in first pages of kernel code and data
if possible
these first pages could actually be freed but as the
kernel isn't allowed to touch them either we can't reuse
them until VM has totally taken over page table management
and kernel doesn't rely on identity mapping any more.
2008-12-18 15:35:22 +00:00
Ben Gras
834d9d34e8
Initialize deferred field. This seems to fix a hanging select() bug.
2008-12-17 14:20:08 +00:00
Ben Gras
34d5401ed4
put put_vnode() back where it belongs!
2008-12-16 16:11:24 +00:00
Ben Gras
710f44c4b8
added code for debugging pagefaults
2008-12-16 14:33:53 +00:00
Ben Gras
e4e3995fb0
don't force vm to print to serial; don't kill processes when they
...
have 'bad' memory ranges (as it's the requestor's fault)
2008-12-11 17:36:33 +00:00
Ben Gras
70f1f28439
dynamic HZ, library stacktrace
2008-12-11 14:54:42 +00:00
Ben Gras
2024bf0bcf
. no more HZ
...
. let user processes query HZ
. no more custom panic()
2008-12-11 14:49:17 +00:00
Ben Gras
ccf70aa989
system_hz replaces HZ
2008-12-11 14:48:05 +00:00
Ben Gras
7d674f4b8e
no more HZ; less debugging statements
2008-12-11 14:47:48 +00:00
Ben Gras
b9a0d46ea9
debug out
2008-12-11 14:46:46 +00:00
Ben Gras
3287b7f7d8
don't hang old binaries
2008-12-11 14:45:49 +00:00
Ben Gras
5e1bb6eb63
added some code to debug why filesystems won't unmount
2008-12-11 14:45:31 +00:00
Ben Gras
e96f86ed8c
throw out debugging code.
2008-12-11 14:44:10 +00:00
Ben Gras
eeba8ef01f
No more HZ.
2008-12-11 14:43:53 +00:00
Ben Gras
e9f0c576a3
Open stdin, stdout and stderr only after /etc/rc has executed. (/etc/rc
...
executes it itself.) This avoids keeping /dev nodes on the temporary
root filesystem (initial mfs) in use unnecessarily.
2008-12-11 14:43:25 +00:00
Ben Gras
68d0c4defe
- code shared with exec() letting boot-time processes have
...
their own fully fledged virtual address space and freeing
their pre-allocated heap+stack area (necessary to let memory
driver map in arbitrary areas of memory for /dev/mem without
sys_vm_map)
- small optimization preallocating memory on exec
- finished VR_DIRECT physical mapping code
2008-12-08 16:43:20 +00:00
Ben Gras
9b33056d2b
make allocmem accept and return values in bytes, ramdisk expects this.
2008-11-19 15:40:17 +00:00
Ben Gras
51fdce1d36
minor fixes
2008-11-19 14:10:33 +00:00
Ben Gras
6c92081a5a
paged mode is default.
2008-11-19 13:19:37 +00:00
Ben Gras
7b3d952a77
lingering file
2008-11-19 12:38:31 +00:00
Ben Gras
c078ec0331
Basic VM and other minor improvements.
...
Not complete, probably not fully debugged or optimized.
2008-11-19 12:26:10 +00:00
David van Moolenbroek
f73b541952
Backport of fix from asynchvfs branch for PM-LOG-VFS-PM deadlock that resulted in VFS panics.
2008-06-24 13:53:03 +00:00
Philip Homburg
4696d74480
Select support for eth by Erik van der Kouwe.
2008-03-12 14:10:21 +00:00
Philip Homburg
9d62f56ea1
SYS_MAPDMAx -> SYS_MAPDMA.
2008-02-25 14:36:28 +00:00
Philip Homburg
f82a1c4df7
Fixed include files.
2008-02-25 14:35:54 +00:00
Philip Homburg
bc7e3c02a3
Asynchronous select implementation.
2008-02-22 15:46:59 +00:00
Philip Homburg
ff7eae2ad8
Private copy of kputc to support asynch communication with log device.
2008-02-22 15:43:33 +00:00
Philip Homburg
2ec762c60c
Asynchronous communication with character specials.
2008-02-22 15:41:07 +00:00
Philip Homburg
d9a9b727e2
Added dmap_async_driver and dmap_sel_filp fields. Support for asynch character
...
drivers (needs cleaning up).
2008-02-22 15:01:00 +00:00
Philip Homburg
9df94c5ee8
Use dev_t instead of Dev_t in structures.
2008-02-22 14:54:00 +00:00
Philip Homburg
097d8fee66
Use nonblocking send for reply. Support for asynchronous message passing
...
(needs cleaning up).
2008-02-22 14:53:02 +00:00
Philip Homburg
66c930ef8b
Higher NCALLS requires bigger table. New calls are in PM.
2008-02-22 14:51:38 +00:00
Philip Homburg
93ff4c327f
Added XDOPEN.
2008-02-22 14:50:41 +00:00
Philip Homburg
9388a27070
Support for O_REOPEN flag and pass the filp numbet to dev_open.
2008-02-22 14:49:02 +00:00
Philip Homburg
7387449b23
Support for suspending on character device open and on drivers that need to
...
be restarted.
2008-02-22 14:47:40 +00:00
Philip Homburg
ca91b3b5be
New fp_flags. Currently used to signal that is process should be suspended
...
a driver is restarted.
2008-02-22 14:32:23 +00:00
Philip Homburg
6ef71b8198
Pass suspend_reopen flag to dev_io.
2008-02-22 14:26:41 +00:00
Philip Homburg
047cc090e4
Added filp_state for driver recovery and filp_select_flags to store select
...
state for character specials that use asynch I/O.
2008-02-22 14:19:23 +00:00
Philip Homburg
1d7d5aa629
dev_close needs the filp number for asynch I/O, dev_io gets suspend_reopen
...
flag to suspend a process until the filedescriptor is re-opened. Added
dev_reopen, asyn_io, suspended_ep, reopen_reply, asynsend, diag_repl,
close_filp, close_reply, unpause, select_reply1, select_reply2.
2008-02-22 14:03:14 +00:00
Philip Homburg
e5df351245
Support for blocking open on char specials (due to asynch message passing),
...
asynch. close, added close_filp function.
2008-02-22 13:57:11 +00:00
Philip Homburg
1cffa69d2c
Support for I/O MMU: do not re-use a memory segment until the I/O MMU has
...
removed it from its map.
2008-02-21 16:33:34 +00:00
Philip Homburg
3f23bca404
Removed defines not needed by mfs (XPIPE, XLOCK, XPOPEN, XSELECT, DUP_MASK).
2008-02-21 16:22:36 +00:00
Philip Homburg
ca8291c815
Support for restricting limiting IPC to a set of endpoints. Not enabled by
...
default, pass -i to service. Do not reply to bogus request types. Reply using
sendnb.
2008-02-21 16:20:22 +00:00
Philip Homburg
d9858cfabf
Removed some debug output.
2008-02-21 16:08:08 +00:00
Ben Gras
2876d5c4ba
Optimization in searching for new zones to allocate contributed
...
by Jens de Smit.
2008-02-06 15:05:57 +00:00
Ben Gras
67d1b67805
exit prototype
2007-10-23 14:19:16 +00:00
Ben Gras
e8aec69c7b
tweak to panic functions of mfs and vfs.
...
. print newline
. when recursive panic detected, don't simply return, confusing
the caller, but print a diagnostic and exit
. don't call sys_exit as this may confuse PM; it should be OK
to call PM exit() nowadays.
2007-10-23 14:17:51 +00:00
Ben Gras
21ae963cf1
Fixes two wrong grant return checks and one 'grant leak'.
2007-10-17 10:46:20 +00:00
Ben Gras
b6e07e1835
close device if mount fails after device opened.
2007-09-26 15:06:41 +00:00
Ben Gras
38604e4e3a
Don't truncate read requests based on v_size; v_size can be stale in the
...
case of directories extended by subfilesystem. Rely on subfilesystem to
do read size truncating and return actual i/o size. This fixes bug 81 in
gforge, and unbreaks test 23.
2007-09-11 15:52:22 +00:00
Philip Homburg
ab3062c8c0
REQ_FSTATFS now operates on the root inode (the inode parameter has been
...
removed)
2007-08-17 11:20:59 +00:00
Philip Homburg
9c3f85d14f
Better interface for sys_times.
2007-08-16 13:16:26 +00:00
Philip Homburg
4b1cd8c0ec
Return EIO if a filedescriptor cannot be re-opened after a driver restart.
...
Select now returns such a filedescriptor as ready (instead of EBADF).
Reply before dev_up in FSSIGNON to avoid the problem that a DEV_OPEN
request is received by a driver that expects a reply from the FSSIGNON.
2007-08-15 12:53:52 +00:00
Philip Homburg
90fde6e97d
cleanup
2007-08-10 13:02:39 +00:00
Philip Homburg
06e1f0da61
Better recovery when req_readsuper fails.
2007-08-10 13:01:38 +00:00
Philip Homburg
57c6f099f2
Removed old debug code.
2007-08-08 15:27:07 +00:00
Philip Homburg
e2f06e7c89
Directory check before access check.
2007-08-08 15:26:47 +00:00
Philip Homburg
a116b3aa55
To return the right error, check first is an object is a directory (for
...
mkdir, rmdir/unlink, mknod), simply pipe code by using v_pipe_rd_pos and
v_pipe_wr_pos directly. Some cleanup work in open.c
2007-08-08 14:01:36 +00:00
Philip Homburg
c2bf536a55
Disable POSIX-required behavior wrt trailing slashes.
2007-08-08 11:40:47 +00:00
Philip Homburg
d232b2ef42
Removed invalid consistency check.
2007-08-07 14:27:19 +00:00
Philip Homburg
9c51f0b92a
O_EXCL check went missing.
2007-08-07 14:26:56 +00:00
Philip Homburg
d01d630727
include "../vfs/dmap.h".
2007-08-07 13:26:25 +00:00
Philip Homburg
1b883a3613
Removed references to stacktrace.
2007-08-07 13:21:55 +00:00
Philip Homburg
a318cd291f
Somehow request.c got garbled.
2007-08-07 13:12:27 +00:00
Philip Homburg
f46319037b
New VFS interface
2007-08-07 12:52:47 +00:00
Philip Homburg
2ca2b86a3a
Added new interface to VFS.
2007-08-07 12:38:35 +00:00
Philip Homburg
a81e82b3da
Tell the kernel about the new boottime and don't tell VFS.
...
Tell DS about all processes in the boot image. PM_STIME is removed.
Diagnostic for calls to do_getprocnr (DS should be used to get endpoints).
2007-08-07 12:28:42 +00:00
Philip Homburg
fd151245e9
Removed sigaction call. PM tries to talk to DS. DS should not talk to PM.
2007-08-07 12:25:21 +00:00
Philip Homburg
1f04287b3f
Removed dmap table. Publish endpoint in DS before calling mapdriver5.
2007-08-07 12:24:06 +00:00
Ben Gras
30ba1ec187
also allow vm_map.
2007-07-11 13:45:06 +00:00
Ben Gras
eb4609c108
Don't exit when rebooting.
2007-07-11 13:44:45 +00:00
Philip Homburg
56a68dc32b
Hack in service to use RS_START instead of RS_UP. RS reports the use of RS_UP.
2007-05-02 15:20:28 +00:00
Philip Homburg
33d31720a5
Use ds_retrieve_u32 to get the endpoint of inet and of the ethernet drivers.
2007-05-02 11:30:16 +00:00
Philip Homburg
02a229f14d
Publish endpoints in ds.
2007-04-27 13:03:33 +00:00
Philip Homburg
93f9bb4a57
Restrict access to rs to root's processes.
2007-04-27 12:27:40 +00:00
Philip Homburg
69ca935251
getpeuid implementation. Get the uid of a process (by endpoint)
2007-04-27 12:21:06 +00:00
Ben Gras
8eb09f6ddc
. readall: use lseek64() to read more than 4GB of a device
...
. vfs: 64-bit offset support for character device i/o
(also remove unused dev_bio function)
. memory: /dev/null and /dev/zero are infinitely large, don't stop
reading/writing at 4GB
2007-04-24 13:27:33 +00:00
Philip Homburg
0bd4c5ee7d
Initial convertion to asynchronous sends for communicating with ethernet
...
drivers.
2007-04-23 14:49:20 +00:00
Philip Homburg
b613f5cb4b
Report and detect exec failures using a pipe.
...
XXX Hardcoded values for s_ipc_to and s_ipc_sendrec.
2007-04-23 14:47:04 +00:00
Philip Homburg
727ce18aa8
Initialize exec_pipe.
2007-04-23 14:43:25 +00:00
Philip Homburg
849285f66d
Diagnostics from service go to standard error.
2007-04-23 14:42:58 +00:00
Philip Homburg
e68a2b4d6a
Extra flags RS_SIGNALED and RS_EXECFAILED. Pipe for detecting exec failures.
2007-04-23 14:42:08 +00:00
Philip Homburg
b4a88a3705
Removed ECHO from dump, added SENDA. Also dump s_ipc_sendrec.
2007-04-23 14:40:13 +00:00
Philip Homburg
77f5b40141
Round memory size up for VM.
2007-04-23 14:38:55 +00:00
Philip Homburg
b5e6319ae7
Removed some indentation.
2007-04-23 14:33:42 +00:00
Ben Gras
1d7cea10ed
str[] is too small - reported by Erik van der Kouwe <vdkouwe@cs.vu.nl>.
2007-04-23 13:36:13 +00:00
Ben Gras
dc67b37a10
more removing of warning and debug messages.
2007-04-13 14:00:31 +00:00
Ben Gras
6b2ad6fdfd
verbose message out
2007-04-12 17:01:54 +00:00
Ben Gras
a2b1a5134b
. leave out hardware-fp code from library
...
. minor packman usage tweaks
. kernel feature for printing version number
. removed some verbose debug messages from vfs/mfs
2007-04-12 16:45:00 +00:00
Ben Gras
2958815463
leave out debug message
2007-04-12 15:24:45 +00:00
Ben Gras
647d1496f3
fix for warning
2007-04-02 14:45:56 +00:00
Ben Gras
52b71b2396
Minor change to path lookup that fixes the bug that creating a file
...
as a first component of an absolute path failed (e.g. 'touch /file'),
due to leading slashes not being skipped in the processed path counter
in that case, causing create to fail.
2007-02-28 13:13:39 +00:00
Ben Gras
3b08825d85
. service tells you which device it couldn't stat
...
. bigger rs and ramdisk for drivers
. sanity check for pv_set macro for oversized arguments
2007-02-23 18:22:46 +00:00
Ben Gras
448376ee7e
. use library function to parse memory string
...
. remove unused variables and some other gcc warnings
2007-02-16 15:55:20 +00:00
Ben Gras
b267d42531
removed or optionalized verbose/debugging messages
2007-02-16 15:50:30 +00:00
Ben Gras
bd27c5240b
Typo's.
2007-02-12 12:27:43 +00:00
Ben Gras
9f2f3dd488
don't call mkdep with an absolute path
2007-02-08 16:26:20 +00:00
Ben Gras
a12c7ad963
Start a 2nd copy of at_wini, for /dev/c1*. This requires a slightly
...
larger rs.
2007-02-08 14:04:59 +00:00
Ben Gras
8ea438ae93
Retired DEV_{READ,WRITE,GATHER,SCATTER,IOCTL} (safe versions *_S are to
...
be used and drivers should never receieve these 'unsafe' variants
any more).
2007-02-07 16:22:19 +00:00