logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

pmem2_source_alignment() - returns data source alignment

Description

The pmem2_source_alignment() function retrieves the alignment of offset and length needed for pmem2_map_new(3) to succeed. The alignment is stored in *alignment.

Errors

The pmem2_source_alignment() can fail with the following errors: On all systems: • PMEM2_E_INVALID_ALIGNMENT_VALUE - operating system returned unexpected alignment value (eg. it is not a power of two). on Linux: • PMEM2_E_INVALID_FILE_TYPE - file descriptor points to a character device other than Device DAX. • PMEM2_E_INVALID_ALIGNMENT_FORMAT - kernel query for Device DAX alignment returned data in invalid for‐ mat. • -errno set by failing fstat(2), while trying to validate the file descriptor. • -errno set by failing realpath(3), while trying to determine whether fd points to a Device DAX. • -errno set by failing read(2), while trying to determine Device DAX’s alignment. • -errno set by failing strtoull(3), while trying to determine Device DAX’s alignment. On FreeBSD: • PMEM2_E_INVALID_FILE_TYPE - file descriptor points to a directory, block device, pipe, socket, or char‐ acter device. • -errno set by failing fstat(2), while trying to validate the file descriptor.

Name

pmem2_source_alignment() - returns data source alignment

Return Value

The pmem2_source_alignment() function returns 0 on success. If the function fails, the *alignment vari‐ able is left unmodified and a negative error code is returned.

See Also

errno(3), fstat(2), realpath(3), read(2), strtoull(3), pmem2_config_new(3), pmem2_source_from_handle(3), pmem2_source_from_fd(3), libpmem2(7) and <https://pmem.io>

Synopsis

#include <libpmem2.h> struct pmem2_source; int pmem2_source_alignment(const struct pmem2_source *source, size_t *alignment);

See Also