Clean up deleted files.
This commit is contained in:
parent
5058978f80
commit
c32809f0fe
@ -1,37 +0,0 @@
|
|||||||
# from: @(#)Makefile 2.3 88/08/11 4.0 RPCSRC
|
|
||||||
# $Id: Makefile,v 1.10 1993/10/01 00:22:14 jtc Exp $
|
|
||||||
|
|
||||||
.SUFFIXES: .x
|
|
||||||
|
|
||||||
RPCCOM = rpcgen
|
|
||||||
|
|
||||||
HDRS= klm_prot.h mount.h nfs_prot.h nlm_prot.h rex.h rnusers.h\
|
|
||||||
rquota.h rstat.h rwall.h sm_inter.h spray.h yppasswd.h yp.h
|
|
||||||
XFILES= bootparam_prot.x klm_prot.x mount.x nfs_prot.x nlm_prot.x \
|
|
||||||
rex.x rnusers.x rquota.x rstat.x rwall.x sm_inter.x spray.x \
|
|
||||||
yppasswd.x yp.x
|
|
||||||
HFILES= yp_prot.h ypclnt.h
|
|
||||||
|
|
||||||
CLEANFILES+= ${HDRS}
|
|
||||||
|
|
||||||
all: ${HDRS}
|
|
||||||
|
|
||||||
install: all
|
|
||||||
@echo "Creating RPC service headers directory"
|
|
||||||
@/bin/rm -rf ${DESTDIR}/usr/include/rpcsvc
|
|
||||||
@-mkdir ${DESTDIR}/usr/include/rpcsvc
|
|
||||||
@echo "Installing RPC service header and definition files"
|
|
||||||
@for i in $(XFILES); do \
|
|
||||||
(install -c -m 644 ${.CURDIR}/$$i ${DESTDIR}/usr/include/rpcsvc) done
|
|
||||||
@for i in $(HDRS); do \
|
|
||||||
(install ${COPY} -m 644 $$i ${DESTDIR}/usr/include/rpcsvc) done
|
|
||||||
@for i in $(HFILES); do \
|
|
||||||
(install -c -m 644 ${.CURDIR}/$$i ${DESTDIR}/usr/include/rpcsvc) done
|
|
||||||
@chown -R ${BINOWN}:${BINGRP} ${DESTDIR}/usr/include/rpcsvc
|
|
||||||
@chmod -R a-w ${DESTDIR}/usr/include/rpcsvc
|
|
||||||
|
|
||||||
.x.h:
|
|
||||||
@echo generating $@...
|
|
||||||
@PWD=`pwd` ; cd ${.CURDIR} ; ${RPCCOM} -h $*.x -o $$PWD/$@
|
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
|
@ -1,100 +0,0 @@
|
|||||||
/*
|
|
||||||
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
|
||||||
* unrestricted use provided that this legend is included on all tape
|
|
||||||
* media and as a part of the software program in whole or part. Users
|
|
||||||
* may copy or modify Sun RPC without charge, but are not authorized
|
|
||||||
* to license or distribute it to anyone else except as part of a product or
|
|
||||||
* program developed by the user.
|
|
||||||
*
|
|
||||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
|
||||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
|
||||||
*
|
|
||||||
* Sun RPC is provided with no support and without any obligation on the
|
|
||||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
|
||||||
* modification or enhancement.
|
|
||||||
*
|
|
||||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
|
||||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
|
||||||
* OR ANY PART THEREOF.
|
|
||||||
*
|
|
||||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
|
||||||
* or profits or other special, indirect and consequential damages, even if
|
|
||||||
* Sun has been advised of the possibility of such damages.
|
|
||||||
*
|
|
||||||
* Sun Microsystems, Inc.
|
|
||||||
* 2550 Garcia Avenue
|
|
||||||
* Mountain View, California 94043
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RPC for bootparms service.
|
|
||||||
* There are two procedures:
|
|
||||||
* WHOAMI takes a net address and returns a client name and also a
|
|
||||||
* likely net address for routing
|
|
||||||
* GETFILE takes a client name and file identifier and returns the
|
|
||||||
* server name, server net address and pathname for the file.
|
|
||||||
* file identifiers typically include root, swap, pub and dump
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef RPC_HDR
|
|
||||||
%#include <rpc/types.h>
|
|
||||||
%#include <sys/time.h>
|
|
||||||
%#include <sys/errno.h>
|
|
||||||
%#include <nfs/nfs.h>
|
|
||||||
#else
|
|
||||||
%#ifndef lint
|
|
||||||
%/*static char sccsid[] = "from: @(#)bootparam_prot.x 1.2 87/06/24 Copyr 1987 Sun Micro";*/
|
|
||||||
%/*static char sccsid[] = "from: @(#)bootparam_prot.x 2.1 88/08/01 4.0 RPCSRC";*/
|
|
||||||
%static char rcsid[] = "$Id: bootparam_prot.x,v 1.4 1993/08/03 21:53:13 mycroft Exp $";
|
|
||||||
%#endif /* not lint */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const MAX_MACHINE_NAME = 255;
|
|
||||||
const MAX_PATH_LEN = 1024;
|
|
||||||
const MAX_FILEID = 32;
|
|
||||||
const IP_ADDR_TYPE = 1;
|
|
||||||
|
|
||||||
typedef string bp_machine_name_t<MAX_MACHINE_NAME>;
|
|
||||||
typedef string bp_path_t<MAX_PATH_LEN>;
|
|
||||||
typedef string bp_fileid_t<MAX_FILEID>;
|
|
||||||
|
|
||||||
struct ip_addr_t {
|
|
||||||
char net;
|
|
||||||
char host;
|
|
||||||
char lh;
|
|
||||||
char impno;
|
|
||||||
};
|
|
||||||
|
|
||||||
union bp_address switch (int address_type) {
|
|
||||||
case IP_ADDR_TYPE:
|
|
||||||
ip_addr_t ip_addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct bp_whoami_arg {
|
|
||||||
bp_address client_address;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct bp_whoami_res {
|
|
||||||
bp_machine_name_t client_name;
|
|
||||||
bp_machine_name_t domain_name;
|
|
||||||
bp_address router_address;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct bp_getfile_arg {
|
|
||||||
bp_machine_name_t client_name;
|
|
||||||
bp_fileid_t file_id;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct bp_getfile_res {
|
|
||||||
bp_machine_name_t server_name;
|
|
||||||
bp_address server_address;
|
|
||||||
bp_path_t server_path;
|
|
||||||
};
|
|
||||||
|
|
||||||
program BOOTPARAMPROG {
|
|
||||||
version BOOTPARAMVERS {
|
|
||||||
bp_whoami_res BOOTPARAMPROC_WHOAMI(bp_whoami_arg) = 1;
|
|
||||||
bp_getfile_res BOOTPARAMPROC_GETFILE(bp_getfile_arg) = 2;
|
|
||||||
} = 1;
|
|
||||||
} = 100026;
|
|
@ -1,138 +0,0 @@
|
|||||||
/*
|
|
||||||
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
|
||||||
* unrestricted use provided that this legend is included on all tape
|
|
||||||
* media and as a part of the software program in whole or part. Users
|
|
||||||
* may copy or modify Sun RPC without charge, but are not authorized
|
|
||||||
* to license or distribute it to anyone else except as part of a product or
|
|
||||||
* program developed by the user.
|
|
||||||
*
|
|
||||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
|
||||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
|
||||||
*
|
|
||||||
* Sun RPC is provided with no support and without any obligation on the
|
|
||||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
|
||||||
* modification or enhancement.
|
|
||||||
*
|
|
||||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
|
||||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
|
||||||
* OR ANY PART THEREOF.
|
|
||||||
*
|
|
||||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
|
||||||
* or profits or other special, indirect and consequential damages, even if
|
|
||||||
* Sun has been advised of the possibility of such damages.
|
|
||||||
*
|
|
||||||
* Sun Microsystems, Inc.
|
|
||||||
* 2550 Garcia Avenue
|
|
||||||
* Mountain View, California 94043
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Kernel/lock manager protocol definition
|
|
||||||
* Copyright (C) 1986 Sun Microsystems, Inc.
|
|
||||||
*
|
|
||||||
* protocol used between the UNIX kernel (the "client") and the
|
|
||||||
* local lock manager. The local lock manager is a deamon running
|
|
||||||
* above the kernel.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef RPC_HDR
|
|
||||||
%#ifndef lint
|
|
||||||
%/*static char sccsid[] = "from: @(#)klm_prot.x 1.7 87/07/08 Copyr 1987 Sun Micro";*/
|
|
||||||
%/*static char sccsid[] = "from: @(#)klm_prot.x 2.1 88/08/01 4.0 RPCSRC";*/
|
|
||||||
%static char rcsid[] = "$Id: klm_prot.x,v 1.5 1993/08/03 21:53:16 mycroft Exp $";
|
|
||||||
%#endif /* not lint */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const LM_MAXSTRLEN = 1024;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* lock manager status returns
|
|
||||||
*/
|
|
||||||
enum klm_stats {
|
|
||||||
klm_granted = 0, /* lock is granted */
|
|
||||||
klm_denied = 1, /* lock is denied */
|
|
||||||
klm_denied_nolocks = 2, /* no lock entry available */
|
|
||||||
klm_working = 3 /* lock is being processed */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* lock manager lock identifier
|
|
||||||
*/
|
|
||||||
struct klm_lock {
|
|
||||||
string server_name<LM_MAXSTRLEN>;
|
|
||||||
netobj fh; /* a counted file handle */
|
|
||||||
int pid; /* holder of the lock */
|
|
||||||
unsigned l_offset; /* beginning offset of the lock */
|
|
||||||
unsigned l_len; /* byte length of the lock;
|
|
||||||
* zero means through end of file */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* lock holder identifier
|
|
||||||
*/
|
|
||||||
struct klm_holder {
|
|
||||||
bool exclusive; /* FALSE if shared lock */
|
|
||||||
int svid; /* holder of the lock (pid) */
|
|
||||||
unsigned l_offset; /* beginning offset of the lock */
|
|
||||||
unsigned l_len; /* byte length of the lock;
|
|
||||||
* zero means through end of file */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* reply to KLM_LOCK / KLM_UNLOCK / KLM_CANCEL
|
|
||||||
*/
|
|
||||||
struct klm_stat {
|
|
||||||
klm_stats stat;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* reply to a KLM_TEST call
|
|
||||||
*/
|
|
||||||
union klm_testrply switch (klm_stats stat) {
|
|
||||||
case klm_denied:
|
|
||||||
struct klm_holder holder;
|
|
||||||
default: /* All other cases return no arguments */
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* arguments to KLM_LOCK
|
|
||||||
*/
|
|
||||||
struct klm_lockargs {
|
|
||||||
bool block;
|
|
||||||
bool exclusive;
|
|
||||||
struct klm_lock alock;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* arguments to KLM_TEST
|
|
||||||
*/
|
|
||||||
struct klm_testargs {
|
|
||||||
bool exclusive;
|
|
||||||
struct klm_lock alock;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* arguments to KLM_UNLOCK
|
|
||||||
*/
|
|
||||||
struct klm_unlockargs {
|
|
||||||
struct klm_lock alock;
|
|
||||||
};
|
|
||||||
|
|
||||||
program KLM_PROG {
|
|
||||||
version KLM_VERS {
|
|
||||||
|
|
||||||
klm_testrply KLM_TEST (struct klm_testargs) = 1;
|
|
||||||
|
|
||||||
klm_stat KLM_LOCK (struct klm_lockargs) = 2;
|
|
||||||
|
|
||||||
klm_stat KLM_CANCEL (struct klm_lockargs) = 3;
|
|
||||||
/* klm_granted=> the cancel request fails due to lock is already granted */
|
|
||||||
/* klm_denied=> the cancel request successfully aborts
|
|
||||||
lock request */
|
|
||||||
|
|
||||||
klm_stat KLM_UNLOCK (struct klm_unlockargs) = 4;
|
|
||||||
} = 1;
|
|
||||||
} = 100020;
|
|
@ -1,165 +0,0 @@
|
|||||||
/*
|
|
||||||
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
|
||||||
* unrestricted use provided that this legend is included on all tape
|
|
||||||
* media and as a part of the software program in whole or part. Users
|
|
||||||
* may copy or modify Sun RPC without charge, but are not authorized
|
|
||||||
* to license or distribute it to anyone else except as part of a product or
|
|
||||||
* program developed by the user.
|
|
||||||
*
|
|
||||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
|
||||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
|
||||||
*
|
|
||||||
* Sun RPC is provided with no support and without any obligation on the
|
|
||||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
|
||||||
* modification or enhancement.
|
|
||||||
*
|
|
||||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
|
||||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
|
||||||
* OR ANY PART THEREOF.
|
|
||||||
*
|
|
||||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
|
||||||
* or profits or other special, indirect and consequential damages, even if
|
|
||||||
* Sun has been advised of the possibility of such damages.
|
|
||||||
*
|
|
||||||
* Sun Microsystems, Inc.
|
|
||||||
* 2550 Garcia Avenue
|
|
||||||
* Mountain View, California 94043
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Protocol description for the mount program
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef RPC_HDR
|
|
||||||
%#ifndef lint
|
|
||||||
%/*static char sccsid[] = "from: @(#)mount.x 1.2 87/09/18 Copyr 1987 Sun Micro";*/
|
|
||||||
%/*static char sccsid[] = "from: @(#)mount.x 2.1 88/08/01 4.0 RPCSRC";*/
|
|
||||||
%static char rcsid[] = "$Id: mount.x,v 1.4 1993/08/03 21:53:18 mycroft Exp $";
|
|
||||||
%#endif /* not lint */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const MNTPATHLEN = 1024; /* maximum bytes in a pathname argument */
|
|
||||||
const MNTNAMLEN = 255; /* maximum bytes in a name argument */
|
|
||||||
const FHSIZE = 32; /* size in bytes of a file handle */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The fhandle is the file handle that the server passes to the client.
|
|
||||||
* All file operations are done using the file handles to refer to a file
|
|
||||||
* or a directory. The file handle can contain whatever information the
|
|
||||||
* server needs to distinguish an individual file.
|
|
||||||
*/
|
|
||||||
typedef opaque fhandle[FHSIZE];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If a status of zero is returned, the call completed successfully, and
|
|
||||||
* a file handle for the directory follows. A non-zero status indicates
|
|
||||||
* some sort of error. The status corresponds with UNIX error numbers.
|
|
||||||
*/
|
|
||||||
union fhstatus switch (unsigned fhs_status) {
|
|
||||||
case 0:
|
|
||||||
fhandle fhs_fhandle;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The type dirpath is the pathname of a directory
|
|
||||||
*/
|
|
||||||
typedef string dirpath<MNTPATHLEN>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The type name is used for arbitrary names (hostnames, groupnames)
|
|
||||||
*/
|
|
||||||
typedef string name<MNTNAMLEN>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A list of who has what mounted
|
|
||||||
*/
|
|
||||||
typedef struct mountbody *mountlist;
|
|
||||||
struct mountbody {
|
|
||||||
name ml_hostname;
|
|
||||||
dirpath ml_directory;
|
|
||||||
mountlist ml_next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A list of netgroups
|
|
||||||
*/
|
|
||||||
typedef struct groupnode *groups;
|
|
||||||
struct groupnode {
|
|
||||||
name gr_name;
|
|
||||||
groups gr_next;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* A list of what is exported and to whom
|
|
||||||
*/
|
|
||||||
typedef struct exportnode *exports;
|
|
||||||
struct exportnode {
|
|
||||||
dirpath ex_dir;
|
|
||||||
groups ex_groups;
|
|
||||||
exports ex_next;
|
|
||||||
};
|
|
||||||
|
|
||||||
program MOUNTPROG {
|
|
||||||
/*
|
|
||||||
* Version one of the mount protocol communicates with version two
|
|
||||||
* of the NFS protocol. The only connecting point is the fhandle
|
|
||||||
* structure, which is the same for both protocols.
|
|
||||||
*/
|
|
||||||
version MOUNTVERS {
|
|
||||||
/*
|
|
||||||
* Does no work. It is made available in all RPC services
|
|
||||||
* to allow server reponse testing and timing
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
MOUNTPROC_NULL(void) = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If fhs_status is 0, then fhs_fhandle contains the
|
|
||||||
* file handle for the directory. This file handle may
|
|
||||||
* be used in the NFS protocol. This procedure also adds
|
|
||||||
* a new entry to the mount list for this client mounting
|
|
||||||
* the directory.
|
|
||||||
* Unix authentication required.
|
|
||||||
*/
|
|
||||||
fhstatus
|
|
||||||
MOUNTPROC_MNT(dirpath) = 1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns the list of remotely mounted filesystems. The
|
|
||||||
* mountlist contains one entry for each hostname and
|
|
||||||
* directory pair.
|
|
||||||
*/
|
|
||||||
mountlist
|
|
||||||
MOUNTPROC_DUMP(void) = 2;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Removes the mount list entry for the directory
|
|
||||||
* Unix authentication required.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
MOUNTPROC_UMNT(dirpath) = 3;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Removes all of the mount list entries for this client
|
|
||||||
* Unix authentication required.
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
MOUNTPROC_UMNTALL(void) = 4;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns a list of all the exported filesystems, and which
|
|
||||||
* machines are allowed to import it.
|
|
||||||
*/
|
|
||||||
exports
|
|
||||||
MOUNTPROC_EXPORT(void) = 5;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Identical to MOUNTPROC_EXPORT above
|
|
||||||
*/
|
|
||||||
exports
|
|
||||||
MOUNTPROC_EXPORTALL(void) = 6;
|
|
||||||
} = 1;
|
|
||||||
} = 100005;
|
|
@ -1,357 +0,0 @@
|
|||||||
/*
|
|
||||||
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
|
||||||
* unrestricted use provided that this legend is included on all tape
|
|
||||||
* media and as a part of the software program in whole or part. Users
|
|
||||||
* may copy or modify Sun RPC without charge, but are not authorized
|
|
||||||
* to license or distribute it to anyone else except as part of a product or
|
|
||||||
* program developed by the user.
|
|
||||||
*
|
|
||||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
|
||||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
|
||||||
*
|
|
||||||
* Sun RPC is provided with no support and without any obligation on the
|
|
||||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
|
||||||
* modification or enhancement.
|
|
||||||
*
|
|
||||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
|
||||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
|
||||||
* OR ANY PART THEREOF.
|
|
||||||
*
|
|
||||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
|
||||||
* or profits or other special, indirect and consequential damages, even if
|
|
||||||
* Sun has been advised of the possibility of such damages.
|
|
||||||
*
|
|
||||||
* Sun Microsystems, Inc.
|
|
||||||
* 2550 Garcia Avenue
|
|
||||||
* Mountain View, California 94043
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef RPC_HDR
|
|
||||||
%#ifndef lint
|
|
||||||
%/*static char sccsid[] = "from: @(#)nfs_prot.x 1.2 87/10/12 Copyr 1987 Sun Micro";*/
|
|
||||||
%/*static char sccsid[] = "from: @(#)nfs_prot.x 2.1 88/08/01 4.0 RPCSRC";*/
|
|
||||||
%static char rcsid[] = "$Id: nfs_prot.x,v 1.4 1993/08/03 21:53:20 mycroft Exp $";
|
|
||||||
%#endif /* not lint */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const NFS_PORT = 2049;
|
|
||||||
const NFS_MAXDATA = 8192;
|
|
||||||
const NFS_MAXPATHLEN = 1024;
|
|
||||||
const NFS_MAXNAMLEN = 255;
|
|
||||||
const NFS_FHSIZE = 32;
|
|
||||||
const NFS_COOKIESIZE = 4;
|
|
||||||
const NFS_FIFO_DEV = -1; /* size kludge for named pipes */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* File types
|
|
||||||
*/
|
|
||||||
const NFSMODE_FMT = 0170000; /* type of file */
|
|
||||||
const NFSMODE_DIR = 0040000; /* directory */
|
|
||||||
const NFSMODE_CHR = 0020000; /* character special */
|
|
||||||
const NFSMODE_BLK = 0060000; /* block special */
|
|
||||||
const NFSMODE_REG = 0100000; /* regular */
|
|
||||||
const NFSMODE_LNK = 0120000; /* symbolic link */
|
|
||||||
const NFSMODE_SOCK = 0140000; /* socket */
|
|
||||||
const NFSMODE_FIFO = 0010000; /* fifo */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Error status
|
|
||||||
*/
|
|
||||||
enum nfsstat {
|
|
||||||
NFS_OK= 0, /* no error */
|
|
||||||
NFSERR_PERM=1, /* Not owner */
|
|
||||||
NFSERR_NOENT=2, /* No such file or directory */
|
|
||||||
NFSERR_IO=5, /* I/O error */
|
|
||||||
NFSERR_NXIO=6, /* No such device or address */
|
|
||||||
NFSERR_ACCES=13, /* Permission denied */
|
|
||||||
NFSERR_EXIST=17, /* File exists */
|
|
||||||
NFSERR_NODEV=19, /* No such device */
|
|
||||||
NFSERR_NOTDIR=20, /* Not a directory*/
|
|
||||||
NFSERR_ISDIR=21, /* Is a directory */
|
|
||||||
NFSERR_FBIG=27, /* File too large */
|
|
||||||
NFSERR_NOSPC=28, /* No space left on device */
|
|
||||||
NFSERR_ROFS=30, /* Read-only file system */
|
|
||||||
NFSERR_NAMETOOLONG=63, /* File name too long */
|
|
||||||
NFSERR_NOTEMPTY=66, /* Directory not empty */
|
|
||||||
NFSERR_DQUOT=69, /* Disc quota exceeded */
|
|
||||||
NFSERR_STALE=70, /* Stale NFS file handle */
|
|
||||||
NFSERR_WFLUSH=99 /* write cache flushed */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* File types
|
|
||||||
*/
|
|
||||||
enum ftype {
|
|
||||||
NFNON = 0, /* non-file */
|
|
||||||
NFREG = 1, /* regular file */
|
|
||||||
NFDIR = 2, /* directory */
|
|
||||||
NFBLK = 3, /* block special */
|
|
||||||
NFCHR = 4, /* character special */
|
|
||||||
NFLNK = 5, /* symbolic link */
|
|
||||||
NFSOCK = 6, /* unix domain sockets */
|
|
||||||
NFBAD = 7, /* unused */
|
|
||||||
NFFIFO = 8 /* named pipe */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* File access handle
|
|
||||||
*/
|
|
||||||
struct nfs_fh {
|
|
||||||
opaque data[NFS_FHSIZE];
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Timeval
|
|
||||||
*/
|
|
||||||
struct nfstime {
|
|
||||||
unsigned seconds;
|
|
||||||
unsigned useconds;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* File attributes
|
|
||||||
*/
|
|
||||||
struct fattr {
|
|
||||||
ftype type; /* file type */
|
|
||||||
unsigned mode; /* protection mode bits */
|
|
||||||
unsigned nlink; /* # hard links */
|
|
||||||
unsigned uid; /* owner user id */
|
|
||||||
unsigned gid; /* owner group id */
|
|
||||||
unsigned size; /* file size in bytes */
|
|
||||||
unsigned blocksize; /* prefered block size */
|
|
||||||
unsigned rdev; /* special device # */
|
|
||||||
unsigned blocks; /* Kb of disk used by file */
|
|
||||||
unsigned fsid; /* device # */
|
|
||||||
unsigned fileid; /* inode # */
|
|
||||||
nfstime atime; /* time of last access */
|
|
||||||
nfstime mtime; /* time of last modification */
|
|
||||||
nfstime ctime; /* time of last change */
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* File attributes which can be set
|
|
||||||
*/
|
|
||||||
struct sattr {
|
|
||||||
unsigned mode; /* protection mode bits */
|
|
||||||
unsigned uid; /* owner user id */
|
|
||||||
unsigned gid; /* owner group id */
|
|
||||||
unsigned size; /* file size in bytes */
|
|
||||||
nfstime atime; /* time of last access */
|
|
||||||
nfstime mtime; /* time of last modification */
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef string filename<NFS_MAXNAMLEN>;
|
|
||||||
typedef string nfspath<NFS_MAXPATHLEN>;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Reply status with file attributes
|
|
||||||
*/
|
|
||||||
union attrstat switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
fattr attributes;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct sattrargs {
|
|
||||||
nfs_fh file;
|
|
||||||
sattr attributes;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Arguments for directory operations
|
|
||||||
*/
|
|
||||||
struct diropargs {
|
|
||||||
nfs_fh dir; /* directory file handle */
|
|
||||||
filename name; /* name (up to NFS_MAXNAMLEN bytes) */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct diropokres {
|
|
||||||
nfs_fh file;
|
|
||||||
fattr attributes;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Results from directory operation
|
|
||||||
*/
|
|
||||||
union diropres switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
diropokres diropres;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
union readlinkres switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
nfspath data;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Arguments to remote read
|
|
||||||
*/
|
|
||||||
struct readargs {
|
|
||||||
nfs_fh file; /* handle for file */
|
|
||||||
unsigned offset; /* byte offset in file */
|
|
||||||
unsigned count; /* immediate read count */
|
|
||||||
unsigned totalcount; /* total read count (from this offset)*/
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Status OK portion of remote read reply
|
|
||||||
*/
|
|
||||||
struct readokres {
|
|
||||||
fattr attributes; /* attributes, need for pagin*/
|
|
||||||
opaque data<NFS_MAXDATA>;
|
|
||||||
};
|
|
||||||
|
|
||||||
union readres switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
readokres reply;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Arguments to remote write
|
|
||||||
*/
|
|
||||||
struct writeargs {
|
|
||||||
nfs_fh file; /* handle for file */
|
|
||||||
unsigned beginoffset; /* beginning byte offset in file */
|
|
||||||
unsigned offset; /* current byte offset in file */
|
|
||||||
unsigned totalcount; /* total write count (to this offset)*/
|
|
||||||
opaque data<NFS_MAXDATA>;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct createargs {
|
|
||||||
diropargs where;
|
|
||||||
sattr attributes;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct renameargs {
|
|
||||||
diropargs from;
|
|
||||||
diropargs to;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct linkargs {
|
|
||||||
nfs_fh from;
|
|
||||||
diropargs to;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct symlinkargs {
|
|
||||||
diropargs from;
|
|
||||||
nfspath to;
|
|
||||||
sattr attributes;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef opaque nfscookie[NFS_COOKIESIZE];
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Arguments to readdir
|
|
||||||
*/
|
|
||||||
struct readdirargs {
|
|
||||||
nfs_fh dir; /* directory handle */
|
|
||||||
nfscookie cookie;
|
|
||||||
unsigned count; /* number of directory bytes to read */
|
|
||||||
};
|
|
||||||
|
|
||||||
struct entry {
|
|
||||||
unsigned fileid;
|
|
||||||
filename name;
|
|
||||||
nfscookie cookie;
|
|
||||||
entry *nextentry;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct dirlist {
|
|
||||||
entry *entries;
|
|
||||||
bool eof;
|
|
||||||
};
|
|
||||||
|
|
||||||
union readdirres switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
dirlist reply;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct statfsokres {
|
|
||||||
unsigned tsize; /* preferred transfer size in bytes */
|
|
||||||
unsigned bsize; /* fundamental file system block size */
|
|
||||||
unsigned blocks; /* total blocks in file system */
|
|
||||||
unsigned bfree; /* free blocks in fs */
|
|
||||||
unsigned bavail; /* free blocks avail to non-superuser */
|
|
||||||
};
|
|
||||||
|
|
||||||
union statfsres switch (nfsstat status) {
|
|
||||||
case NFS_OK:
|
|
||||||
statfsokres reply;
|
|
||||||
default:
|
|
||||||
void;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Remote file service routines
|
|
||||||
*/
|
|
||||||
program NFS_PROGRAM {
|
|
||||||
version NFS_VERSION {
|
|
||||||
void
|
|
||||||
NFSPROC_NULL(void) = 0;
|
|
||||||
|
|
||||||
attrstat
|
|
||||||
NFSPROC_GETATTR(nfs_fh) = 1;
|
|
||||||
|
|
||||||
attrstat
|
|
||||||
NFSPROC_SETATTR(sattrargs) = 2;
|
|
||||||
|
|
||||||
void
|
|
||||||
NFSPROC_ROOT(void) = 3;
|
|
||||||
|
|
||||||
diropres
|
|
||||||
NFSPROC_LOOKUP(diropargs) = 4;
|
|
||||||
|
|
||||||
readlinkres
|
|
||||||
NFSPROC_READLINK(nfs_fh) = 5;
|
|
||||||
|
|
||||||
readres
|
|
||||||
NFSPROC_READ(readargs) = 6;
|
|
||||||
|
|
||||||
void
|
|
||||||
NFSPROC_WRITECACHE(void) = 7;
|
|
||||||
|
|
||||||
attrstat
|
|
||||||
NFSPROC_WRITE(writeargs) = 8;
|
|
||||||
|
|
||||||
diropres
|
|
||||||
NFSPROC_CREATE(createargs) = 9;
|
|
||||||
|
|
||||||
nfsstat
|
|
||||||
NFSPROC_REMOVE(diropargs) = 10;
|
|
||||||
|
|
||||||
nfsstat
|
|
||||||
NFSPROC_RENAME(renameargs) = 11;
|
|
||||||
|
|
||||||
nfsstat
|
|
||||||
NFSPROC_LINK(linkargs) = 12;
|
|
||||||
|
|
||||||
nfsstat
|
|
||||||
NFSPROC_SYMLINK(symlinkargs) = 13;
|
|
||||||
|
|
||||||
diropres
|
|
||||||
NFSPROC_MKDIR(createargs) = 14;
|
|
||||||
|
|
||||||
nfsstat
|
|
||||||
NFSPROC_RMDIR(diropargs) = 15;
|
|
||||||
|
|
||||||
readdirres
|
|
||||||
NFSPROC_READDIR(readdirargs) = 16;
|
|
||||||
|
|
||||||
statfsres
|
|
||||||
NFSPROC_STATFS(nfs_fh) = 17;
|
|
||||||
} = 2;
|
|
||||||
} = 100003;
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user