1 /**
2 
3 Copyright (c)  1999  - 2014, Intel Corporation. All rights reserved
4 
5 
6   SPDX-License-Identifier: BSD-2-Clause-Patent
7 
8 
9 
10 
11 @file
12   CommonIncludes.h
13 
14 @brief
15   This file defines common equates.
16 
17 **/
18 #ifndef _COMMON_INCLUDES_H_
19 #define _COMMON_INCLUDES_H_
20 
21 #define V_INTEL_VID 0x8086
22 
23 #ifndef STALL_ONE_MICRO_SECOND
24 #define STALL_ONE_MICRO_SECOND  1
25 #endif
26 #ifndef STALL_ONE_MILLI_SECOND
27 #define STALL_ONE_MILLI_SECOND  1000
28 #endif
29 ///
30 /// Min Max
31 ///
32 #define V_MIN(a, b) (((a) < (b)) ? (a) : (b))
33 #define V_MAX(a, b) (((a) > (b)) ? (a) : (b))
34 
35 ///
36 /// Bit map macro
37 ///
38 #ifndef BIT0
39 
40 #define BIT63 0x8000000000000000
41 #define BIT62 0x4000000000000000
42 #define BIT61 0x2000000000000000
43 #define BIT60 0x1000000000000000
44 #define BIT59 0x0800000000000000
45 #define BIT58 0x0400000000000000
46 #define BIT57 0x0200000000000000
47 #define BIT56 0x0100000000000000
48 #define BIT55 0x0080000000000000
49 #define BIT54 0x0040000000000000
50 #define BIT53 0x0020000000000000
51 #define BIT52 0x0010000000000000
52 #define BIT51 0x0008000000000000
53 #define BIT50 0x0004000000000000
54 #define BIT49 0x0002000000000000
55 #define BIT48 0x0001000000000000
56 #define BIT47 0x0000800000000000
57 #define BIT46 0x0000400000000000
58 #define BIT45 0x0000200000000000
59 #define BIT44 0x0000100000000000
60 #define BIT43 0x0000080000000000
61 #define BIT42 0x0000040000000000
62 #define BIT41 0x0000020000000000
63 #define BIT40 0x0000010000000000
64 #define BIT39 0x0000008000000000
65 #define BIT38 0x0000004000000000
66 #define BIT37 0x0000002000000000
67 #define BIT36 0x0000001000000000
68 #define BIT35 0x0000000800000000
69 #define BIT34 0x0000000400000000
70 #define BIT33 0x0000000200000000
71 #define BIT32 0x0000000100000000
72 
73 #define BIT31 0x80000000
74 #define BIT30 0x40000000
75 #define BIT29 0x20000000
76 #define BIT28 0x10000000
77 #define BIT27 0x08000000
78 #define BIT26 0x04000000
79 #define BIT25 0x02000000
80 #define BIT24 0x01000000
81 #define BIT23 0x00800000
82 #define BIT22 0x00400000
83 #define BIT21 0x00200000
84 #define BIT20 0x00100000
85 #define BIT19 0x00080000
86 #define BIT18 0x00040000
87 #define BIT17 0x00020000
88 #define BIT16 0x00010000
89 #define BIT15 0x00008000
90 #define BIT14 0x00004000
91 #define BIT13 0x00002000
92 #define BIT12 0x00001000
93 #define BIT11 0x00000800
94 #define BIT10 0x00000400
95 #define BIT9  0x00000200
96 #define BIT8  0x00000100
97 #define BIT7  0x00000080
98 #define BIT6  0x00000040
99 #define BIT5  0x00000020
100 #define BIT4  0x00000010
101 #define BIT3  0x00000008
102 #define BIT2  0x00000004
103 #define BIT1  0x00000002
104 #define BIT0  0x00000001
105 #endif
106 
107 #define BITS(x) (1 << (x))
108 
109 //
110 // Notes :
111 // 1.  Bit position always starts at 0.
112 // 2.  Following macros are applicable only for Word alligned integers.
113 //
114 #define BIT(Pos, Value)               (1 << (Pos) & (Value))
115 #define BITRANGE(From, Width, Value)  (((Value) >> (From)) & ((1 << (Width)) - 1))
116 
117 #endif
118