]> Zhao Yanbai Git Server - minix.git/log
minix.git
11 years agoUpgrading printf 74/274/2
Lionel Sambuc [Wed, 30 Jan 2013 14:45:47 +0000 (15:45 +0100)]
Upgrading printf

Change-Id: I78dbbf0d14e4d61f5dfbec53d3938453b3e03ee6

11 years agoFix command line history in ash 73/273/2
Lionel Sambuc [Wed, 30 Jan 2013 14:36:51 +0000 (15:36 +0100)]
Fix command line history in ash

Also did some cleanup in ash sources, to make minix modifications
more obvious, as well as some simplifications (by removing code which
is never compiled)

Removed EDITLINE support, use libedit, which does the termcap/terminfo
handling.

Change-Id: I19f7f425ed6a61298844631f9d7f3173cf7f30c0

11 years agoFix file permissions in usr.bin/tput
Lionel Sambuc [Tue, 29 Jan 2013 18:17:51 +0000 (18:17 +0000)]
Fix file permissions in usr.bin/tput

Change-Id: Ieb29d7a91bbd90273e37406f5454e23c3131634a

11 years agoARM: provide free running clock to replace ccnt 84/284/2
Thomas Veerman [Tue, 29 Jan 2013 19:58:00 +0000 (20:58 +0100)]
ARM: provide free running clock to replace ccnt

The Cycle CouNTer on ARM cannot be used reliably as it wraps around
rather quickly and can be altered by user space (on Minix). Furthermore,
it's buggy when wrapping and is not implemented at all on the Linaro
Beagleboard emulator.

This patch programs GPTIMER10 as a free running clock at 1.625 MHz (it
doesn't generate interrupts). It's memory mapped into every process,
which enables libsys to provide micro_delay().

Change-Id: Iba004c6c62976762fe154ea390d69e518eec1531

11 years agoarm: make signal handlers work
Ben Gras [Wed, 30 Jan 2013 02:13:24 +0000 (03:13 +0100)]
arm: make signal handlers work

A few kernel and calling convention adjustments to make sigsend and
sigreturn work for arm.

. provide a arch_proc_setcontext for earm in kernel
. set LR in context of signal handler to provide a proper
  return address (to __sigreturn)
. change __sigreturn to retrieve the sigcontext pointer
  from the sigframe struct and pass it to _sigreturn() in r0

Change-Id: Icd135a70595382c79d11d8dd9876f6a6f1df41f8

11 years agolibc: add stat aliases 69/269/2
Ben Gras [Tue, 29 Jan 2013 18:59:30 +0000 (18:59 +0000)]
libc: add stat aliases

. add non-internal aliases for stat, lstat, fstat

Change-Id: I87e025b2bf073ff56a5742fc1dcf5badb2b7b321

11 years agovm: fix kernel-requested mappings for arm 68/268/1
Ben Gras [Tue, 29 Jan 2013 17:52:08 +0000 (17:52 +0000)]
vm: fix kernel-requested mappings for arm

. make vm tell kernel virtual locations of mappings
. makes _minix_kerninfo feature work
. fix for mappings being larger than what 1 pde can address
  (e.g. devices memory requested on arm)
. still requires a special case for devices memory for the
  kernel, which has to switch to virtual addressing

Change-Id: I2e94090aa432346fa4da0edeba72f0b7406c2ad7

11 years agogpio:Initial GPIO driver.(ARM) 67/267/3
Kees Jongenburger [Mon, 28 Jan 2013 11:54:44 +0000 (12:54 +0100)]
gpio:Initial GPIO driver.(ARM)

Small GPIO driver that exports a few pins using a virtual file
system. Currently the two user leds and the user button are exported.

Change-Id: I001d017ae27cd17b635587873f7da981054da459

11 years agoImport infocmp from NetBSD 66/266/1
Antoine Leca [Fri, 25 Jan 2013 11:19:17 +0000 (11:19 +0000)]
Import infocmp from NetBSD

Convert the content of the terminfo database into human-readable
form, the same as used by the tic(1) command already present.

11 years agoimport tput from NetBSD 65/265/1
Antoine Leca [Fri, 18 Jan 2013 17:20:49 +0000 (17:20 +0000)]
import tput from NetBSD

Posix tool to allow direct use of the terminfo database.
The clear script is adjusted accordingly.
The (MINIX-specific) clr equivalent is now gone.

11 years agoMined: allow Ins to mark 64/264/1
Antoine Leca [Tue, 17 Jan 2012 12:53:27 +0000 (13:53 +0100)]
Mined: allow Ins to mark

11 years agomake: correct a typo of NetBSD source 63/263/1
Antoine Leca [Wed, 23 Jan 2013 18:20:42 +0000 (18:20 +0000)]
make: correct a typo of NetBSD source

11 years agoReplace tell_config with NetBSD osrelease.sh 62/262/1
Antoine Leca [Wed, 23 Jan 2013 08:13:24 +0000 (08:13 +0000)]
Replace tell_config with NetBSD osrelease.sh

11 years agoRamdisk: remove mtab, as now obsolete 61/261/1
Antoine Leca [Tue, 22 Jan 2013 12:49:15 +0000 (12:49 +0000)]
Ramdisk: remove mtab, as now obsolete

11 years agomkdep: restore NetBSD behaviour 60/260/1
Antoine Leca [Sat, 19 Jan 2013 15:12:04 +0000 (16:12 +0100)]
mkdep: restore NetBSD behaviour

Since MINIX has a working cc, do not introduce spurious differences

11 years agoGNU tools: improvements to fetching process 59/259/1
Antoine Leca [Mon, 21 Jan 2013 14:30:17 +0000 (14:30 +0000)]
GNU tools: improvements to fetching process

- Do not run the fetch.sh script every time
- Do not run the configure script with MKUPDATE=yes (build.sh -u)
- The fetched GNU source are hidden from `git status`
- With CLEANFETCHED=yes, `nbmake -C tools cleandir` will remove the
fetched GNU source and return the MINIX tree to its pristine state.
- Avoid (harmless) message when building in parallel, about find
running against an inexistant path

Notice that the GNU tools are "installed" on every run, even with
MKUPDATE=yes; this is a feature of the NetBSD build system, because
in case of changes in dependencies it is impossible to know them.
See commit 1.27 2004-06-12 of tools/Makefile.gnuhost in NetBSD's src/

The downloaded tarballs are not removed with CLEANFETCHED:
they are supposed to be unmodified, and the exact name is not known
to the Makefile's, since it is engraved in each fetch.sh script (and
we do not want to have the same information in several places.)

