Changeset 6b781c0 in mainline for uspace/libc/arch/arm32/src/syscall.c
- Timestamp:
- 2007-06-08T15:02:49Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c03ee1c
- Parents:
- 3ee8a075
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/libc/arch/arm32/src/syscall.c
r3ee8a075 r6b781c0 1 1 /* 2 * Copyright (c) 200 5 Martin Decky2 * Copyright (c) 2007 Pavel Jancik 3 3 * All rights reserved. 4 4 * … … 31 31 */ 32 32 /** @file 33 * @ingroup libcarm3233 * @brief Syscall routine. 34 34 */ 35 35 36 36 #include <libc.h> 37 37 38 39 /** Syscall routine. 40 * 41 * Stores p1-p4, id to r0-r4 registers and calls <code>swi</code> 42 * instruction. Returned value is read from r0 register. 43 * 44 * @param p1 Parameter 1. 45 * @param p2 Parameter 2. 46 * @param p3 Parameter 3. 47 * @param p4 Parameter 4. 48 * @param id Number of syscall. 49 * 50 * @return Syscall return value. 51 */ 38 52 sysarg_t __syscall(const sysarg_t p1, const sysarg_t p2, const sysarg_t p3, 39 53 const sysarg_t p4, const syscall_t id) 40 54 { 41 /* TODO */ 42 return 0; 55 register sysarg_t __arm_reg_r0 asm("r0") = p1; 56 register sysarg_t __arm_reg_r1 asm("r1") = p2; 57 register sysarg_t __arm_reg_r2 asm("r2") = p3; 58 register sysarg_t __arm_reg_r3 asm("r3") = p4; 59 register sysarg_t __arm_reg_r4 asm("r4") = id; 60 61 asm volatile ( "swi" 62 : "=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) 68 ); 69 70 return __arm_reg_r0; 43 71 } 44 72
Note:
See TracChangeset
for help on using the changeset viewer.