History log of /haiku/docs/user/drivers/fs_interface.dox (Results 1 – 25 of 30)
Revision Date Author Comments
# bb6b48a9 10-Jun-2020 CruxBox <shubhambhagat111@yahoo.com>

FS Interface Docs: Made read_dir description clear

Small change in the docs to make the explanation of read_dir
functionality a little more clear.

Change-Id: I202eb0f70b38c78962ad9ca1d267995977c049

FS Interface Docs: Made read_dir description clear

Small change in the docs to make the explanation of read_dir
functionality a little more clear.

Change-Id: I202eb0f70b38c78962ad9ca1d267995977c04951
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2900
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

show more ...


# e1b7c1c7 20-Apr-2020 Kyle Ambroff-Kao <kyle@ambroffkao.com>

storage/SymLink: Fix Be API regression in ReadLink

After this patch, "UnitTester BSymLink" passes.

BSymLink::ReadLink() in BeOS would always return the length of the
link unless an error occurred.

storage/SymLink: Fix Be API regression in ReadLink

After this patch, "UnitTester BSymLink" passes.

BSymLink::ReadLink() in BeOS would always return the length of the
link unless an error occurred. Before this patch, Haiku instead seemed
to emulate posix readlink() behavior, returning the number of bytes
copied into the output buffer.

BeOS also did not guarantee that the string written into the output
buffer is NULL terminated if the output buffer cannot contain the
entire link contents, but the Haiku implementation does since it is is
a basic safety issue.

This patch fixes this and updates the Haiku API docs to describe the
behavior explicitly.

Fixing this required changing behavior in bfs_read_link, which
required changes in many more places.

docs/user/storage/SymLink.dox:
src/kits/storage/SymLink.cpp:
* Don't return B_BUFFER_OVERFLOW if the provided buffer is not large
enough to hold the link contents.
* Update documentation to clearly describe behavior.

src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp:
* Change bfs_read_link() to always return the link length. This is
called by common_read_link in the VFS, which is called by
_kern_read_link().

src/add-ons/kernel/file_systems/btrfs/kernel_interface.cpp:
src/add-ons/kernel/file_systems/exfat/kernel_interface.cpp:
src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp:
src/add-ons/kernel/file_systems/iso9660/kernel_interface.cpp:
src/add-ons/kernel/file_systems/netfs/client/netfs.cpp:
src/add-ons/kernel/file_systems/nfs/nfs_add_on.c:
src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp:
src/add-ons/kernel/file_systems/reiserfs/Iterators.cpp:
src/add-ons/kernel/file_systems/reiserfs/Iterators.h:
src/add-ons/kernel/file_systems/reiserfs/Volume.cpp:
src/add-ons/kernel/file_systems/reiserfs/Volume.h:
* Update the implementation of read_link for these filesystems. Some
of them were incorrect, and some had just copied the posix behavior of
bfs from before this patch.
* Use user_memcpy in ext2_read_link()
* Use user_memcpy in nfs fs_read_link()
* Use user_memcpy in reiserfs StreamReader::_ReadIndirectItem and
StreamReader::_ReadDirectItem
* Remove unused method Volume::ReadObject in reiserfs.

src/add-ons/kernel/file_systems/packagefs/nodes/UnpackingLeafNode.cpp:
src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkSymlink.cpp:
* Update UnpackingLeafNode::ReadSymlink and
PackageSymLink::ReadSymLink() to set the bufferSize out parameter to
the symlink length. Both of these are called by
packagefs_read_symlink.
* Use user_memcpy

src/add-ons/kernel/file_systems/netfs/client/netfs.cpp:
* netfs seems mostly unimplemented. Added a FIXME note for future
implementers so that they know to implement the correct behavior.

src/system/libroot/posix/unistd/link.c:
* readlinkat() was just wrapping _kern_read_link() because before this
patch it had expected posix behavior. But now it does not, so we
need to return the number of bytes written to the output
buffer.

src/build/libroot/fs.cpp:
* Update _kern_read_link() in the compatibility code to emulate the
Haiku behavior on the host system. This is done by using an
intermediate buffer that is guaranteed to fit the link contents and
returning its length. The intermediate buffer is copied into the
output buffer until there is no more room.

src/tests/kits/storage/SymLinkTest.cpp:
* This patch also resolves some test failures similar to those
resolved in ee8cf35f0 which fixed tests for BNode. The tests were
failing because Haiku's error checking is just better.

