blob: 5cf8fc4417a66e9cd0dab1f78dac5636cbb21bb2 [file] [log] [blame]
The Android Open Source Project2949f582009-03-03 19:30:46 -08001/*
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 */
46typedef struct {
Elliott Hughes892a68b2015-10-19 14:43:53 -070047 uint32_t Minor; /* upper case to avoid clashing with macro names */
48 uint32_t Major;
The Android Open Source Project2949f582009-03-03 19:30:46 -080049} 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 */
57typedef struct {
58 my_devt Fsid_dev; /* XXX avoid name conflict with AIX */
59 char Opaque_Handle[2 * 32 + 1];
Elliott Hughes892a68b2015-10-19 14:43:53 -070060 uint32_t fsid_code;
The Android Open Source Project2949f582009-03-03 19:30:46 -080061} 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
Elliott Hughese2e3bd12017-05-15 10:59:29 -070066extern void Parse_fh(const unsigned char *, u_int, my_fsid *, uint32_t *, const char **, const char **, int);