1b725ae77Skettenis /* 2b725ae77Skettenis * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. 3b725ae77Skettenis * 4b725ae77Skettenis * This software may be freely used, copied, modified, and distributed 5b725ae77Skettenis * provided that the above copyright notice is preserved in all copies of the 6b725ae77Skettenis * software. 7b725ae77Skettenis */ 8b725ae77Skettenis 9b725ae77Skettenis /* -*-C-*- 10b725ae77Skettenis * 11*63addd46Skettenis * $Revision: 1.3 $ 12*63addd46Skettenis * $Date: 2004/12/27 14:00:54 $ 13b725ae77Skettenis * 14b725ae77Skettenis * 15b725ae77Skettenis * Project: ANGEL 16b725ae77Skettenis * 17b725ae77Skettenis * Title: Private header for channels implementations 18b725ae77Skettenis */ 19b725ae77Skettenis 20b725ae77Skettenis #ifndef angel_chanpriv_h 21b725ae77Skettenis #define angel_chanpriv_h 22b725ae77Skettenis 23b725ae77Skettenis /* 24b725ae77Skettenis * This describes the internal structure and flags for a channels packet. 25b725ae77Skettenis */ 26b725ae77Skettenis 27b725ae77Skettenis /* byte positions within channel packet */ 28b725ae77Skettenis #define CF_CHANNEL_BYTE_POS 0 29b725ae77Skettenis #define CF_HOME_SEQ_BYTE_POS 1 30b725ae77Skettenis #define CF_OPPO_SEQ_BYTE_POS 2 31b725ae77Skettenis #define CF_FLAGS_BYTE_POS 3 32b725ae77Skettenis #define CF_DATA_BYTE_POS 4 33b725ae77Skettenis 34b725ae77Skettenis /* flags for FLAGS field */ 35b725ae77Skettenis #define CF_RELIABLE (1 << 0) /* use reliable channels protocol */ 36b725ae77Skettenis #define CF_RESEND (1 << 1) /* this is a renegotiation packet */ 37b725ae77Skettenis #define CF_HEARTBEAT (1 << 2) /* heartbeat packet - prod target into sync */ 38b725ae77Skettenis 39b725ae77Skettenis /* byte positions within buffer */ 40b725ae77Skettenis #define CB_LINK_BYTE_POS 0 /* the link pointer */ 41b725ae77Skettenis #define CB_CHAN_HEADER_BYTE_POS 4 /* the channel frame starts here */ 42b725ae77Skettenis 43b725ae77Skettenis /* macro to get buffer position of packet component */ 44b725ae77Skettenis #define CB_PACKET(x) (CB_CHAN_HEADER_BYTE_POS + (x)) 45b725ae77Skettenis 46b725ae77Skettenis /* byte offset of packet data within buffer */ 47b725ae77Skettenis #define CB_CHAN_DATA_BYTE_POS (CB_PACKET(CF_DATA_BYTE_POS)) 48b725ae77Skettenis 49b725ae77Skettenis /* access the link in a buffer, where b is byte pointer to buffer */ 50b725ae77Skettenis #define CB_LINK(b) ((p_Buffer)(&(b)[0])) 51b725ae77Skettenis 52b725ae77Skettenis #define invalidChannelID(chan) (((int)(chan)) < 0 || \ 53b725ae77Skettenis (chan) >= CI_NUM_CHANNELS) 54b725ae77Skettenis 55b725ae77Skettenis #endif /* ndef angel_chanpriv_h */ 56b725ae77Skettenis 57b725ae77Skettenis /* EOF chanpriv.h */ 58