1 /* $OpenBSD: exec.h,v 1.6 2001/01/22 14:51:03 art Exp $ */ 2 3 /* 4 * Copyright (c) 1994, The University of Utah and 5 * the Computer Systems Laboratory at the University of Utah (CSL). 6 * All rights reserved. 7 * 8 * Permission to use, copy, modify and distribute this software is hereby 9 * granted provided that (1) source code retains these copyright, permission, 10 * and disclaimer notices, and (2) redistributions including binaries 11 * reproduce the notices in supporting documentation, and (3) all advertising 12 * materials mentioning features or use of this software display the following 13 * acknowledgement: ``This product includes software developed by the 14 * Computer Systems Laboratory at the University of Utah.'' 15 * 16 * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS 17 * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF 18 * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 19 * 20 * CSL requests users of this software to return to csl-dist@cs.utah.edu any 21 * improvements that they make and grant CSL redistribution rights. 22 * 23 * Utah $Hdr: exec.h 1.3 94/12/16$ 24 */ 25 26 #ifndef _MACHINE_EXEC_H_ 27 #define _MACHINE_EXEC_H_ 28 29 #define cpu_exec_aout_makecmds(p, epp) ENOEXEC 30 31 /* Size of a page in an object file. */ 32 #define __LDPGSZ 4096 33 34 #define ARCH_ELFSIZE 32 35 36 #define ELF_TARG_CLASS ELFCLASS32 37 #define ELF_TARG_DATA ELFDATA2MSB 38 #define ELF_TARG_MACH EM_PARISC 39 40 /* #define _NLIST_DO_AOUT */ 41 /* #define _NLIST_DO_ECOFF */ 42 #define _NLIST_DO_ELF 43 #define _NLIST_DO_SOM 44 45 /* #define _KERN_DO_AOUT */ 46 /* #define _KERN_DO_ECOFF */ 47 #define _KERN_DO_ELF 48 #define _KERN_DO_SOM 49 50 /* 51 * the following MD ELF values defenitions are from the: 52 * "Processor-Specific ELF Supplement for PA-RISC. 53 * Including HP and HP-UX Extensions. Version 1.43. October 6, 1998" 54 * http://www.software.hp.com/STK/partner/elf-pa.pdf 55 * 56 */ 57 58 /* parisc-specific elf flags */ 59 #define EF_PARISC_TRAPNIL 0x00010000 /* trap on NULL derefs */ 60 #define EF_PARISC_EXT 0x00020000 /* program uses arch exts */ 61 #define EF_PARISC_LSB 0x00040000 /* program expects LSB mode */ 62 #define EF_PARISC_WIDE 0x00080000 /* program expects wide mode */ 63 #define EF_PARISC_NO_KABP 0x00100000 /* don't allow kernel assisted 64 branch prediction */ 65 #define EF_PARISC_LAZYSWAP 0x00200000 /* allow lazy swap allocation 66 for dynamically allocated 67 program segments */ 68 #define EF_PARISC_ARCH 0x0000ffff /* architecture version */ 69 #define EFA_PARISC_1_0 0x020B 70 #define EFA_PARISC_1_1 0x0210 71 #define EFA_PARISC_2_0 0x0214 72 73 /* legend: 0 - pa7000, 1 - pa7100, 2 - pa7200, 3 - pa7100LC, 4 - pa8000 */ 74 #define PARISC_AE_QWSI 0x00000001 /* 0 : enable quadword stores */ 75 #define PARISC_AE_FPLSU 0x00000002 /* 1: fp load/store to I/O space */ 76 #define PARISC_AE_RSQRT 0x00000004 /* 0 : reciprocal sqrt */ 77 #define PARISC_AE_FDCG 0x00000008 /* 0,1: fdc includes graph flushes */ 78 #define PARISC_AE_HPAR 0x00000010 /* 3,4: half-word add/sub/av */ 79 #define PARISC_AE_BSW 0x00000020 /* 3,4: half-word shift-add */ 80 #define PARISC_AE_HPSA 0x00000040 /* 3 : byte-swapping stores */ 81 #define PARISC_AE_DPR0 0x00000080 /* 2,4: data prefetch via ld to r0 */ 82 83 #define SHN_PARISC_ANSI_COMMON 0xff00 84 #define SHN_PARISC_HUGE_COMMON 0xff01 85 86 /* sh_type */ 87 #define SHT_PARISC_EXT 0x70000000 /* contains product-specific 88 extension bits */ 89 #define SHT_PARISC_UNWIND 0x70000001 /* contains unwind table enries 90 sh_info contains index of 91 the code section to which 92 unwind entries apply */ 93 #define SHT_PARISC_DOC 0x70000002 /* contains debug info for -O */ 94 #define SHT_PARISC_ANNOT 0x70000003 /* contains code annotations */ 95 96 /* sh_flags */ 97 #define SHF_PARISC_SBP 0x80000000 /* contains code compiled for 98 static branch prediction */ 99 #define SHF_PARISC_HUGE 0x40000000 /* should be allocated far from gp */ 100 #define SHF_PARISC_SHORT 0x20000000 /* should be allocated near from gp */ 101 102 #define ELF_PARISC_ARCHEXT ".PARISC.archext" 103 #define ELF_PARISC_MILLI ".PARISC.milli" 104 #define ELF_PARISC_UNWIND ".PARISC.unwind" 105 #define ELF_PARISC_UNWIND_INFO ".PARISC.unwind_info" 106 #define ELF_PARISC_SDATA ".sdata" 107 #define ELF_PARISC_NOBITS ".sbss" 108 109 #define STT_PARISC_MILLI 13 /* entry point of a millicode routine */ 110 111 #define PT_PARISC_ARCHEXT 0x70000000 /* segment contains 112 .PARISC.archext section */ 113 #define PT_PARISC_UNWIND 0x70000001 /* segment contains 114 .unwind section */ 115 116 #define PF_PARISC_SBP 0x08000000 /* segment contains code 117 compiled for static branch prediction */ 118 119 #endif /* _MACHINE_EXEC_H_ */ 120