Commit graph

1242 commits

Author SHA1 Message Date
David van Moolenbroek
b48542d914 VM: readd support for forgetting cached FS blocks
Not all services involved in block I/O go through VM to access the
blocks they need.  As a result, the blocks in VM may become stale,
possibly causing corruption when the stale copy is restored by a
service that does go through VM later on.  This patch restores support
for forgetting cached blocks that belong to a particular device, and
makes the relevant file systems use this functionality 1) when
requested by VFS through REQ_FLUSH, and 2) upon unmount.

Change-Id: I0758c5ed8fe4b5ba81d432595d2113175776aff8
2014-03-01 09:04:53 +01:00
David van Moolenbroek
665198b4c2 Rewrite character driver protocol
As a side effect, remove the clone style, as the normal device style
supports device cloning now.

Change-Id: Ie82d1ef0385514a04a8faa139129a617895780b5
2014-03-01 09:04:52 +01:00
David van Moolenbroek
87337273e4 Remove support for reopening character devices
Previously, VFS would reopen a character device after a driver crash
if the associated file descriptor was opened with the O_REOPEN flag.
This patch removes support for this feature. The code was complex,
full of uncovered corner cases, and hard to test. Moreover, it did not
actually hide the crash from user applications: they would get an
error code to indicate that something went wrong, and have to decide
based on the nature of the underlying device how to continue.

- remove support for O_REOPEN, and make playwave(1) reopen its device;
- remove support for the DEV_REOPEN protocol message;
- remove all code in VFS related to reopening character devices;
- no longer change VFS filp reference count and FD bitmap upon filp
  invalidation; instead, make get_filp* fail all calls on invalidated
  FDs except when obtained with the locktype VNODE_OPCL which is used
  by close_fd only;
- remove the VFS fproc file descriptor bitmap entirely, returning to
  the situation that a FD is in use if its slot points to a filp; use
  FILP_CLOSED as single means of marking a filp as invalidated.

Change-Id: I34f6bc69a036b3a8fc667c1f80435ff3af56558f
2014-03-01 09:04:52 +01:00
David van Moolenbroek
4f6b382c41 Retire ptrace(T_DUMPCORE), dumpcore(1), gcore(1)
The T_DUMPCORE implementation was not only broken - it would currently
produce a coredump of the tracer process rather than the traced
process - but also deeply flawed, and fixing it would require serious
alteration of PM's internal state machine. It should be possible to
implement the same functionality in userland, and that is now the
suggested way forward. For now, also remove the (identical) utilities
using T_DUMPCORE: dumpcore(1) and gcore(1).

Change-Id: I1d51be19c739362b8a5833de949b76382a1edbcc
2014-02-18 11:25:03 +01:00
David van Moolenbroek
c7fbafe1ad VFS: remove FP_BLOCKED_ON_DOPEN
These days, DEV_OPEN calls to character drivers block the calling
thread until completion or failure, and thus never return SUSPEND to
the caller. The same already applied to BDEV_OPEN calls to block
drivers. It has thus become impossible for a process to enter a state
of being blocked on a device open call.

There is currently no support for restarting device open calls to
restarted character drivers. This support was present in the _DOPEN
logic, but was already no longer triggering. In the future, this case
should be handled by the thread performing the open request.

Change-Id: I6cc1e7b4c9ed116c6ce160b315e6e060124dce00
2014-02-18 11:25:03 +01:00
David van Moolenbroek
6331e8f845 Retire the synchronous character driver protocol
- change all sync char drivers into async drivers;
- retire support for the sync protocol in libchardev;
- remove async dev style, as this is now the default;
- remove dev_status from VFS;
- clean up now-unused protocol messages.

Change-Id: I6aacff712292f6b29f2ccd51bc1e7d7003723e87
2014-02-18 11:25:02 +01:00
David van Moolenbroek
ac65742ae4 Import NetBSD df(1)
Change-Id: I7a99e335da666a15b43b9daeb59dbfee516f0118
2014-02-18 11:25:02 +01:00
David van Moolenbroek
7113bcb896 Redo mount(2)/umount(2) ABI
- pass in file system type through mount(2), and return this type in
  statvfs structures as generated by [f]statvfs(2);