11 years agoVFS: fix select again
Thomas Veerman [Fri, 25 Jan 2013 17:42:36 +0000 (17:42 +0000)]
VFS: fix select again

Change-Id: Ia5e26cdbfe38e3fb293dd57269a76b15c1fe236b

11 years agoARM: run with 64 processes only for now
Thomas Veerman [Fri, 25 Jan 2013 13:42:14 +0000 (14:42 +0100)]
ARM: run with 64 processes only for now

11 years agoKernel/ARM: faster context save
Thomas Veerman [Fri, 25 Jan 2013 13:41:43 +0000 (14:41 +0100)]
Kernel/ARM: faster context save

11 years agoKernel/ARM: use modern srsdb invocation
Thomas Veerman [Fri, 25 Jan 2013 13:31:40 +0000 (14:31 +0100)]
Kernel/ARM: use modern srsdb invocation

11 years agolibcsu: store argc and argv on the stack
Thomas Veerman [Fri, 25 Jan 2013 13:29:29 +0000 (14:29 +0100)]
libcsu: store argc and argv on the stack

11 years agoRamdisk: fix ramdisk creation for ARM
Thomas Veerman [Fri, 25 Jan 2013 12:49:18 +0000 (13:49 +0100)]
Ramdisk: fix ramdisk creation for ARM

11 years agoAlso build and install log for ARM
Thomas Veerman [Wed, 23 Jan 2013 14:12:19 +0000 (15:12 +0100)]
Also build and install log for ARM

11 years agoARM: disable __minix_init for now
Thomas Veerman [Wed, 23 Jan 2013 14:07:04 +0000 (15:07 +0100)]
ARM: disable __minix_init for now

