+\r
+; NASM provides built-in macros STRUC and ENDSTRUC for structure definition.\r
+; For example, to define a structure called mytype containing a longword,\r
+; a word, a byte and a string of bytes, you might code\r
+;\r
+; struc mytype\r
+;\r
+; mt_long: resd 1\r
+; mt_word: resw 1\r
+; mt_byte: resb 1\r
+; mt_str: resb 32\r
+;\r
+; endstruc\r
+;\r
+; Below macros are help to map the C types and the RESB family of pseudo-instructions.\r
+; So that the above structure definition can be coded as\r
+;\r
+; struc mytype\r
+;\r
+; mt_long: CTYPE_UINT32 1\r
+; mt_word: CTYPE_UINT16 1\r
+; mt_byte: CTYPE_UINT8 1\r
+; mt_str: CTYPE_CHAR8 32\r
+;\r
+; endstruc\r
+%define CTYPE_UINT64 resq\r
+%define CTYPE_INT64 resq\r
+%define CTYPE_UINT32 resd\r
+%define CTYPE_INT32 resd\r
+%define CTYPE_UINT16 resw\r
+%define CTYPE_INT16 resw\r
+%define CTYPE_BOOLEAN resb\r
+%define CTYPE_UINT8 resb\r
+%define CTYPE_CHAR8 resb\r
+%define CTYPE_INT8 resb\r
+\r
+%define CTYPE_UINTN resd\r
+%define CTYPE_INTN resd\r