- align mount flags field with NetBSD's, splitting out service flags
  which are not to be passed to VFS;
- remove limitation of mount ABI to 16-byte labels, so that labels
  can be made larger in the future;
- introduce new m11 message union type for mount(2) as side effect.

Change-Id: I88b7710e297e00a5e4582ada5243d3d5c2801fd9
2014-02-18 11:25:01 +01:00
Lionel Sambuc
65333e5108 32 to 64 bits fsblkcnt_t and fsfilcnt_t.
Change-Id: I432229143c85cd178262b802a76ac606801ac59a
2014-02-18 11:25:01 +01:00
Lionel Sambuc
84a7c3f464 fix sysroot clang
Change-Id: I63adf8460e7fdbe3d9d5ad6c828ae5758cb1643c
2014-02-18 11:25:01 +01:00
Thomas Veerman
ab19ece134 Define protocol version of {mode,ino,uid,gid}_t
Change-Id: Ia2027749f2ce55a561d19eb895a5618505e9a2ac
2014-02-18 11:25:01 +01:00
Thomas Cort
7ebdb97a28 mined: fix dangling else
Add braces to avoid ambiguity. Resolves the following warning:
mined1.c:1355:5: warning: add explicit braces to avoid dangling else
[-Wdangling-else]

Change-Id: I64e2942835e45869010f0b8bbef2fe880d0852dc
2014-02-16 17:54:40 -05:00
Melon
38bb8cec91 zmodem: K&R -> ANSI C function declaration
Change-Id: Id3dbd2e39563cb399da9ad86bdd0024676f9d728
2014-02-16 11:46:08 -05:00
Beletti
d1c3755dd4 commands/crc: changed K&R to ANSI style
Change-Id: Ia63ccbb76e00f18adea414296caef39a3fdf3a39
2013-12-01 15:57:08 -05:00
Beletti
2a453f1a37 commands/decomp16: changed K&R to ANSI style
Change-Id: Ibefd50187bcc87a24d7c4c895524be9fa55f493a
2013-12-01 15:57:07 -05:00
Beletti
5fbf26dbcc commands/devsize: changed K&R to ANSI style
Change-Id: Idc9eda4a9134c4d85870d502075398eb66c298f7
2013-12-01 15:57:04 -05:00
Beletti
1f0299ca1f commands/chown: changed to K&R to ANSI style
Change-Id: I6a956e6479b6ebedca74fdd96e44756f00633cc4
2013-11-29 18:54:18 +01:00
Beletti
730b47fa27 commands/chmod: changed K&R to ANSI style
Change-Id: If22f201dec8b34c8773910448d75b6d8256ee6a4
2013-11-29 18:54:11 +01:00
Beletti
4b669956d1 commands/at: changed K&R to ANSI style
Change-Id: Ifb12349bcf456ff303c15fdedda4ab853a148aff
2013-11-29 18:54:07 +01:00
Beletti
bf5fef9dfc commands/synctree: changed K&R to ANSI style
Change-Id: I8667de0157ac3caa14e06f788daf62d6ed92b59c
2013-11-29 18:53:49 +01:00
Thomas Cort
2f7c930a6b Importing usr.bin/colcrt
Replaces colcrt from commands/cawf.
No Minix-specific changes needed.

Change-Id: I0ec6452c879b9a844ad97e89759087d6c3e740a2
2013-11-19 07:26:37 -05:00
Thomas Cort
ef03affb84 Importing usr.bin/mkfifo
Replaces commands/mkfifo. No Minix-specific changes needed.

Change-Id: Idb20430d4297c7011fb7e2ef6b0876ebb2776c1c
2013-11-19 12:22:18 +01:00
Beletti
15fd0f1d06 commands/backup: changed K&R to ANSI style
Change-Id: I6ec2eebc0ad575125f2fa9df5bee232151eaf0eb
2013-11-18 07:44:45 -05:00
Ben Gras
f24634cf13 setup: correction for file/kb counting
Change-Id: I74cadcf681fdda105a85535a208251b09981e383
2013-11-18 10:25:30 +00:00
Beletti
4a70ffda08 commands/fix: change K&R to ANSI style.
Change-Id: I0a6d7e39e95a157a80567aeea90f8fa4a188ee7d
2013-11-16 14:53:34 -05:00
Thomas Cort
4b9cc932b7 Importing usr.bin/id
Replaces commands/id. No Minix-specific changes needed.

