]> Zhao Yanbai Git Server - minix.git/log
minix.git
12 years agoPartially import gcc and binutils
Thomas Veerman [Wed, 6 Jun 2012 13:06:52 +0000 (13:06 +0000)]
Partially import gcc and binutils

They are used as build tools for cross compilation. This import does
not include the full distribution. Rather, it sports a shell script
that will download and patch the distribution when compiled from
/usr/src/tools (yet to be committed). This part of the source tree is
only necessary for cross compilation. It's not used or compiled for
native builds.

12 years agoImport NetBSD nawk
Thomas Veerman [Wed, 6 Jun 2012 13:03:39 +0000 (13:03 +0000)]
Import NetBSD nawk

12 years agoAdd gnu directory for gmake
Thomas Veerman [Wed, 6 Jun 2012 12:02:46 +0000 (12:02 +0000)]
Add gnu directory for gmake

12 years agoAdd mk and h files needed for cross compilation
Thomas Veerman [Wed, 6 Jun 2012 12:01:38 +0000 (12:01 +0000)]
Add mk and h files needed for cross compilation

12 years agoRename tools to releasetools
Thomas Veerman [Fri, 8 Jun 2012 13:09:54 +0000 (13:09 +0000)]
Rename tools to releasetools

This is in preparation of NetBSD's tools directory to build tools
for cross compilation.

12 years agoRewrite osrelease.sh to parse Minix version
Thomas Veerman [Wed, 6 Jun 2012 11:53:19 +0000 (11:53 +0000)]
Rewrite osrelease.sh to parse Minix version

12 years agoDynamically determine which ramdisk to use
Thomas Veerman [Wed, 6 Jun 2012 11:49:36 +0000 (11:49 +0000)]
Dynamically determine which ramdisk to use

.Also, rename ext2_ramdisk to ramdisk_ext2.

12 years agoUse MACHINE_ARCH instead of ARCH
Thomas Veerman [Wed, 6 Jun 2012 11:27:00 +0000 (11:27 +0000)]
Use MACHINE_ARCH instead of ARCH

12 years agoRemove MINIXSRCDIR and use NETBSDSRCDIR
Thomas Veerman [Wed, 6 Jun 2012 11:16:32 +0000 (11:16 +0000)]
Remove MINIXSRCDIR and use NETBSDSRCDIR

NETBSDSRCDIR is used all over the place anyway, and this reduces
our diff with NetBSD a little.

12 years agoNo need to define NETBSD_SOURCE explicitly
Thomas Veerman [Wed, 6 Jun 2012 09:46:10 +0000 (09:46 +0000)]
No need to define NETBSD_SOURCE explicitly

12 years agoUse buildsystem commands instead of {cp,mkdir}
Thomas Veerman [Mon, 7 May 2012 14:28:01 +0000 (16:28 +0200)]
Use buildsystem commands instead of {cp,mkdir}

12 years agomtree.sh: reverse last two parameters
Thomas Veerman [Mon, 7 May 2012 14:22:27 +0000 (14:22 +0000)]
mtree.sh: reverse last two parameters

This way we can treat DESTDIR like a special case just as the build
system does (i.e., if not set, assume DESTDIR="/").

12 years agoCross-compilation fixes
Thomas Veerman [Mon, 7 May 2012 11:38:39 +0000 (13:38 +0200)]
Cross-compilation fixes

. Some Makefile fixes to automatically differentiate between a normal
  compilation and cross-compilation. Also, build compressed images.
. Harmonize ramdisk rc scripts for normal use case and ext2 ramdisk.
. ext2_ramdisk filesystem prototype fixes.

12 years agoFix mk file for cross compilation (2)
Thomas Veerman [Wed, 2 May 2012 12:33:27 +0000 (14:33 +0200)]
Fix mk file for cross compilation (2)

12 years agonewroot is gone too
Thomas Veerman [Wed, 2 May 2012 12:01:12 +0000 (14:01 +0200)]
newroot is gone too

12 years agobios_wini is no longer amongst us
Thomas Veerman [Wed, 2 May 2012 11:56:43 +0000 (13:56 +0200)]
bios_wini is no longer amongst us

12 years agoNew file(1) port
Dirk Vogt [Wed, 2 May 2012 11:23:57 +0000 (13:23 +0200)]
New file(1) port