BeOS allowed constructing a BSymLink with BSymLink(BDirectory*,
const char*) with the entry name of "". The same is true of the
equivilant SetTo() method. The BSymLink object will appear valid
until you attempt to use it by, for example, calling the ReadLink
method, which will return B_BAD_VALUE.

Haiku does a more appropriate thing and returns B_ENTRY_NOT_FOUND,
for this constructor and the equivilant SetTo(BDirectory*, const
char*) method. This patch fixes these test assertions to match Haiku
behavior.

docs/develop/file_systems/overview.txt:
* Add notes for future filesystem driver implementers to call this
mistake when implementing fs_vnode_ops::read_symlink.

docs/user/drivers/fs_interface.dox:
* Fix documentation for fs_vnode_ops::read_symlink

Change-Id: I8bcb8b2a0c9333059c84ace15844c32d4efeed9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2502
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

show more ...


# ff1ee776 01-Mar-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

HaikuBook: fix part of the warnings marked by Doxygen

I spotted some warnings when I upgraded from Doxygen 1.18.13 to 1.18.17.
The new warnings are useful, they point out imbalances in grouping, as

HaikuBook: fix part of the warnings marked by Doxygen

I spotted some warnings when I upgraded from Doxygen 1.18.13 to 1.18.17.
The new warnings are useful, they point out imbalances in grouping, as
well as unclosed comment blocks. Coincidentally, this fixes #13338

show more ...


# 9d5b0fda 01-Oct-2017 Augustin Cavalier <waddlesplash@gmail.com>

docs/user: Upgrade to Doxygen 1.8.13.

Also tweak the footer CSS a bit, and fix an unclosed comment in the
fs_interface docs (spotted via a warning in Doxygen output.)


# 9a243c1b 27-Apr-2016 John Scipione <jscipione@gmail.com>

Fix errors in fs_interface.dox


# 5163e1c6 27-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Introduce vnode op supports_operation(), fix devfs_io()"

This reverts commit 98a5231fe5497c526849f2d84b1a9bbcbdfd2dbc.


# 98a5231f 27-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Introduce vnode op supports_operation(), fix devfs_io()

devfs_io() can't fall back to calling vfs_synchronous_io(), if the
device driver doesn't support handling requests asynchronously. The
presenc

Introduce vnode op supports_operation(), fix devfs_io()

