Subversion Repositories HelenOS

Rev

Rev 3400 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3400 Rev 3552
Line 103... Line 103...
103
    sym_table = 0;
103
    sym_table = 0;
104
    rel_table = 0;
104
    rel_table = 0;
105
    rel_entries = 0;
105
    rel_entries = 0;
106
    jmp_rel_table = 0;
106
    jmp_rel_table = 0;
107
    jmp_rel_entries = 0;
107
    jmp_rel_entries = 0;
108
 
108
/*
109
    i = 0;
109
    i = 0;
110
    while (dynamic[i].d_tag != 0) {
110
    while (dynamic[i].d_tag != 0) {
111
        dptr = (void *)(dynamic[i].d_un.d_val + bias);
111
        dptr = (void *)(dynamic[i].d_un.d_val + bias);
112
        dval = dynamic[i].d_un.d_val;
112
        dval = dynamic[i].d_un.d_val;
113
 
113
 
114
        switch (dynamic[i].d_tag) {
114
        switch (dynamic[i].d_tag) {
115
        case DT_PLTRELSZ: jmp_rel_entries = dval/8; break;
115
        case DT_PLTRELSZ: jmp_rel_entries = dval/8; break;
116
        case DT_JMPREL: jmp_rel_table = dptr; break;
116
        case DT_JMPREL: jmp_rel_table = dptr; break;
117
        case DT_PLTGOT:
117
        case DT_PLTGOT:*/
118
            /* GOT address */
118
            /* GOT address */
119
            got = dptr; break;
119
            /*got = dptr; break;
120
        case DT_SYMTAB: sym_table = dptr; break;
120
        case DT_SYMTAB: sym_table = dptr; break;
121
        case DT_REL: rel_table = dptr; break;
121
        case DT_REL: rel_table = dptr; break;
122
        case DT_RELSZ: rel_entries = dval / 8; break;
122
        case DT_RELSZ: rel_entries = dval / 8; break;
123
        default: break;
123
        default: break;
124
        }
124
        }
125
 
125
 
126
        ++i;
126
        ++i;
127
    }
127
    }
128
   
128
    */
129
//  kputint(1);
129
//  kputint(1);
130
//  kputint((unsigned)sym_table);
130
//  kputint((unsigned)sym_table);
131
//  kputint((unsigned)rel_table);
131
//  kputint((unsigned)rel_table);
132
//  kputint((unsigned)rel_entries);
132
//  kputint((unsigned)rel_entries);
133
 
133
 
134
    /* Now relocate all our dynsyms */
134
    /* Now relocate all our dynsyms */
135
//  kputint(-1);
135
//  kputint(-1);
136
   
136
/* 
137
    for (i=0; i<rel_entries; i++) {
137
    for (i=0; i<rel_entries; i++) {
138
        kputint(i);
138
        kputint(i);
139
        r_offset = rel_table[i].r_offset;
139
        r_offset = rel_table[i].r_offset;
140
        r_info = rel_table[i].r_info;
140
        r_info = rel_table[i].r_info;
141
 
141
 
Line 172... Line 172...
172
            kputint(16);
172
            kputint(16);
173
            *(unsigned *)(r_offset+bias) += bias;
173
            *(unsigned *)(r_offset+bias) += bias;
174
            break;
174
            break;
175
        }
175
        }
176
    }
176
    }
177
 
177
*/
178
    kputint(-1);
178
    kputint(-1);
179
   
179
/* 
180
    for (i=0; i<jmp_rel_entries; i++) {
180
    for (i=0; i<jmp_rel_entries; i++) {
181
        kputint(i);
181
        kputint(i);
182
        r_offset = jmp_rel_table[i].r_offset;
182
        r_offset = jmp_rel_table[i].r_offset;
183
        r_info = jmp_rel_table[i].r_info;
183
        r_info = jmp_rel_table[i].r_info;
184
 
184
 
Line 215... Line 215...
215
            kputint(16);
215
            kputint(16);
216
            *(unsigned *)(r_offset+bias) += bias;
216
            *(unsigned *)(r_offset+bias) += bias;
217
            break;
217
            break;
218
        }
218
        }
219
    }
219
    }
220
 
220
*/
221
    kputint(-1);
221
    kputint(-1);
222
    kputint(0x42);
222
    kputint(0x42);
223
 
223
 
224
    /* This will come in handy */
224
    /* This will come in handy */
225
    __pcb = pcb;
225
    __pcb = pcb;