2  *  drivers/s390/net/qeth_core_offl.h
 
   4  *    Copyright IBM Corp. 2007
 
   5  *    Author(s): Thomas Spatzier <tspat@de.ibm.com>,
 
   6  *               Frank Blaschka <frank.blaschka@de.ibm.com>
 
   9 #ifndef __QETH_CORE_OFFL_H__
 
  10 #define __QETH_CORE_OFFL_H__
 
  12 struct qeth_eddp_element {
 
  18 struct qeth_eddp_context {
 
  20         enum qeth_large_send_types type;
 
  21         int num_pages;                      /* # of allocated pages */
 
  22         u8 **pages;                         /* pointers to pages */
 
  23         int offset;                         /* offset in ctx during creation */
 
  24         int num_elements;                   /* # of required 'SBALEs' */
 
  25         struct qeth_eddp_element *elements; /* array of 'SBALEs' */
 
  26         int elements_per_skb;               /* # of 'SBALEs' per skb **/
 
  29 struct qeth_eddp_context_reference {
 
  30         struct list_head list;
 
  31         struct qeth_eddp_context *ctx;
 
  34 struct qeth_eddp_data {
 
  48         void *nh_in_ctx;        /* address of nh within the ctx */
 
  56         void *th_in_ctx;        /* address of th within the ctx */
 
  61 } __attribute__ ((packed));
 
  63 extern struct qeth_eddp_context *qeth_eddp_create_context(struct qeth_card *,
 
  64                  struct sk_buff *, struct qeth_hdr *, unsigned char);
 
  65 extern void qeth_eddp_put_context(struct qeth_eddp_context *);
 
  66 extern int qeth_eddp_fill_buffer(struct qeth_qdio_out_q *,
 
  67                 struct qeth_eddp_context *, int);
 
  68 extern void qeth_eddp_buf_release_contexts(struct qeth_qdio_out_buffer *);
 
  69 extern int qeth_eddp_check_buffers_for_context(struct qeth_qdio_out_q *,
 
  70                 struct qeth_eddp_context *);
 
  72 void qeth_tso_fill_header(struct qeth_card *, struct qeth_hdr *,
 
  74 void qeth_tx_csum(struct sk_buff *skb);
 
  76 #endif /* __QETH_CORE_EDDP_H__ */