This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/SCNHDR.H

80 lines
2.5 KiB
C

/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
#if __SC__ || __RCC__
#pragma once
#endif
#ifndef __SCNHDR_H
#define __SCNHDR_H 1
/* Used when dealing with COFF files. */
#if __cplusplus
extern "C" {
#endif
struct scnhdr
{
char s_name[8]; /* Section name, (.text, .data, .bss). */
long s_paddr; /* Physical address. */
long s_vaddr; /* Virtual address. */
long s_size; /* Section size. */
long s_scnptr; /* File ptr to raw data for section. */
long s_relptr; /* File ptr to relocation. */
long s_lnnoptr; /* File ptr to line numbers. */
unsigned short s_nreloc; /* Number of relocation entries. */
unsigned short s_nlnno; /* Number of line number entries. */
long s_flags; /* Type and content. */
};
#define SCNHDR struct scnhdr
#define SCNHSZ sizeof(SCNHDR)
/* Constants for names of special sections. */
#define _BSS ".bss"
#define _DATA ".data"
#define _FINI ".fini"
#define _INIT ".init"
#define _TEXT ".text"
#define _TV ".tv"
#define _COMM ".comment"
/* Section numbers for main sections */
#define COFF_TEXT 1
#define COFF_DATA 2
#define COFF_BSS 3
#define COFF_COMMENT 4
#define COFF_STIDATA 5 /* For static constructor function pointers */
#define COFF_STDDATA 6 /* For static destructors function pointers */
#define COFF_MAX_SCNS 6 /* Total number of possible sections */
/* s_flags -- The lower 2 bytes are the section type, upper 2 bytes are
section handling. */
#define STYP_REG 0x00 /* regular section: allocated, relocated, */
/* loaded */
#define STYP_DSECT 0x01 /* dummy section: not allocated, relocated, */
/* not loaded */
#define STYP_NOLOAD 0x02 /* noload section: allocated, relocated, */
/* not loaded */
#define STYP_GROUP 0x04 /* grouped section: formed of input sections */
#define STYP_PAD 0x08 /* padding section: not allocated, not */
/* relocated, loaded */
#define STYP_COPY 0x10 /* copy section: for decision function used */
/* by field update; not allocated, not */
/* relocated, loaded; reloc & lineno entries */
/* processed normally */
#define STYP_TEXT 0x20 /* text only */
#define STYP_DATA 0x40 /* data only */
#define STYP_BSS 0x80 /* bss only */
#define STYP_INFO 0x200 /* comment section : not allocated not */
/* relocated, not loaded */
#define STYP_LIB 0x800 /* for .lib section : same as INFO */
#define STYP_OVER 0x400 /* overlay section : relocated not allocated */
/* or loaded */
#if __cplusplus
}
#endif
#endif