2 * Copyright 2000, International Business Machines Corporation and others.
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
10 /* Copyright (C) 1994 Cazamar Systems, Inc. */
12 #ifndef OPENAFS_WINNT_CLIENT_OSI_OSI_H
13 #define OPENAFS_WINNT_CLIENT_OSI_OSI_H 1
15 #include <afs/param.h>
17 /* misc definitions */
21 #if !defined(_MSC_VER) || (_MSC_VER < 1300)
24 #include "osithrdnt.h"
26 typedef LARGE_INTEGER osi_hyper_t
;
28 LARGE_INTEGER
LargeIntegerAdd(LARGE_INTEGER a
, LARGE_INTEGER b
);
29 LARGE_INTEGER
LargeIntegerSubtract(LARGE_INTEGER a
, LARGE_INTEGER b
);
30 LARGE_INTEGER
ExtendedLargeIntegerDivide(LARGE_INTEGER a
, unsigned long b
, unsigned long *remainder
);
31 LARGE_INTEGER
LargeIntegerDivide(LARGE_INTEGER a
, LARGE_INTEGER b
, LARGE_INTEGER
*remainder
);
32 LARGE_INTEGER
ConvertLongToLargeInteger(unsigned long a
);
33 #define LargeIntegerGreaterThan(a, b) \
34 ((a).HighPart > (b).HighPart || \
35 ((a).HighPart == (b).HighPart && (a).LowPart > (b).LowPart))
37 #define LargeIntegerGreaterThanOrEqualTo(a, b) \
38 ((a).HighPart > (b).HighPart || \
39 ((a).HighPart == (b).HighPart && (a).LowPart >= (b).LowPart))
41 #define LargeIntegerLessThan(a, b) \
42 ((a).HighPart < (b).HighPart || \
43 ((a).HighPart == (b).HighPart && (a).LowPart < (b).LowPart))
45 #define LargeIntegerLessThanOrEqualTo(a, b) \
46 ((a).HighPart < (b).HighPart || \
47 ((a).HighPart == (b).HighPart && (a).LowPart <= (b).LowPart))
49 #define LargeIntegerEqualTo(a, b) \
50 ((a).HighPart == (b).HighPart && (a).LowPart == (b).LowPart)
52 #define LargeIntegerGreaterThanZero(a) \
53 ((a).HighPart > 0 || ((a).HighPart == 0 && (a).LowPart != 0))
55 #define LargeIntegerGreaterOrEqualToZero(a) ((a).HighPart >= 0)
57 #define LargeIntegerLessThanZero(a) ((a).HighPart < 0)
59 #define LargeIntegerNotEqualToZero(a) ((a).HighPart || (a).LowPart)
61 typedef GUID osi_uid_t
;
65 /* basic util functions */
71 /* lock type definitions */
74 /* basic sleep operations */
77 /* base lock definitions */
80 /* statistics gathering lock definitions */
89 #endif /* OPENAFS_WINNT_CLIENT_OSI_OSI_H */