Subversion Repositories HelenOS

Rev

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

Rev 2280 Rev 2282
Line 53... Line 53...
53
 
53
 
54
//TODO: Remove include and move into exceptio.c
54
//TODO: Remove include and move into exceptio.c
55
#include <arch/exception.h>
55
#include <arch/exception.h>
56
 
56
 
57
#include <syscall/syscall.h>
57
#include <syscall/syscall.h>
-
 
58
void tmp_swi_exception(int exc_no, istate_t* istate);
58
static void tmp_swi_exception(int exc_no, istate_t* istate)
59
void tmp_swi_exception(int exc_no, istate_t* istate)
59
{
60
{
60
    ASSERT(exc_no == EXC_SWI);
61
    ASSERT(exc_no == EXC_SWI);
61
    ASSERT(istate);
62
    ASSERT(istate);
62
    // TODO: Alf ... remove aftet swi_exception is tested
63
    // TODO: Alf ... remove aftet swi_exception is tested
63
    dprintf("\nSWI - istate dump input :\n");
64
    dprintf("\nSWI - istate dump input :\n");
64
    dprintf("    r0:%X    r1:%X    r2:%X    r3:%X\n", istate->r0,  istate->r1, istate->r2,  istate->r3);
65
    dprintf("    r0:%X    r1:%X    r2:%X    r3:%X\n", istate->r0,  istate->r1, istate->r2,  istate->r3);
65
    dprintf("    r4:%X    r5:%X    r6:%X    r7:%X\n", istate->r4,  istate->r5, istate->r6,  istate->r7);
66
    dprintf("    r4:%X    r5:%X    r6:%X    r7:%X\n", istate->r4,  istate->r5, istate->r6,  istate->r7);
66
    dprintf("    r8:%X    r8:%X   r10:%X   r11:%X\n", istate->r8,  istate->r9, istate->r10, istate->r11);
67
    dprintf("    r8:%X    r8:%X   r10:%X   r11:%X\n", istate->r8,  istate->r9, istate->r10, istate->r11);
67
    dprintf("   r12:%X    r13:%X    lr:%X  spsr:%X\n", istate->r12, istate->sp, istate->lr,  istate->spsr);
68
    dprintf("   r12:%X    r13:%X    lr:%X  spsr:%X\n", istate->r12, istate->sp, istate->lr,  istate->spsr);
68
    dprintf("   prev_lr:%X    prev_sp:%X\n", istate->r12, istate->prev_lr, istate->prev_sp);
69
//  dprintf("   prev_lr:%X    prev_sp:%X\n", istate->r12, istate->prev_lr, istate->prev_sp);
69
    // call kernel to serve syscall
70
    // call kernel to serve syscall
70
    istate->r0 = syscall_handler(
71
    istate->r0 = syscall_handler(
71
        istate->r0,
72
        istate->r0,
72
        istate->r1,
73
        istate->r1,
73
        istate->r2,
74
        istate->r2,
Line 78... Line 79...
78
    dprintf("\nSWI - Istate dump after :\n");
79
    dprintf("\nSWI - Istate dump after :\n");
79
    dprintf("    r0:%X    r1:%X    r2:%X    r3:%X\n", istate->r0,  istate->r1, istate->r2,  istate->r3);
80
    dprintf("    r0:%X    r1:%X    r2:%X    r3:%X\n", istate->r0,  istate->r1, istate->r2,  istate->r3);
80
    dprintf("    r4:%X    r5:%X    r6:%X    r7:%X\n", istate->r4,  istate->r5, istate->r6,  istate->r7);
81
    dprintf("    r4:%X    r5:%X    r6:%X    r7:%X\n", istate->r4,  istate->r5, istate->r6,  istate->r7);
81
    dprintf("    r8:%X    r8:%X   r10:%X   r11:%X\n", istate->r8,  istate->r9, istate->r10, istate->r11);
82
    dprintf("    r8:%X    r8:%X   r10:%X   r11:%X\n", istate->r8,  istate->r9, istate->r10, istate->r11);
82
    dprintf("   r12:%X    r13:%X    lr:%X  spsr:%X\n", istate->r12, istate->sp, istate->lr,  istate->spsr);
83
    dprintf("   r12:%X    r13:%X    lr:%X  spsr:%X\n", istate->r12, istate->sp, istate->lr,  istate->spsr);
83
    dprintf("   prev_lr:%X    prev_sp:%X\n", istate->r12, istate->prev_lr, istate->prev_sp);
84
//  dprintf("   prev_lr:%X    prev_sp:%X\n", istate->r12, istate->prev_lr, istate->prev_sp);
84
}
85
}
85
 
86
 
86
 
87
 
87
void arch_pre_main(void)
88
void arch_pre_main(void)
88
{
89
{
Line 238... Line 239...
238
        "ldmfd r0, {r0-r12, sp, lr, pc}^\n" // jump into user mode
239
        "ldmfd r0, {r0-r12, sp, lr, pc}^\n" // jump into user mode
239
    : // no output
240
    : // no output
240
    : "r"(&ustate), "r"(cpsr), "r"(tmpsr) //
241
    : "r"(&ustate), "r"(cpsr), "r"(tmpsr) //
241
    : "r0","r1"
242
    : "r0","r1"
242
    );
243
    );
243
 
244
*/
244
    while(1)
245
    while(1)
245
        ;
246
        ;
246
        */
-
 
247
       
247
       
248
}
248
}
249
/** @}
249
/** @}
250
 */
250
 */
251
 
251