Commit graph

4516 commits

Author SHA1 Message Date
Ben Gras 1062293981 change rc defaults reading
. always install them (overwrite)
	. source minix one from /etc/defaults/rc.conf
	  so that it'll get read on existing installs
	  without overwriting rc.conf (doesn't happen by default
	  as it's user-editable), needed for new netconf system
	. reported by Tenkawa
2011-11-23 15:36:51 +00:00
Ben Gras 79853dc9bc netconf: run lspci earlier for netconf -c
. Reported by Tenkawa
2011-11-23 15:24:42 +00:00
David van Moolenbroek 5a70f42ab6 gcore: uninitialized variable fix and cleanup 2011-11-23 15:56:13 +01:00
David van Moolenbroek 9874865a6f ahci: FUA (force-write) support 2011-11-23 15:40:38 +01:00
David van Moolenbroek b4d909d415 Split block/character protocols and libdriver
This patch separates the character and block driver communication
protocols. The old character protocol remains the same, but a new
block protocol is introduced. The libdriver library is replaced by
two new libraries: libchardriver and libblockdriver. Their exposed
API, and drivers that use them, have been updated accordingly.
Together, libbdev and libblockdriver now completely abstract away
the message format used by the block protocol. As the memory driver
is both a character and a block device driver, it now implements its
own message loop.

The most important semantic change made to the block protocol is that
it is no longer possible to return both partial results and an error
for a single transfer. This simplifies the interaction between the
caller and the driver, as the I/O vector no longer needs to be copied
back. Also, drivers are now no longer supposed to decide based on the
layout of the I/O vector when a transfer should be cut short. Put
simply, transfers are now supposed to either succeed completely, or
result in an error.

After this patch, the state of the various pieces is as follows:
- block protocol: stable
- libbdev API: stable for synchronous communication
- libblockdriver API: needs slight revision (the drvlib/partition API
  in particular; the threading API will also change shortly)
- character protocol: needs cleanup
- libchardriver API: needs cleanup accordingly
- driver restarts: largely unsupported until endpoint changes are
  reintroduced

As a side effect, this patch eliminates several bugs, hacks, and gcc
-Wall and -W warnings all over the place. It probably introduces a
few new ones, too.

Update warning: this patch changes the protocol between MFS and disk
drivers, so in order to use old/new images, the MFS from the ramdisk
must be used to mount all file systems.
2011-11-23 14:06:37 +01:00
Ben Gras 7643f2b25e compile fix (gdb, binutils) 2011-11-23 13:35:50 +01:00
Arun Thomas fa00de707c small ramdisk: install all password-related files 2011-11-23 10:28:00 +01:00
David van Moolenbroek 1e1db53986 Introduce sys_getregs call, and let vfs use it 2011-11-22 02:07:33 +01:00
Adriana Szekeres c30f014a89 gcore command to coredump a process 2011-11-22 22:07:41 +01:00
Adriana Szekeres eaa29370f4 ELF core files 2011-11-22 22:07:40 +01:00
Arun Thomas ebdac755af ramdisk: install all password-related files 2011-11-22 19:58:45 +01:00
Arun Thomas 32aabfab40 ramdisk: build pwd_mkdb 2011-11-22 16:45:17 +01:00
Ben Gras cd107a5ac3 fxp: add device id in the right place 2011-11-22 11:17:49 +01:00
Ben Gras 81bdb22b0c fxp: add device id for LU82551IT
Contributed by Roman Ignatov
2011-11-22 11:09:42 +01:00
David van Moolenbroek f29ba928cc isofs: unbreak lseek 2011-11-22 11:46:55 +01:00
Ben Gras 8b69d04fff csu: add code to call constructors to be used by clang
. clang-linked binaries were not calling global constructors, as the
	  code to do so wasn't in csu/ and linked
	. it does work for gcc as it uses its self-supplied crt{begin,end} code
	. this commit copies netbsd's crt{begin,end}.S, which contains
	  constructor/destructor calling code, called from .init and .fini
	  sections already accumulated by the linker. the _init function was already
	  called by the C startup code before calling main.
	. based on work by Antoine Leca
2011-11-20 20:20:51 +01:00
Thomas Cort 0c9b539a35 compat.S: add getpwnam() alias.
Needed for finding getpwnam() when a prototype is not given.
2011-11-20 18:36:42 +01:00
Ben Gras c24d15b2db pm: add mproc table sanity check feature
. make procfs check it
	. detects pm/procfs mismatches
	. was triggered by ack/clang pm/procfs:
	  add padding to mproc struct to align ack/clang layout
	  to fix this
2011-11-18 17:18:10 +01:00
Ben Gras b1eba81b9d simplify build logic a bit
. always compile acpi, with clang, so never have
	  build/clean inconsistencies; can be enabled (i.e. run
	  at boot time) by setting acpi variable in the boot monitor
	. always strip binaries with the right strip cmd, so never
	  have ack/elf strip inconsistencies
2011-11-18 17:11:17 +01:00
Arun Thomas 3f9ef4ac46 make: set MACHINE_ARCH variable
Also, modify sys.mk so we continue to build with -O
2011-11-18 16:22:25 +01:00
Ben Gras f379b3eecb remove ftpd200 2011-11-18 12:19:50 +01:00
Ben Gras ee8602a486 minor bugfixes caught by clang warnings 2011-11-18 12:18:23 +01:00
Ben Gras 79285c3664 libarchive: not for ack
. fixes compile error due to missing bzlib.h for ack
	. one less ack library
2011-11-18 11:49:21 +01:00
Vivek Prakash 79bfef9aab import NetBSD bzip2 and libbz2 2011-11-18 11:11:04 +01:00
Ben Gras 349a158056 base system hooks for pkgsrc drivers
. rc script and service know to look in /usr/pkg/.. for
	  extra binaries and conf files
	. service split into parsing config and doing RS request
	  so that a new utility (printconfig) can just print the
	  config in machine-parseable format for netconf integration
	. converted all base system eth drivers/netconf
2011-11-16 16:18:21 +01:00
Ben Gras 2c57ee566b pwcache_userdb alias.
. mainly so configure can find it without the prototype.
2011-11-16 12:59:40 +01:00
David van Moolenbroek 34c14b1cab More cleanup: no more CMOS and SCSI ioctls 2011-11-16 11:50:53 +01:00
Vivek Prakash c4bce95897 Define flags in sys/stat.h 2011-11-15 17:14:57 +01:00
Ben Gras 41f823ae4c release.sh: add -e
. allows extra files in release for flexibility
	. written by Jan Wieck
2011-11-15 14:18:56 +01:00
Ben Gras 0811b47a71 df: add case for MFSv3
. fix for FSes mounted with '-t mfs' syntax
2011-11-14 22:18:31 +00:00
Ben Gras 5c00743626 Switch to NetBSD passwd format
Based on work by Vivek Prakash and Gianluca Guida.

See UPDATING about caveats on currently existing accounts.

	. restores netbsd libc pwcache functions
2011-11-14 14:47:42 +00:00
Ben Gras cedeabb357 mainstream-format fstab format
. detect both formats in /etc/rc
	. generate new format in setup
	. obsoletes /etc/fstab.local: everything can go in /etc/fstab
	. put shutdown/reboot/halt and a copy of /usr/adm/wtmp
	  (/etc/wtmp) on root FS so that we can do shutdown checks before
	  mounting /usr
	. new fstab format makes getfsent() and friends work
2011-11-14 14:47:28 +00:00
Thomas Veerman 4311136125 Fix compiler warnings 2011-11-14 14:21:39 +00:00
Thomas Veerman 490e0de548 Import librefuse and libpuffs
Import libpuffs and our port of libpuffs. The port was done as part of
GSoC 2011 FUSE project, done by Evgeniy Ivanov. The librefuse import
did not require any porting efforts. Libpuffs has been modified to
understand our VFS-FS protocol and translate between that and PUFFS. As
an example that it works, fuse-ntfs-3g from pkgsrc can be compiled and
used to mount ntfs partitions:
mount -t ntfs-3g <device> <mountpoint>

FUSE only works with the asynchronous version of VFS. See <docs/UPDATING> on
how to run AVFS.

This patch further includes some changes to mount(1) and mount(2) so it's
possible to use file systems provided by pkgsrc (note: manual modifications
to /etc/system.conf are still needed. There has been made an exception for
fuse-ntfs-3g, so it already as an entry).
2011-11-14 11:53:05 +00:00
Thomas Veerman a209c3ae12 Fix a ton of compiler warnings
This patch fixes most of current reasons to generate compiler warnings.
The changes consist of:
 - adding missing casts
 - hiding or unhiding function declarations
 - including headers where missing
 - add __UNCONST when assigning a const char * to a char *
 - adding missing return statements
 - changing some types from unsigned to signed, as the code seems to want
   signed ints
 - converting old-style function definitions to current style (i.e.,
   void func(param1, param2) short param1, param2; {...} to
   void func (short param1, short param2) {...})
 - making the compiler silent about signed vs unsigned comparisons. We
   have too many of those in the new libc to fix.

A number of bugs in the test set were fixed. These bugs were never
triggered with our old libc. Consequently, these tests are now forced to
link with the new libc or they will generate errors (in particular tests 43
and 55).

Most changes in NetBSD libc are limited to moving aroudn "#ifndef __minix"
or stuff related to Minix-specific things (code in sys-minix or gen/minix).
2011-11-14 10:07:49 +00:00
David van Moolenbroek 85b8fbe72b More cleanup of minix/com.h. 2011-11-11 13:53:29 +01:00
David van Moolenbroek b477504754 ps(1): remove outdated comment 2011-11-11 11:37:44 +01:00
David van Moolenbroek 7207cf2e37 ps(1) man page: mem/kmem are no longer used 2011-11-11 11:34:50 +01:00
David van Moolenbroek b1855cdcf2 Change default pager to less(1)
For one thing, less(1) provides better interaction with git.
2011-11-10 16:58:46 +01:00
David van Moolenbroek af01bda509 libbdev: initial version
The "bdev" library provides basic primitives for file systems to talk
to block device drivers, hiding the details of the underlying protocol
and interaction model.

This version of libbdev is rather basic. It is planned to support the
following features in the long run:

 - asynchronous requests and replies;
 - recovery support for underlying block drivers;
 - retrying of failed I/O requests.

The commit also changes our block-based file systems (mfs, ext2, isofs)
to make use of libbdev.
2011-11-09 14:43:25 +01:00
David van Moolenbroek 0bb27bb0b1 Servers: remove ABI comment 2011-11-07 22:24:59 +01:00
David van Moolenbroek b02c260ecb Miscellaneous legacy cleanup 2011-11-07 22:20:55 +01:00
Ben Gras 3fbb50397c stopgap local fstab
. /etc/fstab.local to list user-defined filesystems
	. /usr/etc/rc reads it and runs type-specific fsck if necessary
	. also type-specific mount
2011-11-07 20:37:12 +01:00
David van Moolenbroek 0f3423cd75 Kernel: fix compilation with DEBUG_RACE on 2011-11-07 19:59:02 +01:00
David van Moolenbroek a80eb6545a blocktest: add system.conf file, too 2011-11-07 18:26:16 +01:00
David van Moolenbroek 2602861f23 Move optset.c into libsys; remove redundant copies 2011-11-07 16:16:08 +01:00
David van Moolenbroek fc34180cca Add "blocktest" test, for testing block drivers
The test is located in test/blocktest. It requires hand-editing of
its configuration, and is not part of any automated test set.
2011-11-07 14:55:55 +01:00
David van Moolenbroek ff542f0b27 atl2: prevent compiler memory access misordering
While no problems have been observed in practice yet, modern compilers
may reorder memory access operations, and that could lead to problems
with memory-mapped I/O typically done by drivers. This patch prevents
any potentially problematic reordering by the compiler in the ATL2
driver.

In addition, this patch removes a number of gcc/clang warnings.
2011-11-07 14:25:09 +01:00
Ben Gras c83a90e2f1 mfs: ditch global readahead 2011-11-06 19:15:12 +01:00
David van Moolenbroek 47aad344c3 Drivers: fix issues introduced by commit b198207 2011-11-04 23:54:04 +01:00