Subversion Repositories HelenOS

Rev

Rev 3150 | Rev 3155 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3150 Rev 3153
Line 43... Line 43...
43
#include <mm/slab.h>
43
#include <mm/slab.h>
44
#include <atomic.h>
44
#include <atomic.h>
45
#include <synch/spinlock.h>
45
#include <synch/spinlock.h>
46
#include <synch/waitq.h>
46
#include <synch/waitq.h>
47
#include <arch.h>
47
#include <arch.h>
-
 
48
#include <arch/barrier.h>
48
#include <panic.h>
49
#include <panic.h>
49
#include <adt/avl.h>
50
#include <adt/avl.h>
50
#include <adt/btree.h>
51
#include <adt/btree.h>
51
#include <adt/list.h>
52
#include <adt/list.h>
52
#include <ipc/ipc.h>
53
#include <ipc/ipc.h>
Line 446... Line 447...
446
   
447
   
447
    int rc = copy_from_uspace(kimage, image, size);
448
    int rc = copy_from_uspace(kimage, image, size);
448
    if (rc != EOK)
449
    if (rc != EOK)
449
        return rc;
450
        return rc;
450
   
451
 
-
 
452
    /*
-
 
453
     * Not very efficient and it would be better to call it on code only,
-
 
454
     * but this whole function is a temporary hack anyway and one day it
-
 
455
     * will go in favor of the userspace dynamic loader.
-
 
456
     */
-
 
457
    smc_coherence_block(kimage, size);
-
 
458
   
-
 
459
    uspace_arg_t *kernel_uarg;
451
    uspace_arg_t *kernel_uarg = (uspace_arg_t *) malloc(sizeof(uspace_arg_t), 0);
460
    kernel_uarg = (uspace_arg_t *) malloc(sizeof(uspace_arg_t), 0);
452
    if (kernel_uarg == NULL) {
461
    if (kernel_uarg == NULL) {
453
        free(kimage);
462
        free(kimage);
454
        return ENOMEM;
463
        return ENOMEM;
455
    }
464
    }
456
   
465
   
Line 628... Line 637...
628
    uint64_t cycles;
637
    uint64_t cycles;
629
    char suffix;
638
    char suffix;
630
    order(task_get_accounting(t), &cycles, &suffix);
639
    order(task_get_accounting(t), &cycles, &suffix);
631
 
640
 
632
#ifdef __32_BITS__  
641
#ifdef __32_BITS__  
633
    printf("%-6" PRIu64 " %-10s %-3" PRIu32 " %10p %10p %9" PRIu64 "%c %7ld %6ld",
642
    printf("%-6" PRIu64 " %-10s %-3" PRIu32 " %10p %10p %9" PRIu64
634
        t->taskid, t->name, t->context, t, t->as, cycles, suffix,
643
        "%c %7ld %6ld", t->taskid, t->name, t->context, t, t->as, cycles,
635
        atomic_get(&t->refcount), atomic_get(&t->active_calls));
644
        suffix, atomic_get(&t->refcount), atomic_get(&t->active_calls));
636
#endif
645
#endif
637
 
646
 
638
#ifdef __64_BITS__
647
#ifdef __64_BITS__
639
    printf("%-6" PRIu64 " %-10s %-3" PRIu32 " %18p %18p %9" PRIu64 "%c %7ld %6ld",
648
    printf("%-6" PRIu64 " %-10s %-3" PRIu32 " %18p %18p %9" PRIu64
640
        t->taskid, t->name, t->context, t, t->as, cycles, suffix,
649
        "%c %7ld %6ld", t->taskid, t->name, t->context, t, t->as, cycles,
641
        atomic_get(&t->refcount), atomic_get(&t->active_calls));
650
        suffix, atomic_get(&t->refcount), atomic_get(&t->active_calls));
642
#endif
651
#endif
643
 
652
 
644
    for (j = 0; j < IPC_MAX_PHONES; j++) {
653
    for (j = 0; j < IPC_MAX_PHONES; j++) {
645
        if (t->phones[j].callee)
654
        if (t->phones[j].callee)
646
            printf(" %d:%p", j, t->phones[j].callee);
655
            printf(" %d:%p", j, t->phones[j].callee);