Changeset 9cc0d7c in mainline


Ignore:
Timestamp:
2007-11-17T14:12:48Z (16 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7e956eb
Parents:
05ae7081
Message:

Support for six syscall arguments for arm32.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/exception.c

    r05ae7081 r9cc0d7c  
    215215         * where handler's address is stored
    216216        */
    217         volatile uint32_t handler_address_ptr = EXC_VECTORS_SIZE - PREFETCH_OFFSET;
     217        volatile uint32_t handler_address_ptr = EXC_VECTORS_SIZE -
     218            PREFETCH_OFFSET;
    218219       
    219220        /* make it LDR instruction and store at exception vector */
     
    287288static void swi_exception(int exc_no, istate_t *istate)
    288289{
    289         /*
    290         dprintf("SYSCALL: r0-r4: %x, %x, %x, %x, %x; pc: %x\n", istate->r0,
    291                 istate->r1, istate->r2, istate->r3, istate->r4, istate->pc);
    292         */
    293 
    294290        istate->r0 = syscall_handler(istate->r0, istate->r1, istate->r2,
    295             istate->r3, istate->r4);
     291            istate->r3, istate->r4, istate->r5, istate->r6);
    296292}
    297293
  • uspace/lib/libc/arch/arm32/src/syscall.c

    r05ae7081 r9cc0d7c  
    5151 */
    5252sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, const sysarg_t p3,
    53     const sysarg_t p4, const syscall_t id)
     53    const sysarg_t p4, const sysarg_t p5, const sysarg_t p6, const syscall_t id)
    5454{
    5555        register sysarg_t __arm_reg_r0 asm("r0") = p1;
     
    5757        register sysarg_t __arm_reg_r2 asm("r2") = p3;
    5858        register sysarg_t __arm_reg_r3 asm("r3") = p4;
    59         register sysarg_t __arm_reg_r4 asm("r4") = id;
     59        register sysarg_t __arm_reg_r4 asm("r4") = p5;
     60        register sysarg_t __arm_reg_r5 asm("r5") = p6;
     61        register sysarg_t __arm_reg_r6 asm("r6") = id;
    6062
    6163        asm volatile ( "swi"
    6264                : "=r" (__arm_reg_r0)
    63                 : "r"  (__arm_reg_r0),
    64                   "r"  (__arm_reg_r1),
    65                   "r"  (__arm_reg_r2),
    66                   "r"  (__arm_reg_r3),
    67                   "r"  (__arm_reg_r4)
     65                : "r" (__arm_reg_r0),
     66                  "r" (__arm_reg_r1),
     67                  "r" (__arm_reg_r2),
     68                  "r" (__arm_reg_r3),
     69                  "r" (__arm_reg_r4),
     70                  "r" (__arm_reg_r5),
     71                  "r" (__arm_reg_r6)
    6872        );
    6973
Note: See TracChangeset for help on using the changeset viewer.