On ARM we can't yet globally map pages into every process. So now that
we correctly receive the pointer to the globally mapped kern_info
struct, we have to ignore it on ARM because attempting to dereference
the pointer yields a segfault.

11 years agoARM: correctly store kernel_info_struct pointer
Thomas Veerman [Wed, 23 Jan 2013 13:56:48 +0000 (14:56 +0100)]
ARM: correctly store kernel_info_struct pointer

11 years agoVM: ARM needs more spare pages
Thomas Veerman [Wed, 23 Jan 2013 13:54:41 +0000 (14:54 +0100)]
VM: ARM needs more spare pages

11 years agoARM: Provide linker script for VM
Thomas Veerman [Thu, 17 Jan 2013 14:40:23 +0000 (15:40 +0100)]
ARM: Provide linker script for VM

11 years agoSplit libsys in arch dependent parts
Thomas Veerman [Thu, 17 Jan 2013 13:50:01 +0000 (14:50 +0100)]
Split libsys in arch dependent parts

The ARM part is not finished yet and will be fixed in a later commit.

11 years agoARM: clear BSS upon boot
Thomas Veerman [Thu, 17 Jan 2013 12:35:07 +0000 (13:35 +0100)]
ARM: clear BSS upon boot

11 years agoARM: provide means to pass boot cmdline
Thomas Veerman [Thu, 17 Jan 2013 11:37:53 +0000 (11:37 +0000)]
ARM: provide means to pass boot cmdline

11 years agoPFS: verify nrbytes
Thomas Veerman [Fri, 25 Jan 2013 11:57:32 +0000 (11:57 +0000)]
PFS: verify nrbytes

11 years agotests: print error locations verbosely 43/243/2
Ben Gras [Fri, 25 Jan 2013 01:00:10 +0000 (01:00 +0000)]
tests: print error locations verbosely

So we don't have to figure out which line generated this error by
searching for the subtest/error code combination.

Change-Id: Icca0a776fd19f0f3d250ddb76916f5f932dd9b5e

11 years agogetifaddrs: add un-namespaced alias 42/242/1
Ben Gras [Thu, 24 Jan 2013 21:52:48 +0000 (21:52 +0000)]
getifaddrs: add un-namespaced alias

. needed for security/heimdal, needed for git

Change-Id: I8638945dffd0abffd487c47281ad7616da1b70db

11 years agoTermcap update, replacing elvis by nvi. 41/241/1
Lionel Sambuc [Tue, 22 Jan 2013 11:03:53 +0000 (12:03 +0100)]
Termcap update, replacing elvis by nvi.

Removing elvis, importing nvi, ctags, updating libedit.

Change-Id: I881eb04d2dc64cf112facd992de1114e1a59107f

11 years agoRe-adding extended keys in minix termcap entry 40/240/1
Lionel Sambuc [Mon, 21 Jan 2013 14:08:04 +0000 (14:08 +0000)]
Re-adding extended keys in minix termcap entry

11 years agoFixing cross build i386 on minix 39/239/1
Lionel Sambuc [Thu, 17 Jan 2013 23:06:11 +0000 (00:06 +0100)]
Fixing cross build i386 on minix

11 years agobuild:fixes Files in DESTDIR but missing from flist. 37/237/2
Kees Jongenburger [Wed, 23 Jan 2013 11:29:18 +0000 (12:29 +0100)]
build:fixes Files in DESTDIR but missing from flist.

* virtio

Change-Id: I0c3262cb346692b6caaed0b80ffc1e725dbc0c66

11 years agobuild:fixes Files in DESTDIR but missing from flist. 36/236/1
Kees Jongenburger [Wed, 23 Jan 2013 10:26:46 +0000 (11:26 +0100)]
build:fixes Files in DESTDIR but missing from flist.

Change-Id: I9bf6de1697d1173898de2eda03f042f316427007

11 years agoVFS/PFS: remove remnants of file position in pipes
Thomas Veerman [Tue, 22 Jan 2013 16:40:53 +0000 (16:40 +0000)]
VFS/PFS: remove remnants of file position in pipes

