Hi,
Can anyone explain syscallX() marco (in PowerPC)
for me, especially mfcr instruction. I appreciate if anyone can give me one
example (i.e. coversion from C code to assembly code of one system
call):
#define
_syscall1(type,name,type1,arg1) \
type name(type1 arg1) \ { \ unsigned long __sc_ret, __sc_err; \ { \ register unsigned long __sc_0 __asm__ ("r0"); \ register unsigned long __sc_3 __asm__ ("r3"); \ \ __sc_3 = (unsigned long) (arg1); \ __sc_0 = __NR_##name; \ __asm__ __volatile__ \ ("sc \n\t" \ "mfcr %1 " \ : "=&r" (__sc_3), "=&r" (__sc_0) \ : "0" (__sc_3), "1" (__sc_0) \ : __syscall_clobbers); \ __sc_ret = __sc_3; \ __sc_err = __sc_0; \ } \ __syscall_return (type); \ } Thank you for help in advanced,
DANG NGUYEN DUC
|