mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-15 15:51:44 +00:00
74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
#ifndef COFF_H
|
|
#define COFF_H
|
|
/* Based on the elf.h file
|
|
* Changed accordingly to support COFF file support
|
|
*/
|
|
|
|
|
|
/* Values for f_flags. */
|
|
#define F_RELFLG 0x0001 /* If set, not reloc. info. Clear for executables */
|
|
#define F_EXEC 0x0002 /* No unresolved symbols. Executable file ! */
|
|
#define F_LNNO 0x0004 /* If set, line information numbers removed */
|
|
#define F_LSYMS 0x0008 /* If set, local symbols removed */
|
|
#define F_AR32WR 0x0100 /* Indicates little endian file */
|
|
|
|
/* Values for e_machine (architecute). */
|
|
#define EM_E1 0x17a /* Magic number for Hyperstone. Big endian format */
|
|
|
|
/* Values for f_flags. */
|
|
#define O_MAGIC 0x017c /* Optional's header magic number for Hyperstone */
|
|
|
|
/* Values for s_flags. */
|
|
#define S_TYPE_TEXT 0x0020 /* If set, the section contains only executable */
|
|
#define S_TYPE_DATA 0x0040 /* If set, the section contains only initialized data */
|
|
#define S_TYPE_BSS 0x0080 /* If set, the section is BSS no data stored */
|
|
|
|
|
|
typedef struct
|
|
{
|
|
unsigned short f_magic; /* magic number */
|
|
unsigned short f_nscns; /* number of sections */
|
|
unsigned long f_timdat; /* time & date stamp */
|
|
unsigned long f_symptr; /* file pointer to symtab */
|
|
unsigned long f_nsyms; /* number of symtab entries */
|
|
unsigned short f_opthdr; /* sizeof(optional hdr) */
|
|
unsigned short f_flags; /* flags */
|
|
}
|
|
COFF_filehdr;
|
|
|
|
/*
|
|
* Optional header.
|
|
*/
|
|
typedef struct
|
|
{
|
|
unsigned short magic; /* type of file */
|
|
unsigned short vstamp; /* version stamp */
|
|
unsigned long tsize; /* text size in bytes, padded to FW bdry*/
|
|
unsigned long dsize; /* initialized data " " */
|
|
unsigned long bsize; /* uninitialized data " " */
|
|
unsigned long entry; /* entry pt. */
|
|
unsigned long text_start; /* base of text used for this file */
|
|
unsigned long data_start; /* base of data used for this file */
|
|
}
|
|
COFF_opthdr;
|
|
|
|
/*
|
|
* Section header.
|
|
*/
|
|
typedef struct
|
|
{
|
|
char s_name[8]; /* section name */
|
|
unsigned long s_paddr; /* physical address, aliased s_nlib */
|
|
unsigned long s_vaddr; /* virtual address */
|
|
unsigned long s_size; /* section size */
|
|
unsigned long s_scnptr; /* file ptr to raw data for section */
|
|
unsigned long s_relptr; /* file ptr to relocation */
|
|
unsigned 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*/
|
|
unsigned long s_flags; /* flags */
|
|
}
|
|
COFF_scnhdr;
|
|
|
|
#endif /* COFF_H */
|