12 years agoFix up mtree.sh
Dirk Vogt [Wed, 2 May 2012 11:19:41 +0000 (13:19 +0200)]
Fix up mtree.sh

12 years agoAlso copy kernel into multiboot dir
Dirk Vogt [Tue, 1 May 2012 15:04:37 +0000 (17:04 +0200)]
Also copy kernel into multiboot dir

12 years agoext2 ramdisk: copy rc to correct destination
Dirk Vogt [Tue, 1 May 2012 15:01:30 +0000 (17:01 +0200)]
ext2 ramdisk: copy rc to correct destination

12 years agoramdisk: don't do anything at dependall
Dirk Vogt [Tue, 1 May 2012 14:58:59 +0000 (16:58 +0200)]
ramdisk: don't do anything at dependall

12 years agoFix compiler check
Dirk Vogt [Tue, 1 May 2012 14:57:11 +0000 (16:57 +0200)]
Fix compiler check

12 years agoMake var overridable for cross compilation
Thomas Veerman [Tue, 1 May 2012 14:55:13 +0000 (16:55 +0200)]
Make var overridable for cross compilation

12 years agoInclude ext2 ramdisk in build and remove sync
Dirk Vogt [Tue, 1 May 2012 14:51:03 +0000 (16:51 +0200)]
Include ext2 ramdisk in build and remove sync

As the ramdisk and ext2 ramdisk don't build anything for the install
and all targets, memory does not have to wait for them anymore.

12 years agoAdd ext2 ramdisk, intended for cross compilation
Dirk Vogt [Tue, 1 May 2012 14:46:53 +0000 (16:46 +0200)]
Add ext2 ramdisk, intended for cross compilation

12 years agoMake ramdisk location configurable
Dirk Vogt [Tue, 1 May 2012 14:43:09 +0000 (16:43 +0200)]
Make ramdisk location configurable

Also, the ramdisk is now built when the memory driver is compiled.

12 years agoWhen MKUNPRIV is set do not require root privilege
Dirk Vogt [Tue, 1 May 2012 14:32:15 +0000 (16:32 +0200)]
When MKUNPRIV is set do not require root privilege

12 years agoMakefile fixups for cross compilation
Dirk Vogt [Tue, 1 May 2012 14:09:06 +0000 (16:09 +0200)]
Makefile fixups for cross compilation

12 years agoMake TTY cross-compilable
Dirk Vogt [Tue, 1 May 2012 13:17:05 +0000 (15:17 +0200)]
Make TTY cross-compilable

12 years agoMake commands cross-compilable
Dirk Vogt [Tue, 1 May 2012 13:13:07 +0000 (15:13 +0200)]
Make commands cross-compilable

12 years agoLet the kernel load figure out where to put mods
Dirk Vogt [Tue, 1 May 2012 13:04:26 +0000 (15:04 +0200)]
Let the kernel load figure out where to put mods

This patch makes the mkimage tool obsolete

12 years agoCreate cc symlink to clang
Thomas Veerman [Thu, 7 Jun 2012 13:34:12 +0000 (13:34 +0000)]
Create cc symlink to clang

12 years agodrop from segments physcopy/vircopy invocations
Ben Gras [Sat, 16 Jun 2012 17:29:37 +0000 (17:29 +0000)]
drop from segments physcopy/vircopy invocations

. sys_vircopy always uses D for both src and dst
. sys_physcopy uses PHYS_SEG if and only if corresponding
  endpoint is NONE, so we can derive the mode (PHYS_SEG or D)
  from the endpoint arg in the kernel, dropping the seg args
. fields in msg still filled in for backwards compatability,
  using same NONE-logic in the library

12 years agodrop segments from safemap/safeunmap invocations
Ben Gras [Sat, 16 Jun 2012 18:42:27 +0000 (18:42 +0000)]
drop segments from safemap/safeunmap invocations

12 years agoAdd hot plugging infrastructure in rc file.
Kees Jongenburger [Mon, 4 Jun 2012 11:15:23 +0000 (11:15 +0000)]
Add hot plugging infrastructure in rc file.

Adding hot plugging infrastructure in rc file. This includes
starting the devman service, mounting it's file system and
starting the corresponding devmand daemon.

This patch also provide error free shutdown of the USB sub-system.

The USB sub system needs to be shutdown in a certain order but also
consists of components living in /usr/pkg/. By checking the
existence of usbd we can stop it in the correct order.

