OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/WINNT/client_osi/osi.h
00001 /*
00002  * Copyright 2000, International Business Machines Corporation and others.
00003  * All Rights Reserved.
00004  *
00005  * This software has been released under the terms of the IBM Public
00006  * License.  For details, see the LICENSE file in the top-level source
00007  * directory or online at http://www.openafs.org/dl/license10.html
00008  */
00009 
00010 /* Copyright (C) 1994 Cazamar Systems, Inc. */
00011 
00012 #ifndef OPENAFS_WINNT_CLIENT_OSI_OSI_H
00013 #define OPENAFS_WINNT_CLIENT_OSI_OSI_H 1
00014 
00015 #include <afs/param.h>
00016 
00017 /* misc definitions */
00018 
00019 /* large int */
00020 #include <rpc.h>
00021 #if !defined(_MSC_VER) || (_MSC_VER < 1300)
00022 #include "largeint.h"
00023 #endif
00024 #include "osithrdnt.h"
00025 
00026 typedef LARGE_INTEGER osi_hyper_t;
00027 #if _MSC_VER >= 1300
00028 LARGE_INTEGER LargeIntegerAdd(LARGE_INTEGER a, LARGE_INTEGER b);
00029 LARGE_INTEGER LargeIntegerSubtract(LARGE_INTEGER a, LARGE_INTEGER b);
00030 LARGE_INTEGER ExtendedLargeIntegerDivide(LARGE_INTEGER a, unsigned long b, unsigned long *remainder);
00031 LARGE_INTEGER LargeIntegerDivide(LARGE_INTEGER a, LARGE_INTEGER b, LARGE_INTEGER *remainder);
00032 LARGE_INTEGER ConvertLongToLargeInteger(unsigned long a);
00033 #define LargeIntegerGreaterThan(a, b) \
00034  ((a).HighPart > (b).HighPart || \
00035   ((a).HighPart == (b).HighPart && (a).LowPart > (b).LowPart))
00036 
00037 #define LargeIntegerGreaterThanOrEqualTo(a, b) \
00038  ((a).HighPart > (b).HighPart || \
00039   ((a).HighPart == (b).HighPart && (a).LowPart >= (b).LowPart))
00040 
00041 #define LargeIntegerLessThan(a, b) \
00042  ((a).HighPart < (b).HighPart || \
00043   ((a).HighPart == (b).HighPart && (a).LowPart < (b).LowPart))
00044 
00045 #define LargeIntegerLessThanOrEqualTo(a, b) \
00046  ((a).HighPart < (b).HighPart || \
00047   ((a).HighPart == (b).HighPart && (a).LowPart <= (b).LowPart))
00048 
00049 #define LargeIntegerEqualTo(a, b) \
00050   ((a).HighPart == (b).HighPart && (a).LowPart == (b).LowPart)
00051 
00052 #define LargeIntegerGreaterThanZero(a) \
00053  ((a).HighPart > 0 || ((a).HighPart == 0 && (a).LowPart != 0))
00054 
00055 #define LargeIntegerGreaterOrEqualToZero(a) ((a).HighPart >= 0)
00056 
00057 #define LargeIntegerLessThanZero(a) ((a).HighPart < 0)
00058 
00059 #define LargeIntegerNotEqualToZero(a) ((a).HighPart || (a).LowPart)
00060 #endif
00061 typedef GUID osi_uid_t;
00062 
00063 typedef int int32;
00064 
00065 /* basic util functions */
00066 #include "osiutils.h"
00067 
00068 /* FD operations */
00069 #include "osifd.h"
00070 
00071 /* lock type definitions */
00072 #include "osiltype.h"
00073 
00074 /* basic sleep operations */
00075 #include "osisleep.h"
00076 
00077 /* base lock definitions */
00078 #include "osibasel.h"
00079 
00080 /* statistics gathering lock definitions */
00081 #include "osistatl.h"
00082 
00083 /* RPC debug stuff */
00084 #include "osidb.h"
00085 
00086 /* log stuff */
00087 #include "osilog.h"
00088 
00089 #endif /* OPENAFS_WINNT_CLIENT_OSI_OSI_H */
 All Data Structures Files Functions Variables