Reviewed-by: Liming Gao <gaolim...@byosoft.com.cn>

> -----邮件原件-----
> 发件人: Ray Ni <ray...@intel.com>
> 发送时间: 2021年2月9日 22:17
> 收件人: devel@edk2.groups.io
> 抄送: Michael D Kinney <michael.d.kin...@intel.com>; Liming Gao
> <gaolim...@byosoft.com.cn>; Zhiguang Liu <zhiguang....@intel.com>
> 主题: [PATCH v3 2/4] MdePkg/Nasm.inc: add macros for C types used in
> structure definition
> 
> Signed-off-by: Ray Ni <ray...@intel.com>
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang....@intel.com>
> ---
>  MdePkg/Include/Ia32/Nasm.inc | 38
> ++++++++++++++++++++++++++++++++++++
>  MdePkg/Include/X64/Nasm.inc  | 38
> ++++++++++++++++++++++++++++++++++++
>  2 files changed, 76 insertions(+)
> 
> diff --git a/MdePkg/Include/Ia32/Nasm.inc
> b/MdePkg/Include/Ia32/Nasm.inc
> index 31ce861f1e..017fe5ffd8 100644
> --- a/MdePkg/Include/Ia32/Nasm.inc
> +++ b/MdePkg/Include/Ia32/Nasm.inc
> @@ -20,3 +20,41 @@
>  %macro INCSSP_EAX      0
> 
>      DB 0xF3, 0x0F, 0xAE, 0xE8
> 
>  %endmacro
> 
> +
> 
> +; NASM provides built-in macros STRUC and ENDSTRUC for structure
> definition.
> 
> +; For example, to define a structure called mytype containing a longword,
> 
> +; a word, a byte and a string of bytes, you might code
> 
> +;
> 
> +; struc   mytype
> 
> +;
> 
> +;  mt_long:      resd    1
> 
> +;  mt_word:      resw    1
> 
> +;  mt_byte:      resb    1
> 
> +;  mt_str:       resb    32
> 
> +;
> 
> +; endstruc
> 
> +;
> 
> +; Below macros are help to map the C types and the RESB family of
> pseudo-instructions.
> 
> +; So that the above structure definition can be coded as
> 
> +;
> 
> +; struc   mytype
> 
> +;
> 
> +;  mt_long:      CTYPE_UINT32    1
> 
> +;  mt_word:      CTYPE_UINT16    1
> 
> +;  mt_byte:      CTYPE_UINT8     1
> 
> +;  mt_str:       CTYPE_CHAR8     32
> 
> +;
> 
> +; endstruc
> 
> +%define CTYPE_UINT64    resq
> 
> +%define CTYPE_INT64     resq
> 
> +%define CTYPE_UINT32    resd
> 
> +%define CTYPE_INT32     resd
> 
> +%define CTYPE_UINT16    resw
> 
> +%define CTYPE_INT16     resw
> 
> +%define CTYPE_BOOLEAN   resb
> 
> +%define CTYPE_UINT8     resb
> 
> +%define CTYPE_CHAR8     resb
> 
> +%define CTYPE_INT8      resb
> 
> +
> 
> +%define CTYPE_UINTN     resd
> 
> +%define CTYPE_INTN      resd
> 
> diff --git a/MdePkg/Include/X64/Nasm.inc b/MdePkg/Include/X64/Nasm.inc
> index 42412735ea..b48d8680bb 100644
> --- a/MdePkg/Include/X64/Nasm.inc
> +++ b/MdePkg/Include/X64/Nasm.inc
> @@ -20,3 +20,41 @@
>  %macro INCSSP_RAX      0
> 
>      DB 0xF3, 0x48, 0x0F, 0xAE, 0xE8
> 
>  %endmacro
> 
> +
> 
> +; NASM provides built-in macros STRUC and ENDSTRUC for structure
> definition.
> 
> +; For example, to define a structure called mytype containing a longword,
> 
> +; a word, a byte and a string of bytes, you might code
> 
> +;
> 
> +; struc   mytype
> 
> +;
> 
> +;  mt_long:      resd    1
> 
> +;  mt_word:      resw    1
> 
> +;  mt_byte:      resb    1
> 
> +;  mt_str:       resb    32
> 
> +;
> 
> +; endstruc
> 
> +;
> 
> +; Below macros are help to map the C types and the RESB family of
> pseudo-instructions.
> 
> +; So that the above structure definition can be coded as
> 
> +;
> 
> +; struc   mytype
> 
> +;
> 
> +;  mt_long:      CTYPE_UINT32    1
> 
> +;  mt_word:      CTYPE_UINT16    1
> 
> +;  mt_byte:      CTYPE_UINT8     1
> 
> +;  mt_str:       CTYPE_CHAR8     32
> 
> +;
> 
> +; endstruc
> 
> +%define CTYPE_UINT64    resq
> 
> +%define CTYPE_INT64     resq
> 
> +%define CTYPE_UINT32    resd
> 
> +%define CTYPE_INT32     resd
> 
> +%define CTYPE_UINT16    resw
> 
> +%define CTYPE_INT16     resw
> 
> +%define CTYPE_BOOLEAN   resb
> 
> +%define CTYPE_UINT8     resb
> 
> +%define CTYPE_CHAR8     resb
> 
> +%define CTYPE_INT8      resb
> 
> +
> 
> +%define CTYPE_UINTN     resq
> 
> +%define CTYPE_INTN      resq
> 
> --
> 2.27.0.windows.1





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#71765): https://edk2.groups.io/g/devel/message/71765
Mute This Topic: https://groups.io/mt/80721940/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to