Rev 499 | Rev 505 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 499 | Rev 504 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
27 | */ |
28 | 28 | ||
29 | #include <libc.h> |
29 | #include <libc.h> |
30 | 30 | ||
31 | void __syscall(const unsigned int id, const unsigned int p1, const unsigned int p2, const unsigned int p3) |
31 | unsigned int __syscall(const syscall_t id, const unsigned int p1, const unsigned int p2, const unsigned int p3) |
32 | { |
32 | { |
33 | register unsigned int __mips_reg_a0 asm("$4") = p1; |
33 | register unsigned int __mips_reg_a0 asm("$4") = p1; |
34 | register unsigned int __mips_reg_a1 asm("$5") = p2; |
34 | register unsigned int __mips_reg_a1 asm("$5") = p2; |
35 | register unsigned int __mips_reg_a2 asm("$6") = p3; |
35 | register unsigned int __mips_reg_a2 asm("$6") = p3; |
36 | register unsigned int __mips_reg_a3 asm("$7") = id; |
36 | register unsigned int __mips_reg_a3 asm("$7") = id; |
- | 37 | register unsigned int __mips_reg_v0 asm("$2"); |
|
37 | 38 | ||
38 | asm volatile ( |
39 | asm volatile ( |
39 | "syscall\n" |
40 | "syscall\n" |
40 | : |
41 | : "=r" (__mips_reg_v0) |
41 | : "r" (__mips_reg_a0), |
42 | : "r" (__mips_reg_a0), |
42 | "r" (__mips_reg_a1), |
43 | "r" (__mips_reg_a1), |
43 | "r" (__mips_reg_a2), |
44 | "r" (__mips_reg_a2), |
44 | "r" (__mips_reg_a3) |
45 | "r" (__mips_reg_a3) |
45 | : "v0" |
- | |
46 | ); |
46 | ); |
- | 47 | ||
- | 48 | return __mips_reg_v0; |
|
47 | } |
49 | } |