On 02/05/21 08:58, Ni, Ray wrote:
> 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
> 

Reviewed-by: Laszlo Ersek <ler...@redhat.com>



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


Reply via email to