haiku/headers/private
Ingo Weinhold 7ffafac8d7 * Reorganized the FS interface a little:
- Moved most file_system_module_info hooks into separate structures.
    Those that operate on mounted volumes to fs_volume_ops, those
    operating on a vnode to fs_vnode_ops.
  - Got rid of the fs_volume, fs_cookie, fs_vnode typedefs. We use void*
    again.
  - Instead of a void* volume and node cookie hooks are passed a
    fs_volume and fs_vnode structure pointer, which contain the cookie
    and an ops pointer (fs_volume a few more things).
  - The VFS {new,publish,get,...}_vnode() functions take a fs_volume*
    instead of the volume ID. So does vfs_get_fs_node_from_path().
  - Added type and flags arguments to publish_vnode() and the
    get_vnode() hook and removed the type argument from lookup() hook.
    Added vnode::type using formerly unused bits to store the node type.
    Simplified a few things in the VFS due to the now always available
    node type.
  - Added fs_volume_ops::{create,delete}_sub_vnode() and
    fs_vnode_ops::get_super_vnode() hooks. They are used to support file
    system layers, e.g. allowing to extend an FS not supporting BeOS
    attribute with attribute support. Needs some more work in the VFS.
  - Added fs_vnode_ops::create_special_node() hook for creating special
    nodes (e.g. FIFOs).
* Adjusted the built-in file systems and BFS according to the interface
  changes. Removed all other FSs from the image for the time being.
  We'll see whether further API changes are necessary before porting
  them.
* Adjusted the bfs_shell accordingly.
* Implemented create_special_node() in rootfs to support special nodes.
* Added support for FIFOs:
  - Added syscall _kern_create_fifo() (used by mkfifo()), which creates
    a special node (type S_IFIFO) in the respective file system.
  - When a special node is published the VFS creates a respective sub
    node. Currently only FIFOs are supported.
  - Added a little support for FIFO subnodes by using functionality from
    the pipefs.
  - Added mkfifo to the image. It can create FIFOs in the rootfs, but
    the FIFOs aren't really usable ATM, since they still work like
    pipes, i.e. readers and writers need to have them open at the same
    time.
* Some smaller changes in the VFS:
  - Made the *_CALL macros nicer to use (vargs).
  - Refactored FS entry lookup into new function lookup_dir_entry().
  - create_vnode() no longer just calls the FS create() hook. First it
    looks up the entry and uses open_vnode(), if it already exists. This
    is necessary for two reasons: 1) The FS might not support create()
    while still allowing to open() entries. 2) When the FS has other
    layers on to of it (or the respective node) it might not be
    responsible for opening the node.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24816 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-05 23:05:16 +00:00
..
app Move RegistrarThread[Manager].cpp to the registrar. There was no point 2008-03-27 02:51:58 +00:00
audio Move this to media/, seems audio/ is only for old stuff. 2007-08-29 12:31:55 +00:00
bluetooth Add headers for the authentication and scan mode commands 2008-03-30 21:43:59 +00:00
debug
disk_scanner missing comment tokens 2007-06-20 21:30:00 +00:00
drivers Mask io-space bit in promise_tx2 driver, the driver was broken after recent ide-adapter changes. 2008-01-01 20:31:14 +00:00
firewire work from JiSheng Zhang : firewire and ohci modules from FreeBSD current, update for fw_raw and fw_control. Thanks! 2007-08-30 21:59:49 +00:00
fs_shell * Reorganized the FS interface a little: 2008-04-05 23:05:16 +00:00
graphics This should have been part of r24675. Not sure what happened as I specified 2008-03-30 11:42:32 +00:00
input Slightly increased the default key repeat rate to make it at least 2008-02-22 10:53:27 +00:00
interface No need for the kWorkspacesWindow flag anymore. 2008-03-14 11:19:57 +00:00
kernel * Reorganized the FS interface a little: 2008-04-05 23:05:16 +00:00
libroot * Replaced the dummy implementations of the <grp.h> and <pwd.h> 2008-04-02 14:02:52 +00:00
mail * part of libbe_test build fix... why is the _IMPEXP stuff there in the 2007-10-21 15:19:25 +00:00
media put enum to appropiate place as pointed out by marcus 2008-03-31 18:14:43 +00:00
midi Made all server version and signatures consistent, and thus closing bug #909. 2006-10-22 17:56:02 +00:00
net * Added a set_to_defaults() function to the address module: it can be used 2008-02-28 15:43:27 +00:00
opengl/GL/internal updated mesa to 6.5.3 2007-06-08 23:00:44 +00:00
print Get first and last page from job settings instead of print_file_header. In print_filer_header first_page is an offset into the spool file (the field is unused or reserved on BeOS R5 and is always -1) and page_count is the number of pages in the spool file. In the job settings first/last page is the page number of the first/last page as specified in the page setup dialog. 2008-03-23 18:01:13 +00:00
runtime_loader * Decide whether to use BeOS style symbol resolution at run time 2008-03-23 19:43:41 +00:00
screen_saver * ScreenCornerSelector is now a BControl and fully keyboard navigable. 2006-06-09 16:03:16 +00:00
shared added athlon 64 model 3 2008-03-30 12:27:41 +00:00
storage * added a PrintToStream() method 2008-02-02 12:38:15 +00:00
syslog_daemon Implemented syslog support for the kernel debug output. Not fancy at all yet, but 2006-01-24 20:28:52 +00:00
textencoding missing comment tokens 2007-06-20 21:20:11 +00:00
tracker * Rewrote BeBuild.h which had "a few" consequences (got rid of all those class 2007-10-15 20:13:55 +00:00
usb_vision * added a bunch of drivers by Siarzhuk Zharski 2006-05-29 09:54:03 +00:00
userlandfs * Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of 2007-10-02 19:47:31 +00:00