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