~jakub/helenos/ia64-revival

« back to all changes in this revision

Viewing changes to uspace/srv/loader/elf_load.c

  • Committer: Jakub Jermar
  • Date: 2011-04-13 14:45:41 UTC
  • mfrom: (527.1.397 main-clone)
  • Revision ID: jakub@jermar.eu-20110413144541-x0j3r1zxqhsljx1o
MergeĀ mainlineĀ changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
108
108
 
109
109
        int fd;
110
110
        int rc;
111
 
 
 
111
        
112
112
        fd = open(file_name, O_RDONLY);
113
113
        if (fd < 0) {
114
114
                DPRINTF("failed opening file\n");
299
299
        switch (entry->p_type) {
300
300
        case PT_NULL:
301
301
        case PT_PHDR:
 
302
        case PT_NOTE:
302
303
                break;
303
304
        case PT_LOAD:
304
305
                return load_segment(elf, entry);
309
310
                break;
310
311
        case PT_DYNAMIC:
311
312
        case PT_SHLIB:
312
 
        case PT_NOTE:
313
313
        case PT_LOPROC:
314
314
        case PT_HIPROC:
315
315
        default:
343
343
        seg_addr = entry->p_vaddr + bias;
344
344
        seg_ptr = (void *) seg_addr;
345
345
 
346
 
        DPRINTF("Load segment at addr %p, size 0x%x\n", seg_addr,
 
346
        DPRINTF("Load segment at addr %p, size 0x%x\n", (void *) seg_addr,
347
347
                entry->p_memsz);
348
348
 
349
349
        if (entry->p_align > 1) {
371
371
        base = ALIGN_DOWN(entry->p_vaddr, PAGE_SIZE);
372
372
        mem_sz = entry->p_memsz + (entry->p_vaddr - base);
373
373
 
374
 
        DPRINTF("Map to seg_addr=%p-%p.\n", seg_addr,
375
 
        entry->p_vaddr + bias + ALIGN_UP(entry->p_memsz, PAGE_SIZE));
 
374
        DPRINTF("Map to seg_addr=%p-%p.\n", (void *) seg_addr,
 
375
            (void *) (entry->p_vaddr + bias +
 
376
            ALIGN_UP(entry->p_memsz, PAGE_SIZE)));
376
377
 
377
378
        /*
378
379
         * For the course of loading, the area needs to be readable
385
386
                return EE_MEMORY;
386
387
        }
387
388
 
388
 
        DPRINTF("as_area_create(%p, 0x%x, %d) -> 0x%lx\n",
389
 
                base + bias, mem_sz, flags, (uintptr_t)a);
 
389
        DPRINTF("as_area_create(%p, %#zx, %d) -> %p\n",
 
390
            (void *) (base + bias), mem_sz, flags, (void *) a);
390
391
 
391
392
        /*
392
393
         * Load segment data
463
464
                elf->info->dynamic =
464
465
                    (void *)((uint8_t *)entry->sh_addr + elf->bias);
465
466
                DPRINTF("Dynamic section found at %p.\n",
466
 
                        (uintptr_t)elf->info->dynamic);
 
467
                    (void *) elf->info->dynamic);
467
468
                break;
468
469
        default:
469
470
                break;