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