History log of /haiku/src/add-ons/kernel/file_systems/userlandfs/server/haiku/haiku_kernel_emu.cpp
Revision Date Author Comments
# 6f7fc220 07-Mar-2016 Axel Dörfler <axeld@pinc-software.de>

NodeMonitor: Added B_WATCH_CHILDREN flag.

* Added a directory argument for notify_{stat/attribute}_changed().
* This allows to watch only a directory, and get the notifications for
all of its files, not just add/remove entry notifications.


# ffba6606 29-Mar-2015 Michael Lotz <mmlr@mlotz.ch>

UserlandFS: Make 64 bit clean and enable build for x86_64.

I did not bother to fix the BeOS kernel emulation, so this part is
still left out of the x86_64 build.


# 92cc6a0f 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

Style fixes.


# a28398b3 17-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

userlandfs: NULL pointer dereference

get_vnode could be called with a NULL privateNode in the kernel, but not
in userlandfs. This would crash in cdda mount code (and from a grep
search, also with several other filesystems).

Now cdda can be mounted with userlandfs, and CDs read that way, but for
some reason there is no CDDB renaming of the tracks in that case.


# 0a1dabca 22-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added public io_request_is_vip(), returning whether the given request has the
VIP flag set.


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


# 08e2a055 18-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

do_iterative_fd_io(): Don't fail when the getVecs callback returns
B_BUFFER_OVERFLOW. It will have returned valid vectors in this case.


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


# e6623174 05-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a bit of stuff referenced by inline functions in private kernel
headers. GCC 2 has the unpleasant habit of actually linking the unused inline
functions in. That doesn't suffice to build the userlandfs server with debug
info (it would be the wrong file anyway), but allows to build checksumfs.


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


# c77f643a 20-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for in-kernel node monitoring ({add,remove}_node_listener()).


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


# 8af6418b 19-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for the recently introduced I/O request calls
io_request_{offset,length}(), {read_from,write_to}_io_request().


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


# 07745f2a 30-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for new notify_io_request() function.


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


# d26a6e80 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added stubs for some FS interface and disk device manager functions.


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


# daa67478 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the khash, condition variable, lock, block cache, and slab
implementations and instead use the kernel sources directly or the
libkernelland_emu sources.


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


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

* Fixed get_vnode() signature.
* Added simple get_default_partition_content_name().


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


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

Added the kernel file map implementation.


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


# 0559ce85 27-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the implementation of the public interfaces out of their namespaces.
This makes things a bit simpler and makes quite a bit of haiku_kernel_emu.cpp
superfluous.


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


# ffba66060b0155c987fc2232b803b243610c6430 29-Mar-2015 Michael Lotz <mmlr@mlotz.ch>

UserlandFS: Make 64 bit clean and enable build for x86_64.

I did not bother to fix the BeOS kernel emulation, so this part is
still left out of the x86_64 build.


# 92cc6a0f431a94ef90f58ac751c9c530bb0036c8 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

Style fixes.


# a28398b3a2bff16457174932ab1d7f4e96542880 17-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

userlandfs: NULL pointer dereference

get_vnode could be called with a NULL privateNode in the kernel, but not
in userlandfs. This would crash in cdda mount code (and from a grep
search, also with several other filesystems).

Now cdda can be mounted with userlandfs, and CDs read that way, but for
some reason there is no CDDB renaming of the tracks in that case.


# 0a1dabca7eb05baaf2f865fbf0012ef9f78060f2 22-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added public io_request_is_vip(), returning whether the given request has the
VIP flag set.


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


# 08e2a0556cfdb61149610121f875d4e8b7b4bc67 18-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

do_iterative_fd_io(): Don't fail when the getVecs callback returns
B_BUFFER_OVERFLOW. It will have returned valid vectors in this case.


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


# e66231742efedbbc2746c57b132cc9b9b8b9ca7b 05-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a bit of stuff referenced by inline functions in private kernel
headers. GCC 2 has the unpleasant habit of actually linking the unused inline
functions in. That doesn't suffice to build the userlandfs server with debug
info (it would be the wrong file anyway), but allows to build checksumfs.


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


# c77f643a2b3f3990e6f355d6c333537b9cbfd88f 20-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for in-kernel node monitoring ({add,remove}_node_listener()).


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


# 8af6418b5c35c7c7b4a008783ffde29448b01f99 19-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Implemented support for the recently introduced I/O request calls
io_request_{offset,length}(), {read_from,write_to}_io_request().


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


# 07745f2a0b9f21a8c92326dd8a39d5a8d9a0049c 30-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support for new notify_io_request() function.


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


# d26a6e800710200d0548e3930f5a59528546ded6 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added stubs for some FS interface and disk device manager functions.


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


# daa674789c7b247e3002a595bd53c4ef44caa8ab 08-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the khash, condition variable, lock, block cache, and slab
implementations and instead use the kernel sources directly or the
libkernelland_emu sources.


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


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

* Fixed get_vnode() signature.
* Added simple get_default_partition_content_name().


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


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

Added the kernel file map implementation.


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


# 0559ce85e9561810bf04b135c89ded726f850a23 27-Feb-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved the implementation of the public interfaces out of their namespaces.
This makes things a bit simpler and makes quite a bit of haiku_kernel_emu.cpp
superfluous.


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