1/* $Id: sunos_asm.S,v 1.1.1.1 2007-08-03 18:52:17 $ 2 * sunos_asm.S: SunOS system calls which must have a low-level 3 * entry point to operate correctly. 4 * 5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 6 * 7 * Based upon preliminary work which is: 8 * 9 * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu) 10 */ 11 12#include <asm/ptrace.h> 13 14 .text 15 .align 4 16 17 /* When calling ret_sys_call, %o0 should contain the same 18 * value as in [%sp + STACKFRAME_SZ + PT_I0] */ 19 20 /* SunOS getpid() returns pid in %o0 and ppid in %o1 */ 21 .globl sunos_getpid 22sunos_getpid: 23 call sys_getppid 24 nop 25 26 call sys_getpid 27 st %o0, [%sp + STACKFRAME_SZ + PT_I1] 28 29 b ret_sys_call 30 st %o0, [%sp + STACKFRAME_SZ + PT_I0] 31 32 /* SunOS getuid() returns uid in %o0 and euid in %o1 */ 33 .globl sunos_getuid 34sunos_getuid: 35 call sys_geteuid16 36 nop 37 38 call sys_getuid16 39 st %o0, [%sp + STACKFRAME_SZ + PT_I1] 40 41 b ret_sys_call 42 st %o0, [%sp + STACKFRAME_SZ + PT_I0] 43 44 /* SunOS getgid() returns gid in %o0 and egid in %o1 */ 45 .globl sunos_getgid 46sunos_getgid: 47 call sys_getegid16 48 nop 49 50 call sys_getgid16 51 st %o0, [%sp + STACKFRAME_SZ + PT_I1] 52 53 b ret_sys_call 54 st %o0, [%sp + STACKFRAME_SZ + PT_I0] 55 56 /* SunOS's execv() call only specifies the argv argument, the 57 * environment settings are the same as the calling processes. 58 */ 59 .globl sunos_execv 60sunos_execv: 61 st %g0, [%sp + STACKFRAME_SZ + PT_I2] 62 63 call sparc_execve 64 add %sp, STACKFRAME_SZ, %o0 65 66 b ret_sys_call 67 ld [%sp + STACKFRAME_SZ + PT_I0], %o0 68