| 1 |
|
| 2 | #ifndef _RDS_INFO_H
|
| 3 | #define _RDS_INFO_H
|
| 4 |
|
| 5 | struct rds_info_lengths {
|
| 6 | unsigned int nr;
|
| 7 | unsigned int each;
|
| 8 | };
|
| 9 |
|
| 10 | struct rds_info_iterator;
|
| 11 |
|
| 12 | |
| 13 | * These functions must fill in the fields of @lens to reflect the size
|
| 14 | * of the available info source. If the snapshot fits in @len then it
|
| 15 | * should be copied using @iter. The caller will deduce if it was copied
|
| 16 | * or not by comparing the lengths.
|
| 17 |
|
| 18 | typedef void (*rds_info_func)(struct socket *sock, unsigned int len,
|
| 19 | struct rds_info_iterator *iter,
|
| 20 | struct rds_info_lengths *lens);
|
| 21 |
|
| 22 | void rds_info_register_func(int optname, rds_info_func func);
|
| 23 | void rds_info_deregister_func(int optname, rds_info_func func);
|
| 24 | int rds_info_getsockopt(struct socket *sock, int optname, sockopt_t *opt);
|
| 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
|