Annotation of sys/arch/alpha/include/ecoff_machdep.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: ecoff_machdep.h,v 1.3 2002/03/14 01:26:27 millert Exp $ */
! 2: /* $NetBSD: ecoff_machdep.h,v 1.3 1996/05/09 23:47:25 cgd Exp $ */
! 3:
! 4: /*
! 5: * Copyright (c) 1994 Adam Glass
! 6: * All rights reserved.
! 7: *
! 8: * Redistribution and use in source and binary forms, with or without
! 9: * modification, are permitted provided that the following conditions
! 10: * are met:
! 11: * 1. Redistributions of source code must retain the above copyright
! 12: * notice, this list of conditions and the following disclaimer.
! 13: * 2. Redistributions in binary form must reproduce the above copyright
! 14: * notice, this list of conditions and the following disclaimer in the
! 15: * documentation and/or other materials provided with the distribution.
! 16: * 3. All advertising materials mentioning features or use of this software
! 17: * must display the following acknowledgement:
! 18: * This product includes software developed by Adam Glass.
! 19: * 4. The name of the Author may not be used to endorse or promote products
! 20: * derived from this software without specific prior written permission.
! 21: *
! 22: * THIS SOFTWARE IS PROVIDED BY Adam Glass ``AS IS'' AND
! 23: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
! 24: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
! 25: * ARE DISCLAIMED. IN NO EVENT SHALL Adam Glass BE LIABLE
! 26: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
! 27: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
! 28: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 29: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
! 30: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
! 31: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
! 32: * SUCH DAMAGE.
! 33: */
! 34:
! 35: #define ECOFF_LDPGSZ 4096
! 36:
! 37: #define ECOFF_PAD \
! 38: u_short bldrev; /* XXX */
! 39:
! 40: #define ECOFF_MACHDEP \
! 41: u_int gprmask; \
! 42: u_int fprmask; \
! 43: u_long gp_value
! 44:
! 45: #define ECOFF_MAGIC_ALPHA 0603
! 46: #define ECOFF_MAGIC_NATIVE_ALPHA 0605
! 47: #define ECOFF_BADMAG(ep) \
! 48: ((ep)->f.f_magic != ECOFF_MAGIC_ALPHA && \
! 49: (ep)->f.f_magic != ECOFF_MAGIC_NATIVE_ALPHA)
! 50:
! 51: #define ECOFF_FLAG_EXEC 0002
! 52: #define ECOFF_SEGMENT_ALIGNMENT(ep) \
! 53: (((ep)->f.f_flags & ECOFF_FLAG_EXEC) == 0 ? 8 : 16)
! 54:
! 55: #define ECOFF_FLAG_OBJECT_TYPE_MASK 0x3000
! 56: #define ECOFF_OBJECT_TYPE_NO_SHARED 0x1000
! 57: #define ECOFF_OBJECT_TYPE_SHARABLE 0x2000
! 58: #define ECOFF_OBJECT_TYPE_CALL_SHARED 0x3000
! 59:
! 60: struct ecoff_symhdr {
! 61: int16_t magic;
! 62: int16_t vstamp;
! 63: int32_t lineMax;
! 64: int32_t densenumMax;
! 65: int32_t procMax;
! 66: int32_t lsymMax;
! 67: int32_t optsymMax;
! 68: int32_t auxsymMax;
! 69: int32_t lstrMax;
! 70: int32_t estrMax;
! 71: int32_t fdMax;
! 72: int32_t rfdMax;
! 73: int32_t esymMax;
! 74: long linesize;
! 75: long cbLineOffset;
! 76: long cbDnOffset;
! 77: long cbPdOffset;
! 78: long cbSymOffset;
! 79: long cbOptOffset;
! 80: long cbAuxOffset;
! 81: long cbSsOffset;
! 82: long cbSsExtOffset;
! 83: long cbFdOffset;
! 84: long cbRfdOffset;
! 85: long cbExtOffset;
! 86: };
! 87:
! 88: struct ecoff_extsym {
! 89: long es_value;
! 90: int es_strindex;
! 91: unsigned es_type:6;
! 92: unsigned es_class:5;
! 93: unsigned :1;
! 94: unsigned es_symauxindex:20;
! 95: unsigned es_jmptbl:1;
! 96: unsigned es_cmain:1;
! 97: unsigned es_weakext:1;
! 98: unsigned :29;
! 99: int es_indexfld;
! 100: };
! 101:
! 102: #ifdef _KERNEL
! 103: void cpu_exec_ecoff_setregs(struct proc *, struct exec_package *, u_long, register_t *);
! 104: #endif
CVSweb