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