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