#
a735bdeb |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Align all filesystem relevant places to use B_UNSUPPORTED for unsupported instead of a mix of B_NOT_SUPPORTED and B_UNSUPPORTED. This allows checking for a specific error code. Probably one of those should be phased out... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3cf43c26 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the newly created dir. The VFS really doesn't need it and for some file systems it might not be easy to get by. Several file systems (e.g. rootfs and fat) were ignoring the parameter anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4649fe05 |
|
17-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Haiku kernel interface emulation: Retrieve the capabilities for each vnode. We do some caching using a hash table indexed by the operations vector. * Pass the vnode capabilities to the kernel module. * In the kernel tailor the operation vectors for volumes and vnodes passed to the VFS according to the respective capabilities. This way those vectors look pretty much like those from the client FS. This saves unnecessary calls when hooks are not implemented and should also fix compatibility problems in cases where not implementing a hook and returning an error don't mean the same to the VFS. * Inlined some of the kernel module Volume class getters. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c76e8d36 |
|
15-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Implemented forwarding the do_iterative_fd_io() callbacks to userland. * Pass the request offset and length with the DoIORequest. This allows us to already get the first vecs for do_iterative_fd_io() in userland, saving a trip back and forth. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29546 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7c1ffcb9 |
|
13-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* The nature of asynchronous I/O is to be asynchronous. So we can't store an on-stack structure for the request in a hash table when forwarding the io() hook. Create a new object (HaikuKernelIORequest) instead and store it in a hash table in HaikuKernelFileSystem. * Some work on the userland side of do_iterative_fd_io(). * Added some missing requests in UserlandFSUtil::is_{kernel,userland}_request(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1c6ce08 |
|
10-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Implemented the userland side for propagating the io() and cancel_io() hooks. * Implemented io_request_is_write(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9accd619 |
|
01-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* FileSystem does now have a list of all volumes. This allows to get a volume by ID. * Added a three parameters version of UserlandFS::KernelEmu::publish_vnode(), which is used by the BeOS new_vnode() emulation. It calls the new Volume::GetVNodeType() to get the type of the node. Theoretically BeOS FS interface style add-ons should work again, but ATM we crash the kernel when trying to mount. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29367 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6583b4a |
|
27-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Got rid of no longer needed LookupNoType(). The lookup hook doesn't doesn't have a type return parameter anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29331 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cdebdeb0 |
|
25-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Some more work towards adjusting the UserlandFS to the current FS interface: * Split the FSCapabilities bit mask into three bit masks for the FS, the volume, and the vnodes, since we have three independent FS interface structures, now. The latter is not supported in the kernel add-on, yet. * Server: - Temporarily removed some things from the build (the BeOS interface and the cache implementations). - Some WIP in HaikuKernelVolume and [haiku_]kernel_emu.{h,cpp}. - Added HaikuKernelNode, which wraps fs_vnode for the client FS. The server is still quite a bit away from being buildable again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed07b9c7 |
|
02-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The last missing hooks -- get_vnode_name(), write_attr_stat() and rewind_query() -- are passed to the userland. get_vnode_name() has an emulation in userland, in case the client FS doesn't implement it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20522 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
617ed3e4 |
|
28-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented the new attribute open/close/... FS hooks. The mapping to the old interface is completely done in userland ATM. It becomes more and more obvious that we probably need to provide the kernel add-on with a bit more information about what the client FS interface supports in the first place, so we can save unnecessary trips to the userland. Opening/closing attributes for a FS using the old style interface could be handled completely in the kernel add-on, for instance (even if we lose a bit of accuracy wrt to open modes etc.). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca6faf49 |
|
27-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Adjusted BeOSKernelFileSystem and BeOSKernelVolume to Haiku's FS interface. * Moved stuff need for the BeOS interface only into the beos_* namespace. * Shuffled a few things around to reduce the block cache implementation dependencies. compat.h and sysdep.c are gone accordingly. * The whole UserlandFSServer builds now and could (at least theorectically) drive a FS add-on implementing the old interface. The required emulation of the BeOS kernel is not yet provided, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20247 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8474904e |
|
27-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjusted the FileSystem, Volume, and UserlandRequestHandler to the new FS interface. The classes actually interfacing with the client FS add-on still need to be adjusted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20246 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d3147f6 |
|
26-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Class renaming: UserFileSystem -> FileSystem UserVolume -> Volume KernelUserFileSystem -> BeOSKernelFileSystem KernelUserVolume -> BeOSKernelVolume The BeOSKernel* classes are indeed intended to handle FS implementations that use the (old) BeOS FS interface. We'll see how well that will work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a735bdebb94ce14c72f56204f022038de7a49e2f |
|
31-Oct-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Align all filesystem relevant places to use B_UNSUPPORTED for unsupported instead of a mix of B_NOT_SUPPORTED and B_UNSUPPORTED. This allows checking for a specific error code. Probably one of those should be phased out... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43025 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3cf43c26516b695e35b7433196a530f7541c4ca8 |
|
25-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Removed the fs_vnode_ops::create_dir() parameter for returning the ID of the newly created dir. The VFS really doesn't need it and for some file systems it might not be easy to get by. Several file systems (e.g. rootfs and fat) were ignoring the parameter anyway. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29719 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4649fe05ef03c9981231538121df35aab32f2bc0 |
|
17-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Haiku kernel interface emulation: Retrieve the capabilities for each vnode. We do some caching using a hash table indexed by the operations vector. * Pass the vnode capabilities to the kernel module. * In the kernel tailor the operation vectors for volumes and vnodes passed to the VFS according to the respective capabilities. This way those vectors look pretty much like those from the client FS. This saves unnecessary calls when hooks are not implemented and should also fix compatibility problems in cases where not implementing a hook and returning an error don't mean the same to the VFS. * Inlined some of the kernel module Volume class getters. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c76e8d36fb69fa88a01ff734f45523c36629af17 |
|
15-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Implemented forwarding the do_iterative_fd_io() callbacks to userland. * Pass the request offset and length with the DoIORequest. This allows us to already get the first vecs for do_iterative_fd_io() in userland, saving a trip back and forth. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29546 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7c1ffcb9ec70c1bb997a4ecb9a9af82d5a657297 |
|
13-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* The nature of asynchronous I/O is to be asynchronous. So we can't store an on-stack structure for the request in a hash table when forwarding the io() hook. Create a new object (HaikuKernelIORequest) instead and store it in a hash table in HaikuKernelFileSystem. * Some work on the userland side of do_iterative_fd_io(). * Added some missing requests in UserlandFSUtil::is_{kernel,userland}_request(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29505 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f1c6ce08f25483b1c3f0623e9f203b08222bf936 |
|
10-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Implemented the userland side for propagating the io() and cancel_io() hooks. * Implemented io_request_is_write(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9accd619b893cbb1ca577e1230ec77e988460f13 |
|
01-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* FileSystem does now have a list of all volumes. This allows to get a volume by ID. * Added a three parameters version of UserlandFS::KernelEmu::publish_vnode(), which is used by the BeOS new_vnode() emulation. It calls the new Volume::GetVNodeType() to get the type of the node. Theoretically BeOS FS interface style add-ons should work again, but ATM we crash the kernel when trying to mount. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29367 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f6583b4a179ce636b3caef4505e76baff1256e62 |
|
27-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Got rid of no longer needed LookupNoType(). The lookup hook doesn't doesn't have a type return parameter anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29331 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cdebdeb0aa35c9eabf093024474c865ce9bd6840 |
|
25-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Some more work towards adjusting the UserlandFS to the current FS interface: * Split the FSCapabilities bit mask into three bit masks for the FS, the volume, and the vnodes, since we have three independent FS interface structures, now. The latter is not supported in the kernel add-on, yet. * Server: - Temporarily removed some things from the build (the BeOS interface and the cache implementations). - Some WIP in HaikuKernelVolume and [haiku_]kernel_emu.{h,cpp}. - Added HaikuKernelNode, which wraps fs_vnode for the client FS. The server is still quite a bit away from being buildable again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29323 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
245aecda8ac43fc2c0c0bac6a7e4016efa9b71e1 |
|
21-Jun-2007 |
Axel Dörfler <axeld@pinc-software.de> |
Got rid of vnode_id and mount_id, replaced with ino_t and dev_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21485 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ed07b9c7e338367449b81e28a8d2114f07666c1c |
|
02-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The last missing hooks -- get_vnode_name(), write_attr_stat() and rewind_query() -- are passed to the userland. get_vnode_name() has an emulation in userland, in case the client FS doesn't implement it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20522 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
617ed3e4a9ea91cf5be9b9e55d465840c36b1639 |
|
28-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Implemented the new attribute open/close/... FS hooks. The mapping to the old interface is completely done in userland ATM. It becomes more and more obvious that we probably need to provide the kernel add-on with a bit more information about what the client FS interface supports in the first place, so we can save unnecessary trips to the userland. Opening/closing attributes for a FS using the old style interface could be handled completely in the kernel add-on, for instance (even if we lose a bit of accuracy wrt to open modes etc.). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20258 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca6faf4958b94cfc53255e99e4868c110837da4e |
|
27-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Adjusted BeOSKernelFileSystem and BeOSKernelVolume to Haiku's FS interface. * Moved stuff need for the BeOS interface only into the beos_* namespace. * Shuffled a few things around to reduce the block cache implementation dependencies. compat.h and sysdep.c are gone accordingly. * The whole UserlandFSServer builds now and could (at least theorectically) drive a FS add-on implementing the old interface. The required emulation of the BeOS kernel is not yet provided, though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20247 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8474904ee0f43a32780687a6648c5b1a9b77b3c4 |
|
27-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjusted the FileSystem, Volume, and UserlandRequestHandler to the new FS interface. The classes actually interfacing with the client FS add-on still need to be adjusted. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20246 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5d3147f66a54bd98707e1801e6f14cb29de72631 |
|
26-Feb-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Class renaming: UserFileSystem -> FileSystem UserVolume -> Volume KernelUserFileSystem -> BeOSKernelFileSystem KernelUserVolume -> BeOSKernelVolume The BeOSKernel* classes are indeed intended to handle FS implementations that use the (old) BeOS FS interface. We'll see how well that will work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20239 a95241bf-73f2-0310-859d-f6bbb57e9c96
|