Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 1 | #ifndef _DCCP_FEAT_H |
| 2 | #define _DCCP_FEAT_H |
| 3 | /* |
| 4 | * net/dccp/feat.h |
| 5 | * |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 6 | * An implementation of the DCCP protocol |
Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 7 | * Copyright (c) 2005 Andrea Bittau <a.bittau@cs.ucl.ac.uk> |
| 8 | * |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 9 | * This program is free software; you can redistribute it and/or modify it |
| 10 | * under the terms of the GNU General Public License version 2 as |
| 11 | * published by the Free Software Foundation. |
Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 12 | */ |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 13 | |
Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 14 | #include <linux/types.h> |
Gerrit Renker | c02fdc0 | 2006-11-14 12:48:10 -0200 | [diff] [blame] | 15 | #include "dccp.h" |
Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 16 | |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 17 | #ifdef CONFIG_IP_DCCP_DEBUG |
| 18 | extern const char *dccp_feat_typename(const u8 type); |
| 19 | extern const char *dccp_feat_name(const u8 feat); |
Gerrit Renker | 86349c8 | 2008-09-04 07:30:19 +0200 | [diff] [blame] | 20 | |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 21 | static inline void dccp_feat_debug(const u8 type, const u8 feat, const u8 val) |
Gerrit Renker | 5c7c945 | 2008-09-04 07:30:19 +0200 | [diff] [blame] | 22 | { |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 23 | dccp_pr_debug("%s(%s (%d), %d)\n", dccp_feat_typename(type), |
| 24 | dccp_feat_name(feat), feat, val); |
Gerrit Renker | 5c7c945 | 2008-09-04 07:30:19 +0200 | [diff] [blame] | 25 | } |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 26 | #else |
| 27 | #define dccp_feat_debug(type, feat, val) |
| 28 | #endif /* CONFIG_IP_DCCP_DEBUG */ |
Gerrit Renker | 5c7c945 | 2008-09-04 07:30:19 +0200 | [diff] [blame] | 29 | |
Gerrit Renker | 410e27a | 2008-09-09 13:27:22 +0200 | [diff] [blame^] | 30 | extern int dccp_feat_change(struct dccp_minisock *dmsk, u8 type, u8 feature, |
| 31 | u8 *val, u8 len, gfp_t gfp); |
| 32 | extern int dccp_feat_change_recv(struct sock *sk, u8 type, u8 feature, |
| 33 | u8 *val, u8 len); |
| 34 | extern int dccp_feat_confirm_recv(struct sock *sk, u8 type, u8 feature, |
| 35 | u8 *val, u8 len); |
| 36 | extern void dccp_feat_clean(struct dccp_minisock *dmsk); |
| 37 | extern int dccp_feat_clone(struct sock *oldsk, struct sock *newsk); |
| 38 | extern int dccp_feat_init(struct dccp_minisock *dmsk); |
Gerrit Renker | 86349c8 | 2008-09-04 07:30:19 +0200 | [diff] [blame] | 39 | |
Andrea Bittau | afe0025 | 2006-03-20 17:43:56 -0800 | [diff] [blame] | 40 | #endif /* _DCCP_FEAT_H */ |