[DCCP] ackvec: Introduce dccp_ackvec_slab
[deliverable/linux.git] / net / dccp / ackvec.h
index d0fd6c60c574d2277839cda38955bf7223da586c..470bae8a9d074349d103abd8e05ccfc4d50781c4 100644 (file)
  *                    (HC-Sender seqno)
  * @dccpav_ack_nonce - the one-bit sum of the ECN Nonces for all State 0.
  *
- * @dccpav_buf_len     - circular buffer length
  * @dccpav_time                - the time in usecs
  * @dccpav_buf - circular buffer of acknowledgeable packets
  */
 struct dccp_ackvec {
-       unsigned int    dccpav_buf_head;
-       unsigned int    dccpav_buf_tail;
        u64             dccpav_buf_ackno;
        u64             dccpav_ack_seqno;
        u64             dccpav_ack_ackno;
-       unsigned int    dccpav_ack_ptr;
-       unsigned int    dccpav_sent_len;
-       unsigned int    dccpav_vec_len;
-       unsigned int    dccpav_buf_len;
        struct timeval  dccpav_time;
+       u8              dccpav_buf_head;
+       u8              dccpav_buf_tail;
+       u8              dccpav_ack_ptr;
+       u8              dccpav_sent_len;
+       u8              dccpav_vec_len;
        u8              dccpav_buf_nonce;
        u8              dccpav_ack_nonce;
-       u8              dccpav_buf[0];
+       u8              dccpav_buf[DCCP_MAX_ACKVEC_LEN];
 };
 
 struct sock;
 struct sk_buff;
 
 #ifdef CONFIG_IP_DCCP_ACKVEC
-extern struct dccp_ackvec *dccp_ackvec_alloc(unsigned int len,
-                                         const gfp_t priority);
+extern int dccp_ackvec_init(void);
+extern void dccp_ackvec_exit(void);
+
+extern struct dccp_ackvec *dccp_ackvec_alloc(const gfp_t priority);
 extern void dccp_ackvec_free(struct dccp_ackvec *av);
 
 extern int dccp_ackvec_add(struct dccp_ackvec *av, const struct sock *sk,
@@ -92,8 +92,16 @@ static inline int dccp_ackvec_pending(const struct dccp_ackvec *av)
        return av->dccpav_sent_len != av->dccpav_vec_len;
 }
 #else /* CONFIG_IP_DCCP_ACKVEC */
-static inline struct dccp_ackvec *dccp_ackvec_alloc(unsigned int len,
-                                          const gfp_t priority)
+static inline int dccp_ackvec_init(void)
+{
+       return 0;
+}
+
+static inline void dccp_ackvec_exit(void)
+{
+}
+
+static inline struct dccp_ackvec *dccp_ackvec_alloc(const gfp_t priority)
 {
        return NULL;
 }
This page took 0.025777 seconds and 5 git commands to generate.