Copyright (C) 1994, Digital Equipment Corp.
INTERFACE Umnt;
FROM Unix IMPORT MaxPathLen;
FROM Ctypes IMPORT char_star, int, short, unsigned_int, unsigned_int_star;
TYPE
fs_data = RECORD
fd_req: fs_data_req; (* required data *)
fd_spare: ARRAY [0..111] OF unsigned_int;
END;
dev_t = short;
fs_data_req = RECORD
flags: unsigned_int; (* how mounted *)
mtsize: unsigned_int; (* max transfer size in bytes *)
otsize: unsigned_int; (* optimal transfer size in bytes *)
bsize: unsigned_int; (* fs block size in bytes for vm code *)
fstype: unsigned_int; (* see ../h/fs_types.h *)
gtot: unsigned_int; (* total number of gnodes *)
gfree: unsigned_int; (* # of free gnodes *)
btot: unsigned_int; (* total number of 1K blocks *)
bfree: unsigned_int; (* # of free 1K blocks *)
bfreen: unsigned_int; (* user consumable 1K blocks *)
pgthresh: unsigned_int; (* min size in bytes before paging *)
uid: int; (* uid that mounted me *)
dev: dev_t; (* major/minor of fs *)
exroot: short; (* root mapping from exports *)
devname: ARRAY [0..MaxPathLen+4] OF CHAR; (* name of dev *)
path: ARRAY [0..MaxPathLen+4] OF CHAR; (* name of mount point *)
updates: unsigned_int; (* number of writes *)
END;
fs_data_star = UNTRACED REF fs_data;
CONST (* values for mode argument *)
NOSTAT_MANY = 1;
STAT_MANY = 2;
STAT_ONE = 3;
NOSTAT_ONE = 4;
STAT_FD = 5;
NOSTAT_FD = 6;
CONST (* flags in fd_data_req.flags *)
M_RONLY = 16_0001;
M_MOD = 16_0002;
M_QUOTA = 16_0004;
M_LOCAL = 16_0008;
M_NOEXEC = 16_0010;
M_NOSUID = 16_0020;
M_NODEV = 16_0040;
M_FORCE = 16_0080;
M_SYNC = 16_0100;
M_DONE = 16_0200;
M_NOCACHE = 16_0400;
M_EXPORTED = 16_0800; (* export flag *)
M_NOFH = 16_1000; (* no fhandle flag *)
M_EXRONLY = 16_2000; (* export read-only *)
<*EXTERNAL*> PROCEDURE getmnt (
start: unsigned_int_star;
buffer: fs_data_star;
nbytes, mode: int;
path: char_star) : int;
END Umnt.