12 years agoAdd devmand configuration to /etc.
Kees Jongenburger [Tue, 5 Jun 2012 10:49:50 +0000 (10:49 +0000)]
Add devmand configuration to /etc.

12 years agoAdd support in devmand for using config dirs.
Kees Jongenburger [Mon, 4 Jun 2012 09:34:04 +0000 (09:34 +0000)]
Add support in devmand for using config dirs.

Add support in devmand for using configuration directories to
allow 3rd party packages to add configuration items.

12 years agoUpgrade libddekit and introduce devmand.
Kees Jongenburger [Tue, 5 Jun 2012 09:43:18 +0000 (09:43 +0000)]
Upgrade libddekit and introduce devmand.

Devmand (Device manager daemon) is the daemon that will
dynamically manage services based on events received from
the system.

12 years agoMove setjmp and strnlen to common/lib.
Kees Jongenburger [Tue, 5 Jun 2012 09:37:32 +0000 (09:37 +0000)]
Move setjmp and strnlen to common/lib.

Move setjmp and strnlen to common/lib to allow libddekit to use them.

12 years agodrop segment from safecopy invocations
Ben Gras [Sat, 16 Jun 2012 01:46:15 +0000 (03:46 +0200)]
drop segment from safecopy invocations

. all invocations were S or D, so can safely be dropped
  to prepare for the segmentless world
. still assign D to the SCP_SEG field in the message
  to make previous kernels usable

12 years agodumpcore: use ptrace function to trigger a coredump
Ben Gras [Fri, 15 Jun 2012 00:38:00 +0000 (02:38 +0200)]
dumpcore: use ptrace function to trigger a coredump

. dumpcore currently relies on minix segments
. also ptrace dumpcore fix

12 years agopm: ignore notify() from unknown sender
Ben Gras [Thu, 14 Jun 2012 13:36:38 +0000 (15:36 +0200)]
pm: ignore notify() from unknown sender

. avoids annoying error message if e.g. buggy drivers
  send pm notify()s that pm tries to reply() ENOSYS to

12 years agofurther libexec generalization
Ben Gras [Wed, 6 Jun 2012 17:05:28 +0000 (19:05 +0200)]
further libexec generalization

. new mode for sys_memset: include process so memset can be
  done in physical or virtual address space.
. add a mode to mmap() that lets a process allocate uninitialized
  memory.
. this allows an exec()er (RS, VFS, etc.) to request uninitialized
  memory from VM and selectively clear the ranges that don't come
  from a file, leaving no uninitialized memory left for the process
  to see.
. use callbacks for clearing the process, clearing memory in the
  process, and copying into the process; so that the libexec code
  can be used from rs, vfs, and in the future, kernel (to load vm)
  and vm (to load boot-time processes)

12 years agoexec() cleanup, generalization, improvement
Ben Gras [Wed, 30 May 2012 17:34:07 +0000 (19:34 +0200)]
exec() cleanup, generalization, improvement

. make exec() callers (i.e. vfs and rs) determine the
  memory layout by explicitly reserving regions using
  mmap() calls on behalf of the exec()ing process,
  i.e. handling all of the exec logic, thereby eliminating
  all special exec() knowledge from VM.
. the new procedure is: clear the exec()ing process
  first, then call third-party mmap()s to reserve memory, then
  copy the executable file section contents in, all using callbacks
  tailored to the caller's way of starting an executable
. i.e. no more explicit EXEC_NEWMEM-style calls in PM or VM
  as with rigid 2-section arguments
. this naturally allows generalizing exec() by simply loading
  all ELF sections
. drop/merge of lots of duplicate exec() code into libexec
. not copying the code sections to vfs and into the executable
  again is a measurable performance improvement (about 3.3% faster
  for 'make' in src/servers/)

12 years agodrop aout support
Ben Gras [Wed, 6 Jun 2012 22:35:10 +0000 (00:35 +0200)]
drop aout support

justification: soon we won't be able to execute sep I&D aouts at
all (because of the vanishing segments), which was the default mode
to generate them so most binaries will be sep I&D.

this makes the vfs/rs exec() unification work simpler.

after unification, common I&D aout could be added back quite simply.

