diff options
author | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-04-21 22:40:11 +0400 |
---|---|---|
committer | Cyrill Gorcunov <gorcunov@gmail.com> | 2010-04-21 22:40:11 +0400 |
commit | 83ffe8ca240b96e26af689235030dc3bdd16bb20 (patch) | |
tree | 53f726a55d388a36e74b81b8cb13a5ab78c7f3ad /output | |
parent | d0c6dbe0fece06b6765f35336631ce2f21b5744a (diff) | |
download | nasm-83ffe8ca240b96e26af689235030dc3bdd16bb20.tar.gz |
coff: Use predefined macro in common section flags
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Diffstat (limited to 'output')
-rw-r--r-- | output/outcoff.c | 55 |
1 files changed, 49 insertions, 6 deletions
diff --git a/output/outcoff.c b/output/outcoff.c index c9f17d75..43ada7b5 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -141,13 +141,56 @@ struct Section { int32_t pos, relpos; }; -#define TEXT_FLAGS ((win32 | win64) ? 0x60500020L : 0x20L) -#define DATA_FLAGS ((win32 | win64) ? 0xC0300040L : 0x40L) -#define BSS_FLAGS ((win32 | win64) ? 0xC0300080L : 0x80L) +/* + * Some common section flags by default + */ +#define TEXT_FLAGS_WIN \ + (IMAGE_SCN_CNT_CODE | \ + IMAGE_SCN_ALIGN_16BYTES | \ + IMAGE_SCN_MEM_EXECUTE | \ + IMAGE_SCN_MEM_READ) +#define TEXT_FLAGS_DOS \ + (IMAGE_SCN_CNT_CODE) + +#define DATA_FLAGS_WIN \ + (IMAGE_SCN_CNT_INITIALIZED_DATA | \ + IMAGE_SCN_ALIGN_4BYTES | \ + IMAGE_SCN_MEM_READ | \ + IMAGE_SCN_MEM_WRITE) +#define DATA_FLAGS_DOS \ + (IMAGE_SCN_CNT_INITIALIZED_DATA) + +#define BSS_FLAGS_WIN \ + (IMAGE_SCN_CNT_UNINITIALIZED_DATA | \ + IMAGE_SCN_ALIGN_4BYTES | \ + IMAGE_SCN_MEM_READ | \ + IMAGE_SCN_MEM_WRITE) +#define BSS_FLAGS_DOS \ + (IMAGE_SCN_CNT_UNINITIALIZED_DATA) + +#define RDATA_FLAGS_WIN \ + (IMAGE_SCN_CNT_INITIALIZED_DATA | \ + IMAGE_SCN_ALIGN_8BYTES | \ + IMAGE_SCN_MEM_READ) + +#define RDATA_FLAGS_DOS \ + (IMAGE_SCN_CNT_INITIALIZED_DATA) + +#define PDATA_FLAGS \ + (IMAGE_SCN_CNT_INITIALIZED_DATA | \ + IMAGE_SCN_ALIGN_4BYTES | \ + IMAGE_SCN_MEM_READ) + +#define XDATA_FLAGS \ + (IMAGE_SCN_CNT_INITIALIZED_DATA | \ + IMAGE_SCN_ALIGN_8BYTES | \ + IMAGE_SCN_MEM_READ) + +#define TEXT_FLAGS ((win32 | win64) ? TEXT_FLAGS_WIN : TEXT_FLAGS_DOS) +#define DATA_FLAGS ((win32 | win64) ? DATA_FLAGS_WIN : DATA_FLAGS_DOS) +#define BSS_FLAGS ((win32 | win64) ? BSS_FLAGS_WIN : BSS_FLAGS_DOS) +#define RDATA_FLAGS ((win32 | win64) ? RDATA_FLAGS_WIN : RDATA_FLAGS_DOS) #define INFO_FLAGS 0x00100A00L -#define RDATA_FLAGS ((win32 | win64) ? 0x40400040L : 0x40L) -#define PDATA_FLAGS (0x40300040) /* rdata align=4 */ -#define XDATA_FLAGS (0x40400040) /* rdate align=8 */ #define SECT_DELTA 32 static struct Section **sects; |