11 years agoVFS: fix select bug on pipes
Thomas Veerman [Tue, 22 Jan 2013 15:49:02 +0000 (15:49 +0000)]
VFS: fix select bug on pipes

11 years agoramdisk: traditional-cpp does not work with clang
Thomas Veerman [Tue, 22 Jan 2013 10:29:47 +0000 (10:29 +0000)]
ramdisk: traditional-cpp does not work with clang

11 years agobuild:fixes Files in DESTDIR but missing from flist. 35/235/2
Kees Jongenburger [Tue, 22 Jan 2013 15:24:52 +0000 (16:24 +0100)]
build:fixes Files in DESTDIR but missing from flist.

Change-Id: Idb3d53a22bee6731fb22f435bf672a0ff180b863

11 years agoramdisk: add virtio-blk to proto and boot option
Joachim Henke [Sat, 15 Dec 2012 12:59:08 +0000 (13:59 +0100)]
ramdisk: add virtio-blk to proto and boot option

11 years agovirtio: virtio-net driver
Arne Welzel [Sat, 15 Dec 2012 12:55:07 +0000 (13:55 +0100)]
virtio: virtio-net driver

11 years agovirtio: virtio-blk driver
Arne Welzel [Sat, 15 Dec 2012 12:54:11 +0000 (13:54 +0100)]
virtio: virtio-blk driver

11 years agopci: add virtio pci device ids
Joachim Henke [Sat, 15 Dec 2012 12:52:17 +0000 (13:52 +0100)]
pci: add virtio pci device ids

11 years agovirtio: generic virtio library
Arne Welzel [Sat, 15 Dec 2012 12:47:37 +0000 (13:47 +0100)]
virtio: generic virtio library

11 years agokernel: fix sanity check
Ben Gras [Fri, 18 Jan 2013 02:24:00 +0000 (02:24 +0000)]
kernel: fix sanity check

11 years agoReplace previous change by different test
Ben Gras [Thu, 17 Jan 2013 15:58:12 +0000 (15:58 +0000)]
Replace previous change by different test

. so contents always get overwritten in out-of-tree case

11 years agodrivers/ramdisk/Makefile fixup
Lionel Sambuc [Thu, 17 Jan 2013 14:47:23 +0000 (15:47 +0100)]
drivers/ramdisk/Makefile fixup

Change-Id: I481830f19b650ff0d93bf319ca4d8e901657b8f8

11 years agoFixed bug in getrlimit as core dumps are supported now.
Nicholas Heath [Wed, 16 Jan 2013 18:25:33 +0000 (18:25 +0000)]
Fixed bug in getrlimit as core dumps are supported now.

11 years agoARM updates
Lionel Sambuc [Sun, 13 Jan 2013 16:20:11 +0000 (17:20 +0100)]
ARM updates

Due to the ABI we are using we have to use the earm architecture
moniker for the build system to behave correctly. This involves
then some headers to move around.

There is also a few related Makefile updates as well as minor
source code corrections.

11 years agoToolchain adaptation for ARM MINIX support
Lionel Sambuc [Sun, 13 Jan 2013 16:20:59 +0000 (17:20 +0100)]
Toolchain adaptation for ARM MINIX support

11 years agoReverting back to default value of MKARZERO
Lionel Sambuc [Sun, 13 Jan 2013 19:06:31 +0000 (20:06 +0100)]
Reverting back to default value of MKARZERO

The value was changed to no for cross-building as the old binutils
could not handle the required flag. As this is now possible, the
default is restored.

This flags make sure that AR zeroes out some timestamps and uid/gid
fields in libraries, which would change for every build of the
library otherwise, preventing comparison between to builds.

11 years agoRemoving useless __NBSD_LIBC define in libcurses
Lionel Sambuc [Sun, 13 Jan 2013 16:22:00 +0000 (17:22 +0100)]
Removing useless __NBSD_LIBC define in libcurses

11 years agomisc:Add gerrit code review support. 66/166/2
Kees Jongenburger [Tue, 8 Jan 2013 12:55:33 +0000 (13:55 +0100)]
misc:Add gerrit code review support.

