home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / errqueue.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  816 b   |  47 lines

  1. #ifndef _LINUX_ERRQUEUE_H
  2. #define _LINUX_ERRQUEUE_H 1
  3.  
  4. struct sock_extended_err
  5. {
  6.     __u32    ee_errno;    
  7.     __u8    ee_origin;
  8.     __u8    ee_type;
  9.     __u8    ee_code;
  10.     __u8    ee_pad;
  11.     __u32   ee_info;
  12.     __u32   ee_data;
  13. };
  14.  
  15. #define SO_EE_ORIGIN_NONE    0
  16. #define SO_EE_ORIGIN_LOCAL    1
  17. #define SO_EE_ORIGIN_ICMP    2
  18. #define SO_EE_ORIGIN_ICMP6    3
  19.  
  20. #define SO_EE_OFFENDER(ee)    ((struct sockaddr*)((ee)+1))
  21.  
  22. #ifdef __KERNEL__
  23.  
  24. #include <net/ip.h>
  25. #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
  26. #include <linux/ipv6.h>
  27. #endif
  28.  
  29. #define SKB_EXT_ERR(skb) ((struct sock_exterr_skb *) ((skb)->cb))
  30.  
  31. struct sock_exterr_skb
  32. {
  33.     union {
  34.         struct inet_skb_parm    h4;
  35. #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE)
  36.         struct inet6_skb_parm    h6;
  37. #endif
  38.     } header;
  39.     struct sock_extended_err    ee;
  40.     u16                addr_offset;
  41.     u16                port;
  42. };
  43.  
  44. #endif
  45.  
  46. #endif
  47.