haiku/headers/os/drivers
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
..
bus fix comments 2008-01-13 00:04:40 +00:00
pcmcia fix build for echo drivers, added cs_timer.h from pcmcia-cs 2005-12-19 18:57:29 +00:00
usb * Fixed typo. 2006-08-06 12:42:05 +00:00
ACPI.h added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image 2006-11-29 19:09:45 +00:00
atomizer.h Import Be Inc. string atomizer kernel module. 2003-09-25 13:30:05 +00:00
block_io.h Renamed the "blkman" module to "block_io". 2005-05-12 15:43:02 +00:00
bus_manager.h
config_manager.h
device_manager.h * Added get_root() to device_manager_info. Surprisingly enough, it 2006-02-07 02:29:14 +00:00
disk_device_manager.h Folded KPhysicalPartition into KPartition. Removed the notion of shadow 2007-11-01 23:36:21 +00:00
dpc.h Made DPC module binary compatible with BeOS one. 2008-02-06 23:10:13 +00:00
driver_settings.h
Drivers.h Add an ioctl B_GET_PATH_FOR_DEVICE, 2006-05-30 19:52:19 +00:00
fs_cache.h Looks like some bloke forgot to commit *some* files that should have been part 2008-04-03 14:14:27 +00:00
fs_interface.h * Reorganized the FS interface a little: 2008-04-05 23:05:16 +00:00
interrupt_controller.h Module interface for interrupt controllers. Might change later. 2006-02-07 02:31:07 +00:00
ISA.h
isapnp.h
KernelExport.h Introduce a B_NO_LOCK_VECTOR flag to be used with install_io_interrupt_handler(). 2008-02-03 16:16:17 +00:00
locked_pool.h More headers for the new modules and PnP/device system - note, this 2004-06-06 23:52:08 +00:00
midi_driver.h Added mpu401 module header 2003-11-15 08:46:33 +00:00
mime_table.h header for a kernel mime_table module, so not every fs will bundle its own. 2005-01-04 10:03:05 +00:00
module.h Added the module_dependency structure. 2004-04-26 17:11:56 +00:00
PCI.h added PCI express capability 2007-02-22 17:46:44 +00:00
pnp_devfs.h Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk. 2005-05-12 03:27:44 +00:00
Select.h * Renamed fs/vfs_select.cpp to wait_for_objects.cpp and got rid of 2007-10-02 19:47:31 +00:00
socket_interface.h * int32_t, uint32_t are now of type "int", and no longer of type "long". 2007-10-21 20:10:43 +00:00
USB2.h * Switched from the old v2 callback status codes to the new v3 codes 2006-09-24 20:17:56 +00:00
USB3.h Commiting patch by Salvatore Benedetto. This adds isochronous handling to the USB bus manager and enables inbound isochronous support in the UHCI driver. Thanks! 2007-06-25 19:51:12 +00:00
USB_printer.h Was missing, needed by "USB Port" print transport add-on. 2004-05-26 14:57:57 +00:00
USB_rle.h
USB_spec.h * Minor cleanup 2007-01-23 16:44:37 +00:00
USB.h * Added USB API Version 3. It's put into USB3.h while the v2 API resides in USB2.h. USB.h just includes USB2.h for now. 2006-08-19 23:09:05 +00:00