minix/test
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
..
blocktest Split block/character protocols and libdriver 2011-11-23 14:06:37 +01:00
ds Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
ipc cd subdir && $(MAKE) targets -> $(MAKE) -C subdir targets 2010-06-22 12:03:09 +00:00
safecopy New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
safemap New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
safeperf New RS and new signal handling for system processes. 2010-03-17 01:15:29 +00:00
scancodes Add scancode reading capability to TTY 2010-04-15 07:08:04 +00:00
select Repair errors and warnings flagged by llvm. 2010-07-06 11:29:23 +00:00
common.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
Makefile Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
run Add libmthread and test59 to test the implementation 2010-09-21 12:22:38 +00:00
t10a.c Initial revision 2005-04-21 14:53:53 +00:00
t11a.c Al's no-double-empty-lines crusade 2005-08-22 15:08:27 +00:00
t11b.c Initial revision 2005-04-21 14:53:53 +00:00
t40a.c Added select test 2009-07-14 09:43:33 +00:00
t40b.c Make test40 behave 2011-04-21 13:18:00 +00:00
t40c.c Make test40 behave 2011-04-21 13:18:00 +00:00
t40d.c Make test40 behave 2011-04-21 13:18:00 +00:00
t40e.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
t40f.c Added select test 2009-07-14 09:43:33 +00:00
test1.c Al's no-double-empty-lines crusade 2005-08-22 15:08:27 +00:00
test2.c - Introduce support for sticky bit. 2009-12-20 20:27:14 +00:00
test3.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test4.c Al's no-double-empty-lines crusade 2005-08-22 15:08:27 +00:00
test5.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test6.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test7.c Add timeout for test 7 to indicate which test (if any) hangs 2010-04-28 08:33:23 +00:00
test8.c Repair errors and warnings flagged by llvm. 2010-07-06 11:29:23 +00:00
test9.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test10.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test11.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test12.c Initial revision 2005-04-21 14:53:53 +00:00
test13.c Initial revision 2005-04-21 14:53:53 +00:00
test14.c fix test14's "clever" (broken) filename generation 2009-08-15 15:13:57 +00:00
test15.c Al's no-double-empty-lines crusade 2005-08-22 15:08:27 +00:00
test16.c Fix time modification on truncate() 2011-07-15 14:21:05 +00:00
test17.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test18.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test19.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test20.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test21.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test22.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test23.c fix compile of test23 2011-10-06 18:54:08 +00:00
test24.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test25.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test26.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test27.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test28.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test29.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test30.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test31.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test32.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test33.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test34.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test35.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test36.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test37.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test38.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test39.c Clean up tests and do runtime test for max name length 2011-08-26 13:16:16 +00:00
test40.c Make test40 behave 2011-04-21 13:18:00 +00:00
test41.c make all other commands use ProcFS 2010-09-14 21:31:56 +00:00
test42.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test43.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test44.c Forgot to rename mmap to minix_mmap 2011-07-22 10:15:47 +00:00
test45.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test45.h Implementation of strto(u)ll, documentation and tests for strto(u)l(l) 2009-12-09 19:01:38 +00:00
test46.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test47.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test48.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test49.c Additions to inttypes.h format strings 2010-01-25 18:16:25 +00:00
test50.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test51.c libm: add i387/ dir, fix test51 compilation 2011-07-08 16:34:40 +02:00
test52.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test53.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test54.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test55.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test56.c Fix a ton of compiler warnings 2011-11-14 10:07:49 +00:00
test57.c Remove spurious space 2010-08-05 13:35:41 +00:00
test57loop.S Macros for symbols used in both ASM and C 2010-08-17 16:44:07 +00:00
test58.c test set build fixes for clang/gcc 2011-08-15 16:07:21 +00:00
test59.c Clean up mthread 2011-07-27 09:30:26 +00:00
testsh1.sh Fix ar error in testsh1.sh (ar was previously renamed to aal) 2010-08-06 09:28:26 +00:00
testsh2.sh Fix test2.sh 2011-07-26 13:50:57 +02:00