vms.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 674 行 · 第 1/2 页

H
674
字号
#define DBG_S_C_ENUM_ITEM		0xa4#define DBG_S_C_ENUM_START		0xa5#define DBG_S_C_ENUM_END		0xa6#define DBG_S_C_STRUCT_ITEM		DST_K_VFLAGS_BITOFFS	/* 0xff */#define DBG_S_C_STRUCT_START		0xab#define DBG_S_C_STRUCT_END		0xac#define DST_K_TYPSPEC			0xaf		/* type specification *//* These codes are used in the generation of the symbol definition records */#define DST_K_VFLAGS_NOVAL		0x80	/* struct definition only */#define DST_K_VFLAGS_DSC		0xfa	/* descriptor used */#define DST_K_VFLAGS_TVS		0xfb	/* trailing value specified */#define DST_K_VS_FOLLOWS		0xfd	/* value spec follows */#define DST_K_VFLAGS_BITOFFS		0xff	/* value contains bit offset */#define DST_K_VALKIND_LITERAL	0#define DST_K_VALKIND_ADDR	1#define DST_K_VALKIND_DESC	2#define DST_K_VALKIND_REG	3#define DST_K_REG_VAX_AP	0x0c	/* R12 */#define DST_K_REG_VAX_FP	0x0d	/* R13 */#define DST_K_REG_VAX_SP	0x0e	/* R14 */#define DST_V_VALKIND		0	/* offset of valkind field */#define DST_V_INDIRECT		2	/* offset to indirect bit */#define DST_V_DISP		3	/* offset to displacement bit */#define DST_V_REGNUM		4	/* offset to register number */#define DST_M_INDIRECT		(1<<DST_V_INDIRECT)#define DST_M_DISP		(1<<DST_V_DISP)#define DBG_C_FUNCTION_PARAM	/* 0xc9 */	\	(DST_K_VALKIND_ADDR|DST_M_DISP|(DST_K_REG_VAX_AP<<DST_V_REGNUM))#define DBG_C_LOCAL_SYM		/* 0xd9 */	\	(DST_K_VALKIND_ADDR|DST_M_DISP|(DST_K_REG_VAX_FP<<DST_V_REGNUM))/* Kinds of value specifications */#define DST_K_VS_ALLOC_SPLIT	3	/* split lifetime *//* Kinds of type specifications */#define DST_K_TS_ATOM		0x01	/* atomic type specification */#define DST_K_TS_DSC		0x02	/* descriptor type spec */#define DST_K_TS_IND		0x03	/* indirect type specification */#define DST_K_TS_TPTR		0x04	/* typed pointer type spec */#define DST_K_TS_PTR		0x05	/* pointer type spec */#define DST_K_TS_ARRAY		0x07	/* array type spec */#define DST_K_TS_NOV_LENG	0x0e	/* novel length type spec *//*  These are the codes that are used in the suffix records to determine the *  actual data type */#define DBG_S_C_BASIC			DST_K_TS_ATOM#define DBG_S_C_BASIC_ARRAY		DST_K_TS_DSC#define DBG_S_C_STRUCT			DST_K_TS_IND#define DBG_S_C_POINTER			DST_K_TS_TPTR#define DBG_S_C_VOID			DST_K_TS_PTR#define DBG_S_C_COMPLEX_ARRAY		DST_K_TS_ARRAY/* VMS Module header record (EMH) definitions.  */#define MHD_S_C_MHD 0#define MHD_S_C_LNM 1#define MHD_S_C_SRC 2#define MHD_S_C_TTL 3#define MHD_S_C_CPR 4#define MHD_S_C_MTC 5#define MHD_S_C_GTX 6#define MHD_S_C_MAXHDRTYP 6#define EMH_S_C_MHD 0		/* Main header record		*/#define EMH_S_C_LNM 1		/* Language name and version	*/#define EMH_S_C_SRC 2		/* Source file specification	*/#define EMH_S_C_TTL 3		/* Title text of module		*/#define EMH_S_C_CPR 4		/* Copyright notice		*/#define EMH_S_C_MTC 5		/* Maintenance status		*/#define EMH_S_C_GTX 6		/* General text			*/#define EMH_S_C_MAXHDRTYP 6	/* Maximum allowable type	*//* vms.c.  */extern asymbol *_bfd_vms_make_empty_symbol PARAMS ((bfd *abfd));/* vms-gsd.c.  */extern int _bfd_vms_slurp_gsd PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_gsd PARAMS ((bfd *abfd, int objtype));/* vms-mhd.c.  */extern int _bfd_vms_slurp_hdr PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_hdr PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_slurp_eom PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_eom PARAMS ((bfd *abfd, int objtype));/* vms-tir.c.  */extern int _bfd_vms_slurp_tir PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_slurp_dbg PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_slurp_tbt PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_slurp_lnk PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_tir PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_tbt PARAMS ((bfd *abfd, int objtype));extern int _bfd_vms_write_dbg PARAMS ((bfd *abfd, int objtype));/* The r_type field in a reloc is one of the following values.  */#define ALPHA_R_IGNORE		0#define ALPHA_R_REFQUAD		1#define ALPHA_R_BRADDR		2#define ALPHA_R_HINT		3#define ALPHA_R_SREL16		4#define ALPHA_R_SREL32		5#define ALPHA_R_SREL64		6#define ALPHA_R_OP_PUSH		7#define ALPHA_R_OP_STORE	8#define ALPHA_R_OP_PSUB		9#define ALPHA_R_OP_PRSHIFT	10#define ALPHA_R_LINKAGE		11#define ALPHA_R_REFLONG		12#define ALPHA_R_CODEADDR	13/* Object language definitions.  */#define OBJ_S_C_HDR 0		/*VAX module header record		*/#define OBJ_S_C_GSD 1		/*VAX global symbol definition record	*/#define OBJ_S_C_TIR 2		/*VAX text information record		*/#define OBJ_S_C_EOM 3		/*VAX end of module record		*/#define OBJ_S_C_DBG 4		/*VAX Debugger information record	*/#define OBJ_S_C_TBT 5		/*VAX Traceback information record	*/#define OBJ_S_C_LNK 6		/*VAX linker options record		*/#define OBJ_S_C_EOMW 7		/*VAX end of module word-psect record	*/#define OBJ_S_C_MAXRECTYP 7	/*VAX Last assigned record type		*/#define EOBJ_S_C_EMH 8		/*EVAX module header record		*/#define EOBJ_S_C_EEOM 9		/*EVAX end of module record		*/#define EOBJ_S_C_EGSD 10	/*EVAX global symbol definition record  */#define EOBJ_S_C_ETIR 11	/*EVAX text information record		*/#define EOBJ_S_C_EDBG 12	/*EVAX Debugger information record	*/#define EOBJ_S_C_ETBT 13	/*EVAX Traceback information record	*/#define EOBJ_S_C_MAXRECTYP 13	/*EVAX Last assigned record type	*/#define OBJ_S_K_SUBTYP 1#define OBJ_S_C_SUBTYP 1#define EOBJ_S_K_SUBTYP 4#define EOBJ_S_C_SUBTYP 4#define OBJ_S_C_MAXRECSIZ 2048	/*Maximum legal record size         */#define EOBJ_S_C_MAXRECSIZ 8192 /*Maximum legal record size         */#define OBJ_S_C_STRLVL 0	/*Structure level                   */#define EOBJ_S_C_STRLVL 2	/*Structure level                   */#define OBJ_S_C_SYMSIZ 31	/*Maximum symbol length		*/#define EOBJ_S_C_SYMSIZ 64	/*Maximum symbol length		*/#define EOBJ_S_C_SECSIZ 31	/*Maximum section name length		*/#define OBJ_S_C_STOREPLIM -1	/*Maximum repeat count on store commands  */#define EOBJ_S_C_STOREPLIM -1	/*Maximum repeat count on store commands  */#define OBJ_S_C_PSCALILIM 9	/*Maximum p-sect alignment          */#define EOBJ_S_C_PSCALILIM 16	/*Maximum p-sect alignment          */#define EVAX_OFFSET	256	/*type offset for EVAX codes in switch  *//* Miscellaneous definitions.  */#if __GNUC__typedef unsigned long long uquad;#elsetypedef unsigned long uquad;#endif#define MAX_OUTREC_SIZE 4096#define MIN_OUTREC_LUFT 64typedef struct _vms_section {  unsigned char *contents;  bfd_vma offset;  bfd_size_type size;  struct _vms_section *next;} vms_section;extern boolean _bfd_save_vms_section  PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset,	   bfd_size_type count));extern vms_section *_bfd_get_vms_section PARAMS ((bfd *abfd, int index));typedef struct _vms_reloc {  struct _vms_reloc *next;  arelent *reloc;  asection *section;} vms_reloc;/* vms module header  */struct hdr_struc {  int hdr_b_strlvl;  long hdr_l_arch1;  long hdr_l_arch2;  long hdr_l_recsiz;  char *hdr_t_name;  char *hdr_t_version;  char *hdr_t_date;  char *hdr_c_lnm;  char *hdr_c_src;  char *hdr_c_ttl;};/* vms end of module  */struct eom_struc {  long eom_l_total_lps;  unsigned char eom_b_comcod;  boolean eom_has_transfer;  unsigned char eom_b_tfrflg;  long eom_l_psindx;  long eom_l_tfradr;};enum file_format_enum { FF_UNKNOWN, FF_FOREIGN, FF_NATIVE, FF_VAX };typedef struct vms_symbol_struct {  struct bfd_hash_entry bfd_hash;  asymbol *symbol;} vms_symbol_entry;/* stack value for push/pop commands  */struct stack_struct {  uquad value;  int psect;};#define STACKSIZE 8192/* location stack definitions for CTL_DFLOC, CTL_STLOC, and CTL_STKDL  */struct location_struct {  unsigned long value;  int psect;};#define LOCATION_SAVE_SIZE 32#define VMS_SECTION_COUNT 1024struct vms_private_data_struct {  int is_vax;  boolean fixup_done;			/* Flag to indicate if all					   section pointers and PRIV(sections)					   are set up correctly  */  unsigned char *vms_buf;		/* buffer to record  */  int buf_size;				/* max size of buffer  */  unsigned char *vms_rec;		/* actual record ptr  */  int rec_length;			/* remaining record length  */  int rec_size;				/* actual record size  */  int rec_type;				/* actual record type  */  enum file_format_enum file_format;  struct hdr_struc hdr_data;		/* data from HDR/EMH record  */  struct eom_struc eom_data;		/* data from EOM/EEOM record  */  unsigned int section_count;		/* # of sections in following array  */  asection **sections;			/* array of GSD/EGSD sections  */  int gsd_sym_count;			/* # of GSD/EGSD symbols  */  asymbol **symbols;			/* vector of GSD/EGSD symbols  */  struct proc_value *procedure;  struct stack_struct *stack;  int stackptr;  vms_section *vms_section_table[VMS_SECTION_COUNT];  struct bfd_hash_table *vms_symbol_table;  struct symbol_cache_entry **symcache;  int symnum;  struct location_struct *location_stack;  asection *image_section;		/* section for image_ptr  */  unsigned char *image_ptr;		/* a pointer to section->contents */  unsigned char pdsc[8];		/* procedure descriptor */  /* Output routine storage  */  unsigned char *output_buf;		/* output data  */  int push_level;  int pushed_size;  int length_pos;  int output_size;  int output_alignment;  /* linkage index counter   used by conditional store commands (ETIR_S_C_STC_)  */  int vms_linkage_index;  /* see tc-alpha.c of gas for a description.  */  int flag_hash_long_names;	/* -+, hash instead of truncate */  int flag_show_after_trunc;	/* -H, show hashing/truncation */};#define PRIV(name)	((struct vms_private_data_struct *)abfd->tdata.any)->name#define SECTION_NAME_TEMPLATE "__SEC__%d"#if VMS_DEBUGextern void _bfd_vms_debug PARAMS((int level, char *format, ...));extern void _bfd_hexdump  PARAMS ((int level, unsigned char *ptr, int size, int offset));#define vms_debug _bfd_vms_debug#endifextern struct bfd_hash_entry *_bfd_vms_hash_newfunc  PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,	   const char *string));extern void _bfd_vms_get_header_values  PARAMS ((bfd *abfd, unsigned char *buf, int *type, int *length));extern int _bfd_vms_get_record PARAMS ((bfd *abfd));extern int _bfd_vms_next_record PARAMS ((bfd *abfd));extern char *_bfd_vms_save_sized_string PARAMS ((unsigned char *str, int size));extern char *_bfd_vms_save_counted_string PARAMS ((unsigned char *ptr));extern void _bfd_vms_push PARAMS ((bfd *abfd, uquad val, int psect));extern uquad _bfd_vms_pop PARAMS ((bfd *abfd, int *psect));extern boolean _bfd_save_vms_section  PARAMS ((bfd *abfd, asection *section, PTR data, file_ptr offset,	   bfd_size_type count));extern void _bfd_vms_output_begin  PARAMS ((bfd *abfd, int rectype, int rechead));extern void _bfd_vms_output_alignment PARAMS ((bfd *abfd, int alignto));extern void _bfd_vms_output_push PARAMS ((bfd *abfd));extern void _bfd_vms_output_pop PARAMS ((bfd *abfd));extern void _bfd_vms_output_flush PARAMS ((bfd *abfd));extern void _bfd_vms_output_end PARAMS ((bfd *abfd));extern int _bfd_vms_output_check PARAMS ((bfd *abfd, int size));extern void _bfd_vms_output_byte PARAMS ((bfd *abfd, unsigned int value));extern void _bfd_vms_output_short PARAMS ((bfd *abfd, unsigned int value));extern void _bfd_vms_output_long PARAMS ((bfd *abfd, unsigned long value));extern void _bfd_vms_output_quad PARAMS ((bfd *abfd, uquad value));extern void _bfd_vms_output_counted PARAMS ((bfd *abfd, char *value));extern void _bfd_vms_output_dump PARAMS ((bfd *abfd, unsigned char *data,					   int length));extern void _bfd_vms_output_fill PARAMS ((bfd *abfd, int value, int length));extern char *_bfd_vms_length_hash_symbol PARAMS ((bfd *abfd, const char *in, int maxlen));extern vms_symbol_entry *_bfd_vms_enter_symbol PARAMS ((bfd *abfd, char *name));#endif /* VMS_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?