Home | History | Annotate | Line # | Download | only in include
aout_machdep.h revision 1.6
      1 /*
      2  * Copyright (c) 1993 Christopher G. Demetriou
      3  * All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  * 1. Redistributions of source code must retain the above copyright
      9  *    notice, this list of conditions and the following disclaimer.
     10  * 2. Redistributions in binary form must reproduce the above copyright
     11  *    notice, this list of conditions and the following disclaimer in the
     12  *    documentation and/or other materials provided with the distribution.
     13  * 3. The name of the author may not be used to endorse or promote products
     14  *    derived from this software without specific prior written permission
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26  *
     27  *	$Id: aout_machdep.h,v 1.6 1994/01/28 23:43:55 jtc Exp $
     28  */
     29 
     30 #ifndef _HP300_EXEC_H_
     31 #define _HP300_EXEC_H_
     32 
     33 #ifdef KERNEL
     34 
     35 #ifdef HPUXCOMPAT
     36 #include "user.h"			/* for pcb */
     37 #include "hp300/hpux/hpux_exec.h"
     38 #endif
     39 
     40 /*
     41  * the following, if defined, prepares a set of vmspace commands for
     42  * a given exectable package defined by epp.
     43  * The standard executable formats are taken care of automatically;
     44  * machine-specific ones can be defined using this function.
     45  */
     46 int cpu_exec_makecmds __P((struct proc *p, struct exec_package *epp));
     47 
     48 /*
     49  * the following function/macro checks to see if a given machine
     50  * type (a_mid) field is valid for this architecture
     51  * a non-zero return value indicates that the machine type is correct.
     52  */
     53 #ifdef HPUXCOMPAT
     54 #define cpu_exec_checkmid(mid) ((mid == MID_HP200) || (mid == MID_HP300) || \
     55 				(mid == MID_HPUX))
     56 #else
     57 #define cpu_exec_checkmid(mid) ((mid == MID_HP200) || (mid == MID_HP300)))
     58 #endif
     59 
     60 #endif /* KERNEL */
     61 
     62 #define __LDPGSZ	4096
     63 
     64 /* Relocation format. */
     65 struct relocation_info_hp300 {
     66 	int r_address;			/* offset in text or data segment */
     67 	unsigned int r_symbolnum : 24,	/* ordinal number of add symbol */
     68 			 r_pcrel :  1,	/* 1 if value should be pc-relative */
     69 			r_length :  2,	/* log base 2 of value's width */
     70 			r_extern :  1,	/* 1 if need to add symbol to value */
     71 		       r_baserel :  1,	/* linkage table relative */
     72 		      r_jmptable :  1,	/* relocate to jump table */
     73 		      r_relative :  1,	/* load address relative */
     74 			  r_copy :  1;	/* run time copy */
     75 };
     76 #define relocation_info	relocation_info_hp300
     77 
     78 #endif  /* _HP300_EXEC_H_ */
     79