e1f414b6 |
1 | /** @file\r |
2 | AsmWriteDr4 function\r |
3 | \r |
bb817c56 |
4 | Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r |
9344f092 |
5 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
e1f414b6 |
6 | \r |
7 | **/\r |
8 | \r |
42eedea9 |
9 | /**\r |
10 | Writes a value to Debug Register 4 (DR4).\r |
11 | \r |
12 | Writes and returns a new value to DR4. This function is only available on\r |
030cd1a2 |
13 | IA-32 and x64. This writes a 32-bit value on IA-32 and a 64-bit value on x64.\r |
42eedea9 |
14 | \r |
44b013bd |
15 | @param Value The value to write to Dr4.\r |
42eedea9 |
16 | \r |
17 | @return The value written to Debug Register 4 (DR4).\r |
18 | \r |
19 | **/\r |
e1f414b6 |
20 | UINTN\r |
21 | EFIAPI\r |
22 | AsmWriteDr4 (\r |
2f88bd3a |
23 | IN UINTN Value\r |
e1f414b6 |
24 | )\r |
25 | {\r |
26 | _asm {\r |
27 | mov eax, Value\r |
28 | _emit 0x0f // mov dr4, eax\r |
29 | _emit 0x23\r |
30 | _emit 0xe0\r |
31 | }\r |
32 | }\r |