1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _RDS_INFO_H 2 #ifndef _RDS_INFO_H 3 #define _RDS_INFO_H 3 #define _RDS_INFO_H 4 4 5 struct rds_info_lengths { 5 struct rds_info_lengths { 6 unsigned int nr; 6 unsigned int nr; 7 unsigned int each; 7 unsigned int each; 8 }; 8 }; 9 9 10 struct rds_info_iterator; 10 struct rds_info_iterator; 11 11 12 /* 12 /* 13 * These functions must fill in the fields of 13 * These functions must fill in the fields of @lens to reflect the size 14 * of the available info source. If the snaps 14 * of the available info source. If the snapshot fits in @len then it 15 * should be copied using @iter. The caller w 15 * should be copied using @iter. The caller will deduce if it was copied 16 * or not by comparing the lengths. 16 * or not by comparing the lengths. 17 */ 17 */ 18 typedef void (*rds_info_func)(struct socket *s 18 typedef void (*rds_info_func)(struct socket *sock, unsigned int len, 19 struct rds_info_ 19 struct rds_info_iterator *iter, 20 struct rds_info_ 20 struct rds_info_lengths *lens); 21 21 22 void rds_info_register_func(int optname, rds_i 22 void rds_info_register_func(int optname, rds_info_func func); 23 void rds_info_deregister_func(int optname, rds 23 void rds_info_deregister_func(int optname, rds_info_func func); 24 int rds_info_getsockopt(struct socket *sock, i 24 int rds_info_getsockopt(struct socket *sock, int optname, char __user *optval, 25 int __user *optlen); 25 int __user *optlen); 26 void rds_info_copy(struct rds_info_iterator *i 26 void rds_info_copy(struct rds_info_iterator *iter, void *data, 27 unsigned long bytes); 27 unsigned long bytes); 28 void rds_info_iter_unmap(struct rds_info_itera 28 void rds_info_iter_unmap(struct rds_info_iterator *iter); 29 29 30 30 31 #endif 31 #endif 32 32
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.