net: CONFIG_COMPAT redux
[safe/jmp/linux-2.6] / include / linux / atalk.h
index 31d3fc2..d34c187 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef __LINUX_ATALK_H__
 #define __LINUX_ATALK_H__
 
+#include <linux/types.h>
+#include <asm/byteorder.h>
+
 /*
  * AppleTalk networking structures
  *
@@ -20,7 +23,7 @@
 #define SIOCATALKDIFADDR       (SIOCPROTOPRIVATE + 0)
 
 struct atalk_addr {
-       __u16   s_net;
+       __be16  s_net;
        __u8    s_node;
 };
 
@@ -33,8 +36,8 @@ struct sockaddr_at {
 
 struct atalk_netrange {
        __u8    nr_phase;
-       __u16   nr_firstnet;
-       __u16   nr_lastnet;
+       __be16  nr_firstnet;
+       __be16  nr_lastnet;
 };
 
 #ifdef __KERNEL__
@@ -70,8 +73,8 @@ struct atalk_iface {
 struct atalk_sock {
        /* struct sock has to be the first member of atalk_sock */
        struct sock     sk;
-       unsigned short  dest_net;
-       unsigned short  src_net;
+       __be16          dest_net;
+       __be16          src_net;
        unsigned char   dest_node;
        unsigned char   src_node;
        unsigned char   dest_port;
@@ -83,21 +86,11 @@ static inline struct atalk_sock *at_sk(struct sock *sk)
        return (struct atalk_sock *)sk;
 }
 
-#include <asm/byteorder.h>
-
 struct ddpehdr {
-#ifdef __LITTLE_ENDIAN_BITFIELD
-       __u16   deh_len:10,
-               deh_hops:4,
-               deh_pad:2;
-#else
-       __u16   deh_pad:2,
-               deh_hops:4,
-               deh_len:10;
-#endif
-       __u16   deh_sum;
-       __u16   deh_dnet;
-       __u16   deh_snet;
+       __be16  deh_len_hops;   /* lower 10 bits are length, next 4 - hops */
+       __be16  deh_sum;
+       __be16  deh_dnet;
+       __be16  deh_snet;
        __u8    deh_dnode;
        __u8    deh_snode;
        __u8    deh_dport;
@@ -107,65 +100,35 @@ struct ddpehdr {
 
 static __inline__ struct ddpehdr *ddp_hdr(struct sk_buff *skb)
 {
-       return (struct ddpehdr *)skb->h.raw;
+       return (struct ddpehdr *)skb_transport_header(skb);
 }
 
-/*
- *     Don't drop the struct into the struct above.  You'll get some
- *     surprise padding.
- */
-struct ddpebits {
-#ifdef __LITTLE_ENDIAN_BITFIELD
-       __u16   deh_len:10,
-               deh_hops:4,
-               deh_pad:2;
-#else
-       __u16   deh_pad:2,
-               deh_hops:4,
-               deh_len:10;
-#endif
-};
-
-/* Short form header */
-struct ddpshdr {
-#ifdef __LITTLE_ENDIAN_BITFIELD
-       __u16   dsh_len:10,
-               dsh_pad:6;
-#else
-       __u16   dsh_pad:6,
-               dsh_len:10;
-#endif
-       __u8    dsh_dport;
-       __u8    dsh_sport;
-       /* And netatalk apps expect to stick the type in themselves */
-};
-
 /* AppleTalk AARP headers */
 struct elapaarp {
-       __u16   hw_type;
+       __be16  hw_type;
 #define AARP_HW_TYPE_ETHERNET          1
 #define AARP_HW_TYPE_TOKENRING         2
-       __u16   pa_type;
+       __be16  pa_type;
        __u8    hw_len;
        __u8    pa_len;
 #define AARP_PA_ALEN                   4
-       __u16   function;
+       __be16  function;
 #define AARP_REQUEST                   1
 #define AARP_REPLY                     2
 #define AARP_PROBE                     3
-       __u8    hw_src[ETH_ALEN]        __attribute__ ((packed));
-       __u8    pa_src_zero             __attribute__ ((packed));
-       __u16   pa_src_net              __attribute__ ((packed));
-       __u8    pa_src_node             __attribute__ ((packed));
-       __u8    hw_dst[ETH_ALEN]        __attribute__ ((packed));
-       __u8    pa_dst_zero             __attribute__ ((packed));
-       __u16   pa_dst_net              __attribute__ ((packed));
-       __u8    pa_dst_node             __attribute__ ((packed));       
-};
+       __u8    hw_src[ETH_ALEN];
+       __u8    pa_src_zero;
+       __be16  pa_src_net;
+       __u8    pa_src_node;
+       __u8    hw_dst[ETH_ALEN];
+       __u8    pa_dst_zero;
+       __be16  pa_dst_net;
+       __u8    pa_dst_node;
+} __attribute__ ((packed));
 
 static __inline__ struct elapaarp *aarp_hdr(struct sk_buff *skb)
 {
-       return (struct elapaarp *)skb->h.raw;
+       return (struct elapaarp *)skb_transport_header(skb);
 }
 
 /* Not specified - how long till we drop a resolved entry */
@@ -218,7 +181,7 @@ extern rwlock_t atalk_interfaces_lock;
 
 extern struct atalk_route atrtr_default;
 
-extern struct file_operations atalk_seq_arp_fops;
+extern const struct file_operations atalk_seq_arp_fops;
 
 extern int sysctl_aarp_expiry_time;
 extern int sysctl_aarp_tick_time;