1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
/** @file MockSynchronizationLib.h
Google Test mocks for the synchronization Library
Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#pragma once
#include <Library/GoogleTestLib.h>
#include <Library/FunctionMockLib.h>
extern "C" {
#include <Uefi.h>
#include <Library/SynchronizationLib.h>
}
struct MockSynchronizationLib {
MOCK_INTERFACE_DECLARATION (MockSynchronizationLib);
MOCK_FUNCTION_DECLARATION (
UINTN,
GetSpinLockProperties,
(
)
);
MOCK_FUNCTION_DECLARATION (
SPIN_LOCK *,
InitializeSpinLock,
(
OUT SPIN_LOCK *SpinLock
)
);
MOCK_FUNCTION_DECLARATION (
SPIN_LOCK *,
AcquireSpinLock,
(
IN OUT SPIN_LOCK *SpinLock
)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
AcquireSpinLockOrFail,
(
IN OUT SPIN_LOCK *SpinLock
)
);
MOCK_FUNCTION_DECLARATION (
SPIN_LOCK *,
ReleaseSpinLock,
(
IN OUT SPIN_LOCK *SpinLock
)
);
MOCK_FUNCTION_DECLARATION (
UINT32,
InterlockedIncrement,
(
IN volatile UINT32 *Value
)
);
MOCK_FUNCTION_DECLARATION (
UINT32,
InterlockedDecrement,
(
IN volatile UINT32 *Value
)
);
MOCK_FUNCTION_DECLARATION (
UINT16,
InterlockedCompareExchange16,
(
IN OUT volatile UINT16 *Value,
IN UINT16 CompareValue,
IN UINT16 ExchangeValue
)
);
MOCK_FUNCTION_DECLARATION (
UINT32,
InterlockedCompareExchange32,
(
IN OUT volatile UINT32 *Value,
IN UINT32 CompareValue,
IN UINT32 ExchangeValue
)
);
MOCK_FUNCTION_DECLARATION (
UINT64,
InterlockedCompareExchange64,
(
IN OUT volatile UINT64 *Value,
IN UINT64 CompareValue,
IN UINT64 ExchangeValue
)
);
MOCK_FUNCTION_DECLARATION (
VOID *,
InterlockedCompareExchangePointer,
(
IN OUT VOID *volatile *Value,
IN VOID *CompareValue,
IN VOID *ExchangeValue
)
);
};
|