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 /* 34*7c478bd9Sstevel@tonic-gate * <a.out.h> - Object file structure declarations. 35*7c478bd9Sstevel@tonic-gate */ 36*7c478bd9Sstevel@tonic-gate 37*7c478bd9Sstevel@tonic-gate struct aexec { /* a.out header */ 38*7c478bd9Sstevel@tonic-gate unsigned short xa_magic; /* magic number */ 39*7c478bd9Sstevel@tonic-gate unsigned short xa_text; /* size of text segment */ 40*7c478bd9Sstevel@tonic-gate unsigned short xa_data; /* size of initialized data */ 41*7c478bd9Sstevel@tonic-gate unsigned short xa_bss; /* size of unitialized data */ 42*7c478bd9Sstevel@tonic-gate unsigned short xa_syms; /* size of symbol table */ 43*7c478bd9Sstevel@tonic-gate unsigned short xa_entry; /* entry point */ 44*7c478bd9Sstevel@tonic-gate unsigned short xa_unused; /* not used */ 45*7c478bd9Sstevel@tonic-gate unsigned short xa_flag; /* relocation info stripped */ 46*7c478bd9Sstevel@tonic-gate }; 47*7c478bd9Sstevel@tonic-gate 48*7c478bd9Sstevel@tonic-gate 49*7c478bd9Sstevel@tonic-gate /* 50*7c478bd9Sstevel@tonic-gate * Definitions for aexec.xa_magic, OCTAL, obsolete (short). 51*7c478bd9Sstevel@tonic-gate */ 52*7c478bd9Sstevel@tonic-gate 53*7c478bd9Sstevel@tonic-gate #define FMAGIC 0407 /* normal */ 54*7c478bd9Sstevel@tonic-gate #define NMAGIC 0410 /* pure, shared text */ 55*7c478bd9Sstevel@tonic-gate #define IMAGIC 0411 /* separate I & D */ 56*7c478bd9Sstevel@tonic-gate #define OMAGIC 0405 /* text overlays */ 57*7c478bd9Sstevel@tonic-gate #define ZMAGIC 0413 /* demand load format */ 58*7c478bd9Sstevel@tonic-gate 59*7c478bd9Sstevel@tonic-gate #define A_MAGIC1 FMAGIC 60*7c478bd9Sstevel@tonic-gate #define A_MAGIC2 NMAGIC 61*7c478bd9Sstevel@tonic-gate #define A_MAGIC3 IMAGIC 62*7c478bd9Sstevel@tonic-gate #define A_MAGIC4 OMAGIC 63*7c478bd9Sstevel@tonic-gate 64*7c478bd9Sstevel@tonic-gate #define ATEXTPOS(ap) ((long)sizeof (struct aexec)) 65*7c478bd9Sstevel@tonic-gate #define ADATAPOS(ap) (ATEXTPOS(ap) + (long)(ap)->xa_text) 66*7c478bd9Sstevel@tonic-gate #define ARTEXTPOS(ap) (ADATAPOS(ap) + (long)(ap)->xa_data) 67*7c478bd9Sstevel@tonic-gate #define ARDATAPOS(ap) (ARTEXTPOS(ap) + ((long)\ 68*7c478bd9Sstevel@tonic-gate ((ap)->xa_flag? 0 : (ap)->xa_text))) 69*7c478bd9Sstevel@tonic-gate #define ASYMPOS(ap) (ATEXTPOS(ap) + \ 70*7c478bd9Sstevel@tonic-gate (((ap)->xa_flag? 1L : 2L) * \ 71*7c478bd9Sstevel@tonic-gate ((long)(ap)->xa_text + (long)(ap)->xa_data))) 72*7c478bd9Sstevel@tonic-gate #define AENDPOS(ap) (ASYMPOS(ap) + (long)(ap)->xa_syms) 73