57 lines
1.5 KiB
C
57 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Originally contributed by an anonymous person,
|
|
* heavily changed by Li Guifu <blucerlee@gmail.com>
|
|
* and Gao Xiang <xiang@kernel.org>
|
|
*/
|
|
#ifndef __EROFS_XATTR_H
|
|
#define __EROFS_XATTR_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "internal.h"
|
|
|
|
#define EROFS_INODE_XATTR_ICOUNT(_size) ({\
|
|
u32 __size = le16_to_cpu(_size); \
|
|
((__size) == 0) ? 0 : \
|
|
(_size - sizeof(struct erofs_xattr_ibody_header)) / \
|
|
sizeof(struct erofs_xattr_entry) + 1; })
|
|
|
|
#ifndef XATTR_USER_PREFIX
|
|
#define XATTR_USER_PREFIX "user."
|
|
#endif
|
|
#ifndef XATTR_USER_PREFIX_LEN
|
|
#define XATTR_USER_PREFIX_LEN (sizeof(XATTR_USER_PREFIX) - 1)
|
|
#endif
|
|
#ifndef XATTR_SECURITY_PREFIX
|
|
#define XATTR_SECURITY_PREFIX "security."
|
|
#endif
|
|
#ifndef XATTR_SECURITY_PREFIX_LEN
|
|
#define XATTR_SECURITY_PREFIX_LEN (sizeof(XATTR_SECURITY_PREFIX) - 1)
|
|
#endif
|
|
#ifndef XATTR_TRUSTED_PREFIX
|
|
#define XATTR_TRUSTED_PREFIX "trusted."
|
|
#endif
|
|
#ifndef XATTR_TRUSTED_PREFIX_LEN
|
|
#define XATTR_TRUSTED_PREFIX_LEN (sizeof(XATTR_TRUSTED_PREFIX) - 1)
|
|
#endif
|
|
#ifndef XATTR_NAME_POSIX_ACL_ACCESS
|
|
#define XATTR_NAME_POSIX_ACL_ACCESS "system.posix_acl_access"
|
|
#endif
|
|
#ifndef XATTR_NAME_POSIX_ACL_DEFAULT
|
|
#define XATTR_NAME_POSIX_ACL_DEFAULT "system.posix_acl_default"
|
|
#endif
|
|
|
|
int erofs_prepare_xattr_ibody(struct erofs_inode *inode);
|
|
char *erofs_export_xattr_ibody(struct list_head *ixattrs, unsigned int size);
|
|
int erofs_build_shared_xattrs_from_path(const char *path);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|