|
|
1.1 ! root 1: /* ! 2: * $Id: amq.x,v 5.2 90/06/23 22:20:11 jsp Rel $ ! 3: * ! 4: * Copyright (c) 1990 Jan-Simon Pendry ! 5: * Copyright (c) 1990 Imperial College of Science, Technology & Medicine ! 6: * Copyright (c) 1990 The Regents of the University of California. ! 7: * All rights reserved. ! 8: * ! 9: * This code is derived from software contributed to Berkeley by ! 10: * Jan-Simon Pendry at Imperial College, London. ! 11: * ! 12: * Redistribution and use in source and binary forms are permitted provided ! 13: * that: (1) source distributions retain this entire copyright notice and ! 14: * comment, and (2) distributions including binaries display the following ! 15: * acknowledgement: ``This product includes software developed by the ! 16: * University of California, Berkeley and its contributors'' in the ! 17: * documentation or other materials provided with the distribution and in ! 18: * all advertising materials mentioning features or use of this software. ! 19: * Neither the name of the University nor the names of its contributors may ! 20: * be used to endorse or promote products derived from this software without ! 21: * specific prior written permission. ! 22: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 23: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 24: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 25: * ! 26: * @(#)amq.x 5.1 (Berkeley) 7/19/90 ! 27: */ ! 28: ! 29: /* ! 30: * Protocol description used by the amq program ! 31: */ ! 32: ! 33: const AMQ_STRLEN = 1024; /* Maximum length of a pathname */ ! 34: ! 35: /* ! 36: * The type dirpath is the pathname of a directory ! 37: */ ! 38: typedef string amq_string<AMQ_STRLEN>; ! 39: ! 40: /* ! 41: * The type time_type should correspond to the system time_t ! 42: */ ! 43: typedef long time_type; ! 44: ! 45: /* ! 46: * A tree of what is mounted ! 47: */ ! 48: struct amq_mount_tree { ! 49: amq_string mt_mountinfo; /* Mounted filesystem */ ! 50: amq_string mt_directory; /* Virtual mount */ ! 51: amq_string mt_mountpoint; /* Mount point */ ! 52: amq_string mt_type; /* Filesystem type */ ! 53: time_type mt_mounttime; /* Mount time */ ! 54: u_short mt_mountuid; /* Mounter */ ! 55: int mt_getattr; /* Count of getattrs */ ! 56: int mt_lookup; /* Count of lookups */ ! 57: int mt_readdir; /* Count of readdirs */ ! 58: int mt_readlink; /* Count of readlinks */ ! 59: int mt_statfs; /* Count of statfss */ ! 60: amq_mount_tree *mt_next; /* Sibling mount tree */ ! 61: amq_mount_tree *mt_child; /* Child mount tree */ ! 62: }; ! 63: typedef amq_mount_tree *amq_mount_tree_p; ! 64: ! 65: /* ! 66: * List of mounted filesystems ! 67: */ ! 68: struct amq_mount_info { ! 69: amq_string mi_type; /* Type of mount */ ! 70: amq_string mi_mountpt; /* Mount point */ ! 71: amq_string mi_mountinfo; /* Mount info */ ! 72: amq_string mi_fserver; /* Fileserver */ ! 73: int mi_error; /* Error code */ ! 74: int mi_refc; /* References */ ! 75: int mi_up; /* Filesystem available */ ! 76: }; ! 77: typedef amq_mount_info amq_mount_info_list<>; ! 78: ! 79: /* ! 80: * A list of mount trees ! 81: */ ! 82: typedef amq_mount_tree_p amq_mount_tree_list<>; ! 83: ! 84: /* ! 85: * System wide stats ! 86: */ ! 87: struct amq_mount_stats { ! 88: int as_drops; /* Dropped requests */ ! 89: int as_stale; /* Stale NFS handles */ ! 90: int as_mok; /* Succesful mounts */ ! 91: int as_merr; /* Failed mounts */ ! 92: int as_uerr; /* Failed unmounts */ ! 93: }; ! 94: ! 95: enum amq_opt { ! 96: AMOPT_DEBUG=0, ! 97: AMOPT_LOGFILE=1, ! 98: AMOPT_XLOG=2, ! 99: AMOPT_FLUSHMAPC=3 ! 100: }; ! 101: ! 102: struct amq_setopt { ! 103: amq_opt as_opt; /* Option */ ! 104: amq_string as_str; /* String */ ! 105: }; ! 106: ! 107: program AMQ_PROGRAM { ! 108: version AMQ_VERSION { ! 109: /* ! 110: * Does no work. It is made available in all RPC services ! 111: * to allow server reponse testing and timing ! 112: */ ! 113: void ! 114: AMQPROC_NULL(void) = 0; ! 115: ! 116: /* ! 117: * Returned the mount tree descending from ! 118: * the given directory. The directory must ! 119: * be a top-level mount point of the automounter. ! 120: */ ! 121: amq_mount_tree_p ! 122: AMQPROC_MNTTREE(amq_string) = 1; ! 123: ! 124: /* ! 125: * Force a timeout unmount on the specified directory. ! 126: */ ! 127: void ! 128: AMQPROC_UMNT(amq_string) = 2; ! 129: ! 130: /* ! 131: * Obtain system wide statistics from the automounter ! 132: */ ! 133: amq_mount_stats ! 134: AMQPROC_STATS(void) = 3; ! 135: ! 136: /* ! 137: * Obtain full tree ! 138: */ ! 139: amq_mount_tree_list ! 140: AMQPROC_EXPORT(void) = 4; ! 141: ! 142: /* ! 143: * Control debug options. ! 144: * Return status: ! 145: * -1: debug not available ! 146: * 0: everything wonderful ! 147: * >0: number of options not recognised ! 148: */ ! 149: int ! 150: AMQPROC_SETOPT(amq_setopt) = 5; ! 151: ! 152: /* ! 153: * List of mounted filesystems ! 154: */ ! 155: amq_mount_info_list ! 156: AMQPROC_GETMNTFS(void) = 6; ! 157: } = 1; ! 158: } = 300019; /* Allocated by Sun, 89/8/29 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.