Subversion Repositories HelenOS

Rev

Rev 2479 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2479 Rev 2611
Line 48... Line 48...
48
 *  @param id Number of syscall.
48
 *  @param id Number of syscall.
49
 *
49
 *
50
 *  @return Syscall return value.
50
 *  @return Syscall return value.
51
 */
51
 */
52
sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, const sysarg_t p3,
52
sysarg_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)
54
{
54
{
55
    register sysarg_t __arm_reg_r0 asm("r0") = p1;
55
    register sysarg_t __arm_reg_r0 asm("r0") = p1;
56
    register sysarg_t __arm_reg_r1 asm("r1") = p2;
56
    register sysarg_t __arm_reg_r1 asm("r1") = p2;
57
    register sysarg_t __arm_reg_r2 asm("r2") = p3;
57
    register sysarg_t __arm_reg_r2 asm("r2") = p3;
58
    register sysarg_t __arm_reg_r3 asm("r3") = p4;
58
    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;
60
 
62
 
61
    asm volatile ( "swi"
63
    asm volatile ( "swi"
62
        : "=r" (__arm_reg_r0)
64
        : "=r" (__arm_reg_r0)
63
        : "r"  (__arm_reg_r0),
65
        : "r" (__arm_reg_r0),
64
          "r"  (__arm_reg_r1),
66
          "r" (__arm_reg_r1),
65
          "r"  (__arm_reg_r2),
67
          "r" (__arm_reg_r2),
66
          "r"  (__arm_reg_r3),
68
          "r" (__arm_reg_r3),
67
          "r"  (__arm_reg_r4)
69
          "r" (__arm_reg_r4),
-
 
70
          "r" (__arm_reg_r5),
-
 
71
          "r" (__arm_reg_r6)
68
    );
72
    );
69
 
73
 
70
    return __arm_reg_r0;
74
    return __arm_reg_r0;
71
}
75
}
72
 
76