History log of /haiku/src/add-ons/kernel/file_systems/userlandfs/server/haiku/HaikuKernelVolume.cpp
Revision Date Author Comments
# de48af7a 14-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

Adapt all consumers of HashSet and HashMap to the slightly-different APIs.

No functional changes intended. Tested and verified as working.

Change-Id: Iaa67c2e5f0d9aff433ac7348e63e901a6a80e589
Reviewed-on: https://review.haiku-os.org/c/1043
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 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


# 7e6a04c7 19-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Use the actual file system name.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98092e98 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

gcc 4 fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29602 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


# 687e02f9 14-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Forward the io() and cancel_io() hooks. Implemented the missing kernel
part.
* Implemented a good part of the kernel part for the support of
do_iterative_fd_io(). The forwarding of the callbacks are missing yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29540 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


# 02f7a2f4 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented vfs_get_file_map() and vfs_lookup_vnode().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c74777f3 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Finished node management.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b8f138f 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the parent directory from the header directories again. Instead
include the respective headers explicitly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7d815f1 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Stubbed the missing methods. The library links now at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67cf3a62 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the file cache emulation and added implementation stubs for the file
cache functions. We won't emulate the file cache in userland anymore, but
forward the calls to the kernel. Besides that this will save quite a bit of
emulation code, it will also make mmap()ing files on UserlandFS volumes
possible. The drawback is that these calls will be slower.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29349 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b34687 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the sources. Haiku and BeOS kernel interface each have their own
subdirectory, now.
* Moved all code specific to a kernel interface into the respective library.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29344 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


# 7e6a04c78e8ded10e8cf55c2d1434ab2bf5713d2 19-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Use the actual file system name.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29611 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 98092e9867e46f572bde18ad17188779d2b3d1d1 18-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

gcc 4 fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29602 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


# 687e02f9457b4cf0a13495467d561f5c08d84868 14-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Forward the io() and cancel_io() hooks. Implemented the missing kernel
part.
* Implemented a good part of the kernel part for the support of
do_iterative_fd_io(). The forwarding of the callbacks are missing yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29540 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


# 02f7a2f4cbfcde93d25ec826ba91b1ffafe78bf4 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented vfs_get_file_map() and vfs_lookup_vnode().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c74777f3d3fcc7c0437ba6738f504f5551179fed 03-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Finished node management.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29392 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3b8f138f436bac5f2e97e136f6ced24e23d8ae24 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the parent directory from the header directories again. Instead
include the respective headers explicitly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7d815f1cd2c4ce197c5dc0a2d0246b9a89c4dd0 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Stubbed the missing methods. The library links now at least.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67cf3a62b49362a086ab35930b86d0f6eeec7531 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the file cache emulation and added implementation stubs for the file
cache functions. We won't emulate the file cache in userland anymore, but
forward the calls to the kernel. Besides that this will save quite a bit of
emulation code, it will also make mmap()ing files on UserlandFS volumes
possible. The drawback is that these calls will be slower.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29349 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a7b346877023493472fc5c8ef0de99ed9043450f 28-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reorganized the sources. Haiku and BeOS kernel interface each have their own
subdirectory, now.
* Moved all code specific to a kernel interface into the respective library.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29344 a95241bf-73f2-0310-859d-f6bbb57e9c96