]> Zhao Yanbai Git Server - minix.git/log
minix.git
12 years agomkfs: move directory entry manipulation
Ben Gras [Wed, 7 Nov 2012 17:48:30 +0000 (18:48 +0100)]
mkfs: move directory entry manipulation

12 years agomkfs: drop support for zone != block
Ben Gras [Wed, 7 Nov 2012 17:23:03 +0000 (18:23 +0100)]
mkfs: drop support for zone != block

12 years agomkfs: drop support for running on DOS
Ben Gras [Wed, 7 Nov 2012 16:54:00 +0000 (17:54 +0100)]
mkfs: drop support for running on DOS

12 years agomkfs: separate inode retrieval function
Ben Gras [Wed, 7 Nov 2012 16:41:52 +0000 (17:41 +0100)]
mkfs: separate inode retrieval function

12 years agomkfs: drop support for creating non-v3 FSes
Ben Gras [Wed, 7 Nov 2012 14:50:03 +0000 (15:50 +0100)]
mkfs: drop support for creating non-v3 FSes

12 years agomkfs: symlink support
Ben Gras [Wed, 7 Nov 2012 10:06:56 +0000 (11:06 +0100)]
mkfs: symlink support

. mkproto too

12 years agomkfs, mkproto: minor improvements
Ben Gras [Wed, 7 Nov 2012 18:19:46 +0000 (19:19 +0100)]
mkfs, mkproto: minor improvements

. mkfs: -x feature for extra space
. rename manpage to mkfs.mfs.1 to follow the binary
. move mkproto so it can become part of the tools easily

12 years agoretire nonsymbolic rootdev, dev2name
Ben Gras [Thu, 1 Nov 2012 18:40:56 +0000 (19:40 +0100)]
retire nonsymbolic rootdev, dev2name

12 years agoTTY: fix crash obtaining kernel messages
David van Moolenbroek [Mon, 5 Nov 2012 23:11:16 +0000 (00:11 +0100)]
TTY: fix crash obtaining kernel messages

Also fix a case of potential message loss in TTY and LOG.

12 years ago/bin/pax: Fix cross compilation problem on some platform by removing
Lionel Sambuc [Thu, 1 Nov 2012 12:01:30 +0000 (13:01 +0100)]
/bin/pax: Fix cross compilation problem on some platform by removing
          unneeded dependency on libutil.

12 years agodrop safemap code
Ben Gras [Thu, 25 Oct 2012 14:38:38 +0000 (16:38 +0200)]
drop safemap code

12 years agotestsh2.sh: change output to new cksum util
Thomas Veerman [Tue, 30 Oct 2012 13:08:45 +0000 (13:08 +0000)]
testsh2.sh: change output to new cksum util

12 years agoTTY: seperate hardware dependent parts + add new serial driver
Thomas Veerman [Wed, 17 Oct 2012 14:07:53 +0000 (14:07 +0000)]
TTY: seperate hardware dependent parts + add new serial driver

.Split TTY in order to support both x86 and ARM.
.Add support for the TI 16750 UARTs on OMAP35x.
.Various other improvements:
  .Kernel messages are printed using generic terminal write
   functions. That is, they are no longer directly displayed
   on the console.
  .The console can now be displayed on any terminal. This
   is configured by the "console={tty00,tty01,ttyc2,ttyc3,ttyc4}"
   boot variable -- basically any valid /dev/tty* terminal.
  .Cutify kernel messages with colors. Configured by
   "kernelclr={1,2,3,4,5,6,7}" boot variable.

12 years agoKernel: reenable interrupts before halting
Thomas Veerman [Thu, 18 Oct 2012 10:03:34 +0000 (10:03 +0000)]
Kernel: reenable interrupts before halting

12 years agoKernel: busy wait until serial out has finished
Thomas Veerman [Wed, 17 Oct 2012 14:57:08 +0000 (14:57 +0000)]
Kernel: busy wait until serial out has finished

