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