util: Remove remote.h
authorSimon Wilkinson <sxw@your-file-system.com>
Wed, 16 Mar 2011 17:42:59 +0000 (17:42 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 18 Mar 2011 03:34:00 +0000 (20:34 -0700)
remote.h is no longer used anywhere within the tree, and defines an
interface that has never been provided by OpenAFS. Remove it.

Change-Id: Id1007364f073c3bc2751491df371f51a37059381
Reviewed-on: http://gerrit.openafs.org/4249
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/util/Makefile.in
src/util/remote.h [deleted file]

index 3c53311..660f489 100644 (file)
@@ -55,7 +55,6 @@ includes = \
        ${TOP_INCDIR}/afs/afs_assert.h \
        ${TOP_INCDIR}/afs/errors.h \
        ${TOP_INCDIR}/afs/vice.h \
-       ${TOP_INCDIR}/afs/remote.h \
        ${TOP_INCDIR}/afs/ktime.h \
        ${TOP_INCDIR}/afs/fileutil.h \
        ${TOP_INCDIR}/afs/netutils.h \
@@ -98,9 +97,6 @@ ${TOP_INCDIR}/afs/errors.h: ${srcdir}/errors.h
 ${TOP_INCDIR}/afs/vice.h: ${srcdir}/vice.h
        ${INSTALL_DATA} $? $@
 
-${TOP_INCDIR}/afs/remote.h: ${srcdir}/remote.h
-       ${INSTALL_DATA} $? $@
-
 ${TOP_INCDIR}/afs/ktime.h: ${srcdir}/ktime.h
        ${INSTALL_DATA} $? $@
 
@@ -292,7 +288,6 @@ install: dirpath.h util.a util_pic.a sys
        ${INSTALL_DATA} ${srcdir}/afs_assert.h ${DESTDIR}${includedir}/afs/afs_assert.h
        ${INSTALL_DATA} ${srcdir}/errors.h ${DESTDIR}${includedir}/afs/errors.h
        ${INSTALL_DATA} ${srcdir}/vice.h ${DESTDIR}${includedir}/afs/vice.h
-       ${INSTALL_DATA} ${srcdir}/remote.h ${DESTDIR}${includedir}/afs/remote.h
        ${INSTALL_DATA} ${srcdir}/ktime.h ${DESTDIR}${includedir}/afs/ktime.h
        ${INSTALL_DATA} ${srcdir}/fileutil.h ${DESTDIR}${includedir}/afs/fileutil.h
        ${INSTALL_DATA} ${srcdir}/netutils.h ${DESTDIR}${includedir}/afs/netutils.h
@@ -321,7 +316,6 @@ dest: dirpath.h util.a util_pic.a sys
        ${INSTALL_DATA} ${srcdir}/afs_assert.h ${DEST}/include/afs/afs_assert.h
        ${INSTALL_DATA} ${srcdir}/errors.h ${DEST}/include/afs/errors.h
        ${INSTALL_DATA} ${srcdir}/vice.h ${DEST}/include/afs/vice.h
-       ${INSTALL_DATA} ${srcdir}/remote.h ${DEST}/include/afs/remote.h
        ${INSTALL_DATA} ${srcdir}/ktime.h ${DEST}/include/afs/ktime.h
        ${INSTALL_DATA} ${srcdir}/fileutil.h ${DEST}/include/afs/fileutil.h
        ${INSTALL_DATA} ${srcdir}/netutils.h ${DEST}/include/afs/netutils.h
diff --git a/src/util/remote.h b/src/util/remote.h
deleted file mode 100644 (file)
index d302faa..0000000
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- *
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*
- * In which the structures needed to facilitate interception of file system
- * related system calls by a user process ("agent", or "venus").
- */
-
-#define RT_VERSION     3       /* Version number, should be incremented
-                                * before incompatible changes are released */
-/*
- *      Version 1 - April 4/84.
- *     Version 2 - May 4/84.
- *      Version 3 - May 30/85.
- *      Version 4 - June 19/85.
- */
-
-/* Maximum number of arguments to a system call */
-#define RT_MAX_ARGS            ( (sizeof u.u_arg) / (sizeof (int)) )
-
-#ifndef        KERNEL
-extern struct user u;
-#endif /* KERNEL */
-/* Maximum size of combined string or structure arguments passed between
-   the kernel and a venus */
-#define RT_MAXDATASIZE         (MAXPATHLEN*2)
-
-/* The format of the message passed between Venus and the kernel */
-struct intercept_message {
-    u_short im_type;           /* Message type */
-    u_short im_dsize;          /* Number of bytes in im_data */
-    int im_client;             /* The process id of the client side of the
-                                * transaction */
-    short im_uid;              /* The effective user id of the client */
-    short im_gid;              /* The effective group id of the client */
-    int im_seq;                        /* The sequence number of this transaction.
-                                * Never 0 */
-    afs_int32 im_wdfid[3];     /* Current directory on the remote file system
-                                * Vice II only. */
-    int im_error;              /* u.u_error copied from this */
-    char im_follow1;           /* 1=>follow last component of first pathname
-                                * if symbolic link; 0=>don't */
-    char im_follow2;           /* ditto for second pathname */
-    afs_int32 im_pag;          /* process authentication group */
-    /* im_arg contains a representation of the arguments to the intercepted
-     * system call, when transmitted from the kernel to Venus.
-     * Returned values are passed back from Venus to the kernel the same way */
-    struct im_arg {
-       int im_aval;            /* Value of the argument
-                                * OR index of argument in im_data */
-       int im_asize;           /* If im_aval is the index of an argument in
-                                * im_data, then this is its size in bytes.
-                                * Otherwise this is 0. */
-    } im_arg[RT_MAX_ARGS];
-    char im_data[RT_MAXDATASIZE];
-    /* Variable length field containing string
-     * or structure arguments */
-    /* No fields should be added here, the record may be truncated on
-     * transmission in either direction to an appropriate size */
-};
-
-
-
-#define RT_HEADERSIZE  ((sizeof (struct intercept_message)) - RT_MAXDATASIZE)
-
-#ifdef KERNEL
-/* The following shouldn't be done in this manner, but there doesn't
-   seem to be an easy mechanism to discover the device id.  The auto-
-   config stuff is only for real devices, I think.
- */
-#ifdef sun
-#define RMT_MAJ                30
-#endif
-#ifdef vax
-#define RMT_MAJ                33
-#endif
-
-/* Sleep priorities */
-#define RMT_NOINT_PRI  (PINOD+1)       /* Sleep with signal handling enabled */
-#define RMT_INTOK_PRI  (PSLEP-1)       /* Disallow aborts due to signal handling */
-
-/* Private data used by the remote intercept routines in the kernel */
-/* Note:  this was originally designed for only a single remote device.
-   To make it work for multiple devices, I simply unfolded the code
-   by turning this into an array (1 entry per device) and using a macro
-   in the code to reference the appropriate entry. */
-struct remote {
-    int rt_flags;              /* for flag values, see below */
-    int rt_seq;                        /* sequence number generator */
-    char rt_open;              /* 1 if the device is open *//* XXX UNALIGNED */
-    struct proc *rt_selproc;   /* process waiting for select */
-    char rt_attach;            /* wait channel for process waiting to attach
-                                * this structure */
-    char rt_read;              /* wait channel for a venus waiting for an
-                                * intercept */
-    char rt_reply;             /* wait channel for a client process waiting
-                                * for a reply */
-    struct intercept_message rt_imr;   /* buffer for agent reads */
-    struct intercept_message rt_imw;   /* buffer for agent writes */
-#include "rfs.h"
-} remote[NRFS];
-#undef NRFS
-
-/* Hack to unfold code for multiple devices */
-#define rmt     (*rmtp)
-#define devhack(dev) struct remote *rmtp = &remote[minor(dev)]
-
-/* Flags for rmt.rt_flags */
-#define RT_RBUF                1       /* processing venus read request */
-#define RT_WBUF                2       /* processing venus write request */
-#define RT_SENDING     4       /* sending the structure to the venus */
-#define RT_REPLY       8       /* reply from venus to client */
-#define RT_SIGNAL      16      /* signal occured, want to send message to
-                                * venus at next opportunity */
-
-/* This bogus stuff is used for rename/link */
-struct Name {
-    int func;                  /* This used to be a function in BSD 4.2... */
-    int follow;
-    struct buf *buf;
-    char *name;
-    dev_t dev;
-    enum { havePath, isLocal, haveDev, isRemote } state;
-};
-
-extern struct inode *RemoteNamei();
-extern int RemoteMaybe();
-#endif /* KERNEL */
-
-/*
- * Message type codes for messages sent from the kernel.
- * NB:  the kernel ignores the type field on reply (it merely matches
- * sequence numbers).  Unexpected messages from an venus are ignored (they
- * may have been destined for a process which has died in the meantime).
- * At all times, the kernel tries to maintain its own integrity, so that
- * in the worst case an venus restart should work fine.
- */
-
-/*
- * In the capsule descriptions below, "(?)" means that the flagged item
- * is probably a good candidate for negotiation.
- */
-
-#define RT_BOGUS       0
-/* For debugging purposes in kernel */
-
-#define RT_access      1
-/* From kernel: 0: uninterpreted part of pathname
- *             1: mode
- * NB: uid/gid for this call are the real (not effective) uid/gid's.
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- * NB: return value is implicit in im_error.
- */
-
-#define RT_chdir       2
-/* From kernel: 0: uninterpreted part of pathname
- * Vice I response:
- *             0: new pathname (with ..'s removed, symbolic
- *                links NOT expanded).
- *                length<MAXPATHLEN.  Null terminated.
- *             im_error
- * Vice II response:
- *             im_wdfid:  the file identifier (volume, vnode, unique)
- *                of the new working directory.
- *             im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_chmod       3
-/* From kernel: 0: uninterpreted part of pathname
- *             1: mode
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_chown       4
-/* From kernel: 0: uninterpreted part of pathname
- *             1: new uid
- *             2: new gid
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_close       5
-/* From kernel: 0: file identifier.
- *             im_error: either 0 or one of the error codes
- *                       listed below (RTE_*, see RT_open).
- * Response:   im_error (for programs that want to know)
- * N.B.: close MUST always cleanup state; it will never be issued
- * twice for the same identifier.  If RT_signal is received during
- * a close, venus can use this as a hint to return early from the
- * close.  Venus should not return EINTR for this system call, however.
- */
-
-#define RT_fchmod      6
-/* From kernel: 0: file identifier
- *             1: mode
- * Response:   im_error
- */
-
-#define RT_fchown      7
-/* From kernel:        0: file identifier
- *             1: new uid
- *             2: new gid
- * Response:   im_error
- */
-
-#define RT_fcntl       8
-/* Not implemented */
-
-#define RT_flock       9
-/* From kernel: 0: file identifier
- *             1: operation
- * Response:   im_error
- */
-
-#define RT_fstat       10
-/* From kernel: 0: file identifier.
- * Response:   0: struct stat
- *             im_error
- */
-
-#define RT_fsync       11
-/* From kernel: 0: file identifier.
- * Response:   im_error
- */
-
-#define RT_ftruncate   12
-/* From kernel: 0: file identifier.
- *             1: truncated length. (? right now, kernel truncates
- *                open cached inode)
- * Response:   im_error
- */
-
-#define RT_link                13
-/* From kernel: 0: the uninterpreted part of the original path
- *             1: the uninterpreted part of the pathname which
- *                will be the new link
- * Response:   im_error
- * if im_error == EABSPATH1 or EABSPATH2 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_lstat       14
-/* Obsolete--not generated by the kernel.  The im_follow1
-   field is used in conjunction with RT_stat to implement
-   lstat.  VICE I will continue to work since it does not
-   distinguish between stat and lstat */
-
-#define RT_mkdir       15
-/* From kernel: 0: uninterpreted part of pathname
- *             1: mode
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_open                16
-/* From kernel: 0: uninterpreted part of pathname
- *             1: flags
- *             2: mode
- * Vice 1 Response:
- *             0: file identifier assigned (for subsequent
- *                messages dealing with open files).
- *             1: pathname of the local, cached file.
- *             im_error
- * Note:       the returned filename is not created, truncated(?),
- *             or otherwise fiddled with by the kernel.  It must
- *             exist and must be a plain file.  N.B: Protection modes
- *             are ignored when it is finally opened.  The exec bit,
- *             however, should never be set unless the file is
- *             really executable.  (It should never be set for
- *             directories).  If there are problems opening the
- *             file, the user gets an error, the kernel gets a close
- *             message (possibly with one of the RTE_* errors, below,
- *             set in im_error).
- * Vice 2 Response:
- *             0: file identifier assigned (for subsequent
- *                messages dealing with open files).
- *             1: device where the file resides.
- *             2: inode number of the file.
- *             im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- * (?) Non-blocking open.
- */
-
-#define RT_readlink    17
-/* From kernel: 0: uninterpreted part of link pathname
- * Response:   0: number of characters read from link
- *             1: contents of link (not null terminated).  Size must not be
- *                greater than MAXPATHLEN (because this is checked by the
- *                kernel intercept code).
- *             im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_rename      18
-/* From kernel: 0: uninterpreted part of original pathname
- *             1: ditto for new pathname
- * Response:   im_error
- * if im_error == EABSPATH1 or EABSPATH2 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_rmdir       19
-/* From kernel: 0: uninterpreted part of pathname
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_stat                20
-/* From kernel: 0: uninterpreted part of pathname
- * Response:   0: struct stat
- *             im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- * Note:  this now implements the lstat call, as well,
- * by means of the im_follow1 field in the header.
- */
-
-#define RT_symlink     21
-/* From kernel: 0: the string value of the new symbolic link.
- *             1: the uninterpreted part of the pathname to
- *                contain the link.
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_truncate    22
-/* From kernel: 0: uninterpreted part of pathname
- *             1: truncated length
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_unlink      23
-/* From kernel: 0: uninterpreted part of pathname
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_utimes      24
-/* From kernel: 0: uninterpreted part of pathname
- *             1: struct timeval tvp[2]
- * Response:   im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-#define RT_signal      25
-/* Request to abort the previous operation requested WITH THE
- * SAME im_seq FIELD.  No action is expected on the part of
- * the venus--this is merely advice that the operation may
- * be completed early.  VENUS SHOULD NOT REPLY TO THIS MESSAGE.
- * The error returned on final completion by the venus need not
- * acknowledge that the system call was interrupted.  The interrupt
- * will occur at the end of the system call regardless.  EINTR
- * should be returned if the system call actually is aborted.
- * VENUS MAY RETURN EARLY FROM A   C L O S E  SYSTEM CALL, BUT MUST STILL
- * CLEANUP STATE FOR THE CLOSE--ANOTHER CLOSE CALL FOR THE SAME
- * DESCRIPTOR WILL NEVER BE ISSUED.
- * RT_signal messages for which a reply has already been issued
- * sholuld be ignored by venus.
- */
-
-#define RT_ioctl       26
-/*
- * From kernel: 0: file identifier
- *              1: command (see below)
- *              2: uninterpreted data (up to RT_MAXDATASIZE).
- * Response:    0: data to be returned to user
- *              im_error
- * NOTE:  the information passed to/from venus is not in the
- * same format as that coming to/from the user.  See the file
- * vice.h.
- */
-
-
-#define RT_pioctl      27
-/*
- * From kernel: 0: uninterpreted part of pathname
- *             1: command (as in RT_ioctl)
- *             2: uninterpreted data
- * Note: argument 3, do not follow symbolic links, is
- *   obsolete; this is compatible with VICE I, since the
- *   field was ignored anyway.
- * Response:    0: data to be returned to user
- *             im_error
- * if im_error == EABSPATH1 then:
- *             0: Resolved absolute path name.
- */
-
-
-/* Error codes -- each is set by the kernel for the explicit error indicated.
- * These are set in im_error (which should normally be 0 in every message from
- * the kernel).  Errors of this form indicate that the venus process has
- * almost certainly done something wrong.  The associated user process gets an
- * ERFS (remote file system error) for each of these error types.
- */
-
-/* The following error codes all occur at open (exec?) and are sent by the
- * kernel with the associated close message for the file identifier returned
- * from the open.
- */
-
-#define        RTE_BADARG 1            /* The size of a structure or string argument returned
-                                * by the venus to the kernel is bogus.
-                                * (the im_size field is not zero, or part of the
-                                * argument is outside the message buffer, or the
-                                * argument is too large) */
-
-#define RTE_NOFILE 2           /* The file name (or inode, in VICE II) returned to
-                                * the kernel, to open or exec in lieu of the original
-                                * name supplied by the process cannot be opened or
-                                * exec'd */
-
-#define RTE_NOTREG 3           /* The file (or inode, in VICE II) returned to the
-                                * kernel, to open or exec in lieu of the original
-                                * name supplied by the process, is not a IF_REG
-                                * type file, i.e. it is a device, socket, or
-                                * directory */
-
-
-/* The following error codes are set by Venus when a pathname argument supplied
- * by the kernel resolves to an absolute pathname outside of the name space
- * of this venus.  The resolved absolute pathname is returned in argument 0.
- * The kernel is expected to retry the system call with this new information.
- * The kernel never passes this error on to the original issuer of the system
- * call.
- */
-#define EABSPATH1 126          /* The first pathname, or only pathname, of a system
-                                * call resolved to an absolute pathname */
-#define EABSPATH2 127          /* The second pathname of the rename or link system
-                                * call resolved to an absolute pathname */