]>
Commit | Line | Data |
---|---|---|
720d3c5f | 1 | /** @file\r |
2 | InterLockedIncrement function\r | |
3 | \r | |
17634d02 | 4 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r |
9344f092 | 5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
720d3c5f | 6 | \r |
7 | **/\r | |
8 | \r | |
9 | /**\r | |
10 | Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.\r | |
11 | **/\r | |
12 | \r | |
2f88bd3a MK |
13 | long\r |
14 | _InterlockedIncrement (\r | |
15 | long *lpAddend\r | |
16 | );\r | |
720d3c5f | 17 | \r |
18 | #pragma intrinsic(_InterlockedIncrement)\r | |
19 | \r | |
20 | /**\r | |
21 | Performs an atomic increment of an 32-bit unsigned integer.\r | |
22 | \r | |
23 | Performs an atomic increment of the 32-bit unsigned integer specified by\r | |
24 | Value and returns the incremented value. The increment operation must be\r | |
25 | performed using MP safe mechanisms. The state of the return value is not\r | |
26 | guaranteed to be MP safe.\r | |
27 | \r | |
28 | @param Value A pointer to the 32-bit value to increment.\r | |
29 | \r | |
30 | @return The incremented value.\r | |
31 | \r | |
32 | **/\r | |
33 | UINT32\r | |
34 | EFIAPI\r | |
35 | InternalSyncIncrement (\r | |
2f88bd3a | 36 | IN volatile UINT32 *Value\r |
720d3c5f | 37 | )\r |
38 | {\r | |
17634d02 | 39 | return _InterlockedIncrement ((long *)(Value));\r |
720d3c5f | 40 | }\r |