ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / net / iseries_veth.h
1 /* File veth.h created by Kyle A. Lucke on Mon Aug  7 2000. */
2
3 #ifndef _ISERIES_VETH_H
4 #define _ISERIES_VETH_H
5
6 #define VethEventTypeCap        (0)
7 #define VethEventTypeFrames     (1)
8 #define VethEventTypeMonitor    (2)
9 #define VethEventTypeFramesAck  (3)
10
11 #define VETH_MAX_ACKS_PER_MSG   (20)
12 #define VETH_MAX_FRAMES_PER_MSG (6)
13
14 struct VethFramesData {
15         u32 addr[VETH_MAX_FRAMES_PER_MSG];
16         u16 len[VETH_MAX_FRAMES_PER_MSG];
17         u32 eofmask;
18 };
19 #define VETH_EOF_SHIFT          (32-VETH_MAX_FRAMES_PER_MSG)
20
21 struct VethFramesAckData {
22         u16 token[VETH_MAX_ACKS_PER_MSG];
23 };
24
25 struct VethCapData {
26         u8 caps_version;
27         u8 rsvd1;
28         u16 num_buffers;
29         u16 ack_threshold;
30         u16 rsvd2;
31         u32 ack_timeout;
32         u32 rsvd3;
33         u64 rsvd4[3];
34 };
35
36 struct VethLpEvent {
37         struct HvLpEvent base_event;
38         union {
39                 struct VethCapData caps_data;
40                 struct VethFramesData frames_data;
41                 struct VethFramesAckData frames_ack_data;
42         } u;
43
44 };
45
46 #define HVMAXARCHITECTEDVIRTUALLANS (16)
47
48 #endif  /* _ISERIES_VETH_H */