58 lines
1.6 KiB
C
58 lines
1.6 KiB
C
/*
|
|
* Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved.
|
|
*
|
|
* This software may be freely used, copied, modified, and distributed
|
|
* provided that the above copyright notice is preserved in all copies of the
|
|
* software.
|
|
*/
|
|
|
|
/* -*-C-*-
|
|
*
|
|
* $Revision$
|
|
* $Date$
|
|
*
|
|
*
|
|
* Project: ANGEL
|
|
*
|
|
* Title: Private header for channels implementations
|
|
*/
|
|
|
|
#ifndef angel_chanpriv_h
|
|
#define angel_chanpriv_h
|
|
|
|
/*
|
|
* This describes the internal structure and flags for a channels packet.
|
|
*/
|
|
|
|
/* byte positions within channel packet */
|
|
#define CF_CHANNEL_BYTE_POS 0
|
|
#define CF_HOME_SEQ_BYTE_POS 1
|
|
#define CF_OPPO_SEQ_BYTE_POS 2
|
|
#define CF_FLAGS_BYTE_POS 3
|
|
#define CF_DATA_BYTE_POS 4
|
|
|
|
/* flags for FLAGS field */
|
|
#define CF_RELIABLE (1 << 0) /* use reliable channels protocol */
|
|
#define CF_RESEND (1 << 1) /* this is a renegotiation packet */
|
|
#define CF_HEARTBEAT (1 << 2) /* heartbeat packet - prod target into sync */
|
|
|
|
/* byte positions within buffer */
|
|
#define CB_LINK_BYTE_POS 0 /* the link pointer */
|
|
#define CB_CHAN_HEADER_BYTE_POS 4 /* the channel frame starts here */
|
|
|
|
/* macro to get buffer position of packet component */
|
|
#define CB_PACKET(x) (CB_CHAN_HEADER_BYTE_POS + (x))
|
|
|
|
/* byte offset of packet data within buffer */
|
|
#define CB_CHAN_DATA_BYTE_POS (CB_PACKET(CF_DATA_BYTE_POS))
|
|
|
|
/* access the link in a buffer, where b is byte pointer to buffer */
|
|
#define CB_LINK(b) ((p_Buffer)(&(b)[0]))
|
|
|
|
#define invalidChannelID(chan) (((int)(chan)) < 0 || \
|
|
(chan) >= CI_NUM_CHANNELS)
|
|
|
|
#endif /* ndef angel_chanpriv_h */
|
|
|
|
/* EOF chanpriv.h */
|