2 * linux/drivers/s390/net/qeth_eddp.c ($Revision: 1.5 $)
4 * Header file for qeth enhanced device driver pakcing.
6 * Copyright 2004 IBM Corporation
8 * Author(s): Thomas Spatzier <tspat@de.ibm.com>
10 * $Revision: 1.5 $ $Date: 2005/03/24 09:04:18 $
13 #ifndef __QETH_EDDP_H__
14 #define __QETH_EDDP_H__
16 struct qeth_eddp_element {
22 struct qeth_eddp_context {
24 enum qeth_large_send_types type;
25 int num_pages; /* # of allocated pages */
26 u8 **pages; /* pointers to pages */
27 int offset; /* offset in ctx during creation */
28 int num_elements; /* # of required 'SBALEs' */
29 struct qeth_eddp_element *elements; /* array of 'SBALEs' */
30 int elements_per_skb; /* # of 'SBALEs' per skb **/
33 struct qeth_eddp_context_reference {
34 struct list_head list;
35 struct qeth_eddp_context *ctx;
38 extern struct qeth_eddp_context *
39 qeth_eddp_create_context(struct qeth_card *,struct sk_buff *,struct qeth_hdr *);
42 qeth_eddp_put_context(struct qeth_eddp_context *);
45 qeth_eddp_fill_buffer(struct qeth_qdio_out_q *,struct qeth_eddp_context *,int);
48 qeth_eddp_buf_release_contexts(struct qeth_qdio_out_buffer *);
51 qeth_eddp_check_buffers_for_context(struct qeth_qdio_out_q *,
52 struct qeth_eddp_context *);
54 * Data used for fragmenting a IP packet.
56 struct qeth_eddp_data {
70 void *nh_in_ctx; /* address of nh within the ctx */
78 void *th_in_ctx; /* address of th within the ctx */
83 } __attribute__ ((packed));
85 #endif /* __QETH_EDDP_H__ */