sclow.s
来自「Linux Kernel 2.6.9 for OMAP1710」· S 代码 · 共 87 行
S
87 行
/* sclow.S: Low level special syscall handling. * Basically these are cases where we can completely * handle the system call without saving any state * because we know that the process will not sleep. * * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) */#include <asm/ptrace.h>#include <asm/asm_offsets.h>#include <asm/errno.h>#include <asm/winmacro.h>#include <asm/thread_info.h>#include <asm/psr.h>#include <asm/page.h>#define CC_AND_RETT \ set PSR_C, %l4; \ andn %l0, %l4, %l4; \ wr %l4, 0x0, %psr; \ nop; nop; nop; \ jmp %l2; \ rett %l2 + 4;#define SC_AND_RETT \ set PSR_C, %l4; \ or %l0, %l4, %l4; \ wr %l4, 0x0, %psr; \ nop; nop; nop; \ jmp %l2; \ rett %l2 + 4;#define LABEL(func) func##_low .globl LABEL(sunosnop)LABEL(sunosnop): CC_AND_RETT#if (ASIZ_task_uid == 2 && ASIZ_task_euid == 2) .globl LABEL(sunosgetuid)LABEL(sunosgetuid): LOAD_CURRENT(l4, l5) ld [%l4 + TI_TASK], %l4 lduh [%l4 + AOFF_task_uid], %i0 lduh [%l4 + AOFF_task_euid], %i1 CC_AND_RETT#endif#if (ASIZ_task_gid == 2 && ASIZ_task_egid == 2) .globl LABEL(sunosgetgid)LABEL(sunosgetgid): LOAD_CURRENT(l4, l5) ld [%l4 + TI_TASK], %l4 lduh [%l4 + AOFF_task_gid], %i0 lduh [%l4 + AOFF_task_egid], %i1 CC_AND_RETT#endif .globl LABEL(sunosmctl)LABEL(sunosmctl): mov 0, %i0 CC_AND_RETT .globl LABEL(sunosgdtsize)LABEL(sunosgdtsize): mov 256, %i0 CC_AND_RETT .globl LABEL(getpagesize)LABEL(getpagesize): set PAGE_SIZE, %i0 CC_AND_RETT /* XXX sys_nice() XXX */ /* XXX sys_setpriority() XXX */ /* XXX sys_getpriority() XXX */ /* XXX sys_setregid() XXX */ /* XXX sys_setgid() XXX */ /* XXX sys_setreuid() XXX */ /* XXX sys_setuid() XXX */ /* XXX sys_setfsuid() XXX */ /* XXX sys_setfsgid() XXX */ /* XXX sys_setpgid() XXX */ /* XXX sys_getpgid() XXX */ /* XXX sys_setsid() XXX */ /* XXX sys_getsid() XXX */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?