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(const unsigned char *, int, my_fsid *, uint32_t *, const char **, const char **, int); 67