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