12 years agovm: fix potential null deref
Ben Gras [Wed, 24 Oct 2012 17:47:47 +0000 (19:47 +0200)]
vm: fix potential null deref

12 years agoUpgrading bsdtar 86/86/2
Lionel Sambuc [Thu, 18 Oct 2012 15:22:21 +0000 (17:22 +0200)]
Upgrading bsdtar

 * Removing commands/tar
 * Updated external/bsd/libarchive
 * Adding external/bsd/libarchive/bin/tar compiled bsdtar instead
   of just tar
 * (tar is taken care of through the pax utility)

Change-Id: Ie773b4502fbf4e3880f28f01bb528b063a60c668

12 years agoUpgrading pax. 85/85/2
Lionel Sambuc [Mon, 22 Oct 2012 14:10:38 +0000 (16:10 +0200)]
Upgrading pax.

This also means importing librmt.

Change-Id: Ie5b314aeaad28dca46acb64f20f2d70746ea52d0

12 years agoFixed up new mtree description file NetBSD.dist.base (removed end of line spaces... 84/84/2
Lionel Sambuc [Thu, 11 Oct 2012 10:34:16 +0000 (12:34 +0200)]
Fixed up new mtree description file NetBSD.dist.base (removed end of line spaces, added a few missing directories)

Fixed lchflags error under MINIX3 as host OS

Change-Id: I00f708e82753fdae85ac54bc903db06a7775ab5a

12 years agomtree mknod 83/83/2
Ben Gras [Wed, 10 Oct 2012 15:20:17 +0000 (17:20 +0200)]
mtree mknod

Change-Id: I887437c7b84839fc644da4c55bd59b6a414408ef

12 years agodrivers: fix various sys_irqsetpolicy calls
David van Moolenbroek [Tue, 23 Oct 2012 12:23:26 +0000 (12:23 +0000)]
drivers: fix various sys_irqsetpolicy calls

12 years agoMove primary cache code to libminixfs.
Ben Gras [Tue, 16 Oct 2012 15:40:39 +0000 (17:40 +0200)]
Move primary cache code to libminixfs.

Add primary cache management feature to libminixfs as mfs and ext2
currently do separately, remove cache code from mfs and ext2, and make
them use the libminixfs interface. This makes all fields of the buf
struct private to libminixfs and FS clients aren't supposed to access
them at all. Only the opaque 'void *data' field (the FS block contents,
used to be called bp) is to be accessed by the FS client.

The main purpose is to implement the interface to the 2ndary vm cache
just once, get rid of some code duplication, and add a little
abstraction to reduce the code inertia of the whole caching business.

Some minor sanity checking and prohibition done by mfs in this code
as removed from the generic primary cache code as a result:
        - checking all inodes are not in use when allocating/resizing
          the cache
        - checking readonly filesystems aren't written to
        - checking the superblock isn't written to on mounted filesystems

The minixfslib code relies on fs_blockstats() in the client filesystem to
return some FS usage information.

12 years agoImporting cksum (needed by NetBSD build system)
Lionel Sambuc [Mon, 22 Oct 2012 13:42:09 +0000 (15:42 +0200)]
Importing cksum (needed by NetBSD build system)

Change-Id: I47308635f6307066643f83f07b6751b1f2a05eb4

12 years agommc:Fixes for coverity.
Kees Jongenburger [Mon, 22 Oct 2012 11:34:40 +0000 (13:34 +0200)]
mmc:Fixes for coverity.

Change-Id: I25e406126deb9172276844e1bb756e22e1f449f8

12 years agoImporting postinstall
Lionel Sambuc [Thu, 11 Oct 2012 08:46:39 +0000 (10:46 +0200)]
Importing postinstall

Change-Id: I5813064164e2d6ca4cf353fb184194b2aaa8caa3

12 years agoAdding -nt flag to test
Lionel Sambuc [Fri, 19 Oct 2012 19:32:34 +0000 (21:32 +0200)]
Adding -nt flag to test

This is needed by build.sh.

12 years agoPatch mkdep to make sure tested values are not mistaken
Lionel Sambuc [Tue, 9 Oct 2012 16:50:05 +0000 (18:50 +0200)]
Patch mkdep to make sure tested values are not mistaken
as test flags.

12 years agommc:driver development added dummy driver. 82/82/3
Kees Jongenburger [Fri, 19 Oct 2012 09:09:52 +0000 (11:09 +0200)]
mmc:driver development added dummy driver.

* Add dummy driver to allow independent testing of mmcblk.
* Always build the mmc driver to prevent breakage.
* Allow to specify the mmc driver to be used at load time.

Change-Id: I4e14b912fb8f3612e252864b53733968b23ac023

12 years agolibvboxfs: fix setting file mtimes
David van Moolenbroek [Tue, 16 Oct 2012 21:11:30 +0000 (23:11 +0200)]
libvboxfs: fix setting file mtimes

12 years agomount(1)/umount(1)/format(1): remove setuid bits
David van Moolenbroek [Tue, 16 Oct 2012 20:42:30 +0000 (22:42 +0200)]
mount(1)/umount(1)/format(1): remove setuid bits

This is a security measure. We may want to bring back user access to
mounting and formatting media in the future, but this should be done
only once we are sure that this is safe from a security perspective.

12 years agomount(1): do not include system headers
David van Moolenbroek [Tue, 16 Oct 2012 20:30:02 +0000 (22:30 +0200)]
mount(1): do not include system headers

12 years agoRetire checkhier(8)
David van Moolenbroek [Tue, 16 Oct 2012 20:27:03 +0000 (22:27 +0200)]
Retire checkhier(8)

12 years agoformat(1): access floppy as block device
David van Moolenbroek [Tue, 16 Oct 2012 18:45:10 +0000 (20:45 +0200)]
format(1): access floppy as block device

Accessing block devices as character devices is no longer supported.

12 years agoMAKEDEV(8): don't make /dev/filter user-accessible
David van Moolenbroek [Tue, 16 Oct 2012 18:33:55 +0000 (20:33 +0200)]
MAKEDEV(8): don't make /dev/filter user-accessible

12 years agoRetire badblocks(8) and readall(1)
David van Moolenbroek [Tue, 16 Oct 2012 17:50:53 +0000 (19:50 +0200)]
Retire badblocks(8) and readall(1)

12 years agorelease.sh: call df(1) with -k
David van Moolenbroek [Tue, 16 Oct 2012 17:34:18 +0000 (19:34 +0200)]
release.sh: call df(1) with -k

12 years agosetup(8): only call df(1) on mounted file systems
David van Moolenbroek [Tue, 16 Oct 2012 17:04:40 +0000 (19:04 +0200)]
setup(8): only call df(1) on mounted file systems

12 years agodf(1): use statvfs instead of raw disk access
David van Moolenbroek [Wed, 17 Oct 2012 20:51:17 +0000 (22:51 +0200)]
df(1): use statvfs instead of raw disk access

As of this patch, df(1) no longer performs raw disk access; it
operates exclusively on mounted file systems. This also means
that df no longer needs to be setuid.

12 years agopart(8)/autopart(8): remove partition hack
David van Moolenbroek [Sun, 14 Oct 2012 23:00:51 +0000 (01:00 +0200)]
part(8)/autopart(8): remove partition hack

We have actually had lseek64 for quite a while now, so it's no longer
necessary to do horrible things to the partition table just to be able
to access large offsets into a device.

Also fix the compiler warnings in these commands.

12 years agoInstallation CD: add AHCI option to boot menu
David van Moolenbroek [Sat, 13 Oct 2012 15:04:55 +0000 (17:04 +0200)]
Installation CD: add AHCI option to boot menu

12 years agoupdate_bootcfg(8): various improvements
David van Moolenbroek [Mon, 15 Oct 2012 22:40:35 +0000 (00:40 +0200)]
update_bootcfg(8): various improvements

- inherit a predefined set of system environment variables
  (the current set of inherited variables is: ahci; acpi; no_apic);
- auto-adjust the default menu option when lines are auto-removed;
- add variable substitution support for /etc/boot.cfg.local;
- make default menu options in boot.cfg.local relative to itself,
  allowing one to set the default to a menu option from this file.

12 years agommc:Indenting and code cleanup. 60/60/2
Kees Jongenburger [Wed, 10 Oct 2012 13:26:03 +0000 (15:26 +0200)]
mmc:Indenting and code cleanup.

Change-Id: Ia1156c6b5e4dbc6c8af37d61b118258053f347ce

12 years agommc:Small fixup to run the driver on hardware. 59/59/2
Kees Jongenburger [Mon, 8 Oct 2012 14:02:32 +0000 (16:02 +0200)]
mmc:Small fixup to run the driver on hardware.

Change-Id: I8e8d048da7cdfce5c9f2091969b0db5240e3e89f

12 years agoRemove some usage of 64bit functions (minix/u64.h)
Prasanna Kumar T S M [Mon, 24 Sep 2012 19:05:01 +0000 (00:35 +0530)]
Remove some usage of 64bit functions (minix/u64.h)

. Removed the usage of 64 bit functions in top.c. Compiles successfully.
. Scaling 64 bit values to 32 bit is removed.
. Retain make64 instead of using | with shift.
. Add order cycling display

12 years agoblocktest: make fewer assumptions about driver
David van Moolenbroek [Fri, 12 Oct 2012 12:55:55 +0000 (12:55 +0000)]
blocktest: make fewer assumptions about driver

In particular, allow partial results to be returned in some cases,
and do not require that the driver fail on word-unaligned access.

12 years agommc: various small fixes
David van Moolenbroek [Fri, 12 Oct 2012 12:54:08 +0000 (12:54 +0000)]
mmc: various small fixes

- call blockdriver_announce() on startup;
- restart statelessly after a crash;
- resolve a clang warning.

12 years agoVM: munmap fix
David van Moolenbroek [Sat, 13 Oct 2012 17:07:47 +0000 (19:07 +0200)]
VM: munmap fix

12 years agoexpose some terminal definitions by default
Ben Gras [Fri, 12 Oct 2012 12:43:18 +0000 (14:43 +0200)]
expose some terminal definitions by default

12 years agomkfs.mfs: dynamically size image from proto
Mohamed Katri [Mon, 10 Sep 2012 02:13:50 +0000 (04:13 +0200)]
mkfs.mfs: dynamically size image from proto

12 years agoVM: make mapping types explicit
Ben Gras [Thu, 11 Oct 2012 13:15:49 +0000 (15:15 +0200)]
VM: make mapping types explicit

Introduce explicit abstractions for different mapping types,
handling the instantiation, forking, pagefaults and freeing of
anonymous memory, direct physical mappings, shared memory and
physically contiguous anonymous memory as separate types, making
region.c more generic.

Also some other genericification like merging the 3 munmap cases
into one.

COW and SMAP safemap code is still implicit in region.c.

12 years agoVM: munmap used by VM for itself is no longer used
Ben Gras [Thu, 11 Oct 2012 13:15:48 +0000 (15:15 +0200)]
VM: munmap used by VM for itself is no longer used

12 years agobootloader: usability improvements
David van Moolenbroek [Wed, 10 Oct 2012 22:09:19 +0000 (00:09 +0200)]
bootloader: usability improvements

- add "edit" menu option, to edit menu commands before executing them;
- add "menu" boot command, to return to the menu from the prompt;
- provide more line editing features when getting input;
- fix a few potential buffer overflows as a side effect.

12 years agotests: fix IPC test set fix
David van Moolenbroek [Wed, 10 Oct 2012 18:10:14 +0000 (20:10 +0200)]
tests: fix IPC test set fix

Partial rollback of git-df39752.

12 years agoMerge branch 'master' of git.minix3.org:minix
Tomas Hruby [Thu, 11 Oct 2012 09:47:24 +0000 (09:47 +0000)]
Merge branch 'master' of git.minix3.org:minix

12 years agoLIBC - getifaddrs() fix
Tomas Hruby [Thu, 11 Oct 2012 09:43:33 +0000 (09:43 +0000)]
LIBC - getifaddrs() fix

ifpa must be set to something meaningful every time it returns 0.

12 years agominor fixes for safecopy & safemap tests
Ben Gras [Wed, 10 Oct 2012 16:35:08 +0000 (18:35 +0200)]
minor fixes for safecopy & safemap tests

12 years agoMMC driver. 58/58/3
Kees Jongenburger [Wed, 3 Oct 2012 08:55:40 +0000 (10:55 +0200)]
MMC driver.

Change-Id: I0d460d63070855df9b11eaf3d33eb7bb89c570f1

12 years agoImport MMC related bsd headers. 57/57/3
Kees Jongenburger [Wed, 3 Oct 2012 08:53:48 +0000 (10:53 +0200)]
Import MMC related bsd headers.

Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org>

Change-Id: Ia183d522a6ef1528b045a6fc6cd2e8930c669c32

12 years agoARM support for kernel and vm
Arun Thomas [Mon, 8 Oct 2012 01:38:03 +0000 (21:38 -0400)]
ARM support for kernel and vm

12 years agoVFS: fix check_bsf() locking
Arne Welzel [Thu, 27 Sep 2012 20:23:49 +0000 (22:23 +0200)]
VFS: fix check_bsf() locking

The check_bsf() macro uses assert(mutex_trylock(&bsf_lock)) and
assumes bsf_lock is locked afterwards. This breaks when compiling
with NOASSERTS="yes". Also: macro to function transition.

12 years agoVFS: resolve unused parameter if NOASSERTS="yes"
Arne Welzel [Thu, 27 Sep 2012 20:22:06 +0000 (22:22 +0200)]
VFS: resolve unused parameter if NOASSERTS="yes"

If VFS is compiled with NOASSERTS="yes", ctty_opcl() does not
use the op parameter. Change to "non-assert()" sanity check.

12 years agodaily: makewhatis -f
pikpik [Thu, 27 Sep 2012 21:12:14 +0000 (23:12 +0200)]
daily: makewhatis -f

. use a little less memory and the processor will be
  freer during start-up.

12 years agounstack, sort: cleanup and improvement
Ben Gras [Wed, 26 Sep 2012 16:29:11 +0000 (18:29 +0200)]
unstack, sort: cleanup and improvement

lets unstack
(a) know about in-kernel ipc entry points and
(b) be able handle >2GB symbol offsets.

. sort: add -x for hex numerical sort
. unstack: gnm is obsolete
. unstack: datasizes is obsolete (use nm --size-sort instead)
. unstack: add ipc entry points read from procfs (hex)
. unstack: use sort -x to sort symbol order so the procfs ones are
  sorted independent of position and original ordering

12 years agoprocfs: make ipc vectors available
Ben Gras [Wed, 26 Sep 2012 15:14:14 +0000 (17:14 +0200)]
procfs: make ipc vectors available

12 years agomemory: use sys_safememset() for /dev/zero
Arne Welzel [Sat, 22 Sep 2012 21:21:43 +0000 (21:21 +0000)]
memory: use sys_safememset() for /dev/zero

12 years agolibsys: add sys_safememset()
Arne Welzel [Sat, 22 Sep 2012 20:02:14 +0000 (20:02 +0000)]
libsys: add sys_safememset()

12 years agokernel: add safememset() kernel call
Arne Welzel [Sat, 22 Sep 2012 20:01:05 +0000 (20:01 +0000)]
kernel: add safememset() kernel call

12 years agokernel: handle pagefaults in vm_memset()
Arne Welzel [Sat, 22 Sep 2012 19:58:05 +0000 (19:58 +0000)]
kernel: handle pagefaults in vm_memset()

12 years agoTTY: printer better diagnostics
Thomas Veerman [Mon, 24 Sep 2012 15:25:37 +0000 (15:25 +0000)]
TTY: printer better diagnostics

.tell when a line is not initialized
.don't print when a request has failed, we use error codes for that

12 years agogetty: return speed option
Thomas Veerman [Mon, 24 Sep 2012 13:37:20 +0000 (13:37 +0000)]
getty: return speed option

12 years agoSYSENTER/SYSCALL support
Ben Gras [Sun, 10 Jun 2012 17:50:17 +0000 (17:50 +0000)]
SYSENTER/SYSCALL support

. add cpufeature detection of both
. use it for both ipc and kernelcall traps, using a register
  for call number
. SYSENTER/SYSCALL does not save any context, therefore userland
  has to save it
. to accomodate multiple kernel entry/exit types, the entry
  type is recorded in the process struct. hitherto all types
  were interrupt (soft int, exception, hard int); now SYSENTER/SYSCALL
  is new, with the difference that context is not fully restored
  from proc struct when running the process again. this can't be
  done as some information is missing.
. complication: cases in which the kernel has to fully change
  process context (i.e. sigreturn). in that case the exit type
  is changed from SYSENTER/SYSEXIT to soft-int (i.e. iret) and
  context is fully restored from the proc struct. this does mean
  the PC and SP must change, as the sysenter/sysexit userland code
  will otherwise try to restore its own context. this is true in the
  sigreturn case.
. override all usage by setting libc_ipc=1

12 years agophys_memset improvements
Arne Welzel [Fri, 21 Sep 2012 12:15:44 +0000 (14:15 +0200)]
phys_memset improvements

. verify length argument
. use rep stosl / stosb

12 years agoremove unused <tools.h>
Ben Gras [Thu, 20 Sep 2012 10:24:22 +0000 (12:24 +0200)]
remove unused <tools.h>

12 years agovm: fix failed alloc condition
Ben Gras [Wed, 19 Sep 2012 20:23:56 +0000 (22:23 +0200)]
vm: fix failed alloc condition

12 years agotop task uid clear
Ben Gras [Wed, 19 Sep 2012 17:38:19 +0000 (19:38 +0200)]
top task uid clear

12 years agotests: don't chmod 777 everything upon cleanup
Thomas Veerman [Wed, 19 Sep 2012 14:58:32 +0000 (14:58 +0000)]
tests: don't chmod 777 everything upon cleanup

rm -rf works just fine no matter what mode bits are set (modulo
file ownership and current user id). Test 43 creates a symlink
to / and the chmod operation would change file permissions outside
of the test directory.

12 years agocoverity appeasement - redundant check
Ben Gras [Wed, 19 Sep 2012 15:18:02 +0000 (17:18 +0200)]
coverity appeasement - redundant check

12 years agovfs: pm_dumpcore: always clean up process
Ben Gras [Wed, 19 Sep 2012 14:57:27 +0000 (16:57 +0200)]
vfs: pm_dumpcore: always clean up process

. whenever this function is called, pm will expect
  the process to be cleaned up
. so don't abort the process entirely on error
. fixes a later 'forking on top of in-use child' vfs panic

12 years agovm: change NO_MEM to a more impossible value
Ben Gras [Wed, 19 Sep 2012 13:29:53 +0000 (15:29 +0200)]
vm: change NO_MEM to a more impossible value

fixes an assert() firing when starting X. thanks to the report by pikpik.

. NO_MEM was 0, which is actually an existing piece
  of physical memory. it can't be allocated because it's reserved
  for bios data (by the kernel), but it can be mapped in (e.g.
  by X), causing sanity check disaster.
. NONCONTIGUOUS is also obsolete as all allocations are single-page
  now, i.e. NONCONTIGUOUS is really the default and only mode.

12 years agoworldstone: add -s for statistical profiling
Ben Gras [Wed, 5 Sep 2012 21:42:41 +0000 (23:42 +0200)]
worldstone: add -s for statistical profiling

12 years agocoverity appeasement
Ben Gras [Wed, 19 Sep 2012 11:07:18 +0000 (13:07 +0200)]
coverity appeasement

12 years agovm, kernel, top: report memory usage of vm, kernel
Ben Gras [Tue, 18 Sep 2012 20:19:22 +0000 (22:19 +0200)]
vm, kernel, top: report memory usage of vm, kernel

12 years agoVM: remove dead code
Ben Gras [Tue, 18 Sep 2012 16:40:13 +0000 (18:40 +0200)]
VM: remove dead code

12 years agosome coverity fixes.
Ben Gras [Tue, 18 Sep 2012 13:10:59 +0000 (15:10 +0200)]
some coverity fixes.

12 years agoVM: restore >4k secondary cache functionality
Ben Gras [Tue, 18 Sep 2012 11:17:52 +0000 (13:17 +0200)]
VM: restore >4k secondary cache functionality

. by storing length in the yielded blocks node again

12 years agoVM: full munmap
Ben Gras [Tue, 18 Sep 2012 11:17:52 +0000 (13:17 +0200)]
VM: full munmap

complete munmap implementation; single-page references made
a general munmap() implementation possible to write cleanly.

. memory: let the MIOCRAMSIZE ioctl set the imgrd device
  size (but only to 0)
. let the ramdisk command set sizes to 0
. use this command to set /dev/imgrd to 0 after mounting /usr
  in /etc/rc, so the boot time ramdisk is freed (about 4MB
  currently)

12 years agoVM: abstract datastructures a bit
Ben Gras [Tue, 18 Sep 2012 11:17:51 +0000 (13:17 +0200)]
VM: abstract datastructures a bit

. a little less duplication in region.c

12 years agoVM: simplify slab allocator
Ben Gras [Tue, 18 Sep 2012 11:17:50 +0000 (13:17 +0200)]
VM: simplify slab allocator

. only keep a list of non-empty, non-full pages with slab objects
. simplifies alloc/free operations and reduces list management overhead

12 years agoVM: only single page chunks
Ben Gras [Tue, 18 Sep 2012 11:17:49 +0000 (13:17 +0200)]
VM: only single page chunks

 . only reference single pages in process data structures
   to simplify page faults, copy-on-write, etc.
 . this breaks the secondary cache for objects that are
   not one-page-sized; restored in a next commit

12 years agoVM: static data structure for mem allocation
Ben Gras [Tue, 18 Sep 2012 11:17:48 +0000 (13:17 +0200)]
VM: static data structure for mem allocation

 . allocate physical memory using a fixed, pre-allocated bitmap so there
   are no call cycles and it's avilable earlier

12 years agoVM: remove unused dma memory support functions from vm
Ben Gras [Tue, 18 Sep 2012 11:17:47 +0000 (13:17 +0200)]
VM: remove unused dma memory support functions from vm

. unused calls / data structures

12 years agoVM: forget about 'holes'
Ben Gras [Tue, 18 Sep 2012 11:17:46 +0000 (13:17 +0200)]
VM: forget about 'holes'

  . unused data structures and code

12 years agoVM: some sanitycheck fixes
Ben Gras [Tue, 18 Sep 2012 11:17:45 +0000 (13:17 +0200)]
VM: some sanitycheck fixes

minor fixes to restore SANITYCHECKS

12 years agolibc/libminc malloc reorganization
Ben Gras [Tue, 18 Sep 2012 11:17:44 +0000 (13:17 +0200)]
libc/libminc malloc reorganization

  . rename minix malloc sources to minix-* so Makefile
    references aren't ambiguous
  . throw out malloc source file copies in libminc
  . make libminc use phkmalloc instead of minix malloc (slightly faster)

12 years agoVFS: fix GCC compilation error
Thomas Veerman [Mon, 17 Sep 2012 15:29:38 +0000 (15:29 +0000)]
VFS: fix GCC compilation error

12 years agoINET: fix crash recovery script
Thomas Veerman [Thu, 13 Sep 2012 11:51:36 +0000 (11:51 +0000)]
INET: fix crash recovery script

12 years agoPM: don't deliver signals to VM
Thomas Veerman [Tue, 4 Sep 2012 12:12:32 +0000 (12:12 +0000)]
PM: don't deliver signals to VM

12 years agoVFS: panic when unmount_all fails
Thomas Veerman [Tue, 4 Sep 2012 12:11:54 +0000 (12:11 +0000)]
VFS: panic when unmount_all fails

12 years agoVFS: make all IPC asynchronous
Thomas Veerman [Tue, 28 Aug 2012 14:06:51 +0000 (14:06 +0000)]
VFS: make all IPC asynchronous

By decoupling synchronous drivers from VFS, we are a big step closer to
supporting driver crashes under all circumstances. That is, VFS can't
become stuck on IPC with a synchronous driver (e.g., INET) and can
recover from crashing block drivers during open/close/ioctl or during
communication with an FS.

In order to maintain serialized communication with a synchronous driver,
the communication is wrapped by a mutex on a per driver basis (not major
numbers as there can be multiple majors with identical endpoints). Majors
that share a driver endpoint point to a single mutex object.

In order to support crashes from block drivers, the file reopen tactic
had to be changed; first reopen files associated with the crashed
driver, then send the new driver endpoint to FSes. This solves a
deadlock between the FS and the block driver;
  - VFS would send REQ_NEW_DRIVER to an FS, but he FS only receives it
    after retrying the current request to the newly started driver.
  - The block driver would refuse the retried request until all files
    had been reopened.
  - VFS would reopen files only after getting a reply from the initial
    REQ_NEW_DRIVER.

When a character special driver crashes, all associated files have to
be marked invalid and closed (or reopened if flagged as such). However,
they can only be closed if a thread holds exclusive access to it. To
obtain exclusive access, the worker thread (which handles the new driver
endpoint event from DS) schedules a new job to garbage collect invalid
files. This way, we can signal the worker thread that was talking to the
crashed driver and will release exclusive access to a file associated
with the crashed driver and prevent the garbage collecting worker thread
from dead locking on that file.

Also, when a character special driver crashes, RS will unmap the driver
and remap it upon restart. During unmapping, associated files are marked
invalid instead of waiting for an endpoint up event from DS, as that
event might come later than new read/write/select requests and thus
cause confusion in the freshly started driver.

When locking a filp, the usage counters are no longer checked. The usage
counter can legally go down to zero during filp invalidation while there
are locks pending.

DS events are handled by a separate worker thread instead of the main
thread as reopening files could lead to another crash and a stuck thread.
An additional worker thread is then necessary to unlock it.

Finally, with everything asynchronous a race condition in do_select
surfaced. A select entry was only marked in use after succesfully sending
initial select requests to drivers and having to wait. When multiple
select() calls were handled there was opportunity that these entries
were overwritten. This had as effect that some select results were
ignored (and select() remained blocking instead if returning) or do_select
tried to access filps that were not present (because thrown away by
secondary select()). This bug manifested itself with sendrecs, but was
very hard to reproduce. However, it became awfully easy to trigger with
asynsends only.

12 years agokeymap(5) manpage - update location
Zachary Storer [Thu, 13 Sep 2012 21:19:15 +0000 (23:19 +0200)]
keymap(5) manpage - update location