diff options
Diffstat (limited to 'net/rds/info.h')
-rw-r--r-- | net/rds/info.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/net/rds/info.h b/net/rds/info.h new file mode 100644 index 000000000000..b6c052ca7d22 --- /dev/null +++ b/net/rds/info.h | |||
@@ -0,0 +1,30 @@ | |||
1 | #ifndef _RDS_INFO_H | ||
2 | #define _RDS_INFO_H | ||
3 | |||
4 | struct rds_info_lengths { | ||
5 | unsigned int nr; | ||
6 | unsigned int each; | ||
7 | }; | ||
8 | |||
9 | struct rds_info_iterator; | ||
10 | |||
11 | /* | ||
12 | * These functions must fill in the fields of @lens to reflect the size | ||
13 | * of the available info source. If the snapshot fits in @len then it | ||
14 | * should be copied using @iter. The caller will deduce if it was copied | ||
15 | * or not by comparing the lengths. | ||
16 | */ | ||
17 | typedef void (*rds_info_func)(struct socket *sock, unsigned int len, | ||
18 | struct rds_info_iterator *iter, | ||
19 | struct rds_info_lengths *lens); | ||
20 | |||
21 | void rds_info_register_func(int optname, rds_info_func func); | ||
22 | void rds_info_deregister_func(int optname, rds_info_func func); | ||
23 | int rds_info_getsockopt(struct socket *sock, int optname, char __user *optval, | ||
24 | int __user *optlen); | ||
25 | void rds_info_copy(struct rds_info_iterator *iter, void *data, | ||
26 | unsigned long bytes); | ||
27 | void rds_info_iter_unmap(struct rds_info_iterator *iter); | ||
28 | |||
29 | |||
30 | #endif | ||