内核源码请教
时间:2010-07-25
来源:互联网
系统调用 宏里的汇编指令那位能否解释一下(PPC)
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
({ \
register long int r0 __asm__ ("r0"
; \
register long int r3 __asm__ ("r3"
; \
register long int r4 __asm__ ("r4"
; \
register long int r5 __asm__ ("r5"
; \
register long int r6 __asm__ ("r6"
; \
register long int r7 __asm__ ("r7"
; \
register long int r8 __asm__ ("r8"
; \
register long int r9 __asm__ ("r9"
; \
register long int r10 __asm__ ("r10"
; \
register long int r11 __asm__ ("r11"
; \
register long int r12 __asm__ ("r12"); \
LOADARGS_##nr(name, args); \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %0" \
: "=&r" (r0), \
"=&r" (r3), "=&r" (r4), "=&r" (r5), "=&r" (r6), "=&r" (r7), \
"=&r" (r
, "=&r" (r9), "=&r" (r10), "=&r" (r11), "=&r" (r12) \
: ASM_INPUT_##nr \
: "cr0", "ctr", "memory"); \
err = r0; \
(int) r3; \
})
# define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
({ \
register long int r0 __asm__ ("r0"

register long int r3 __asm__ ("r3"

register long int r4 __asm__ ("r4"

register long int r5 __asm__ ("r5"

register long int r6 __asm__ ("r6"

register long int r7 __asm__ ("r7"

register long int r8 __asm__ ("r8"

register long int r9 __asm__ ("r9"

register long int r10 __asm__ ("r10"

register long int r11 __asm__ ("r11"

register long int r12 __asm__ ("r12"); \
LOADARGS_##nr(name, args); \
__asm__ __volatile__ \
("sc \n\t" \
"mfcr %0" \
: "=&r" (r0), \
"=&r" (r3), "=&r" (r4), "=&r" (r5), "=&r" (r6), "=&r" (r7), \
"=&r" (r

: ASM_INPUT_##nr \
: "cr0", "ctr", "memory"); \
err = r0; \
(int) r3; \
})
作者: zaley 发布时间: 2010-07-25
请您 用[code][/code]引起来
作者: aaaaa5aa 发布时间: 2010-07-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28