64 lines
1.8 KiB
C
64 lines
1.8 KiB
C
#ifndef NSS_INTERNAL_LSA_XATTR_USERSPACE_H
|
|
#define NSS_INTERNAL_LSA_XATTR_USERSPACE_H
|
|
|
|
#if defined(NSS_USERSPACE)
|
|
|
|
#include <stddef.h>
|
|
#include <sys/types.h>
|
|
|
|
#include <internal/NssPageRuntime.h>
|
|
#include <internal/nssUserspaceProvider.h>
|
|
#include <zParams.h>
|
|
#include <comnBeasts.h>
|
|
#include <lsa.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct NssLsaXattrUserspace_s {
|
|
struct super_block superBlock;
|
|
LsaSuper_s lsaSuper;
|
|
LsaInode_s lsaInode;
|
|
struct inode inode;
|
|
struct dentry dentry;
|
|
NssUserspaceProvider_s provider;
|
|
} NssLsaXattrUserspace_s;
|
|
|
|
void NssLsaXattrUserspaceInit(NssLsaXattrUserspace_s *xattr,
|
|
VolumeID_t volumeId,
|
|
NINT nameSpace,
|
|
Zid_t zid);
|
|
int NssLsaXattrUserspaceInitOtherfsPath(NssLsaXattrUserspace_s *xattr,
|
|
const char *path);
|
|
struct dentry *NssLsaXattrUserspaceDentry(NssLsaXattrUserspace_s *xattr);
|
|
void NssLsaXattrUserspaceSetProvider(NssLsaXattrUserspace_s *xattr,
|
|
NssUserspaceProviderKind_e provider);
|
|
NssUserspaceProviderKind_e
|
|
NssLsaXattrUserspaceGetProvider(const NssLsaXattrUserspace_s *xattr);
|
|
const NssUserspaceProvider_s *
|
|
NssLsaXattrUserspaceProvider(const NssLsaXattrUserspace_s *xattr);
|
|
const char *NssLsaXattrUserspaceNssName(const char *name);
|
|
int NssLsaXattrUserspaceOtherfsName(const char *name,
|
|
char *buffer,
|
|
size_t bufferSize);
|
|
ssize_t NssLsaXattrUserspaceGet(NssLsaXattrUserspace_s *xattr,
|
|
const char *name,
|
|
void *value,
|
|
size_t size);
|
|
ssize_t NssLsaXattrUserspaceSet(NssLsaXattrUserspace_s *xattr,
|
|
const char *name,
|
|
const void *value,
|
|
size_t size);
|
|
int NssLsaXattrUserspaceRemove(NssLsaXattrUserspace_s *xattr,
|
|
const char *name);
|
|
LsaInode_s *NssLsaXattrUserspaceInodePrivate(struct inode *inode);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* NSS_USERSPACE */
|
|
|
|
#endif /* NSS_INTERNAL_LSA_XATTR_USERSPACE_H */
|