Commit | Line | Data |
---|---|---|
68edd7db JY |
1 | ;------------------------------------------------------------------------------\r |
2 | ;\r | |
bbaa00dd | 3 | ; Copyright (c) 2019 - 2022, Intel Corporation. All rights reserved.<BR>\r |
9344f092 | 4 | ; SPDX-License-Identifier: BSD-2-Clause-Patent\r |
68edd7db JY |
5 | ;\r |
6 | ; Abstract:\r | |
7 | ;\r | |
8 | ; This file provides macro definitions for NASM files.\r | |
9 | ;\r | |
10 | ;------------------------------------------------------------------------------\r | |
11 | \r | |
e59760f8 RN |
12 | ; NASM provides built-in macros STRUC and ENDSTRUC for structure definition.\r |
13 | ; For example, to define a structure called mytype containing a longword,\r | |
14 | ; a word, a byte and a string of bytes, you might code\r | |
15 | ;\r | |
16 | ; struc mytype\r | |
17 | ;\r | |
18 | ; mt_long: resd 1\r | |
19 | ; mt_word: resw 1\r | |
20 | ; mt_byte: resb 1\r | |
21 | ; mt_str: resb 32\r | |
22 | ;\r | |
23 | ; endstruc\r | |
24 | ;\r | |
25 | ; Below macros are help to map the C types and the RESB family of pseudo-instructions.\r | |
26 | ; So that the above structure definition can be coded as\r | |
27 | ;\r | |
28 | ; struc mytype\r | |
29 | ;\r | |
30 | ; mt_long: CTYPE_UINT32 1\r | |
31 | ; mt_word: CTYPE_UINT16 1\r | |
32 | ; mt_byte: CTYPE_UINT8 1\r | |
33 | ; mt_str: CTYPE_CHAR8 32\r | |
34 | ;\r | |
35 | ; endstruc\r | |
36 | %define CTYPE_UINT64 resq\r | |
37 | %define CTYPE_INT64 resq\r | |
38 | %define CTYPE_UINT32 resd\r | |
39 | %define CTYPE_INT32 resd\r | |
40 | %define CTYPE_UINT16 resw\r | |
41 | %define CTYPE_INT16 resw\r | |
42 | %define CTYPE_BOOLEAN resb\r | |
43 | %define CTYPE_UINT8 resb\r | |
44 | %define CTYPE_CHAR8 resb\r | |
45 | %define CTYPE_INT8 resb\r | |
46 | \r | |
47 | %define CTYPE_UINTN resd\r | |
48 | %define CTYPE_INTN resd\r |