home *** CD-ROM | disk | FTP | other *** search
- /* Copyright (c) 1990 UNIX System Laboratories, Inc. */
- /* Copyright (c) 1988 AT&T */
- /* All Rights Reserved */
-
- /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
- /* UNIX System Laboratories, Inc. */
- /* The copyright notice above does not evidence any */
- /* actual or intended publication of such source code. */
-
- #ident "@(#)/usr/include/reloc.h.sl 1.2 5.0 08/27/90 52897 AT&T-USO 1.3"
-
- #ifndef _RELOC_H
- #define _RELOC_H
-
- struct reloc {
- long r_vaddr; /* (virtual) address of reference */
- long r_symndx; /* index into symbol table */
- unsigned short r_type; /* relocation type */
- };
-
- /*
- * relocation types for all products and generics
- */
-
- /*
- * All generics
- * reloc. already performed to symbol in the same section
- */
- #define R_ABS 0
-
- /*
- * X86 generic
- * 8-bit offset reference in 8-bits
- * 8-bit offset reference in 16-bits
- * 12-bit segment reference
- * auxiliary relocation entry
- */
- #define R_OFF8 07
- #define R_OFF16 010
- #define R_SEG12 011
- #define R_AUX 013
-
- /*
- * B16 and X86 generics
- * 16-bit direct reference
- * 16-bit "relative" reference
- * 16-bit "indirect" (TV) reference
- */
- #define R_DIR16 01
- #define R_REL16 02
- #define R_IND16 03
-
- /*
- * 3B generic
- * 24-bit direct reference
- * 24-bit "relative" reference
- * 16-bit optimized "indirect" TV reference
- * 24-bit "indirect" TV reference
- * 32-bit "indirect" TV reference
- */
- #define R_DIR24 04
- #define R_REL24 05
- #define R_OPT16 014
- #define R_IND24 015
- #define R_IND32 016
-
- /*
- * 3B and M32 || u3b15 || u3b5 || u3b2 generics
- * 32-bit direct reference
- */
- #define R_DIR32 06
-
- /*
- * M32 || u3b15 || u3b5 || u3b2 generic
- * 32-bit direct reference with bytes swapped
- */
- #define R_DIR32S 012
-
- /*
- * DEC Processors VAX 11/780 and VAX 11/750
- *
- */
-
- #define R_RELBYTE 017
- #define R_RELWORD 020
- #define R_RELLONG 021
- #define R_PCRBYTE 022
- #define R_PCRWORD 023
- #define R_PCRLONG 024
-
- /*
- * Motorola 68000
- *
- * ... uses R_RELBYTE, R_RELWORD, R_RELLONG, R_PCRBYTE and R_PCRWORD as for
- * DEC machines above.
- */
-
- #define RELOC struct reloc
- #define RELSZ 10 /* sizeof(RELOC) */
-
- /* Definition of a "TV" relocation type */
-
- #if defined(__STDC__)
-
- #if #machine(N3B)
- #define ISTVRELOC(x) ((x==R_OPT16)||(x==R_IND24)||(x==R_IND32))
- #elif #machine(B16) || #machine(X86)
- #define ISTVRELOC(x) (x==R_IND16)
- #else
- #define ISTVRELOC(x) (x!=x) /* never the case */
- #endif
-
- #else
- #if N3B
- #define ISTVRELOC(x) ((x==R_OPT16)||(x==R_IND24)||(x==R_IND32))
- #endif
- #if B16 || X86
- #define ISTVRELOC(x) (x==R_IND16)
- #endif
- #if M32 || u3b15 || u3b5 || u3b2
- #define ISTVRELOC(x) (x!=x) /* never the case */
- #endif
-
- #endif /* __STDC__ */
-
- #endif /* _RELOC_H */
-