diff options
Diffstat (limited to 'lib/libc/sparc64/sys')
-rw-r--r-- | lib/libc/sparc64/sys/Makefile.inc | 16 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap.c | 99 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap_fp_disabled.S | 39 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap_gen.S | 110 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap_install.c | 49 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap_private.h | 55 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/__sparc_utrap_setup.c | 59 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/assym.s | 37 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/brk.S | 73 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/cerror.S | 65 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/exect.S | 59 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/pipe.S | 65 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/ptrace.S | 63 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/sbrk.S | 79 | ||||
-rw-r--r-- | lib/libc/sparc64/sys/setlogin.S | 63 |
15 files changed, 931 insertions, 0 deletions
diff --git a/lib/libc/sparc64/sys/Makefile.inc b/lib/libc/sparc64/sys/Makefile.inc new file mode 100644 index 0000000..7e1d178 --- /dev/null +++ b/lib/libc/sparc64/sys/Makefile.inc @@ -0,0 +1,16 @@ +# $FreeBSD$ + +SRCS+= __sparc_utrap.c __sparc_utrap_fp_disabled.S __sparc_utrap_gen.S \ + __sparc_utrap_install.c __sparc_utrap_setup.c + +MDASM+= brk.S cerror.S exect.S pipe.S ptrace.S sbrk.S setlogin.S + +# Don't generate default code for these syscalls: +NOASM= __semctl.o break.o exit.o ftruncate.o getdomainname.o getlogin.o \ + lseek.o mlockall.o mmap.o msgctl.o msgget.o msgrcv.o msgsnd.o \ + munlockall.o openbsd_poll.o pread.o pwrite.o semconfig.o semget.o \ + semop.o setdomainname.o shmat.o shmctl.o shmdt.o shmget.o sstk.o \ + truncate.o uname.o yield.o + +PSEUDO= _getlogin.o _exit.o + diff --git a/lib/libc/sparc64/sys/__sparc_utrap.c b/lib/libc/sparc64/sys/__sparc_utrap.c new file mode 100644 index 0000000..f56c019 --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap.c @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> + +#include <machine/utrap.h> +#include <machine/sysarch.h> + +#include <stdio.h> +#include <stdlib.h> + +#include "__sparc_utrap_private.h" + +static const char *utrap_msg[] = { + "reserved", + "instruction access exception", + "instruction access error", + "instruction access protection", + "illtrap instruction", + "illegal instruction", + "privileged opcode", + "floating point disabled", + "floating point exception ieee 754", + "floating point exception other", + "tag overflow", + "division by zero", + "data access exception", + "data access error", + "data access protection", + "memory address not aligned", + "privileged action", + "async data error", + "trap instruction 16", + "trap instruction 17", + "trap instruction 18", + "trap instruction 19", + "trap instruction 20", + "trap instruction 21", + "trap instruction 22", + "trap instruction 23", + "trap instruction 24", + "trap instruction 25", + "trap instruction 26", + "trap instruction 27", + "trap instruction 28", + "trap instruction 29", + "trap instruction 30", + "trap instruction 31", +}; + +void +__sparc_utrap(struct utrapframe *uf) +{ + + switch (uf->uf_type) { + case UT_FP_EXCEPTION_IEEE_754: + case UT_FP_EXCEPTION_OTHER: + __fpu_exception(uf); + UF_DONE(uf); + return; + case UT_ILLEGAL_INSTRUCTION: + case UT_MEM_ADDRESS_NOT_ALIGNED: + break; + case UT_TRAP_INSTRUCTION_16: + UF_DONE(uf); + return; + default: + break; + } + printf("__sparc_utrap: type=%s pc=%#lx npc=%#lx\n", + utrap_msg[uf->uf_type], uf->uf_pc, uf->uf_npc); + abort(); +} diff --git a/lib/libc/sparc64/sys/__sparc_utrap_fp_disabled.S b/lib/libc/sparc64/sys/__sparc_utrap_fp_disabled.S new file mode 100644 index 0000000..e6055b1 --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap_fp_disabled.S @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include <machine/asm.h> +#include <machine/utrap.h> + +ENTRY(__sparc_utrap_fp_disabled) + ta %xcc, ST_FP_RESTORE + jmpl %l6, %g0 + return %l7 +END(__sparc_utrap_fp_disabled) diff --git a/lib/libc/sparc64/sys/__sparc_utrap_gen.S b/lib/libc/sparc64/sys/__sparc_utrap_gen.S new file mode 100644 index 0000000..a9f4e60 --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap_gen.S @@ -0,0 +1,110 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + + .register %g2, #ignore + .register %g3, #ignore + .register %g6, #ignore + .register %g7, #ignore + +#include <machine/asm.h> +#include <machine/tstate.h> +#include <machine/utrap.h> + +#include "assym.s" + +ENTRY(__sparc_utrap_gen) + sub %sp, UF_SIZEOF, %sp + + stx %o0, [%sp + SPOFF + CCFSZ + UF_TYPE] + stx %o3, [%sp + SPOFF + CCFSZ + UF_TAR] + stx %o4, [%sp + SPOFF + CCFSZ + UF_SFAR] + stx %o5, [%sp + SPOFF + CCFSZ + UF_SFSR] + + stx %l4, [%sp + SPOFF + CCFSZ + UF_FSR] + stx %l5, [%sp + SPOFF + CCFSZ + UF_STATE] + stx %l6, [%sp + SPOFF + CCFSZ + UF_PC] + stx %l7, [%sp + SPOFF + CCFSZ + UF_NPC] + + stx %g1, [%sp + SPOFF + CCFSZ + UF_G1] + stx %g2, [%sp + SPOFF + CCFSZ + UF_G2] + stx %g3, [%sp + SPOFF + CCFSZ + UF_G3] + stx %g4, [%sp + SPOFF + CCFSZ + UF_G4] + stx %g5, [%sp + SPOFF + CCFSZ + UF_G5] + stx %g6, [%sp + SPOFF + CCFSZ + UF_G6] + stx %g7, [%sp + SPOFF + CCFSZ + UF_G7] + + stx %i0, [%sp + SPOFF + CCFSZ + UF_O0] + stx %i1, [%sp + SPOFF + CCFSZ + UF_O1] + stx %i2, [%sp + SPOFF + CCFSZ + UF_O2] + stx %i3, [%sp + SPOFF + CCFSZ + UF_O3] + stx %i4, [%sp + SPOFF + CCFSZ + UF_O4] + stx %i5, [%sp + SPOFF + CCFSZ + UF_O5] + stx %i6, [%sp + SPOFF + CCFSZ + UF_O6] + stx %i7, [%sp + SPOFF + CCFSZ + UF_O7] + + rd %y, %l6 + + call __sparc_utrap + add %sp, SPOFF + CCFSZ, %o0 + + wr %l6, 0, %y + + ldx [%sp + SPOFF + CCFSZ + UF_G1], %g1 + ldx [%sp + SPOFF + CCFSZ + UF_G2], %g2 + ldx [%sp + SPOFF + CCFSZ + UF_G3], %g3 + ldx [%sp + SPOFF + CCFSZ + UF_G4], %g4 + ldx [%sp + SPOFF + CCFSZ + UF_G5], %g5 + ldx [%sp + SPOFF + CCFSZ + UF_G6], %g6 + ldx [%sp + SPOFF + CCFSZ + UF_G7], %g7 + + ldx [%sp + SPOFF + CCFSZ + UF_O0], %i0 + ldx [%sp + SPOFF + CCFSZ + UF_O1], %i1 + ldx [%sp + SPOFF + CCFSZ + UF_O2], %i2 + ldx [%sp + SPOFF + CCFSZ + UF_O3], %i3 + ldx [%sp + SPOFF + CCFSZ + UF_O4], %i4 + ldx [%sp + SPOFF + CCFSZ + UF_O5], %i5 + ldx [%sp + SPOFF + CCFSZ + UF_O6], %i6 + ldx [%sp + SPOFF + CCFSZ + UF_O7], %i7 + + ldx [%sp + SPOFF + CCFSZ + UF_STATE], %l5 + ! Restore %asi and %ccr from the passed tstate + srlx %l5, TSTATE_CCR_SHIFT, %l4 + and %l4, CCR_MASK, %l4 + wr %l4, 0, %ccr + srlx %l5, TSTATE_ASI_SHIFT, %l4 + and %l4, ASI_MASK, %l4 + wr %l4, 0, %asi + ldx [%sp + SPOFF + CCFSZ + UF_PC], %l6 + ldx [%sp + SPOFF + CCFSZ + UF_NPC], %l7 + + jmpl %l6, %g0 + return %l7 +END(__sparc_utrap_gen) diff --git a/lib/libc/sparc64/sys/__sparc_utrap_install.c b/lib/libc/sparc64/sys/__sparc_utrap_install.c new file mode 100644 index 0000000..9ed61c7 --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap_install.c @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <machine/utrap.h> +#include <machine/sysarch.h> + +int +__sparc_utrap_install(utrap_entry_t type, utrap_handler_t new_precise, + utrap_handler_t new_deferred, utrap_handler_t *old_precise, + utrap_handler_t *old_deferred) +{ + struct sparc_utrap_install_args uia; + struct sparc_utrap_args ua[1]; + + ua[0].type = type; + ua[0].new_precise = new_precise; + ua[0].new_deferred = new_deferred; + ua[0].old_precise = old_precise; + ua[0].old_deferred = old_deferred; + uia.num = 1; + uia.handlers = ua; + return (sysarch(SPARC_UTRAP_INSTALL, (char *)&uia)); +} diff --git a/lib/libc/sparc64/sys/__sparc_utrap_private.h b/lib/libc/sparc64/sys/__sparc_utrap_private.h new file mode 100644 index 0000000..cd11ccd --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap_private.h @@ -0,0 +1,55 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef ___SPARC_UTRAP_PRIVATE_H_ +#define ___SPARC_UTRAP_PRIVATE_H_ + +#define UF_DONE(uf) do { \ + uf->uf_pc = uf->uf_npc; \ + uf->uf_npc = uf->uf_pc + 4; \ +} while (0) + +struct utrapframe { + u_long uf_global[8]; + u_long uf_out[8]; + u_long uf_pc; + u_long uf_npc; + u_long uf_sfar; + u_long uf_sfsr; + u_long uf_tar; + u_long uf_type; + u_long uf_state; + u_long uf_fsr; +}; + +extern char __sparc_utrap_fp_disabled[]; +extern char __sparc_utrap_gen[]; + +void __sparc_utrap(struct utrapframe *); + +#endif diff --git a/lib/libc/sparc64/sys/__sparc_utrap_setup.c b/lib/libc/sparc64/sys/__sparc_utrap_setup.c new file mode 100644 index 0000000..68c3093 --- /dev/null +++ b/lib/libc/sparc64/sys/__sparc_utrap_setup.c @@ -0,0 +1,59 @@ +/*- + * Copyright (c) 2001 Jake Burkholder. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); + +#include <sys/types.h> + +#include <machine/utrap.h> +#include <machine/sysarch.h> + +#include <stdlib.h> + +#include "__sparc_utrap_private.h" + +static const struct sparc_utrap_args ua[] = { + { UT_FP_DISABLED, __sparc_utrap_fp_disabled, NULL, NULL, NULL }, + { UT_FP_EXCEPTION_IEEE_754, __sparc_utrap_gen, NULL, NULL, NULL }, + { UT_FP_EXCEPTION_OTHER, __sparc_utrap_gen, NULL, NULL, NULL }, +#if 0 + { UT_ILLEGAL_INSTRUCTION, __sparc_utrap_gen, NULL, NULL, NULL }, + { UT_MEM_ADDRESS_NOT_ALIGNED, __sparc_utrap_gen, NULL, NULL, NULL }, +#endif + { UT_TRAP_INSTRUCTION_16, __sparc_utrap_gen, NULL, NULL, NULL }, +}; + +static const struct sparc_utrap_install_args uia[] = { + sizeof (ua) / sizeof (*ua), ua +}; + +void +__sparc_utrap_setup(void) +{ + + sysarch(SPARC_UTRAP_INSTALL, &uia); +} diff --git a/lib/libc/sparc64/sys/assym.s b/lib/libc/sparc64/sys/assym.s new file mode 100644 index 0000000..ab14358 --- /dev/null +++ b/lib/libc/sparc64/sys/assym.s @@ -0,0 +1,37 @@ +/* + * Offsets into structures used from asm. Must be kept in sync with + * appropriate headers. + * + * $FreeBSD$ + */ + +#define FPRS_FEF 0x4 + +#define CCR_MASK 0xff +#define ASI_MASK 0xff + +#define UF_G0 0x0 +#define UF_G1 0x8 +#define UF_G2 0x10 +#define UF_G3 0x18 +#define UF_G4 0x20 +#define UF_G5 0x28 +#define UF_G6 0x30 +#define UF_G7 0x38 +#define UF_O0 0x40 +#define UF_O1 0x48 +#define UF_O2 0x50 +#define UF_O3 0x58 +#define UF_O4 0x60 +#define UF_O5 0x68 +#define UF_O6 0x70 +#define UF_O7 0x78 +#define UF_PC 0x80 +#define UF_NPC 0x88 +#define UF_SFAR 0x90 +#define UF_SFSR 0x98 +#define UF_TAR 0xa0 +#define UF_TYPE 0xa8 +#define UF_STATE 0xb0 +#define UF_FSR 0xb8 +#define UF_SIZEOF 0xc0 diff --git a/lib/libc/sparc64/sys/brk.S b/lib/libc/sparc64/sys/brk.S new file mode 100644 index 0000000..39e7635 --- /dev/null +++ b/lib/libc/sparc64/sys/brk.S @@ -0,0 +1,73 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp + */ + +#if defined(SYSLIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)brk.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: brk.S,v 1.9 2000/07/25 20:15:40 mycroft Exp $") +#endif +#endif /* SYSLIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + + .globl HIDENAME(curbrk) + .globl HIDENAME(minbrk) + +_SYSENTRY(brk) + PIC_PROLOGUE(%o3, %o2) + SET(HIDENAME(minbrk), %o2, %o3) + ldx [%o3], %o4 + cmp %o4, %o0 + movg %xcc, %o4, %o0 + mov %o0, %o4 + mov SYS_break, %g1 + ta %xcc, ST_SYSCALL + bcc,a,pt %xcc, 1f + nop + ERROR() +1: SET(HIDENAME(curbrk), %o2, %o3) + retl + stx %o4, [%o3] +_SYSEND(brk) diff --git a/lib/libc/sparc64/sys/cerror.S b/lib/libc/sparc64/sys/cerror.S new file mode 100644 index 0000000..0ccdc07 --- /dev/null +++ b/lib/libc/sparc64/sys/cerror.S @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: FreeBSD: src/lib/libc/i386/sys/cerror.S,v 1.11 2001/08/13 + */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + + .text + .align 16 + .globl HIDENAME(cerror) + .type HIDENAME(cerror),@function + + /* + * The __error() function is thread aware. For non-threaded + * programs and the initial threaded in threaded programs, + * it returns a pointer to the global errno variable. + */ + .globl CNAME(__error) +HIDENAME(cerror): + save %sp, -CCFSZ, %sp + call CNAME(__error) + nop + stw %i0, [%o0] + mov -1, %i0 + ret + restore %g0, -1, %o1 +END(HIDENAME(cerror)) diff --git a/lib/libc/sparc64/sys/exect.S b/lib/libc/sparc64/sys/exect.S new file mode 100644 index 0000000..34a6b3b --- /dev/null +++ b/lib/libc/sparc64/sys/exect.S @@ -0,0 +1,59 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: exect.s,v 1.1 91/07/06 13:05:57 torek Exp + */ + +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)exect.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: exect.S,v 1.1 1998/09/11 04:56:34 eeh Exp $") +#endif +#endif /* LIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + +_SYSENTRY(exect) + mov SYS_execve, %g1 + ta %xcc, ST_SYSCALL + ERROR() +_SYSEND(exect) diff --git a/lib/libc/sparc64/sys/pipe.S b/lib/libc/sparc64/sys/pipe.S new file mode 100644 index 0000000..a031011 --- /dev/null +++ b/lib/libc/sparc64/sys/pipe.S @@ -0,0 +1,65 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: pipe.s,v 1.1 91/07/06 13:05:58 torek Exp + */ + +#if defined(SYSLIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)pipe.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: pipe.S,v 1.3 2000/09/28 08:38:55 kleink Exp $") +#endif +#endif /* SYSLIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif + +#include "SYS.h" + +_SYSENTRY(pipe) + mov %o0, %o2 + mov SYS_pipe, %g1 + ta %xcc, ST_SYSCALL + bcc,a,pt %xcc, 1f + stw %o0, [%o2] + ERROR() +1: stw %o1, [%o2 + 4] + retl + clr %o0 +_SYSEND(pipe) diff --git a/lib/libc/sparc64/sys/ptrace.S b/lib/libc/sparc64/sys/ptrace.S new file mode 100644 index 0000000..cbdacf0 --- /dev/null +++ b/lib/libc/sparc64/sys/ptrace.S @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: ptrace.s,v 1.2 91/12/20 01:59:00 leres Exp + * from: NetBSD: ptrace.S,v 1.4 2000/07/24 00:11:10 mycroft Exp + */ + +#if defined(SYSLIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)ptrace.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: ptrace.S,v 1.4 2000/07/24 00:11:10 mycroft Exp $") +#endif +#endif /* SYSLIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + +_SYSENTRY(ptrace) + save %sp, -CCFSZ, %sp + call CNAME(__error) + nop + stw %g0, [%o0] + restore + _SYSCALL(ptrace) +_SYSEND(ptrace) diff --git a/lib/libc/sparc64/sys/sbrk.S b/lib/libc/sparc64/sys/sbrk.S new file mode 100644 index 0000000..3a6a454 --- /dev/null +++ b/lib/libc/sparc64/sys/sbrk.S @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: brk.s,v 1.3 92/06/25 12:56:05 mccanne Exp + */ + +#if defined(SYSLIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)sbrk.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: sbrk.S,v 1.7 2000/07/25 15:14:46 mycroft Exp $") +#endif +#endif /* SYSLIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + + .data + .globl HIDENAME(curbrk) + .globl HIDENAME(minbrk) + .type HIDENAME(curbrk),@object + .type HIDENAME(minbrk),@object + .align 8 +HIDENAME(curbrk): + .xword CNAME(_end) +HIDENAME(minbrk): + .xword CNAME(_end) + +_SYSENTRY(sbrk) + PIC_PROLOGUE(%o3, %o2) + SET(HIDENAME(curbrk), %o2, %o3) + ldx [%o3], %o4 + add %o4, %o0, %o5 + mov %o5, %o0 + mov SYS_break, %g1 + ta %xcc, ST_SYSCALL + bcc,a,pt %xcc, 1f + mov %o4, %o0 + ERROR() +1: retl + stx %o5, [%o3] +_SYSEND(sbrk) diff --git a/lib/libc/sparc64/sys/setlogin.S b/lib/libc/sparc64/sys/setlogin.S new file mode 100644 index 0000000..0cbbd9f --- /dev/null +++ b/lib/libc/sparc64/sys/setlogin.S @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Header: setlogin.s,v 1.1 91/07/06 13:06:00 torek Exp + */ + +#if defined(SYSLIBC_SCCS) && !defined(lint) +#if 0 + .asciz "@(#)setlogin.s 8.1 (Berkeley) 6/4/93" +#else + RCSID("$NetBSD: setlogin.S,v 1.3 2000/07/21 03:14:15 eeh Exp $") +#endif +#endif /* SYSLIBC_SCCS and not lint */ + +#if defined(SYSLIBC_RCS) && !defined(lint) + .text + .asciz "$FreeBSD$" +#endif /* SYSLIBC_RCS and not lint */ + +#include "SYS.h" + + .globl CNAME(_logname_valid) /* in _getlogin() */ + +_SYSENTRY(setlogin) + _SYSCALL(setlogin) + PIC_PROLOGUE(%o3, %o2) + SET(CNAME(_logname_valid), %o2, %o3) + retl + stw %g0, [%o3] +_SYSEND(setlogin) |