doc: minor refactor

This commit is contained in:
CismonX 2025-01-05 19:31:51 +08:00
parent 648e0e365f
commit 9a21c84e1c
No known key found for this signature in database
GPG key ID: 3094873E29A482FB

View file

@ -23,6 +23,10 @@
https://pubs.opengroup.org/onlinepubs/9799919799/functions/\name\.html} https://pubs.opengroup.org/onlinepubs/9799919799/functions/\name\.html}
@end macro @end macro
@macro linuxdoc {name, path}
@uref{https://docs.kernel.org/\path\, \name\}
@end macro
@c sometimes we don't want var name to be rendered UPPERCASE in Info @c sometimes we don't want var name to be rendered UPPERCASE in Info
@macro varx {name} @macro varx {name}
@inlinefmtifelse{info, \name\, @var{\name\}} @inlinefmtifelse{info, \name\, @var{\name\}}
@ -96,8 +100,7 @@ Currently, BookmarkFS only runs on GNU/Linux and FreeBSD.
Although BookmarkFS sticks hard to POSIX and avoids using platform-specific Although BookmarkFS sticks hard to POSIX and avoids using platform-specific
features, porting it to other operating systems is not trivial. features, porting it to other operating systems is not trivial.
The major pitfall is the The major pitfall is the @linuxdoc{FUSE, filesystems/fuse.html} dependency.
@uref{https://docs.kernel.org/filesystems/fuse.html, FUSE} dependency.
Generally speaking, FUSE is Linux-only. Generally speaking, FUSE is Linux-only.
FreeBSD partially implements the FUSE protocol in its kernel, FreeBSD partially implements the FUSE protocol in its kernel,
to the extent that BookmarkFS is mostly usable. to the extent that BookmarkFS is mostly usable.
@ -499,11 +502,6 @@ On FreeBSD, see @freebsdmanpage{extattr, 2}.
All BookmarkFS extended attributes fall under the ``user'' namespace, All BookmarkFS extended attributes fall under the ``user'' namespace,
which means they have a @code{user.} name prefix on Linux, and should be which means they have a @code{user.} name prefix on Linux, and should be
accessed with @code{EXTATTR_NAMESPACE_USER} on FreeBSD. accessed with @code{EXTATTR_NAMESPACE_USER} on FreeBSD.
BookmarkFS does not define any common attributes, neither can users create
arbitrary ones.
The backend decides which attributes are available during initialization,
and all bookmark files share the same set of attributes.
All attributes have a @code{bookmarkfs.} name prefix. All attributes have a @code{bookmarkfs.} name prefix.
For example, to get the GUID of a bookmark file (Firefox backend): For example, to get the GUID of a bookmark file (Firefox backend):
@ -517,6 +515,11 @@ len = extattr_get_fd(fd, EXTATTR_NAMESPACE_USER, "bookmarkfs.guid",
buf, sizeof(buf)); buf, sizeof(buf));
@end example @end example
BookmarkFS does not define any common attributes, neither can users create
arbitrary ones.
The backend decides which attributes are available during initialization,
and all bookmark files share the same set of attributes.
@node Directory Entry Ordering @node Directory Entry Ordering
@section Directory Entry Ordering @section Directory Entry Ordering
@ -531,7 +534,9 @@ This allows filesystem implementations to organize directory entries in a more
relaxed manner. relaxed manner.
There could be extra overhead to maintain a predictable ordering of There could be extra overhead to maintain a predictable ordering of
directory entries, since they may not have a linear structure on modern directory entries, since they may not have a linear structure on modern
on-disk filesystems (e.g. ext4 uses ``HTree'' for large directories). on-disk filesystems (e.g. ext4 uses
@linuxdoc{htree, filesystems/ext4/dynamic.html#hash-tree-directories}
for large directories).
As for users of a filesystem, the order of directory entries generally As for users of a filesystem, the order of directory entries generally
does not matter. does not matter.
@ -628,7 +633,7 @@ Typically, backends are built into shared libraries, and are installed as:
Where @var{$@{short_name@}} is the name passed to the frontend program, and Where @var{$@{short_name@}} is the name passed to the frontend program, and
@var{$@{shlib_suffix@}} is the common filename extension for shared library @var{$@{shlib_suffix@}} is the common filename extension for shared library
files on the current platform (e.g. @code{.so} on GNU/Linux and FreeBSD). files on the current platform (e.g. @file{.so} on GNU/Linux and FreeBSD).
Currently, BookmarkFS ships with two backends. Currently, BookmarkFS ships with two backends.
One for Firefox, the other for Chromium. One for Firefox, the other for Chromium.