2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License, Version 1.0 only 2N/A * (the "License"). You may not use this file except in compliance 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ 2N/A/* All Rights Reserved */ 2N/A * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 2N/A * Use is subject to license terms. 2N/A#
pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.10 */ 2N/A * Acquire per thread lock. 2N/A * Note: Lock is held across most of this routine 2N/A * including the blocking getmsg() call. This is fine 2N/A * because it is first verfied that an event is pending 2N/A * User level state verification only done for XTI 2N/A * because doing for TLI may break existing applications 2N/A * Handle likely scenario as special case: 2N/A * Is there a discon in look buffer as the first 2N/A * event in the lookbuffer, is so just get it. 2N/A /* LINTED pointer cast */ 2N/A * The T_DISCON_IND is already in the look buffer 2N/A /* Note: ctlbuf.maxlen not used in this case */ 2N/A /* Note databuf.maxlen not used in this case */ 2N/A * get disconnect off read queue. 2N/A * use ctl and rcv buffers 2N/A * Since we already verified that a disconnect event 2N/A * is present, we assume that this getmsg() cannot 2N/A * block indefinitely 2N/A * did I get entire message? 2N/A /* LINTED pointer cast */ 2N/A * clear more and expedited flags 2N/A "t_rcvdis: invalid state event T_RCVDIS1");
2N/A "t_rcvdis: invalid state event T_RCVDIS2");
2N/A "t_rcvdis: invalid state event T_RCVDIS3");