#ifndef _SYMS_H
#define _SYMS_H

/* Defines for special (e.g., linker-defined) symbols: */

#define _FTEXT		"_ftext"	/* first text addr */
#define _ETEXT		"_etext"	/* first non-text addr */
#define _WEAK_ETEXT	"etext"		/* same, but weak symbol */
#define _FDATA		"_fdata"	/* first data addr */
#define _EDATA		"_edata"	/* first non-data addr */
#define _WEAK_EDATA	"edata"		/* same, but weak symbol */
#define _FBSS		"_fbss"		/* first bss addr */
#define _END		"_end"		/* first non-bss addr */
#define _WEAK_END	"end"		/* same, but weak symbol */

#define _UNWIND		"__unwind"
#define _WEAK_UNWIND	"unwind"

#define _GP		"_gp"		/* global pointer (bogus if multiple gps in use) */
#define _FPDATA		"_fpdata"	/* floating-point data */
#define _FPDATA_SIZE	"_fpdata_size"
#define _PROCEDURE_TABLE	"_procedure_table"
#define _PROCEDURE_TABLE_SIZE	"_procedure_table_size"
#define _PROCEDURE_STRING_TABLE	"_procedure_string_table"
#define _PC_NLC_GOTO	"__pc_nloc_goto"
#define _COBOL_MAIN	"_cobol_main"

#define _START		"__start"	/* default program entry point */

#include <sym.h>

/*
 * GP_DISP is the amount by which gp is biased, GP_SIZE is the maximum
 * size minus 1 of the area that can be addressed via gp.  GP_PAD is
 * not used under Linux, but may be non-zero for other OSes.
 */
#define GP_PAD		0
#define GP_DISP		(0x8000 - GP_PAD)
#define GP_SIZE		(0xffff - GP_PAD)

#endif /* _SYMS_H */
