Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * linux/drivers/s390/net/qeth_eddp.h
  3  *
  4  * Header file for qeth enhanced device driver packing.
  5  *
  6  * Copyright 2004 IBM Corporation
  7  *
  8  *    Author(s): Thomas Spatzier <tspat@de.ibm.com>
  9  *
 10  */
 11 #ifndef __QETH_EDDP_H__
 12 #define __QETH_EDDP_H__
 13 
 14 struct qeth_eddp_element {
 15         u32 flags;
 16         u32 length;
 17         void *addr;
 18 };
 19 
 20 struct qeth_eddp_context {
 21         atomic_t refcnt;
 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 **/
 29 };
 30 
 31 struct qeth_eddp_context_reference {
 32         struct list_head list;
 33         struct qeth_eddp_context *ctx;
 34 };
 35 
 36 extern struct qeth_eddp_context *
 37 qeth_eddp_create_context(struct qeth_card *,struct sk_buff *,
 38                          struct qeth_hdr *, unsigned char);
 39 
 40 extern void
 41 qeth_eddp_put_context(struct qeth_eddp_context *);
 42 
 43 extern int
 44 qeth_eddp_fill_buffer(struct qeth_qdio_out_q *,struct qeth_eddp_context *,int);
 45 
 46 extern void
 47 qeth_eddp_buf_release_contexts(struct qeth_qdio_out_buffer *);
 48 
 49 extern int
 50 qeth_eddp_check_buffers_for_context(struct qeth_qdio_out_q *,
 51                                     struct qeth_eddp_context *);
 52 /*
 53  * Data used for fragmenting a IP packet.
 54  */
 55 struct qeth_eddp_data {
 56         struct qeth_hdr qh;
 57         struct ethhdr mac;
 58         __be16 vlan[2];
 59         union {
 60                 struct {
 61                         struct iphdr h;
 62                         u8 options[40];
 63                 } ip4;
 64                 struct {
 65                         struct ipv6hdr h;
 66                 } ip6;
 67         } nh;
 68         u8 nhl;
 69         void *nh_in_ctx;        /* address of nh within the ctx */
 70         union {
 71                 struct {
 72                         struct tcphdr h;
 73                         u8 options[40];
 74                 } tcp;
 75         } th;
 76         u8 thl;
 77         void *th_in_ctx;        /* address of th within the ctx */
 78         struct sk_buff *skb;
 79         int skb_offset;
 80         int frag;
 81         int frag_offset;
 82 } __attribute__ ((packed));
 83 
 84 #endif /* __QETH_EDDP_H__ */
 85 
  This page was automatically generated by the LXR engine.