X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fnet%2Fllc_conn.h;h=8ad3bc2c23d78d16880623cb74cdc43f722f1263;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=06fb01bccdbf46c68e5a9d50d7be46691829f59a;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/net/llc_conn.h b/include/net/llc_conn.h index 06fb01bcc..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,11 +92,10 @@ 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); -extern int llc_sk_init(struct sock *sk); /* Access to a connection */ extern int llc_conn_state_process(struct sock *sk, struct sk_buff *skb); @@ -106,8 +110,6 @@ extern int llc_conn_remove_acked_pdus(struct sock *conn, u8 nr, extern struct sock *llc_lookup_established(struct llc_sap *sap, struct llc_addr *daddr, struct llc_addr *laddr); -extern struct sock *llc_lookup_listener(struct llc_sap *sap, - struct llc_addr *laddr); extern void llc_sap_add_socket(struct llc_sap *sap, struct sock *sk); extern void llc_sap_remove_socket(struct llc_sap *sap, struct sock *sk);