Add gerrit code review support by adding a git-review configuration
file.

Change-Id: I63c2d22b946c6b64c90be120983ce81df890f6aa

11 years agosys/arch/x86/include updates
Ben Gras [Tue, 15 Jan 2013 09:29:55 +0000 (09:29 +0000)]
sys/arch/x86/include updates

. primary purpose is to synchronize with <ieeefp.h> which
  expects a fp_prec from sys/arch/x86/include/ieeefp.h

11 years agocsu: restore crt1.o symlink
Ben Gras [Tue, 15 Jan 2013 08:01:33 +0000 (08:01 +0000)]
csu: restore crt1.o symlink

. minix gcc package uses crt1.o to link

11 years agosprofalyze fixes
Ben Gras [Mon, 14 Jan 2013 20:43:11 +0000 (20:43 +0000)]
sprofalyze fixes

. accumulate sprof_info
. reset 'seen' endpoints for every file to keep in sync with kernel
  profile stream

11 years agotar: use utime() to restore timestamps
Ben Gras [Mon, 14 Jan 2013 23:19:35 +0000 (23:19 +0000)]
tar: use utime() to restore timestamps

. otherwise all extracted files get 'now'

11 years agoUPDATING instructions for libc/terminfo update
Lionel Sambuc [Mon, 14 Jan 2013 12:20:00 +0000 (13:20 +0100)]
UPDATING instructions for libc/terminfo update

11 years agoFix warnings trivial warnings.
Lionel Sambuc [Tue, 11 Dec 2012 17:42:21 +0000 (18:42 +0100)]
Fix warnings trivial warnings.

Fix warnings about:
 . Unused variables
 . format mismatch in printf/scanf format string and arguments
 . Missing parenthesis around assignment as truth values
 . Clang warnings anout unknown GCC pragma

11 years agoChanging field utmp.ut_time from int to time_t 80/180/2
Lionel Sambuc [Tue, 11 Dec 2012 17:03:26 +0000 (18:03 +0100)]
Changing field utmp.ut_time from int to time_t

This makes sure the types are coherent, and right now, time_t is
defined as an long, through _BSD_TIME_T_. It previously was
hardcoded as an int, so the structure's size does not change.

Change-Id: If29e94ab53f605d1480fadb540f5b67be4ddaf5b

11 years agoImporting common/dist/zlib 79/179/2
Lionel Sambuc [Tue, 18 Dec 2012 19:25:56 +0000 (20:25 +0100)]
Importing common/dist/zlib

Change-Id: I46de716a98ccc501ca32b2a9445d9964594ddc61

11 years agoUpdating lib/libcrypt 78/178/2
Lionel Sambuc [Tue, 18 Dec 2012 10:01:53 +0000 (11:01 +0100)]
Updating lib/libcrypt

Change-Id: I4dc5ca7c86abc5295ffc57386a14dd1d790fd489

11 years agoUpdating usr.bin/passwd 77/177/2
Lionel Sambuc [Wed, 12 Dec 2012 10:53:34 +0000 (11:53 +0100)]
Updating usr.bin/passwd

Change-Id: I5512cd44cb9f1684350050d4e3fb5bb4d1c9b6b1

11 years agoUpdating usr.bin/make 76/176/2
Lionel Sambuc [Tue, 11 Dec 2012 17:41:20 +0000 (18:41 +0100)]
Updating usr.bin/make

Change-Id: I66b137a0368cf99267cd47a9625da8a12d8a1df7

11 years agoUpdating usr.bin/m4 75/175/2
Lionel Sambuc [Tue, 11 Dec 2012 17:14:47 +0000 (18:14 +0100)]
Updating usr.bin/m4

Change-Id: I6edfb294639490da27f6abd132822b901de0d650

11 years agonbsd_ports cleanups 74/174/2
Lionel Sambuc [Thu, 22 Nov 2012 15:50:46 +0000 (16:50 +0100)]
nbsd_ports cleanups

Change-Id: Ib538a7b12a46a5052fb37e4ba74c32ebc43dbf64

11 years agoCleaning usage of MAJOR/MINOR 73/173/2
Lionel Sambuc [Wed, 12 Dec 2012 13:30:19 +0000 (14:30 +0100)]
Cleaning usage of MAJOR/MINOR

