Home | History | Annotate | Line # | Download | only in aout2hux
      1  1.1  itohy /*
      2  1.1  itohy  *	Human68k .x file structure definitions
      3  1.1  itohy  *
      4  1.4  itohy  *	written by ITOH Yasufumi
      5  1.1  itohy  *	public domain
      6  1.1  itohy  *
      7  1.4  itohy  *	$NetBSD: hux.h,v 1.4 2011/02/21 02:31:58 itohy Exp $
      8  1.1  itohy  */
      9  1.1  itohy /*
     10  1.1  itohy  * Human68k ".x" executable format
     11  1.1  itohy  *
     12  1.1  itohy  *	----------------------------
     13  1.1  itohy  *	|  file header (64 bytes)  |
     14  1.1  itohy  *	|--------------------------|
     15  1.1  itohy  *	|  text                    |
     16  1.1  itohy  *	|--------------------------|
     17  1.1  itohy  *	|  data                    |
     18  1.1  itohy  *	|--------------------------|
     19  1.1  itohy  *	|  relocation table        |
     20  1.1  itohy  *	|--------------------------|
     21  1.1  itohy  *	|  symbol table            |
     22  1.1  itohy  *	|--------------------------|
     23  1.1  itohy  *	|  debugging information   |
     24  1.1  itohy  *	----------------------------
     25  1.1  itohy  *
     26  1.1  itohy  * text and data sections are loaded contiguous
     27  1.1  itohy  */
     28  1.1  itohy 
     29  1.1  itohy /* file header */
     30  1.1  itohy 
     31  1.1  itohy #define HUXMAGIC	0x4855		/* "HU" */
     32  1.1  itohy 
     33  1.1  itohy struct huxhdr {
     34  1.1  itohy 	be_uint16_t	x_magic;	/* HUXMAGIC */
     35  1.1  itohy 	u_int8_t	x_reserved1;	/* 0 */
     36  1.1  itohy 	u_int8_t	x_loadmode;	/* 0: normal, 1: minimal memory,
     37  1.1  itohy 					   2: high address */
     38  1.1  itohy 	be_uint32_t	x_base;		/* base address (normally 0) */
     39  1.1  itohy 	be_uint32_t	x_entry;	/* execution entry */
     40  1.1  itohy 	be_uint32_t	x_text;		/* size of text section */
     41  1.1  itohy 	be_uint32_t	x_data;		/* size of data section */
     42  1.1  itohy 	be_uint32_t	x_bss;		/* size of bss */
     43  1.1  itohy 	be_uint32_t	x_rsize;	/* size of relocation table */
     44  1.1  itohy 	be_uint32_t	x_syms;		/* size of symbol info */
     45  1.1  itohy 	be_uint32_t	x_db_line;	/* size of debugging info (line #) */
     46  1.1  itohy 	be_uint32_t	x_db_syms;	/* size of debugging info (symbol) */
     47  1.1  itohy 	be_uint32_t	x_db_str;	/* size of debugging info (string) */
     48  1.1  itohy 	be_uint32_t	x_reserved2[4];	/* 0 */
     49  1.1  itohy 	be_uint32_t	x_bindlist;	/* bind list offset */
     50  1.1  itohy };
     51  1.1  itohy 
     52  1.1  itohy /*
     53  1.1  itohy  * relocation information
     54  1.1  itohy  */
     55  1.1  itohy 
     56  1.1  itohy /* short format */
     57  1.1  itohy struct relinf_s {
     58  1.1  itohy 	be_uint16_t	locoff_s;	/* offset */
     59  1.1  itohy };
     60  1.1  itohy 
     61  1.1  itohy /* long format */
     62  1.1  itohy #define HUXLRELMAGIC	0x0001
     63  1.1  itohy struct relinf_l {
     64  1.1  itohy 	be_uint16_t	lrelmag;	/* HUXLRELMAGIC */
     65  1.1  itohy 	be_uint16_t	locoff_l[2];	/* this would be  be_uint32_t
     66  1.1  itohy 					 * if there were no alignment problems
     67  1.1  itohy 					 */
     68  1.1  itohy };
     69  1.1  itohy 
     70  1.2  itohy #define HUX_MINLREL	0x10000		/* minimal value for long format */
     71