mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-06-07 19:58:50 +00:00
doc: update backend API
Add doc for the `bookmark_lookup` function.
This commit is contained in:
parent
579f396e46
commit
18b801f960
1 changed files with 113 additions and 0 deletions
|
@ -1736,6 +1736,119 @@ The pointer referring to the backend context.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@node Lookup Bookmark
|
||||||
|
@subsection Lookup Bookmark
|
||||||
|
|
||||||
|
The @code{bookmark_lookup} function is called to obtain the attributes of
|
||||||
|
a bookmark, or a bookmark-related object.
|
||||||
|
It must not be @code{NULL}.
|
||||||
|
|
||||||
|
@example c
|
||||||
|
typedef int (bookmarkfs_bookmark_lookup_func) (
|
||||||
|
void *backend_ctx,
|
||||||
|
uint64_t id,
|
||||||
|
char const *name,
|
||||||
|
uint32_t flags,
|
||||||
|
struct bookmarkfs_bookmark_stat *stat_buf
|
||||||
|
);
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Function arguments:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item backend_ctx
|
||||||
|
The pointer referring to the backend context.
|
||||||
|
|
||||||
|
@item id
|
||||||
|
The subsystem object ID to be used for lookup.
|
||||||
|
It could either be a bookmark ID or a tag ID,
|
||||||
|
depending on the value of @code{flags}.
|
||||||
|
|
||||||
|
@item name
|
||||||
|
Name of the subsystem object to lookup.
|
||||||
|
It could be a bookmark name, tag name or keyword name,
|
||||||
|
depending on the value of @code{flags}.
|
||||||
|
|
||||||
|
When not @code{NULL}, @code{name} is guaranteed to be a valid filename,
|
||||||
|
which should be used to lookup an object under the directory referred to
|
||||||
|
by @code{id}.
|
||||||
|
Otherwise, the function should operate on the object referred to
|
||||||
|
by @code{id} itself.
|
||||||
|
|
||||||
|
@item flags
|
||||||
|
A bit array of the following flags:
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item BOOKMARKFS_BOOKMARK_TYPE_MASK
|
||||||
|
The subsystem to operate on.
|
||||||
|
|
||||||
|
Equals to one of the following values (after shifting):
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item BOOKMARKFS_BOOKMARK_TYPE_BOOKMARK
|
||||||
|
Indicates that the function should operate on the ``bookmarks'' subsystem.
|
||||||
|
@xref{Bookmarks}.
|
||||||
|
|
||||||
|
@code{id} and @code{name} refers to bookmark ID and bookmark name.
|
||||||
|
|
||||||
|
@item BOOKMARKFS_BOOKMARK_TYPE_TAG
|
||||||
|
Indicates that the function should operate on the ``tags'' subsystem.
|
||||||
|
@xref{Tags}.
|
||||||
|
|
||||||
|
@code{id} and @code{name} refers to tag ID and tag name.
|
||||||
|
|
||||||
|
@item BOOKMARKFS_BOOKMARK_TYPE_KEYWORD
|
||||||
|
Indicates that the function should operate on the ``keywords'' subsystem.
|
||||||
|
@xref{Keywords}.
|
||||||
|
|
||||||
|
@code{name} refers to keyword name (must not be @code{NULL}).
|
||||||
|
The value of @code{id} is unspecified.
|
||||||
|
@end table
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item stat_buf
|
||||||
|
Attributes of the object to lookup.
|
||||||
|
|
||||||
|
The initial content of this argument is unspecified.
|
||||||
|
When the object is successfully found, the backend should populate
|
||||||
|
this argument with appropriate values.
|
||||||
|
|
||||||
|
The @code{bookmarkfs_bookmark_stat} structure is defined as:
|
||||||
|
|
||||||
|
@example c
|
||||||
|
struct bookmarkfs_bookmark_stat @{
|
||||||
|
uint64_t id;
|
||||||
|
ssize_t value_len;
|
||||||
|
|
||||||
|
struct timespec atime;
|
||||||
|
struct timespec mtime;
|
||||||
|
@};
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@table @code
|
||||||
|
@item id
|
||||||
|
ID of the object.
|
||||||
|
|
||||||
|
@item value_len
|
||||||
|
Length of the object value in bytes.
|
||||||
|
@t{-1} if the object refers to a directory.
|
||||||
|
|
||||||
|
@item atime
|
||||||
|
@item mtime
|
||||||
|
Last access and modification time of the object.
|
||||||
|
Must not be earlier than the Unix epoch.
|
||||||
|
@end table
|
||||||
|
@end table
|
||||||
|
|
||||||
|
On success, the function should return @t{0}.
|
||||||
|
Otherwise, it should return a negated @code{errno} indicating
|
||||||
|
the error encountered.
|
||||||
|
|
||||||
|
Generally, the error code should follow filesystem conventions,
|
||||||
|
but the backend may return other error codes which it sees fit.
|
||||||
|
Also @pxref{Error Codes}.
|
||||||
|
|
||||||
|
|
||||||
@node Filesystem-Check Handlers
|
@node Filesystem-Check Handlers
|
||||||
@chapter Filesystem-Check Handlers
|
@chapter Filesystem-Check Handlers
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue