1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* 23*7c478bd9Sstevel@tonic-gate * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 24*7c478bd9Sstevel@tonic-gate * Use is subject to license terms. 25*7c478bd9Sstevel@tonic-gate */ 26*7c478bd9Sstevel@tonic-gate 27*7c478bd9Sstevel@tonic-gate /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 28*7c478bd9Sstevel@tonic-gate /* All Rights Reserved */ 29*7c478bd9Sstevel@tonic-gate 30*7c478bd9Sstevel@tonic-gate /* Copyright (c) 1987, 1988 Microsoft Corporation */ 31*7c478bd9Sstevel@tonic-gate /* All Rights Reserved */ 32*7c478bd9Sstevel@tonic-gate 33*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 34*7c478bd9Sstevel@tonic-gate 35*7c478bd9Sstevel@tonic-gate /* 36*7c478bd9Sstevel@tonic-gate * <a.out.h> - Object file structure declarations. 37*7c478bd9Sstevel@tonic-gate */ 38*7c478bd9Sstevel@tonic-gate 39*7c478bd9Sstevel@tonic-gate struct aexec { /* a.out header */ 40*7c478bd9Sstevel@tonic-gate unsigned short xa_magic; /* magic number */ 41*7c478bd9Sstevel@tonic-gate unsigned short xa_text; /* size of text segment */ 42*7c478bd9Sstevel@tonic-gate unsigned short xa_data; /* size of initialized data */ 43*7c478bd9Sstevel@tonic-gate unsigned short xa_bss; /* size of unitialized data */ 44*7c478bd9Sstevel@tonic-gate unsigned short xa_syms; /* size of symbol table */ 45*7c478bd9Sstevel@tonic-gate unsigned short xa_entry; /* entry point */ 46*7c478bd9Sstevel@tonic-gate unsigned short xa_unused; /* not used */ 47*7c478bd9Sstevel@tonic-gate unsigned short xa_flag; /* relocation info stripped */ 48*7c478bd9Sstevel@tonic-gate }; 49*7c478bd9Sstevel@tonic-gate 50*7c478bd9Sstevel@tonic-gate 51*7c478bd9Sstevel@tonic-gate /* 52*7c478bd9Sstevel@tonic-gate * Definitions for aexec.xa_magic, OCTAL, obsolete (short). 53*7c478bd9Sstevel@tonic-gate */ 54*7c478bd9Sstevel@tonic-gate 55*7c478bd9Sstevel@tonic-gate #define FMAGIC 0407 /* normal */ 56*7c478bd9Sstevel@tonic-gate #define NMAGIC 0410 /* pure, shared text */ 57*7c478bd9Sstevel@tonic-gate #define IMAGIC 0411 /* separate I & D */ 58*7c478bd9Sstevel@tonic-gate #define OMAGIC 0405 /* text overlays */ 59*7c478bd9Sstevel@tonic-gate #define ZMAGIC 0413 /* demand load format */ 60*7c478bd9Sstevel@tonic-gate 61*7c478bd9Sstevel@tonic-gate #define A_MAGIC1 FMAGIC 62*7c478bd9Sstevel@tonic-gate #define A_MAGIC2 NMAGIC 63*7c478bd9Sstevel@tonic-gate #define A_MAGIC3 IMAGIC 64*7c478bd9Sstevel@tonic-gate #define A_MAGIC4 OMAGIC 65*7c478bd9Sstevel@tonic-gate 66*7c478bd9Sstevel@tonic-gate #define ATEXTPOS(ap) ((long)sizeof (struct aexec)) 67*7c478bd9Sstevel@tonic-gate #define ADATAPOS(ap) (ATEXTPOS(ap) + (long)(ap)->xa_text) 68*7c478bd9Sstevel@tonic-gate #define ARTEXTPOS(ap) (ADATAPOS(ap) + (long)(ap)->xa_data) 69*7c478bd9Sstevel@tonic-gate #define ARDATAPOS(ap) (ARTEXTPOS(ap) + ((long)\ 70*7c478bd9Sstevel@tonic-gate ((ap)->xa_flag? 0 : (ap)->xa_text))) 71*7c478bd9Sstevel@tonic-gate #define ASYMPOS(ap) (ATEXTPOS(ap) + \ 72*7c478bd9Sstevel@tonic-gate (((ap)->xa_flag? 1L : 2L) * \ 73*7c478bd9Sstevel@tonic-gate ((long)(ap)->xa_text + (long)(ap)->xa_data))) 74*7c478bd9Sstevel@tonic-gate #define AENDPOS(ap) (ASYMPOS(ap) + (long)(ap)->xa_syms) 75