xref: /openbsd-src/gnu/usr.bin/binutils/gdb/rdi-share/chanpriv.h (revision 63addd46c1e40ca0f49488ddcdc4ab598023b0c1)
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