diff options
Diffstat (limited to 'winsup/cygwin/local_includes/nfs.h')
-rw-r--r-- | winsup/cygwin/local_includes/nfs.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/winsup/cygwin/local_includes/nfs.h b/winsup/cygwin/local_includes/nfs.h new file mode 100644 index 000000000..cd7ffa039 --- /dev/null +++ b/winsup/cygwin/local_includes/nfs.h @@ -0,0 +1,63 @@ +/* nfs.h + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +#define NFS_ACT_ON_LINK "NfsActOnLink" +#define NFS_SYML_TARGET "NfsSymlinkTargetName" +#define NFS_V3_ATTR "NfsV3Attributes" + +/* NFS datastructures per RFC 1813, as returned by SFU NFS. */ + +enum ftype3 { + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7 +}; + +#pragma pack (push, 4) +struct nfs_timestruc_t +{ + int32_t tv_sec; + uint32_t tv_nsec; +}; + +struct fattr3 { + uint32_t type; + uint32_t mode; + uint32_t nlink; + uint32_t uid; + uint32_t gid; + uint32_t filler1; + uint64_t size; + uint64_t used; + struct + { + uint32_t specdata1; + uint32_t specdata2; + } rdev; + uint64_t fsid; + uint64_t fileid; + struct nfs_timestruc_t atime; + struct nfs_timestruc_t mtime; + struct nfs_timestruc_t ctime; +}; +#pragma pack (pop) + +struct nfs_aol_ffei_t { + ULONG NextEntryOffset; + UCHAR Flags; + UCHAR EaNameLength; + USHORT EaValueLength; + CHAR EaName[sizeof (NFS_ACT_ON_LINK)]; +}; +extern struct nfs_aol_ffei_t nfs_aol_ffei; + +extern uint32_t nfs_type_mapping[]; + +extern NTSTATUS nfs_fetch_fattr3 (HANDLE h, fattr3 *fattr_buf); |