cxgb4vf: Use defined Mailbox Timeout
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / staging / tidspbridge / dynload / reloc_table.h
blob6aab03d4668dd2911789fdf63710dc16880bfe17
1 /*
2 * reloc_table.h
4 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
6 * Copyright (C) 2005-2006 Texas Instruments, Inc.
8 * This package is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
12 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
13 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
14 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 #ifndef _RELOC_TABLE_H_
18 #define _RELOC_TABLE_H_
20 * Table of relocation operator properties
22 #include <linux/types.h>
24 /* How does this relocation operation access the program image? */
25 #define ROP_N 0 /* does not access image */
26 #define ROP_R 1 /* read from image */
27 #define ROP_W 2 /* write to image */
28 #define ROP_RW 3 /* read from and write to image */
30 /* For program image access, what are the overflow rules for the bit field? */
31 /* Beware! Procedure repack depends on this encoding */
32 #define ROP_ANY 0 /* no overflow ever, just truncate the value */
33 #define ROP_SGN 1 /* signed field */
34 #define ROP_UNS 2 /* unsigned field */
35 #define ROP_MAX 3 /* allow maximum range of either signed or unsigned */
37 /* How does the relocation operation use the symbol reference */
38 #define ROP_IGN 0 /* no symbol is referenced */
39 #define ROP_LIT 0 /* use rp->UVAL literal field */
40 #define ROP_SYM 1 /* symbol value is used in relocation */
41 #define ROP_SYMD 2 /* delta value vs last link is used */
43 /* How does the reloc op use the stack? */
44 #define RSTK_N 0 /* Does not use */
45 #define RSTK_POP 1 /* Does a POP */
46 #define RSTK_UOP 2 /* Unary op, stack position unaffected */
47 #define RSTK_PSH 3 /* Does a push */
50 * Computational actions performed by the dynamic loader
52 enum dload_actions {
53 /* don't alter the current val (from stack or mem fetch) */
54 RACT_VAL,
55 /* set value to reference amount (from symbol reference) */
56 RACT_ASGN,
57 RACT_ADD, /* add reference to value */
58 RACT_PCR, /* add reference minus PC delta to value */
59 RACT_ADDISP, /* add reference plus R_DISP */
60 RACT_ASGPC, /* set value to section addr plus reference */
62 RACT_PLUS, /* stack + */
63 RACT_SUB, /* stack - */
64 RACT_NEG, /* stack unary - */
66 RACT_MPY, /* stack * */
67 RACT_DIV, /* stack / */
68 RACT_MOD, /* stack % */
70 RACT_SR, /* stack unsigned >> */
71 RACT_ASR, /* stack signed >> */
72 RACT_SL, /* stack << */
73 RACT_AND, /* stack & */
74 RACT_OR, /* stack | */
75 RACT_XOR, /* stack ^ */
76 RACT_NOT, /* stack ~ */
77 RACT_C6SECT, /* for C60 R_SECT op */
78 RACT_C6BASE, /* for C60 R_BASE op */
79 RACT_C6DSPL, /* for C60 scaled 15-bit displacement */
80 RACT_PCR23T /* for ARM Thumb long branch */
84 * macros used to extract values
86 #define RFV_POSN(aaa) ((aaa) & 0xF)
87 #define RFV_WIDTH(aaa) (((aaa) >> 4) & 0x3F)
88 #define RFV_ACTION(aaa) ((aaa) >> 10)
90 #define RFV_SIGN(iii) (((iii) >> 2) & 0x3)
91 #define RFV_SYM(iii) (((iii) >> 4) & 0x3)
92 #define RFV_STK(iii) (((iii) >> 6) & 0x3)
93 #define RFV_ACCS(iii) ((iii) & 0x3)
95 #if (TMS32060)
96 #define RFV_SCALE(iii) ((iii) >> 11)
97 #define RFV_BIGOFF(iii) (((iii) >> 8) & 0x7)
98 #else
99 #define RFV_BIGOFF(iii) ((iii) >> 8)
100 #endif
102 #endif /* _RELOC_TABLE_H_ */