12 years agovm: add third-party mmap() mode and PROCCTL
Ben Gras [Tue, 5 Jun 2012 22:50:13 +0000 (00:50 +0200)]
vm: add third-party mmap() mode and PROCCTL

these two functions will be used to support all exec() functionality
going into a single library shared by RS and VFS and exec() knowledge
leaving VM.

. third-party mmap: allow certain processes (VFS, RS) to
  do mmap() on behalf of another process
. PROCCTL: used to free and clear a process' address space

12 years agokernel: compact utility functions
Ben Gras [Wed, 30 May 2012 23:25:31 +0000 (01:25 +0200)]
kernel: compact utility functions

12 years agoendianness compile fixes
Ben Gras [Wed, 6 Jun 2012 00:17:48 +0000 (02:17 +0200)]
endianness compile fixes

12 years agokernel: make sure mpx.S is linked early
Ben Gras [Fri, 1 Jun 2012 14:58:00 +0000 (16:58 +0200)]
kernel: make sure mpx.S is linked early

. for qemu multiboot detection

12 years agosynctree compile fix
Ben Gras [Fri, 25 May 2012 10:59:34 +0000 (12:59 +0200)]
synctree compile fix

. rename CANCEL to ORDER_CANCEL so the CANCEL enum name doesn't
  clash with a minix header file. also endianness test fix.

12 years agono USE_BOOTPARAM
Ben Gras [Sat, 5 May 2012 09:48:21 +0000 (11:48 +0200)]
no USE_BOOTPARAM

12 years agokernel: neater arch-dependent split in Makefiles
Ben Gras [Fri, 4 May 2012 16:45:54 +0000 (18:45 +0200)]
kernel: neater arch-dependent split in Makefiles

. files in kernel/ references in kernel/Makefile, but
  in kernel/arch/i386/ in kernel/arch/i386/Makefile.inc

12 years agoonly elf/multiboot images
Ben Gras [Tue, 1 May 2012 11:55:49 +0000 (13:55 +0200)]
only elf/multiboot images

12 years agomthread: mmap returns MAP_FAILED on error
Ben Gras [Wed, 30 May 2012 22:46:47 +0000 (00:46 +0200)]
mthread: mmap returns MAP_FAILED on error

12 years agoset major version of shlibs to 0
Ben Gras [Wed, 9 May 2012 14:45:11 +0000 (16:45 +0200)]
set major version of shlibs to 0

WARNING: this will break existing dynamically linked binaries if they
exist. If you have any:
. re-build world statically first if necessary
. remove libraries from /lib and /usr/lib
. then build world

This change:
. avoids possible future dismay when interfacing other
  systems' binaries; done until they are abi-compatible

Thanks to Antoine Leca for pointing this out.

12 years agoretire BIOS_SEG and umap_bios
Ben Gras [Wed, 9 May 2012 16:34:40 +0000 (18:34 +0200)]
retire BIOS_SEG and umap_bios

. readbios call is now a physical copy with range check in
  the kernel call instead of BIOS_SEG+umap_bios
. requires all access to physical memory in bios range to go
  through sys_readbios
. drivers/dpeth: wasn't using it
. adjusted printer

12 years agobrazilian keymap
Ben Gras [Fri, 4 May 2012 11:56:04 +0000 (13:56 +0200)]
brazilian keymap

contributed by David Augusto.

12 years agoVFS: fix "process already free" panic on reboot
David van Moolenbroek [Wed, 2 May 2012 15:41:17 +0000 (17:41 +0200)]
VFS: fix "process already free" panic on reboot

Reported by Claudiu Dan Gheorghe, debugged by Thomas and myself

12 years agotest43: fix dangling-symlink case
David van Moolenbroek [Wed, 2 May 2012 15:39:58 +0000 (17:39 +0200)]
test43: fix dangling-symlink case

12 years agolibarchive import
Ben Gras [Mon, 30 Apr 2012 23:56:44 +0000 (01:56 +0200)]
libarchive import

. clean and nbsd_ports managed import
. also makes it shared

12 years agolibmthread: don't always verify library initialization
Thomas Veerman [Tue, 1 May 2012 09:44:49 +0000 (09:44 +0000)]
libmthread: don't always verify library initialization

This can be turned back on when the library is compiled with
-DMTHREAD_STRICT (which enables more sanity checks). However,
always performing this check shows up in system profiling results.

