1/* @(#) $Header: /tcpdump/master/tcpdump/nfsfh.h,v 1.13 2002-04-24 06:27:05 guy Exp $ (LBL) */
2
3/*
4 * Copyright (c) 1993, 1994 Jeffrey C. Mogul, Digital Equipment Corporation,
5 * Western Research Laboratory. All rights reserved.
6 * Copyright (c) 2001 Compaq Computer Corporation. All rights reserved.
7 *
8 *  Permission to use, copy, and modify this software and its
9 *  documentation is hereby granted only under the following terms and
10 *  conditions.  Both the above copyright notice and this permission
11 *  notice must appear in all copies of the software, derivative works
12 *  or modified versions, and any portions thereof, and both notices
13 *  must appear in supporting documentation.
14 *
15 *  Redistribution and use in source and binary forms, with or without
16 *  modification, are permitted provided that the following conditions
17 *  are met:
18 *    1. Redistributions of source code must retain the above copyright
19 *    notice, this list of conditions and the following disclaimer.
20 *    2. Redistributions in binary form must reproduce the above copyright
21 *    notice, this list of conditions and the following disclaimer in
22 *    the documentation and/or other materials provided with the
23 *    distribution.
24 *
25 *  THE SOFTWARE IS PROVIDED "AS IS" AND COMPAQ COMPUTER CORPORATION
26 *  DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
27 *  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.   IN NO
28 *  EVENT SHALL COMPAQ COMPUTER CORPORATION BE LIABLE FOR ANY
29 *  SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
30 *  WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
31 *  AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
32 *  OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
33 *  SOFTWARE.
34 */
35
36/*
37 * nfsfh.h - NFS file handle definitions (for portable use)
38 *
39 * Jeffrey C. Mogul
40 * Digital Equipment Corporation
41 * Western Research Laboratory
42 */
43
44/*
45 * Internal representation of dev_t, because different NFS servers
46 * that we might be spying upon use different external representations.
47 */
48typedef struct {
49	u_int32_t Minor;	/* upper case to avoid clashing with macro names */
50	u_int32_t Major;
51} my_devt;
52
53#define	dev_eq(a,b)	((a.Minor == b.Minor) && (a.Major == b.Major))
54
55/*
56 * Many file servers now use a large file system ID.  This is
57 * our internal representation of that.
58 */
59typedef	struct {
60	my_devt	Fsid_dev;		/* XXX avoid name conflict with AIX */
61	char Opaque_Handle[2 * 32 + 1];
62	u_int32_t fsid_code;
63} my_fsid;
64
65#define	fsid_eq(a,b)	((a.fsid_code == b.fsid_code) &&\
66			 dev_eq(a.Fsid_dev, b.Fsid_dev))
67
68extern void Parse_fh(const unsigned char *, int, my_fsid *, u_int32_t *, const char **, const char **, int);
69