/* $Id: io.h,v 1.1.1.1 90/11/28 17:02:16 altenhof Exp $ */

/*
 * Copyright (C) 1990 by Digital Equipment Corporation.
 * 
 * Author: Michael P. Altenhofen, CEC Karlsruhe e-mail:
 * Altenhofen@kampus.enet.dec.com
 * 
 * This file ist part of Shared X
 * 
 * Permission to use, copy, modify, and distribute this software and its
 * documentation without fee is hereby granted, but only for non-profit  use
 * and distribution,  and provided  that the copyright notice and this notice
 * is preserved on all copies.
 * 
 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */
#ifndef PUBLIC
#define PUBLIC extern
#endif


/*****************************************************************
 * ReadRequest : returns one request from the buffer
 *
 * This "routine" is fairly simple (so we code it as a macro):
 * Look at the start of the "buffer" and determine the length of the next
 * request (the request length is always stored in the 3rd byte)
 * Compare this length with "size" to see if the buffer contains the
 * whole request.
 * If so, return the address of the buffer,
 * otherwise return NULL
 *****************************************************************/

#define ReadRequest( buffer , size ) \
    ( ( ( size == 0 ) || ( ( ( ( xReq * )buffer )->length ) << 2 ) > size ) ? \
    NULL : buffer )

PUBLIC void
  XmuXWriteToServer (),
  XmuXFlushConnections ();

#undef PUBLIC
