-*- Text -*- If you're ``just'' looking for something to work on, have a look at the * bug list, and * task list, . HOW TO CONTRIBUTE LARGER CHUNKS =============================== If you want to help the maintainers to be quickly able to evaluate and check in your contribution, please try to follow these suggestions: Try to mark in the code stuff (i.e. whole functions, parts of header files) that you've just copied (and then perhaps modified; also note that briefly) from somewhere else and stuff that you've actually written yourself. Either do that by simply writing a ChangeLog in parallel (an informal one is fine as well) or put notes in the modified / imported files. The one who will be checking in your patches will then probably remove most of these notes, as soon as everything is written down in the real ChangeLog. Logging your changes right from the beginning makes it much easier for the maintainers to track down where which chunk is coming from, so that they can be handled appropriately. HISTORY ======= `gnumach-1-branch-before_removing_unused_and_unsupported_code' was tagged on 2006-02-20. After creating that tag, code for unused and unsupported device driver for ISA cards and a good deal of i386 dependent, also unused and unsupported code was removed. On 2006-03-19, support was removed for FIPC, which only ever was used within the native Mach NE2000 NIC device driver, see . . Support for NORMA was removed on 2006-03-20. . Support for PS2, i860, iPSC 386/860 and MB1/MB2/EXL was removed on 2006-11-05. . Support for the old ipc interface, MACH_IPC_COMPAT, was removed on 2006-12-03. . Support for building without CONTINUATIONS was removed on 2006-12-03. . Support for FP emulation was removed on 2006-12-13. . Support for Olivetti XP7 & XP9 was removed on 2007-01-02. . Support for the `iopl' device and some i/o emulation code (that might be useful for DOSEMU) was removed on 2007-04-02. . Be sure to check the ChangeLog and have a look at the repository at that states if you want to work on those parts of GNU Mach. LAYOUT OF THE SOURCE TREE (very incomplete) * include/ [TODO: Check.] ... is mainly for installed header and definition files, but it also holds pseudo-clones of C library headers, which don't get installed because the C library has better versions. In that category are , , , , , , , and . By putting such headers into there, the relevant kernel code is easier to understand, because the user will expect that the file named or does more or less what the normal C library file does, and calling those or would make the reader have to wonder or remember what they are. The directory is, essentially, a special `/usr/include' for use by the kernel itself when compiling. It only should get things which belong in `/usr/include'. The reason for and is because those are files found in `/usr/include', even if on an actual installed system the versions in `/usr/include' are provided by a different package.