darwin-xnu/bsd/nfs/rpcv2.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000-2004 Apple Computer, Inc. All rights reserved.
   3 *
   4 * @APPLE_LICENSE_HEADER_START@
   5 * 
   6 * The contents of this file constitute Original Code as defined in and
   7 * are subject to the Apple Public Source License Version 1.1 (the
   8 * "License").  You may not use this file except in compliance with the
   9 * License.  Please obtain a copy of the License at
  10 * http://www.apple.com/publicsource and read it before using this file.
  11 * 
  12 * This Original Code and all software distributed under the License are
  13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17 * License for the specific language governing rights and limitations
  18 * under the License.
  19 * 
  20 * @APPLE_LICENSE_HEADER_END@
  21 */
  22/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
  23/*
  24 * Copyright (c) 1989, 1993
  25 *      The Regents of the University of California.  All rights reserved.
  26 *
  27 * This code is derived from software contributed to Berkeley by
  28 * Rick Macklem at The University of Guelph.
  29 *
  30 * Redistribution and use in source and binary forms, with or without
  31 * modification, are permitted provided that the following conditions
  32 * are met:
  33 * 1. Redistributions of source code must retain the above copyright
  34 *    notice, this list of conditions and the following disclaimer.
  35 * 2. Redistributions in binary form must reproduce the above copyright
  36 *    notice, this list of conditions and the following disclaimer in the
  37 *    documentation and/or other materials provided with the distribution.
  38 * 3. All advertising materials mentioning features or use of this software
  39 *    must display the following acknowledgement:
  40 *      This product includes software developed by the University of
  41 *      California, Berkeley and its contributors.
  42 * 4. Neither the name of the University nor the names of its contributors
  43 *    may be used to endorse or promote products derived from this software
  44 *    without specific prior written permission.
  45 *
  46 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  47 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  48 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  49 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  50 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  51 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  52 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  53 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  54 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  55 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  56 * SUCH DAMAGE.
  57 *
  58 *      @(#)rpcv2.h     8.2 (Berkeley) 3/30/95
  59 * FreeBSD-Id: rpcv2.h,v 1.8 1997/05/11 18:05:39 tegge Exp $
  60 */
  61
  62
  63#ifndef _NFS_RPCV2_H_
  64#define _NFS_RPCV2_H_
  65
  66#include <sys/appleapiopts.h>
  67
  68#ifdef __APPLE_API_PRIVATE
  69/*
  70 * Definitions for Sun RPC Version 2, from
  71 * "RPC: Remote Procedure Call Protocol Specification" RFC1057
  72 */
  73
  74/* Version # */
  75#define RPC_VER2        2
  76
  77/* Authentication */
  78#define RPCAUTH_NULL    0
  79#define RPCAUTH_UNIX    1
  80#define RPCAUTH_SHORT   2
  81#define RPCAUTH_KERB4   4
  82#define RPCAUTH_MAXSIZ  400
  83#define RPCVERF_MAXSIZ  12      /* For Kerb, can actually be 400 */
  84#define RPCAUTH_UNIXGIDS 16
  85
  86/*
  87 * Constants associated with authentication flavours.
  88 */
  89#define RPCAKN_FULLNAME 0
  90#define RPCAKN_NICKNAME 1
  91
  92/* Rpc Constants */
  93#define RPC_CALL        0
  94#define RPC_REPLY       1
  95#define RPC_MSGACCEPTED 0
  96#define RPC_MSGDENIED   1
  97#define RPC_PROGUNAVAIL 1
  98#define RPC_PROGMISMATCH        2
  99#define RPC_PROCUNAVAIL 3
 100#define RPC_GARBAGE     4               /* I like this one */
 101#define RPC_SYSTEM_ERR  5
 102#define RPC_MISMATCH    0
 103#define RPC_AUTHERR     1
 104
 105/* Authentication failures */
 106#define AUTH_BADCRED    1
 107#define AUTH_REJECTCRED 2
 108#define AUTH_BADVERF    3
 109#define AUTH_REJECTVERF 4
 110#define AUTH_TOOWEAK    5               /* Give em wheaties */
 111
 112/* Sizes of rpc header parts */
 113#define RPC_SIZ         24
 114#define RPC_REPLYSIZ    28
 115
 116/* RPC Prog definitions */
 117#define RPCPROG_MNT     100005
 118#define RPCMNT_VER1     1
 119#define RPCMNT_VER3     3
 120#define RPCMNT_MOUNT    1
 121#define RPCMNT_DUMP     2
 122#define RPCMNT_UMOUNT   3
 123#define RPCMNT_UMNTALL  4
 124#define RPCMNT_EXPORT   5
 125#define RPCMNT_NAMELEN  255
 126#define RPCMNT_PATHLEN  1024
 127#define RPCPROG_NFS     100003
 128
 129/*
 130 * Structures used for RPCAUTH_KERB4.
 131 */
 132struct nfsrpc_fullverf {
 133        u_long          t1;
 134        u_long          t2;
 135        u_long          w2;
 136};
 137
 138struct nfsrpc_fullblock {
 139        u_long          t1;
 140        u_long          t2;
 141        u_long          w1;
 142        u_long          w2;
 143};
 144
 145struct nfsrpc_nickverf {
 146        u_long                  kind;
 147        struct nfsrpc_fullverf  verf;
 148};
 149
 150/*
 151 * and their sizes in bytes.. If sizeof (struct nfsrpc_xx) != these
 152 * constants, well then things will break in mount_nfs and nfsd.
 153 */
 154#define RPCX_FULLVERF   12
 155#define RPCX_FULLBLOCK  16
 156#define RPCX_NICKVERF   16
 157
 158#if NFSKERB
 159XXX
 160#else
 161typedef u_char                  NFSKERBKEY_T[2];
 162typedef u_char                  NFSKERBKEYSCHED_T[2];
 163#endif
 164#define NFS_KERBSRV     "rcmd"          /* Kerberos Service for NFS */
 165#define NFS_KERBTTL     (30 * 60)       /* Credential ttl (sec) */
 166#define NFS_KERBCLOCKSKEW (5 * 60)      /* Clock skew (sec) */
 167#define NFS_KERBW1(t)   (*((u_long *)(&((t).dat[((t).length + 3) & ~0x3]))))
 168
 169#endif /* __APPLE_API_PRIVATE */
 170#endif /* _NFS_RPCV2_H_ */
 171
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.