usr/src/lib/libc/sparc/sys/door.s
author Mark J. Nelson <Mark.J.Nelson@Sun.COM>
Wed, 06 Aug 2008 16:29:39 -0600
changeset 7298 b69e27387f74
parent 6812 febeba71273d
child 11102 b91faef0c984
permissions -rw-r--r--
6733918 Teamware has retired, please welcome your new manager, Mercurial 4758439 some files use "current date" sccs keywords 6560843 asm sources should not rely on .file "%M%" for naming STT_FILE symbols 6560958 Solaris:: perl modules should not use SCCS keywords in version information 6729074 webrev doesn't deal well with remote ssh hg parents
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
5891
0d5c6468bb04 6598890 cancellation code abuses synonyms
raf
parents: 5540
diff changeset
     5
 * Common Development and Distribution License (the "License").
0d5c6468bb04 6598890 cancellation code abuses synonyms
raf
parents: 5540
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
5891
0d5c6468bb04 6598890 cancellation code abuses synonyms
raf
parents: 5540
diff changeset
    21
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    22
/*
5891
0d5c6468bb04 6598890 cancellation code abuses synonyms
raf
parents: 5540
diff changeset
    23
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
7298
b69e27387f74 6733918 Teamware has retired, please welcome your new manager, Mercurial
Mark J. Nelson <Mark.J.Nelson@Sun.COM>
parents: 6812
diff changeset
    27
	.file	"door.s"
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
6812
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    29
#include "SYS.h"
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    30
#include <sys/door.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
	 * weak aliases for public interfaces
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
	 */
6812
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    35
	ANSI_PRAGMA_WEAK2(door_bind,__door_bind,function)
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    36
	ANSI_PRAGMA_WEAK2(door_getparam,__door_getparam,function)
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    37
	ANSI_PRAGMA_WEAK2(door_info,__door_info,function)
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    38
	ANSI_PRAGMA_WEAK2(door_revoke,__door_revoke,function)
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    39
	ANSI_PRAGMA_WEAK2(door_setparam,__door_setparam,function)
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
    40
	ANSI_PRAGMA_WEAK2(door_unbind,__door_unbind,function)
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
 * Offsets within struct door_results
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#define	DOOR_COOKIE	(SA(MINFRAME) + STACK_BIAS + 0*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
#define	DOOR_DATA_PTR	(SA(MINFRAME) + STACK_BIAS + 1*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
#define	DOOR_DATA_SIZE	(SA(MINFRAME) + STACK_BIAS + 2*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
#define	DOOR_DESC_PTR	(SA(MINFRAME) + STACK_BIAS + 3*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
#define	DOOR_DESC_SIZE	(SA(MINFRAME) + STACK_BIAS + 4*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
#define	DOOR_PC		(SA(MINFRAME) + STACK_BIAS + 5*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
#define	DOOR_SERVERS	(SA(MINFRAME) + STACK_BIAS + 6*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
#define	DOOR_INFO_PTR	(SA(MINFRAME) + STACK_BIAS + 7*CLONGSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
 * All of the syscalls except door_return() follow the same pattern.  The
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
 * subcode goes in %o5, after all of the other arguments.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
