/* File: courmux.h - Last Edit: */
/* arvani Thu Feb 8 09:58:57 1990 */
/* Copyright (C) by Xerox Corporation, 1990. All rights reserved. */
/* helge Tue Nov 21 18:10:50 1989
*
* Copyright (c) 1989 by Xerox Corporation. All rights reserved. */
/** Copyright (c) 1988 Mentat Inc.
** last change 2/22/89 HS
**/
#ifndef ←COURMUX←
#define ←COURMUX←
#ifndef BE16←TO←U16
#define BE16←TO←U16(dp) (((u16)(dp)[0] << 8) | ((u16)(dp)[1]))
#define U16←TO←BE16(u1,dp) ((dp[0] = U8((u1) >> 8)),(dp[1] = U8((u1))))
#endif
#ifndef BE16←TO←I16
#define BE16←TO←I16(dp) (((i16)(dp)[0] << 8) | ((i16)(dp)[1]))
#define I16←TO←BE16(i1,dp) ((dp[0] = U8((i1) >> 8)),(dp[1] = U8((i1))))
#endif
#ifndef BE32←TO←U32
#define BE32←TO←U32(dp) ((((u32)(dp)[0] & 0xFF) << (u32)24) | (((u32)(dp)[1] & 0xFF) << (u32)16) | (((u32)(dp)[2] & 0xFF) << (u32)8) | ((u32)(dp)[3] & 0xFF))
#define U32←TO←BE32(u1,dp) ((dp[0] = U8((u1) >> 24)),(dp[1] = U8((u1) >> 16)),(dp[2] = U8((u1) >> 8)),(dp[3] = U8((u1))))
#endif
/* CMUX I←STR ioctl cmds */
#define CMUX←BASE ('C' << 8)
#define CMUX←ADDR←COMPLETE (CMUX←BASE + 1) /* helper -> cmux */
#define CMUX←ADDR←REQ (CMUX←BASE + 2) /* client -> cmux */
#define CMUX←CALL←REQ (CMUX←BASE + 3) /* cmux -> helper */
#define CMUX←CALL←REJECT (CMUX←BASE + 4) /* helper -> cmux */
#define CMUX←CLIENT←REQ←IOCTL (CMUX←BASE + 5) /* client -> helper */
#define CMUX←HELPER←ADD (CMUX←BASE + 6) /* helper -> cmux */
#define CMUX←HELPER←REPLY←IOCTL (CMUX←BASE + 7) /* helper -> client */
#define CMUX←PASSTHRU←BEGIN (CMUX←BASE + 8) /* client -> cmux */
#define CMUX←PASSTHRU←END (CMUX←BASE + 9) /* client -> cmux */
#define CMUX←SERVER←ADD (CMUX←BASE + 10) /* server -> cmux */
#define CMUX←TRANSPORT←REQ (CMUX←BASE + 11) /* cmux -> helper */
/* Available (CMUX←BASE + 12) */
#define CMUX←UNBLOCK←STREAM (CMUX←BASE + 13) /* helper -> cmux */
#define CMUX←UNLINK←REQ (CMUX←BASE + 14) /* cmux -> helper */
#define CMUX←HELPER←DBG (CMUX←BASE + 15) /* client -> cmux -> helper */
#define CMUX←SERVER←QUIT (CMUX←BASE + 16) /* server -> cmux */
#define CMUX←PASSTHRU←BEGIN←DEFERRED (CMUX←BASE + 17)
#define CMUX←NO←MORE←TRANSPORTS (CMUX←BASE + 18) /* helper -> cmux */
/* Available (CMUX←BASE + 19) */
#define CMUX←SERVER←COUNTDOWN (CMUX←BASE + 20) /* server -> cmux */
#define CMUX←SERVER←RESET←UID (CMUX←BASE + 21) /* server -> cmux */
#define CMUX←REMOTE←ADDR←REQ (CMUX←BASE + 22) /* client -> cmux */
#define CMUX←REMOTE←ADDR←RESPONSE (CMUX←BASE + 23) /* helper -> cmux */
#define CMUX←GET←VALUE 1
#define CMUX←SET←VALUE 2
#define CMUX←DEL←VALUE 3
#define CMUX←CH←ADD 4
#define CMUX←TR←ADD 5
#define CMUX←RETRIEVE←ITEM 6 /* Retrieve an item from a clearinghouse */
#define CMUX←DEF←ADDR←TYPE 1
#ifndef COURIER←MUX←NAME←DEF
#define COURIER←MUX←NAME←DEF "/dev/courmux"
#endif
#endif
/* 2/22/89: HS Corrected spelling of DEFERRED */
/* Tue Nov 21 18:10:13 1989 HS: added CMUX←REMOTE←ADDR←REQ and
* CMUX←REMOTE←ADDR←RESPONSE.
*/