YggNFS.mesa
Copyright Ó 1988, 1989 by Xerox Corporation. All rights reserved.
Bob Hagmann February 8, 1989 9:23:32 am PST
This interface is the interal interface to Yggdrasil for NFS remote access. The RPC access to a Yggdrasil server is a thin layer over this interface.
DIRECTORY
SunMount,
SunNFS;
YggNFS: CEDAR DEFINITIONS
~ BEGIN OPEN SunMount, SunNFS;
Types
EachDirEntryProc: TYPE ~ PROC [fileid: CARD, filename: -- ephemeral -- FileName]
RETURNS [accept: BOOL, continue: BOOLTRUE];
BadProps: ERROR [stat: SunNFS.Stat];
File mode stuff
typeBits: CARD ~ 0170000B; -- file type bits
regularModeBits: CARD ~ 0100000B;
symbolicLinkModeBits: CARD ~ 0120000B;
directoryModeBits: CARD ~ 040000B;
accessBits: CARD ~ 07777B; -- includes suid, sgid
suidBit: CARD ~ 04000B;
sgidBit: CARD ~ 02000B;
saveSwappedTextBit: CARD ~ 01000B;
ownerRBit: CARD ~ 0400B;
ownerWBit: CARD ~ 0200B;
ownerXBit: CARD ~ 0100B;
groupRWBits: CARD ~ 060B;
groupRBit: CARD ~ 040B;
groupWBit: CARD ~ 020B;
groupXBit: CARD ~ 010B;
otherRBit: CARD ~ 04B;
otherWBit: CARD ~ 02B;
otherXBit: CARD ~ 01B;
NFS Procedures
Getattr: PROC [file: FHandle] RETURNS [reply: AttrStat];
Setattr: PROC [file: FHandle, attributes: SAttr] RETURNS [reply: AttrStat];
Lookup: PROC [which: DirOpArgs] RETURNS [reply: DirOpRes];
Readlink: PROC [file: FHandle] RETURNS [status: Stat, data: Path];
Read: PROC [file: FHandle, offset, count: CARD, block: REF TEXT] RETURNS [reply: AttrStat];
Write: PROC [file: FHandle, offset, count: CARD, block: REF TEXT] RETURNS [reply: AttrStat];
Create: PROC [where: DirOpArgs, attributes: SAttr] RETURNS [reply: DirOpRes];
Remove: PROC [which: DirOpArgs] RETURNS [status: Stat];
Rename: PROC [from, to: DirOpArgs] RETURNS [status: Stat];
Link: PROC [to: FHandle, as: DirOpArgs] RETURNS [status: Stat];
Symlink: PROC [from: DirOpArgs, to: Path, attributes: SAttr] RETURNS [status: Stat];
Mkdir: PROC [where: DirOpArgs, attributes: SAttr] RETURNS [reply: DirOpRes];
Rmdir: PROC [which: DirOpArgs] RETURNS [status: Stat];
Readdir: PROC [dir: FHandle, cookie: Cookie ← NIL, count: CARD, eachDirEntry: EachDirEntryProc] RETURNS [status: Stat, eof: BOOL, newCookie: Cookie];
EachDirEntry: PROC [fileid: CARD, filename: -- ephemeral -- FileName] RETURNS [continue: BOOLTRUE];
Statfs: PROC [file: FHandle] RETURNS [reply: FSAttrStat];
Mount Protocol
Mnt: PROC [directory: Path] RETURNS [reply: FHStatus];
Dump: PROC [eachMount: EachMountProc];
Umnt: PROC [directory: Path];
Umntall: PROC [];
Export: PROC [eachExport: EachExportProc, eachGroup: EachGroupProc];
Administrative
MakeFileSystem: PROC RETURNS [alreadyExists: BOOL];
END.