Files
mars-nwe/include/nwnss/internal/macNSpaceUserspace.h
Mario Fetka d1dc9740cc
All checks were successful
Source release / source-package (push) Successful in 1m29s
nwnss: restore companion boundaries after full import
2026-06-20 10:33:44 +02:00

63 lines
2.3 KiB
C

/****************************************************************************
|
| Userspace boundary for NSS Macintosh namespace metadata.
|
| The NSS MAC namespace stores Finder metadata as RVD_MAC_META_DATA and
| resource forks as the data stream named MAC_RF. This boundary maps those
| semantics to Netatalk's adouble:ea host representation for OtherFS userspace
| providers, per object, without extending netware.metadata.
+-------------------------------------------------------------------------*/
#ifndef _MACNSPACE_USERSPACE_H_
#define _MACNSPACE_USERSPACE_H_
#include <stddef.h>
#include <sys/types.h>
#include <public/zParams.h>
#ifdef __cplusplus
extern "C" {
#endif
#define NSS_MAC_NETATALK_METADATA_XATTR "org.netatalk.Metadata"
#define NSS_MAC_NETATALK_RESOURCE_XATTR "org.netatalk.ResourceFork"
#define NSS_MAC_NETATALK_METADATA_HOST_XATTR "user.org.netatalk.Metadata"
#define NSS_MAC_NETATALK_RESOURCE_HOST_XATTR "user.org.netatalk.ResourceFork"
#define NSS_MAC_RESOURCE_FORK_STREAM_NAME "MAC_RF"
#define NSS_MAC_NETATALK_AD_MAGIC 0x00051607u
#define NSS_MAC_NETATALK_AD_VERSION_EA 0x00020002u
#define NSS_MAC_NETATALK_METADATA_SIZE 402u
#define NSS_MAC_NETATALK_FINDER_INFO_SIZE 32u
const char *NssMacUserspaceMetadataXattrName(void);
const char *NssMacUserspaceResourceForkXattrName(void);
const char *NssMacUserspaceMetadataHostXattrName(void);
const char *NssMacUserspaceResourceForkHostXattrName(void);
const char *NssMacUserspaceResourceForkStreamName(void);
void NssMacUserspaceInitDefaultMacInfo(zMacInfo_s *macInfo, int isDirectory);
int NssMacUserspaceBuildNetatalkMetadata(const zMacInfo_s *macInfo,
unsigned char *buffer,
size_t bufferSize);
int NssMacUserspaceParseNetatalkMetadata(const unsigned char *buffer,
size_t bufferSize,
zMacInfo_s *macInfo);
int NssMacUserspaceWriteNetatalkMetadata(const char *path,
const zMacInfo_s *macInfo);
int NssMacUserspaceReadNetatalkMetadata(const char *path,
zMacInfo_s *macInfo);
int NssMacUserspaceWriteResourceFork(const char *path,
const void *data,
size_t dataSize);
ssize_t NssMacUserspaceReadResourceFork(const char *path,
void *data,
size_t dataSize);
#ifdef __cplusplus
}
#endif
#endif /* _MACNSPACE_USERSPACE_H_ */