summaryrefslogtreecommitdiffstats
path: root/drivers/net/iseries_veth.h
blob: d9370f79b83ebcb58f8160a3e3059285e4fc3a74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/* File veth.h created by Kyle A. Lucke on Mon Aug  7 2000. */

#ifndef _ISERIES_VETH_H
#define _ISERIES_VETH_H

#define VethEventTypeCap	(0)
#define VethEventTypeFrames	(1)
#define VethEventTypeMonitor	(2)
#define VethEventTypeFramesAck	(3)

#define VETH_MAX_ACKS_PER_MSG	(20)
#define VETH_MAX_FRAMES_PER_MSG	(6)

struct VethFramesData {
	u32 addr[VETH_MAX_FRAMES_PER_MSG];
	u16 len[VETH_MAX_FRAMES_PER_MSG];
	u32 eofmask;
};
#define VETH_EOF_SHIFT		(32-VETH_MAX_FRAMES_PER_MSG)

struct VethFramesAckData {
	u16 token[VETH_MAX_ACKS_PER_MSG];
};

struct VethCapData {
	u8 caps_version;
	u8 rsvd1;
	u16 num_buffers;
	u16 ack_threshold;
	u16 rsvd2;
	u32 ack_timeout;
	u32 rsvd3;
	u64 rsvd4[3];
};

struct VethLpEvent {
	struct HvLpEvent base_event;
	union {
		struct VethCapData caps_data;
		struct VethFramesData frames_data;
		struct VethFramesAckData frames_ack_data;
	} u;

};

#endif	/* _ISERIES_VETH_H */