nwfs
nwfs contains Mars filesystem support and the gradually imported NSS
filesystem, metadata and namespace code.
Public include roots
Consumers should receive include/nwfs as an include root and keep NSS
subdirectories in include names. Examples:
#include <quota.h>
#include <public/zXattr.h>
#include <include/nameSpace.h>
#include <comn/namespace/dosNSpace.h>
#include <comn/authsys/zasAuthModel.h>
Do not expose include/nwfs/public, include/nwfs/include, or similar
subdirectories as standalone public include roots. The subdirectory is part of
the include name.
Current scope
The active Mars-owned parts provide xattr metadata handling, quota helpers and filesystem tests. NSS namespace files are being imported bottom-up and are not all active yet.
API usage guidance
Mars code should prefer the active nwfs public headers for metadata and quota
operations. NSS namespace internals should remain internal until the full
Namespace, Beast and AdminVolume dependency chain is available.
NSS adaptation boundary
nwfs should expose NetWare/NSS semantics to Mars NWE, not embed a fake NSS
filesystem. NSS xattr, metadata, namespace and rights code may be imported as
provenance-preserving library code, but persistence must be mapped onto Mars
userspace storage: host filesystem xattrs, Mars metadata files, and generated
AdminVolume state.
See doc/NSS_USERSPACE_ADAPTATION.md for the project-wide boundary.