Change-Id: I307ae0fa3f41ade398ee9be12c1b4d78e8b59e95
2013-11-12 10:15:47 -05:00
Thomas Cort
13054fd168 eepromread: support for reading from /dev/eeprom
eepromread could only read EEPROMs through the /dev/i2c interface.
Once the cat24c256 driver is started and claims/reserves the
device, it can no longer be read through the /dev/i2c interface.

This patch adds support for reading from EEPROMs through the
/dev/eeprom interface. For example, to read the on-board eeprom
on the BBB, one would do `eepromread -f /dev/eepromb1s50 -i`.

Change-Id: If08ce37231e593982eeb109bdd6d5458ad271108
2013-11-11 10:14:03 -05:00
Ben Gras
09143af258 x86_hdimage.sh -i: crossbuild x86 release CD
. build writeisofs as a native tool too for it
        . also mkfs.mfs: make missing file in proto nonlethal
        . make setup script a little more self-sufficient
        . hdboot: use INSTALL_FILE instead of INSTALL so that the
          results get added to the METALOG

Change-Id: Id233e4c861f81046bf6c4be0510b8a3bf39ff9be
2013-11-07 13:44:22 +00:00
Thomas Cort
1e33498f8c Importing usr.bin/hexdump
Replaces commands/hexdump as well as commands/od.
No Minix-specific changes were needed.

test/testsh2.sh was modified to match the spacing
used in the output of the NetBSD od command.

Change-Id: I65ee1d30e8cdd546097462df7c38c2d38f3e891d
2013-10-29 15:18:45 -04:00
Thomas Cort
b5a2a7adea Importing usr.bin/fold
Replaces commands/fold. No Minix-specific changes needed.

Change-Id: Iefa9a082f900bb8c3a9f2f9f827ccbbd97c935f5
2013-10-29 10:35:37 -04:00
Thomas Cort
b828b0feb7 Importing usr.bin/tty
Replaces commands/tty. No Minix-specific changes needed.

Change-Id: I7ed8589a8cfb0f4fedab6eb760e321876db73502
2013-10-29 08:35:09 -04:00
Thomas Cort
f1f496697e Importing usr.bin/paste
Replaces commands/paste. No Minix-specific changes needed.

Change-Id: I92a6813502d552ad005ba6e856ce573508fc9f24
2013-10-28 08:31:39 -04:00
Thomas Cort
30eeed2c01 Importing usr.bin/split
Replaces commands/split. No Minix-specific changes needed.

Change-Id: I3c6551cf52d4c43eea0e8005b9cae83e17271f2d
2013-10-27 16:53:53 -04:00
Thomas Cort
f55b7dc853 Importing usr.bin/comm
Replaces commands/comm. No Minix-specific changes needed.

Change-Id: Ifa37c86b09f958ca0d729f3a8030d0162819a080
2013-10-27 13:49:04 -04:00
Thomas Cort
00709a7737 Importing usr.bin/write
Replaces commands/write. No Minix-specific changes needed.

The NetBSD version lacks a few features that were present
in the Minix version: cbreak mode, verbose, and shell escapes,
but the main write(1) functionality is there and working.

Change-Id: I87b9589c54d3595d26247d221bb3d1f613feeb8c
2013-10-25 17:21:52 -04:00
Thomas Cort
b36343fc42 Importing usr.bin/mesg
Replaces commands/mesg. No Minix-specific changes needed.

Change-Id: Ief22ad7f050f8083d0b43a4ea90b348c504d99a2
2013-10-25 14:57:39 -04:00
Thomas Cort
6ea7f916db Importing usr.bin/pr
Replaces commands/pr. No Minix-specific changes needed.