#define	DOOR_SYSCALL(name, code)					\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	ENTRY(name);							\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	mov	code, %o5;		/* subcode */			\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	SYSTRAP_RVAL1(door);						\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	SYSCERROR;							\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
	RET;								\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
	SET_SIZE(name)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
	DOOR_SYSCALL(__door_bind,	DOOR_BIND)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
	DOOR_SYSCALL(__door_call,	DOOR_CALL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
	DOOR_SYSCALL(__door_create,	DOOR_CREATE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
	DOOR_SYSCALL(__door_getparam,	DOOR_GETPARAM)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
	DOOR_SYSCALL(__door_info,	DOOR_INFO)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
	DOOR_SYSCALL(__door_revoke,	DOOR_REVOKE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
	DOOR_SYSCALL(__door_setparam,	DOOR_SETPARAM)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
	DOOR_SYSCALL(__door_ucred,	DOOR_UCRED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
	DOOR_SYSCALL(__door_unbind,	DOOR_UNBIND)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
	DOOR_SYSCALL(__door_unref,	DOOR_UNREFSYS)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
 * int
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
 * __door_return(
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
 *	void 			*data_ptr,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
 *	size_t			data_size,	(in bytes)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
 *	door_return_desc_t	*door_ptr,	(holds returned desc info)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
 *	caddr_t			stack_base,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
 *	size_t			stack_size)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
	ENTRY(__door_return)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
door_restart:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
	mov	DOOR_RETURN, %o5	/* subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	SYSTRAP_RVAL1(door)
5540
c41a1b542098 backout 6580293: causes 6635129
dm120769
parents: 5488
diff changeset
    90
	bcs,pn	%icc, 2f			/* errno is set */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
	ld	[%sp + DOOR_SERVERS], %g1	/* (delay) load nservers */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
	 * On return, we're serving a door_call.  Our stack looks like this:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
	 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
	 *		descriptors (if any)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
	 *		data (if any)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	 *		struct door_results
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
	 *		MINFRAME
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
	 *	sp ->
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
	tst	%g1				/* test nservers */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
	bg	1f				/* everything looks o.k. */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	ldn	[%sp + DOOR_COOKIE], %o0	/* (delay) load cookie */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	 * this is the last server thread - call creation func for more
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	save	%sp, -SA(MINFRAME), %sp
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
	PIC_SETUP(g1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
#ifdef __sparcv9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
	sethi	%hi(door_server_func), %g5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	or	%g5, %lo(door_server_func), %g5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	ldn	[%g5 + %g1], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
#else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
	ldn	[%g1 + door_server_func], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	ldn	[%g1], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	jmpl	%g1, %o7			/* call create function */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
	ldn	[%fp + DOOR_INFO_PTR], %o0	/* (delay) load door_info ptr */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
	restore
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
1:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
	/* Call the door server function now */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
	ldn	[%sp + DOOR_DATA_PTR], %o1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
	ldn	[%sp + DOOR_DATA_SIZE], %o2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
	ldn	[%sp + DOOR_DESC_PTR], %o3
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
	ldn	[%sp + DOOR_PC], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
	jmpl	%g1, %o7
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	ldn	[%sp + DOOR_DESC_SIZE], %o4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
	/* Exit the thread if we return here */
6812
febeba71273d PSARC 2008/309 expunge synonyms.h
raf
parents: 6515
diff changeset
   130
	call	_thrp_terminate
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
	mov	%g0, %o0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
	/* NOTREACHED */
5540
c41a1b542098 backout 6580293: causes 6635129
dm120769
parents: 5488
diff changeset
   133
2:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	 * Error during door_return call.  Repark the thread in the kernel if
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
	 * the error code is EINTR (or ERESTART) and this lwp is still part
5540
c41a1b542098 backout 6580293: causes 6635129
dm120769
parents: 5488
diff changeset
   137
	 * of the same process.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
	cmp	%o0, ERESTART		/* ERESTART is same as EINTR */
5540
c41a1b542098 backout 6580293: causes 6635129
dm120769
parents: 5488
diff changeset
   140
	be,a	3f
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
	mov	EINTR, %o0
5540
c41a1b542098 backout 6580293: causes 6635129
dm120769
parents: 5488
diff changeset
   142
3:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
	cmp	%o0, EINTR		/* interrupted while waiting? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	bne	__cerror		/* if not, return the error */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	nop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	save	%sp, -SA(MINFRAME), %sp
6515
10dab2b883e0 6678310 using LD_AUDIT, ld.so.1 calls shared library's .init before library is fully relocated
raf
parents: 5891
diff changeset
   148
	call	getpid
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
	nop
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
	PIC_SETUP(g1)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
#ifdef __sparcv9
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	sethi	%hi(door_create_pid), %g5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	or	%g5, %lo(door_create_pid), %g5
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
	ldn	[%g1 + %g5], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
#else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	ldn	[%g1 + door_create_pid], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	ld	[%g1], %g1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	cmp	%o0, %g1		/* same process? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	mov	EINTR, %o0	/* if no, return EINTR (child of forkall) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	bne	__cerror
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
	restore
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
	clr	%o0			/* clear arguments and restart */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
	clr	%o1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
	ba	door_restart
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	clr	%o2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	SET_SIZE(__door_return)