devfs_io() can't fall back to calling vfs_synchronous_io(), if the
device driver doesn't support handling requests asynchronously. The
presence of the io() hook leads the VFS (do_iterative_fd_io()) to
believe that asynchronous handling is supported and set a
finished-callback on the request which calls the io() hook to start the
next chunk. Thus, instead of iterating through the request in a loop
the iteration happens recursively. For sufficiently fragmented requests
the stack may overflow (ticket #9900).

* Introduce a new vnode operation supports_operation(). It can be called
by the VFS to determine whether a present hook is actually currently
supported for a given vnode.
* devfs: implement the new hook and remove the fallback handling in
devfs_io().
* vfs_request_io.cpp: use the new hook to determine whether the io()
hook is really supported.

show more ...


# 25a7b01d 05-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
needed by packagefs.
* BuildFeatures: Add a build feature

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
package instead.

Conflicts:
.gitignore
build/jam/BuildSetup
build/jam/FileRules
build/jam/FloppyBootImage
build/jam/HaikuImage
build/jam/ImageRules
build/jam/KernelRules
build/jam/NetBootArchive
build/jam/OptionalBuildFeatures
build/jam/OptionalLibPackages
build/jam/OptionalPackageDependencies
build/jam/OptionalPackages
build/scripts/build_haiku_image
configure
data/bin/installoptionalpackage
data/system/boot/Bootscript
headers/os/app/Message.h
headers/os/package/PackageInfo.h
headers/os/package/PackageInfoAttributes.h
headers/os/package/PackageInfoSet.h
headers/os/package/PackageRoster.h
headers/os/package/PackageVersion.h
headers/os/package/hpkg/PackageInfoAttributeValue.h
headers/os/storage/FindDirectory.h
headers/os/storage/Node.h
headers/os/support/StringList.h
headers/private/system/directories.h
src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
src/add-ons/kernel/file_systems/packagefs/Jamfile
src/add-ons/kernel/file_systems/packagefs/Package.cpp
src/add-ons/kernel/file_systems/packagefs/Package.h
src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
src/add-ons/kernel/file_systems/packagefs/PackageNode.h
src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
src/add-ons/kernel/file_systems/packagefs/Version.cpp
src/add-ons/kernel/file_systems/packagefs/Version.h
src/add-ons/kernel/file_systems/packagefs/Volume.cpp
src/add-ons/kernel/file_systems/packagefs/Volume.h
src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
src/apps/deskbar/BarApp.cpp
src/apps/deskbar/BarMenuBar.cpp
src/apps/deskbar/BarMenuBar.h
src/apps/deskbar/BarView.cpp
src/apps/deskbar/BarView.h
src/apps/deskbar/BarWindow.cpp
src/apps/deskbar/BarWindow.h
src/apps/deskbar/DeskbarMenu.cpp
src/apps/deskbar/DeskbarMenu.h
src/apps/deskbar/DeskbarUtils.cpp
src/apps/deskbar/DeskbarUtils.h
src/apps/deskbar/ExpandoMenuBar.cpp
src/apps/deskbar/ExpandoMenuBar.h
src/apps/deskbar/TeamMenu.cpp
src/apps/processcontroller/ProcessController.cpp
src/apps/remotedesktop/RemoteDesktop.cpp
src/bin/bash/config-top.h
src/bin/finddir.c
src/bin/package/Jamfile
src/bin/package/command_add.cpp
src/bin/package/command_create.cpp
src/bin/package/command_list.cpp
src/bin/package_repo/command_list.cpp
src/bin/pkgman/command_refresh.cpp
src/build/libbe/support/Jamfile
src/build/libpackage/Jamfile
src/build/libroot/Jamfile
src/build/libroot/fs.cpp
src/build/libroot/remapped_functions.h
src/kits/locale/MutableLocaleRoster.cpp
src/kits/opengl/GLRendererRoster.cpp
src/kits/package/PackageInfo.cpp
src/kits/package/PackageInfoSet.cpp
src/kits/package/PackageRoster.cpp
src/kits/package/PackageVersion.cpp
src/kits/package/RepositoryCache.cpp
src/kits/package/hpkg/PackageWriterImpl.cpp
src/kits/package/hpkg/ReaderImplBase.cpp
src/kits/package/hpkg/WriterImplBase.cpp
src/kits/print/PrintTransport.cpp
src/kits/print/Printer.cpp
src/kits/screensaver/ScreenSaverRunner.cpp
src/kits/support/StringList.cpp
src/kits/tracker/ContainerWindow.cpp
src/kits/tracker/DeskWindow.cpp
src/kits/tracker/PoseView.cpp
src/libs/print/libprint/Transport.cpp
src/preferences/printers/AddPrinterDialog.cpp
src/preferences/screensaver/ScreenSaverWindow.cpp
src/servers/debug/DebugServer.cpp
src/servers/input/AddOnManager.cpp
src/servers/media_addon/MediaAddonServer.cpp
src/system/boot/Jamfile
src/system/boot/loader/Jamfile
src/system/boot/loader/loader.cpp
src/system/boot/loader/vfs.cpp
src/system/kernel/fs/vfs.cpp
src/system/kernel/fs/vfs_boot.cpp
src/system/libroot/os/find_directory.cpp
src/system/runtime_loader/runtime_loader.cpp
src/tools/package/Jamfile

show more ...


# eecde8e3 20-Apr-2013 François Revol <revol@free.fr>

Merge branch 'master' into sam460ex


# a37c845e 04-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

FS interface API doc: More details for unmount()


# 5d9c157d 08-Feb-2013 François Revol <revol@free.fr>

Merge branch 'master' into sam460ex


# 820dca4d 07-Feb-2013 John Scipione <jscipione@gmail.com>

Big docs cleanup.

* Fixed headers including:
- All rights reserved not All Rights Reserved.
- name, email@domain.com not name <email@domain.com>
- tabs and spaces
- Authors: not Documented b

Big docs cleanup.

* Fixed headers including:
- All rights reserved not All Rights Reserved.
- name, email@domain.com not name <email@domain.com>
- tabs and spaces
- Authors: not Documented by:
* Renamed string.dox to String.dox
* Renamed midixxx.dox files to MidiXxx.dox
* Moved images into images subdirectories and updated Doxfile.
* Re-format all files with tabs instead of spaces.
* Fix many spelling mistakes.
* Added all files, classes, structs, and enums to libbe group.

show more ...


# 19ae20e6 05-Nov-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into pm-flat

Conflicts:
build/jam/HaikuImage
build/jam/OptionalBuildFeatures
build/jam/OptionalPackages
build/jam/UserBuildConfig.sample
data/bin/installoptionalpackage
s

Merge branch 'master' into pm-flat

Conflicts:
build/jam/HaikuImage
build/jam/OptionalBuildFeatures
build/jam/OptionalPackages
build/jam/UserBuildConfig.sample
data/bin/installoptionalpackage
src/apps/deskbar/DeskbarMenu.cpp
src/servers/debug/DebugServer.cpp
src/system/kernel/fs/vfs.cpp

show more ...


# a33f8fbd 09-Aug-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Merge work by John Scipione on the Haiku Book.
* Some new classes documented
* Screenshots for the interface kit controls
* A lot of typo fixes
* Some css tweaks

This has some backporting to the

Merge work by John Scipione on the Haiku Book.
* Some new classes documented
* Screenshots for the interface kit controls
* A lot of typo fixes
* Some css tweaks

This has some backporting to the current version of Doxygen, since
there are experiments to get coloring similar to the one in the Be
Book that will hopefully be upstreamed in Doxygen.


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

show more ...


# 1a38616f 17-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed fs_vnode_ops::create() documentation: The function shall not fail, if
the file already exists, unless O_EXCL has been specified. At least that's
how our file systems with write support implemen

Fixed fs_vnode_ops::create() documentation: The function shall not fail, if
the file already exists, unless O_EXCL has been specified. At least that's
how our file systems with write support implement it.


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

show more ...


# 1f23605d 17-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Added description for fs_volume_ops::get_vnode()'s _type and _flags
parameters.


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


# 0551e706 29-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Updated to current FS interface.
* Fixed and completed several function documentations. There's still quite
a bit missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29787 a95241bf-73f

* Updated to current FS interface.
* Fixed and completed several function documentations. There's still quite
a bit missing.


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

show more ...


# 50c9917f 28-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Resurrected the FS interface documentation and introduction. It's not in sync
with the current API, but it just needs to be updated rather than rewritten
from the scratch.


git-svn-id: file:///srv/s

Resurrected the FS interface documentation and introduction. It's not in sync
with the current API, but it just needs to be updated rather than rewritten
from the scratch.


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

show more ...


# 67e2e882 29-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a section to the select() hook documentation discussing the FSs
responsibility never to call notify_select_event() after deselect().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25262

Added a section to the select() hook documentation discussing the FSs
responsibility never to call notify_select_event() after deselect().


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

show more ...


# 1b32947d 17-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Aligned the semantics of the read_symlink() FS module hook with the
readlink() function. It is no longer required to null-terminate the
string, shall not fail, if the buffer is too small, and s

* Aligned the semantics of the read_symlink() FS module hook with the
readlink() function. It is no longer required to null-terminate the
string, shall not fail, if the buffer is too small, and shall return
the length of the string actually written into the buffer.
* Adjusted rootfs, devfs, and bfs accordingly. Also adjusted their
read_stat() hooks to return the correct symlink length in st_size.
* Our readlink() does now comply to the standard (and BeOS).
Additionally if the buffer is big enough it is nice to non-conforming
apps and null-terminates it.
* BSymLink::ReadLink() explicitly null-terminates the string now.


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

show more ...


# 40ba6c70 23-Jul-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Fix a mistake. \code should always be closed by \endcode, else doxygen will stop parsing (even if a documentation block ends).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21694 a95241bf-73f2

Fix a mistake. \code should always be closed by \endcode, else doxygen will stop parsing (even if a documentation block ends).

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

show more ...


# ca210f74 16-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Spaces to tabs.
* Carriage returns to simple new lines.


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


# 5d92d947 15-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Completed some more missing parts.
* Replaced some more spaces with tabs, though still not complete.
* And I forgot: the last commit also removed some garbage at the beginning of the file.


git-sv

* Completed some more missing parts.
* Replaced some more spaces with tabs, though still not complete.
* And I forgot: the last commit also removed some garbage at the beginning of the file.


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

show more ...


# 84f03dd5 15-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Removed deprecated functions.
* The documented the notify_*() functions - only notify_listener() was deprecated
among them.
* Replaced spaces with tabs - there is no reason to deviate from the st

* Removed deprecated functions.
* The documented the notify_*() functions - only notify_listener() was deprecated
among them.
* Replaced spaces with tabs - there is no reason to deviate from the standard we're
using everywhere else.
* Completed the docs here and there.


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

show more ...


# 412a49de 07-Jul-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Update to the latest prototypes of fs_interface.h

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


12