12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 1993, 1994 Jeffrey C. Mogul, Digital Equipment Corporation, 32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Western Research Laboratory. All rights reserved. 42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 2001 Compaq Computer Corporation. All rights reserved. 52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Permission to use, copy, and modify this software and its 72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * documentation is hereby granted only under the following terms and 82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * conditions. Both the above copyright notice and this permission 92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * notice must appear in all copies of the software, derivative works 102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * or modified versions, and any portions thereof, and both notices 112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * must appear in supporting documentation. 122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without 142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that the following conditions 152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * are met: 162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * notice, this list of conditions and the following disclaimer. 182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * notice, this list of conditions and the following disclaimer in 202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the documentation and/or other materials provided with the 212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * distribution. 222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THE SOFTWARE IS PROVIDED "AS IS" AND COMPAQ COMPUTER CORPORATION 242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO 262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * EVENT SHALL COMPAQ COMPUTER CORPORATION BE LIABLE FOR ANY 272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * SOFTWARE. 322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * nfsfh.h - NFS file handle definitions (for portable use) 362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Jeffrey C. Mogul 382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Digital Equipment Corporation 392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Western Research Laboratory 402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Internal representation of dev_t, because different NFS servers 442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * that we might be spying upon use different external representations. 452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef struct { 47892a68bdf2f50b40781212e4d7ee7369c8165953Elliott Hughes uint32_t Minor; /* upper case to avoid clashing with macro names */ 48892a68bdf2f50b40781212e4d7ee7369c8165953Elliott Hughes uint32_t Major; 492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} my_devt; 502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define dev_eq(a,b) ((a.Minor == b.Minor) && (a.Major == b.Major)) 522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Many file servers now use a large file system ID. This is 552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * our internal representation of that. 562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projecttypedef struct { 582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project my_devt Fsid_dev; /* XXX avoid name conflict with AIX */ 592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project char Opaque_Handle[2 * 32 + 1]; 60892a68bdf2f50b40781212e4d7ee7369c8165953Elliott Hughes uint32_t fsid_code; 612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project} my_fsid; 622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define fsid_eq(a,b) ((a.fsid_code == b.fsid_code) &&\ 642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project dev_eq(a.Fsid_dev, b.Fsid_dev)) 652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 66e2e3bd11bd7561bc9d6686283a668fa94e1206b7Elliott Hughesextern void Parse_fh(const unsigned char *, u_int, my_fsid *, uint32_t *, const char **, const char **, int); 67