12 years agoVFS: unlock vmnt when out of vnodes
Thomas Veerman [Mon, 23 Apr 2012 13:45:14 +0000 (13:45 +0000)]
VFS: unlock vmnt when out of vnodes

12 years agoVFS: release what can be released
Thomas Veerman [Mon, 23 Apr 2012 13:33:43 +0000 (13:33 +0000)]
VFS: release what can be released

Only attempt to release blocked processes that are blocked. There is
no use in trying to find more blocked processes than we know that are
blocked (on a pipe).

12 years agoVFS: simplify stat for pipes
Thomas Veerman [Wed, 18 Apr 2012 13:44:33 +0000 (13:44 +0000)]
VFS: simplify stat for pipes

According to POSIX the st_size field of struct stat is undefined for
fifos and anonymous pipes. Thus we can do anything we want. We save a
copy by not being accurate on pipe sizes.

12 years agoVFS: use S_IS* macros
Thomas Veerman [Wed, 25 Apr 2012 12:44:42 +0000 (12:44 +0000)]
VFS: use S_IS* macros

12 years agoVFS: I_PIPE is redundant
Thomas Veerman [Mon, 16 Apr 2012 09:04:32 +0000 (09:04 +0000)]
VFS: I_PIPE is redundant

Also, use S_IS* macros instead of manual comparison.

12 years agoAT_SUN_EXECNAME support
Ben Gras [Wed, 18 Apr 2012 14:32:38 +0000 (16:32 +0200)]
AT_SUN_EXECNAME support

. vfs: pass execname in aux vectors
. ld.elf_so: use this to expand $ORIGIN
. this requires the executable to reserve more
  space at exec() calling time

12 years agokernel: mon_return cleanup
Ben Gras [Wed, 25 Apr 2012 15:44:55 +0000 (17:44 +0200)]
kernel: mon_return cleanup

cleanup of boot monitor related code.

12 years agoEnable LZMA supprt with tar(1)
Antoine Leca [Wed, 22 Feb 2012 23:35:10 +0000 (00:35 +0100)]
Enable LZMA supprt with tar(1)

12 years agoMFS: reimplement block clean marking fix
David van Moolenbroek [Fri, 20 Apr 2012 15:23:09 +0000 (17:23 +0200)]
MFS: reimplement block clean marking fix

MFS' get_block() must never return a newly acquired block buffer that
is marked dirty from previous use. This patch replaces git-dd59d50,
which assumed a working model where blocks for device NO_DEV would
never be dirty. For at least one scenario, that assumption does not
hold, triggering superblock overwrite warnings. In this patch, blocks
are explicitly marked as clean upon being repurposed. The working
model is now restored to be: the dirty state of a block is relevant
only when its associated device is not set to NO_DEV.

12 years agoVFS: reimplement truncate mtime/ctime fix
David van Moolenbroek [Fri, 20 Apr 2012 09:12:04 +0000 (11:12 +0200)]
VFS: reimplement truncate mtime/ctime fix

POSIX mandates that a file's modification and change time be left
untouched upon truncate/ftruncate iff the file size does not change.
However, an open(O_TRUNC) call must always update the modification and
change time of the file, even if it was already zero-sized. VFS uses
the file systems' truncate call to implement O_TRUNC. This patch
replaces git-255ae85, which did not take into account the open case.
The size check is now moved into VFS, so that individual file systems
need not check for this case anymore.

12 years agorun test fix, take two
David van Moolenbroek [Fri, 20 Apr 2012 09:34:56 +0000 (11:34 +0200)]
run test fix, take two

12 years agodaily cron: fix timestamp updating
Ben Gras [Thu, 19 Apr 2012 14:48:48 +0000 (16:48 +0200)]
daily cron: fix timestamp updating

. previously was not updated causing daily to be run on
  every boot

12 years agouse linker to align fpu state save area
Ben Gras [Thu, 19 Apr 2012 13:06:47 +0000 (15:06 +0200)]
use linker to align fpu state save area

12 years agoprocfs: fix rare panic in add_inode
David van Moolenbroek [Tue, 17 Apr 2012 15:51:26 +0000 (17:51 +0200)]
procfs: fix rare panic in add_inode

