X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fnet%2Fllc_conn.h;h=8ad3bc2c23d78d16880623cb74cdc43f722f1263;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=bbc0af5232ed432b5da2587c773fa8975d2ea9cb;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/include/net/llc_conn.h b/include/net/llc_conn.h index bbc0af523..8ad3bc2c2 100644 --- a/include/net/llc_conn.h +++ b/include/net/llc_conn.h @@ -13,6 +13,7 @@ */ #include #include +#include #include #define LLC_EVENT 1 @@ -28,8 +29,9 @@ struct llc_timer { u16 expire; /* timer expire time */ }; -struct llc_opt { - struct sock *sk; /* sock that has this llc_opt */ +struct llc_sock { + /* struct sock must be the first member of llc_sock */ + struct sock sk; struct sockaddr_llc addr; /* address sock is bound to */ u8 state; /* state of connection */ struct llc_sap *sap; /* pointer to parent SAP */ @@ -75,7 +77,10 @@ struct llc_opt { Used for resending FRMR */ }; -#define llc_sk(__sk) ((struct llc_opt *)(__sk)->sk_protinfo) +static inline struct llc_sock *llc_sk(const struct sock *sk) +{ + return (struct llc_sock *)sk; +} static __inline__ void llc_set_backlog_type(struct sk_buff *skb, char type) { @@ -87,7 +92,7 @@ static __inline__ char llc_backlog_type(struct sk_buff *skb) return skb->cb[sizeof(skb->cb) - 1]; } -extern struct sock *llc_sk_alloc(int family, int priority); +extern struct sock *llc_sk_alloc(int family, int priority, struct proto *prot); extern void llc_sk_free(struct sock *sk); extern void llc_sk_reset(struct sock *sk);