Files
mars-nwe/include/nwnss/internal/lsaXattrUserspace.h

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 */