Previously, procfs would consider all processes that have a non-free
kernel slot *or* an in-use PM slot. However, since AVFS, a non-free
kernel slot does not imply an in-use PM slot. As a result, procfs
may use PM slots that have a zero PID value. If two such entries are
present in the retrieved PM table, procfs would try to add two inodes
with the same name "0", triggering an assertion in vtreefs.

This patch makes procfs consider only the PM slot for (non-task)
processes.

12 years agoupdate_bootcfg: fix: generate absolute paths
Ben Gras [Wed, 18 Apr 2012 14:30:06 +0000 (16:30 +0200)]
update_bootcfg: fix: generate absolute paths

12 years agorun test fix
Ben Gras [Wed, 18 Apr 2012 13:59:37 +0000 (15:59 +0200)]
run test fix

12 years agoblock ioctls: pass request number
Ben Gras [Wed, 18 Apr 2012 09:01:15 +0000 (11:01 +0200)]
block ioctls: pass request number

12 years agorelease fixes
Ben Gras [Tue, 17 Apr 2012 12:02:14 +0000 (14:02 +0200)]
release fixes

. make ramdisk buildable without ../etc having pwd.db
. add cat to release bootstrap cmds
. support running dynamically linked executables for
  release bootstrap cmds
. import netbsd chroot to help

12 years agotest scripts fixes
Ben Gras [Mon, 16 Apr 2012 13:39:50 +0000 (15:39 +0200)]
test scripts fixes

12 years agodynamic executables on ramdisk support
Ben Gras [Tue, 10 Apr 2012 02:07:51 +0000 (02:07 +0000)]
dynamic executables on ramdisk support

See UPDATING about upgrading clang for dynamic linking.

. allow executables on ramdisk to be dynamically linked; this means
  putting a few required shared libraries and ld.elf_so on the ramdisk.
. this makes the ramdisk (usage) smaller when they are dynamic, but
  bigger when they're not.
. also we can safely ditch newroot and call mount directly as that is
  all newroot does.
. create proto.common to share a bunch of entries between
  small/nonsmall cases

12 years agotests: link them dynamically by default
Ben Gras [Sun, 8 Apr 2012 17:22:02 +0000 (19:22 +0200)]
tests: link them dynamically by default

. so that functionality is tested
. add test63 that actually tests dlopen(), dlsym(),
  etc. functionality; only built if clang supports it
. also test10 test to copy more of the executable

12 years agobuild shared versions of libraries
Ben Gras [Sat, 31 Mar 2012 00:28:03 +0000 (02:28 +0200)]
build shared versions of libraries

building defaults to off until clang is updated.

current clang does not handle -shared, necessary to change the ld
invocation to build shared libraries properly. a new clang should be
installed and MKPIC defaults to no unless the newer clang is detected.

changes:

. mainly small imports of a Makefile or two and small fixes
  (turning things back on that were turned off in Makefiles)
. e.g.: dynamic librefuse now depends on dynamic
  libpuffs, so libpuffs has to be built dynamically too
  and a make dependency barrier is needed in lib/Makefile
. all library objects now have a PIC (for .so) and non-PIC
  version, so everything is built twice.
. generate PIC versions of the compat (un-RENAMEd) jump files,
  include function type annotation in generated assembly
. build progs with -static by default for now
. also build ld.elf_so
. also import NetBSD ldd

12 years agorecognize and execute dynamically linked executables
Ben Gras [Tue, 3 Apr 2012 13:52:25 +0000 (15:52 +0200)]
recognize and execute dynamically linked executables

   . generalize libexec slightly to get some more necessary information
  from ELF files, e.g. the interpreter
. execute dynamically linked executables when exec()ed by VFS
. switch to netbsd variant of elf32.h exclusively, solves some
  conflicting headers

12 years agokernel: align gdt and idt base addresses
Ben Gras [Sun, 15 Apr 2012 18:39:36 +0000 (20:39 +0200)]
kernel: align gdt and idt base addresses

patch my fdmanana:
As recommended by the Intel 64 and IA-32 Architectures Developer's
Manual Volume 3A, the GDT and IDT base addresses should be aligned on an
8 byte boundary to yield better processor performance.

12 years agoProvide boot option to boot into single user mode
Thomas Veerman [Fri, 13 Apr 2012 13:54:31 +0000 (13:54 +0000)]
Provide boot option to boot into single user mode

12 years agoFix booting into single user mode
Thomas Veerman [Fri, 13 Apr 2012 13:52:48 +0000 (13:52 +0000)]
Fix booting into single user mode