Change-Id: I4d7718c51967930375a5f0657b61f869745cf644

11 years agoUpdating libcurses, libterminfo and terminfo. 36/136/5
Lionel Sambuc [Tue, 4 Dec 2012 10:42:24 +0000 (11:42 +0100)]
Updating libcurses, libterminfo and terminfo.

The three are updated together as they are tightly coupled.

Change-Id: I9e1f07b6adc6e8ae10833e6f1402f8472d2d34b8

11 years agoLibraries updates and cleanup 72/172/2
Lionel Sambuc [Thu, 15 Nov 2012 11:06:41 +0000 (12:06 +0100)]
Libraries updates and cleanup

 * Updating common/lib
 * Updating lib/csu
 * Updating lib/libc
 * Updating libexec/ld.elf_so
 * Corrected test on __minix in featuretest to actually follow the
   meaning of the comment.
 * Cleaned up _REENTRANT-related defintions.
 * Disabled -D_REENTRANT for libfetch
 * Removing some unneeded __NBSD_LIBC defines and tests

Change-Id: Ic1394baef74d11b9f86b312f5ff4bbc3cbf72ce2

11 years agoMoving all NetBSD headers back where they belong. 48/148/3
Lionel Sambuc [Mon, 26 Nov 2012 15:59:26 +0000 (16:59 +0100)]
Moving all NetBSD headers back where they belong.

Moving include/sys NetBSD headers to /sys/sys
Moving include/arch/*/ NetBSD headers to /sys/arch/*/include

Change-Id: Ia1a45d4e83ab806c84093ec2b61bdbea9bed65a0

11 years agocommon upgrades 45/145/4
Lionel Sambuc [Thu, 22 Nov 2012 15:50:23 +0000 (16:50 +0100)]
common upgrades

Change-Id: I567fc15845b601019d346569ecfcef4f89687fd2

11 years agoramdisk:add support for cross building a dso ramdisk. 71/171/3
Kees Jongenburger [Thu, 10 Jan 2013 16:05:12 +0000 (17:05 +0100)]
ramdisk:add support for cross building a dso ramdisk.

Change-Id: Ib2840bceab10cf98cb0abfbdb2393af4d59be102

11 years agoramdisk:replace proto.sh by the c processor. 70/170/4
Kees Jongenburger [Thu, 10 Jan 2013 09:50:32 +0000 (10:50 +0100)]
ramdisk:replace proto.sh by the c processor.

Replace proto.sh by the c processor to generate proto.gen in order
for us to have a more flexible way of selecting the files we want
in the ramdisk.

Change-Id: Id82b9f1b73b498c4d885bb3156fcefaeb9d157e0

11 years agoVFS: initialize variables
Thomas Veerman [Fri, 11 Jan 2013 12:46:44 +0000 (12:46 +0000)]
VFS: initialize variables

11 years agoVFS: Coverity appeasements
Thomas Veerman [Fri, 11 Jan 2013 09:42:01 +0000 (09:42 +0000)]
VFS: Coverity appeasements

11 years agoARM: fix clock
Thomas Veerman [Tue, 8 Jan 2013 12:02:38 +0000 (13:02 +0100)]
ARM: fix clock

The GPTIMER1 clock is configured to run at 32 kHz and generate
(overflow) interrupts every 1 ms. However, the Timer Overflow Wrappping
Register (TOWR) was configured to filter every other interrupt. This
caused to the internal 'realtime' value to be off.

11 years agoARM: make cycle counter available to userspace
Thomas Veerman [Tue, 8 Jan 2013 10:53:08 +0000 (11:53 +0100)]
ARM: make cycle counter available to userspace

11 years agoAdd stack trace dumps for VFS over serial
Thomas Veerman [Wed, 2 Jan 2013 13:41:36 +0000 (13:41 +0000)]
Add stack trace dumps for VFS over serial

11 years agoVFS: add documentation about internal working
Thomas Veerman [Tue, 18 Dec 2012 14:53:12 +0000 (14:53 +0000)]
VFS: add documentation about internal working

