1 /* $OpenBSD: reloc.h,v 1.3 2011/03/23 16:54:34 pirofti Exp $ */ 2 3 #ifndef _MACHINE_RELOC_H_ 4 #define _MACHINE_RELOC_H_ 5 6 #define RELOC_NONE 0 /* No reloc */ 7 #define RELOC_REFLONG 1 /* Direct 32 bit */ 8 #define RELOC_REFQUAD 2 /* Direct 64 bit */ 9 #define RELOC_GPREL32 3 /* GP relative 32 bit */ 10 #define RELOC_LITERAL 4 /* GP relative 16 bit w/optimization */ 11 #define RELOC_LITUSE 5 /* Optimization hint for LITERAL */ 12 #define RELOC_GPDISP 6 /* Add displacement to GP */ 13 #define RELOC_BRADDR 7 /* PC+4 relative 23 bit shifted */ 14 #define RELOC_HINT 8 /* PC+4 relative 16 bit shifted */ 15 #define RELOC_SREL16 9 /* PC relative 16 bit */ 16 #define RELOC_SREL32 10 /* PC relative 32 bit */ 17 #define RELOC_SREL64 11 /* PC relative 64 bit */ 18 #define RELOC_OP_PUSH 12 /* OP stack push */ 19 #define RELOC_OP_STORE 13 /* OP stack pop and store */ 20 #define RELOC_OP_PSUB 14 /* OP stack subtract */ 21 #define RELOC_OP_PRSHIFT 15 /* OP stack right shift */ 22 #define RELOC_GPVALUE 16 23 #define RELOC_GPRELHIGH 17 24 #define RELOC_GPRELLOW 18 25 #define RELOC_IMMED_GP_16 19 26 #define RELOC_IMMED_GP_HI32 20 27 #define RELOC_IMMED_SCN_HI32 21 28 #define RELOC_IMMED_BRELOC_HI32 22 29 #define RELOC_IMMED_LO32 23 30 #define RELOC_COPY 24 /* Copy symbol at runtime */ 31 #define RELOC_GLOB_DAT 25 /* Create GOT entry */ 32 #define RELOC_JMP_SLOT 26 /* Create PLT entry */ 33 #define RELOC_RELATIVE 27 /* Adjust by program base */ 34 35 #define R_TYPE(X) __CONCAT(RELOC_,X) 36 37 #endif /* _MACHINE_RELOC_H_ */ 38