2 * linux/drivers/s390/net/qeth_eddp.h
4 * Header file for qeth enhanced device driver packing.
6 * Copyright 2004 IBM Corporation
8 * Author(s): Thomas Spatzier <tspat@de.ibm.com>
11 #ifndef __QETH_EDDP_H__
12 #define __QETH_EDDP_H__
14 struct qeth_eddp_element
{
20 struct qeth_eddp_context
{
22 enum qeth_large_send_types type
;
23 int num_pages
; /* # of allocated pages */
24 u8
**pages
; /* pointers to pages */
25 int offset
; /* offset in ctx during creation */
26 int num_elements
; /* # of required 'SBALEs' */
27 struct qeth_eddp_element
*elements
; /* array of 'SBALEs' */
28 int elements_per_skb
; /* # of 'SBALEs' per skb **/
31 struct qeth_eddp_context_reference
{
32 struct list_head list
;
33 struct qeth_eddp_context
*ctx
;
36 extern struct qeth_eddp_context
*
37 qeth_eddp_create_context(struct qeth_card
*,struct sk_buff
*,struct qeth_hdr
*);
40 qeth_eddp_put_context(struct qeth_eddp_context
*);
43 qeth_eddp_fill_buffer(struct qeth_qdio_out_q
*,struct qeth_eddp_context
*,int);
46 qeth_eddp_buf_release_contexts(struct qeth_qdio_out_buffer
*);
49 qeth_eddp_check_buffers_for_context(struct qeth_qdio_out_q
*,
50 struct qeth_eddp_context
*);
52 * Data used for fragmenting a IP packet.
54 struct qeth_eddp_data
{
68 void *nh_in_ctx
; /* address of nh within the ctx */
76 void *th_in_ctx
; /* address of th within the ctx */
81 } __attribute__ ((packed
));
83 #endif /* __QETH_EDDP_H__ */