ecoff_machdep.h revision 2632:1bb2f91485ea
1/* 2 * Taken from NetBSD arch/alpha/ecoff_machdep.h 3 */ 4 5/* $NetBSD: ecoff_machdep.h,v 1.5 1999/04/27 02:32:33 cgd Exp $ */ 6 7/* 8 * Copyright (c) 1994 Adam Glass 9 * All rights reserved. 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. All advertising materials mentioning features or use of this software 20 * must display the following acknowledgement: 21 * This product includes software developed by Adam Glass. 22 * 4. The name of the Author may not be used to endorse or promote products 23 * derived from this software without specific prior written permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY Adam Glass ``AS IS'' AND 26 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28 * ARE DISCLAIMED. IN NO EVENT SHALL Adam Glass BE LIABLE 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35 * SUCH DAMAGE. 36 */ 37 38// 39// Define COFF/ECOFF integer type sizes 40// 41typedef int16_t coff_short; 42typedef uint16_t coff_ushort; 43typedef int32_t coff_int; 44typedef uint32_t coff_uint; 45typedef int64_t coff_long; 46typedef uint64_t coff_ulong; 47typedef uint64_t coff_addr; 48 49#define ECOFF_LDPGSZ 4096 50 51#define ECOFF_PAD \ 52 coff_ushort bldrev; /* XXX */ 53 54#define ECOFF_MACHDEP \ 55 coff_uint gprmask; \ 56 coff_uint fprmask; \ 57 coff_ulong gp_value 58 59#define ECOFF_MAGIC_ALPHA 0603 60#define ECOFF_MAGIC_NETBSD_ALPHA 0605 61#define ECOFF_BADMAG(ep) \ 62 ((ep)->f.f_magic != ECOFF_MAGIC_ALPHA && \ 63 (ep)->f.f_magic != ECOFF_MAGIC_NETBSD_ALPHA) 64 65#define ECOFF_FLAG_EXEC 0002 66#define ECOFF_SEGMENT_ALIGNMENT(ep) \ 67 (((ep)->f.f_flags & ECOFF_FLAG_EXEC) == 0 ? 8 : 16) 68 69#define ECOFF_FLAG_OBJECT_TYPE_MASK 0x3000 70#define ECOFF_OBJECT_TYPE_NO_SHARED 0x1000 71#define ECOFF_OBJECT_TYPE_SHARABLE 0x2000 72#define ECOFF_OBJECT_TYPE_CALL_SHARED 0x3000 73 74