11 years agoVFS: change locking to ease concurrent FSes
Thomas Veerman [Fri, 21 Dec 2012 15:30:37 +0000 (15:30 +0000)]
VFS: change locking to ease concurrent FSes

This patch uses stricter locking for REQ_LINK, REQ_MKDIR, REQ_MKNOD,
REQ_RENAME, REQ_RMDIR, REQ_SLINK and REQ_UNLINK. For all requests, VFS
locks the directory in which we add or remove an inode with VNODE_WRITE.
I.e., the operations have exclusive access to that directory.

Furthermore, REQ_CHOWN, REQ_CHMOD, and REQ_FTRUNC now lock the vmnt
VMNT_READ; VMNT_WRITE was unnecessary.

11 years agolibmthread: add possibility to randomize scheduler
Thomas Veerman [Tue, 11 Dec 2012 19:53:08 +0000 (19:53 +0000)]
libmthread: add possibility to randomize scheduler

11 years agoVFS/PFS: remove notion of position in pipes
Thomas Veerman [Tue, 11 Dec 2012 19:46:09 +0000 (19:46 +0000)]
VFS/PFS: remove notion of position in pipes

Because pipes have no file position. VFS maintained (file) offsets into a
buffer internal to PFS and stored them in vnodes for simplicity, mixing
the responsibilities of filp and vnode objects.

With this patch PFS ignores the position field in REQ_READ and REQ_WRITE
requests making VFS' job a lot simpler.

11 years agoVFS: fix locking bugs
Thomas Veerman [Fri, 30 Nov 2012 12:49:53 +0000 (12:49 +0000)]
VFS: fix locking bugs