Due to a shift, mountfstab was unable to locate the fstab file and
mount other file systems causing a number of errors to be generated.

12 years agoservice: make clear who is printing the error
Thomas Veerman [Fri, 13 Apr 2012 13:51:56 +0000 (13:51 +0000)]
service: make clear who is printing the error

12 years agoVFS: fix filp reuse race
Thomas Veerman [Fri, 13 Apr 2012 09:08:39 +0000 (09:08 +0000)]
VFS: fix filp reuse race

Pipes consist of two filps (read filp and write filp) and a shared
vnode. When the writer leaves the filp reference count drops to
zero and subsequent find_filp()s should not find the filp when a
reader looks for it and the reader gets EOF. However, the pipe()
system call tries to find two filps, marks them in use, and only
after a successful node creation on PFS, overwrites the shared
vnode with the new vnode. Consequently, this leaves a small window
where a just closed 'pipe write filp' gets reused and marked as
present, before becoming the actual new 'pipe write filp' for a new
pipe. A reader for the old pipe will think a writer is present and
wait for that writer to write something or to leave; both actions
should revive the suspended reader. This will never happen and the
reader will be stuck forever.

12 years agoVFS: more three-level-lock sanity checking
Thomas Veerman [Wed, 11 Apr 2012 09:13:49 +0000 (09:13 +0000)]
VFS: more three-level-lock sanity checking

12 years agoTTY: don't allow multiple readers on tty minor
Thomas Veerman [Wed, 4 Apr 2012 13:46:34 +0000 (13:46 +0000)]
TTY: don't allow multiple readers on tty minor

TTY has no way of keeping track of multiple readers for a tty minor
device. Instead, it stores a read request for the last reader only.
Consequently, the first ("overwritten") reader gets stuck on a read
request that's never going to be finished. Also, the overwriting
causes a grant mismatch in VFS when TTY returns a reply for the
second reader.

This patch is a work around for the actual problem (i.e., keeping track
of multiple readers). It checks whether there is a read operation in
progress and returns an error if it is --preventing that reader from
getting overwritten and stuck. It fixes a bug triggered by executing
'top | more' and pressing the space bar for a while (easily reproducable
in a VM, not on hardware).

12 years agoVFS: add getting active threads control msg
Thomas Veerman [Mon, 2 Apr 2012 15:25:37 +0000 (15:25 +0000)]
VFS: add getting active threads control msg

12 years agoVFS: remove debug print
Thomas Veerman [Mon, 2 Apr 2012 15:24:04 +0000 (15:24 +0000)]
VFS: remove debug print

12 years agoVFS: let know when skipping reply
Thomas Veerman [Mon, 2 Apr 2012 15:23:33 +0000 (15:23 +0000)]
VFS: let know when skipping reply

12 years agoVFS: fix dead lock
Thomas Veerman [Mon, 2 Apr 2012 15:20:05 +0000 (15:20 +0000)]
VFS: fix dead lock

When running out of worker threads to handle device replies a dead
lock resolver thread is used. However, it was only used for FS
endpoints; it is now used for "system processes" (drivers and FS
endpoints). Also, drivers were marked as system process when they
were not "forced" to map (i.e., mapping was done before endpoint was
alive).

12 years agoVFS: fix new signed/unsigned comparisons
Thomas Veerman [Mon, 2 Apr 2012 15:16:44 +0000 (15:16 +0000)]
VFS: fix new signed/unsigned comparisons

12 years agoVFS: warnings are errors
Thomas Veerman [Mon, 2 Apr 2012 15:10:53 +0000 (15:10 +0000)]
VFS: warnings are errors

12 years agoAdd a simple utility to send control messages
Thomas Veerman [Fri, 13 Apr 2012 12:58:41 +0000 (12:58 +0000)]
Add a simple utility to send control messages

The svrctl utility allows you to send control messages to VFS or PM.
This way you can retrieve runtime information or alter behavior.

12 years agoVFS: enable sending control messages
Thomas Veerman [Fri, 30 Mar 2012 09:24:44 +0000 (09:24 +0000)]
VFS: enable sending control messages

12 years agolibmthread: add stack traces
Thomas Veerman [Fri, 30 Mar 2012 09:16:46 +0000 (09:16 +0000)]
libmthread: add stack traces