Annotation of sys/arch/hppa/include/exec.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: exec.h,v 1.9 2003/11/07 16:41:01 mickey 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_ELF
! 41: #define _KERN_DO_ELF
! 42:
! 43: /*
! 44: * the following MD ELF values defenitions are from the:
! 45: * "Processor-Specific ELF Supplement for PA-RISC.
! 46: * Including HP and HP-UX Extensions. Version 1.43. October 6, 1997"
! 47: * http://devrsrc1.external.hp.com/STK/partner/elf-pa.pdf
! 48: *
! 49: */
! 50:
! 51: /* parisc-specific elf flags */
! 52: #define EF_PARISC_TRAPNIL 0x00010000 /* trap on NULL derefs */
! 53: #define EF_PARISC_EXT 0x00020000 /* program uses arch exts */
! 54: #define EF_PARISC_LSB 0x00040000 /* program expects LSB mode */
! 55: #define EF_PARISC_WIDE 0x00080000 /* program expects wide mode */
! 56: #define EF_PARISC_NO_KABP 0x00100000 /* don't allow kernel assisted
! 57: branch prediction */
! 58: #define EF_PARISC_LAZYSWAP 0x00200000 /* allow lazy swap allocation
! 59: for dynamically allocated
! 60: program segments */
! 61: #define EF_PARISC_ARCH 0x0000ffff /* architecture version */
! 62: #define EFA_PARISC_1_0 0x020B
! 63: #define EFA_PARISC_1_1 0x0210
! 64: #define EFA_PARISC_2_0 0x0214
! 65:
! 66: /* legend: 0 - pa7000, 1 - pa7100, 2 - pa7200, 3 - pa7100LC, 4 - pa8000 */
! 67: #define PARISC_AE_QWSI 0x00000001 /* 0 : enable quadword stores */
! 68: #define PARISC_AE_FPLSU 0x00000002 /* 1: fp load/store to I/O space */
! 69: #define PARISC_AE_RSQRT 0x00000004 /* 0 : reciprocal sqrt */
! 70: #define PARISC_AE_FDCG 0x00000008 /* 0,1: fdc includes graph flushes */
! 71: #define PARISC_AE_HPAR 0x00000010 /* 3,4: half-word add/sub/av */
! 72: #define PARISC_AE_BSW 0x00000020 /* 3,4: half-word shift-add */
! 73: #define PARISC_AE_HPSA 0x00000040 /* 3 : byte-swapping stores */
! 74: #define PARISC_AE_DPR0 0x00000080 /* 2,4: data prefetch via ld to r0 */
! 75:
! 76: #define SHN_PARISC_ANSI_COMMON 0xff00
! 77: #define SHN_PARISC_HUGE_COMMON 0xff01
! 78:
! 79: /* sh_type */
! 80: #define SHT_PARISC_EXT 0x70000000 /* contains product-specific
! 81: extension bits */
! 82: #define SHT_PARISC_UNWIND 0x70000001 /* contains unwind table enries
! 83: sh_info contains index of
! 84: the code section to which
! 85: unwind entries apply */
! 86: #define SHT_PARISC_DOC 0x70000002 /* contains debug info for -O */
! 87: #define SHT_PARISC_ANNOT 0x70000003 /* contains code annotations */
! 88:
! 89: /* sh_flags */
! 90: #define SHF_PARISC_SBP 0x80000000 /* contains code compiled for
! 91: static branch prediction */
! 92: #define SHF_PARISC_HUGE 0x40000000 /* should be allocated far from gp */
! 93: #define SHF_PARISC_SHORT 0x20000000 /* should be allocated near from gp */
! 94:
! 95: #define ELF_PARISC_ARCHEXT ".PARISC.archext"
! 96: #define ELF_PARISC_MILLI ".PARISC.milli"
! 97: #define ELF_PARISC_UNWIND ".PARISC.unwind"
! 98: #define ELF_PARISC_UNWIND_INFO ".PARISC.unwind_info"
! 99: #define ELF_PARISC_SDATA ".sdata"
! 100: #define ELF_PARISC_NOBITS ".sbss"
! 101:
! 102: #define STT_PARISC_MILLI 13 /* entry point of a millicode routine */
! 103:
! 104: #define PT_PARISC_ARCHEXT 0x70000000 /* segment contains
! 105: .PARISC.archext section */
! 106: #define PT_PARISC_UNWIND 0x70000001 /* segment contains
! 107: .unwind section */
! 108:
! 109: #define PF_PARISC_SBP 0x08000000 /* segment contains code
! 110: compiled for static branch prediction */
! 111:
! 112: #endif /* _MACHINE_EXEC_H_ */
CVSweb