Change-Id: I3c4c03b38fc8c654e7c54c3a8af0e07a0dfc9f67
2013-10-25 09:05:26 -04:00
Thomas Cort
ba6640c5fd Importing usr.bin/env
Replaces commands/env. No Minix-specific changes needed.

Change-Id: I1aefebe360962ae52241384c54f9466253d783c6
2013-10-18 09:16:20 -04:00
Thomas Cort
92b8e9ac1a Importing usr.bin/printenv
Replaces printenv from commands/env. No Minix-specific changes
needed.

Change-Id: I64e63c9d0ca94faadc71906cf78d18fed5905e90
2013-10-18 09:15:28 -04:00
Thomas Cort
d091a404e8 Importing usr.bin/cut
Replaces commands/cut. No Minix-specific changes needed.

Change-Id: I4e8e203eb8aad18232364f05cbdc961a57afae51
2013-10-15 08:43:27 -04:00
Thomas Cort
982405fef1 Importing usr.bin/nohup
Replaces commands/nohup. No Minix-specific changes needed.

Change-Id: I2fb7c387833a8898cf30fc3ac25ea53ee1031bd1
2013-10-13 10:24:23 -04:00
Thomas Cort
d37082b292 Importing usr.bin/nice
Replaces commands/nice. No Minix-specific changes needed.

Change-Id: I3e089497dcd86893aa28e3a973496af5b1689f45
2013-10-12 07:01:11 -04:00
Lionel Sambuc
40fbf55cf3 Revert "MAKEDEV: Add mtree output, and ramdisk set."
This reverts commit 4c87adc85c.

Change-Id: I469fbbe6f49802cb86d81b059cb454d967f47079
Reason: Introduces new device nodes and removes old devices nodes which where unintended at this point.
2013-10-09 16:28:17 +02:00
Lionel Sambuc
4c87adc85c MAKEDEV: Add mtree output, and ramdisk set.
Change-Id: I36cb7e9451960189a33a04a5c2e3ddb19c7be75e
2013-10-09 14:07:42 +02:00
Thomas Cort
916b872033 Importing usr.bin/tee
Replaces commands/tee. No Minix-specific changes needed.

Change-Id: I31481facfa9cd44860bf2b59ec779605dd8d2f2d
2013-10-09 10:58:14 +02:00
Thomas Cort
79cc8b683f Importing usr.bin/rev
Change-Id: I73c661eb9d4cca5c17b969bb3831541c1f7f9319
2013-09-30 15:19:38 +02:00
Ben Gras
b6d951df17 arm_sdimage.sh: use native minix partition util
. make filesystems on primary partitions to make it
	  easier on the minix partition util
	. so sfdisk isn't required as an external tool
	. also make partition and hitherto x86-only utilities
	  arch-independent

Change-Id: Ib4e07e45d038d084dde1858917d3deb7f0616532
2013-09-27 14:13:43 +02:00
Ben Gras
a9db0ea184 x86 hd image creator
A script that creates a HD image ready to be booted by an x86
emulator, ready to work in a crossbuild environment.

It's really just for qemu/kvm as there's no boot code in
the MBR and no bootloader installed so we rely on the in-kvm
multiboot implementation for now. This is very convenient for
passing args too.

To minimize reliance on external tools, we use the Minix
'partition' utility to write the partition table of the HD
image, which therefore has to be compiled natively.

	. new script releasetools/x86_hdimage.sh
	. natively compile minix 'partition' utility
	. make <machine/partition.h> 64-bit safe for it

Change-Id: If645b4691536752271e0b8a8ed59a34f248dace4
2013-09-25 19:30:22 +02:00
Thomas Cort
4593804bf0 kernel: add padconf kernel call
On the AM335X, writes to the padconf registers must be done in privileged
mode. To allow userspace drivers to dynamically change the padconf at
runtime, a kernel call has been added.

Change-Id: I4b25d2879399b1785a360912faa0e90b5c258533
2013-08-28 12:53:05 -04:00
Lionel Sambuc
d5c6c6a51b Importing usr.bin/tr
Change-Id: I4563198f111f2ec3687f6a5084edd05f243c2263
2013-08-25 18:51:36 +02:00