.sync and fsync used unnecessarily restrictive locking type
.fsync violated locking order by obtaining a vmnt lock after a filp lock
.fsync contained a TOCTOU bug
.new_node violated locking rules (didn't upgrade lock upon file creation)
.do_pipe used unnecessarily restrictive locking type
.always lock pipes exclusively; even a read operation might require to do
 a write on a vnode object (update pipe size)
.when opening a file with O_TRUNC, upgrade vnode lock when truncating
.utime used unnecessarily restrictive locking type
.path parsing:
  .always acquire VMNT_WRITE or VMNT_EXCL on vmnt and downgrade to
   VMNT_READ if that was what was actually requested. This prevents the
   following deadlock scenario:
   thread A:
     lock_vmnt(vmp, TLL_READSER);
     lock_vnode(vp, TLL_READSER);
     upgrade_vmnt_lock(vmp, TLL_WRITE);

   thread B:
     lock_vmnt(vmp, TLL_READ);
     lock_vnode(vp, TLL_READSER);

   thread A will be stuck in upgrade_vmnt_lock and thread B is stuck in
   lock_vnode. This happens when, for example, thread A tries create a
   new node (open.c:new_node) and thread B tries to do eat_path to
   change dir (stadir.c:do_chdir). When the path is being resolved, a
   vnode is always locked with VNODE_OPCL (TLL_READSER) and then
   downgraded to VNODE_READ if read-only is actually requested. Thread
   A locks the vmnt with VMNT_WRITE (TLL_READSER) which still allows
   VMNT_READ locks. Thread B can't acquire a lock on the vnode because
   thread A has it; Thread A can't upgrade its vmnt lock to VMNT_WRITE
   (TLL_WRITE) because thread B has a VMNT_READ lock on it.

   By serializing vmnt locks during path parsing, thread B can only
   acquire a lock on vmp when thread A has completely finished its
   operation.

11 years agovm: fix region reporting bug
Ben Gras [Wed, 9 Jan 2013 19:45:37 +0000 (19:45 +0000)]
vm: fix region reporting bug

. logic was backwards, causing no reporting ever
. this broke coredumps ('Warning: Program has too many regions')

11 years agoservice: nonfatally ignore unknown call keywords
Ben Gras [Tue, 8 Jan 2013 18:07:43 +0000 (18:07 +0000)]
service: nonfatally ignore unknown call keywords

. makes switching between revisions with new system.conf
  keywords less risky

11 years agorelease.sh: restore -jJAILDIR option
Ben Gras [Mon, 7 Jan 2013 21:21:19 +0000 (21:21 +0000)]
release.sh: restore -jJAILDIR option

. also make copying a bit more informative and succinct

11 years agoDrop obsolete klib16.S
Antoine Leca [Tue, 8 Jan 2013 15:12:37 +0000 (15:12 +0000)]
Drop obsolete klib16.S

The 16-bit poweroff16() function is not called any more.

11 years agogzip: fix warning messages with off_t
Antoine Leca [Mon, 7 Jan 2013 11:07:29 +0000 (11:07 +0000)]
gzip: fix warning messages with off_t

NetBSD assumes off_t is 64-bit, but on MINIX it is still 32-bit.
So cast the calls to use big_off_t, as stat(2) uses.
Only used in warning messages, was not a real production bug.

11 years agolibc, libutil: remove compat hacks
Ben Gras [Mon, 7 Jan 2013 19:10:08 +0000 (19:10 +0000)]
libc, libutil: remove compat hacks

11 years agokernel: trap-dependent state restore, trace fixes
Ben Gras [Sun, 6 Jan 2013 18:18:41 +0000 (18:18 +0000)]
kernel: trap-dependent state restore, trace fixes

. restore state depends on how saving of state was done;
  also remember trap style in sig context
. actually set and restore TRACEBIT with new trap styles;
  have to remove it once process enters kernel though, done
  in debug trap exception handler
. introduce MF_STEP that makes arch-specific code
  turn on trace bit instead of setting TRACEBIT directly,
  a bit more arch-friendly and avoids keeping precious
  state in per-process PSW arch-dependently

11 years agovm: restore stacktrace on SIGSEGV
Ben Gras [Fri, 4 Jan 2013 18:30:12 +0000 (18:30 +0000)]
vm: restore stacktrace on SIGSEGV

11 years agokernel: separate state for trace-deferred syscalls
Ben Gras [Fri, 4 Jan 2013 17:14:31 +0000 (17:14 +0000)]
kernel: separate state for trace-deferred syscalls

state is usually not in p_reg any more with sysenter/syscall trap entries,
so when saving/restarting do_ipc invocations the state has to be remembered
explicitly.

11 years agokernel: restore setting KTS_NONE
Ben Gras [Fri, 4 Jan 2013 14:58:12 +0000 (14:58 +0000)]
kernel: restore setting KTS_NONE

The 'trap style' variable records how a process has trapped into the
kernel (hardware/software interrupt, or one of the other trap
instructions). KTS_NONE indicates the process isn't trapped into the
kernel at all and is useful for sanity checking. The KTS_NONE reset was
inadvertently removed while removing some debugging code and this commit
restores it.

11 years agokernel:add a some information in backtraces. 58/158/2
Kees Jongenburger [Wed, 2 Jan 2013 15:54:00 +0000 (16:54 +0100)]
kernel:add a some information in backtraces.

* Display the pid and process name in the backtrace as we can
currently not read stackframes.

Change-Id: I2435d4098553c5b02adfe36f08b5aa3f47e9b531

11 years agovm:enable the instruction and data caches. 57/157/2
Kees Jongenburger [Wed, 2 Jan 2013 16:50:11 +0000 (17:50 +0100)]
vm:enable the instruction and data caches.

Enable the instruction and data caches. Whether data is cached
will depend on the MMU entries.

Change-Id: I51e9ebc38924db5525d4e7ad9ab69b2a5b1ca7b4

11 years agotest:update tests to fix compiler warnings. 65/165/1
Kees Jongenburger [Mon, 7 Jan 2013 16:19:30 +0000 (17:19 +0100)]
test:update tests to fix compiler warnings.

Change-Id: Id2c757f61fe5e8b52dffadfeb129024625c76f48

11 years agokernel: restore stacktraces
Ben Gras [Fri, 4 Jan 2013 18:26:10 +0000 (18:26 +0000)]
kernel: restore stacktraces

When processes have entered the kernel with one of the new
trap modes, %ebp is not valid, used for stacktraces, so we
need an alternative way to retrieve it to make the stacktraces
valid again.