85
86 return 0;
87}
88
89static const struct seq_operations rxrpc_call_seq_ops = {
90 .start = rxrpc_call_seq_start,
91 .next = rxrpc_call_seq_next,
92 .stop = rxrpc_call_seq_stop,
93 .show = rxrpc_call_seq_show,
94};
95
96static int rxrpc_call_seq_open(struct inode *inode, struct file *file)
97{
98 return seq_open(file, &rxrpc_call_seq_ops);
99}
100
101const struct file_operations rxrpc_call_seq_fops = {
102 .owner = THIS_MODULE,
103 .open = rxrpc_call_seq_open,
104 .read = seq_read,
105 .llseek = seq_lseek,
106 .release = seq_release,
107};
108
109
110
111
112static void *rxrpc_connection_seq_start(struct seq_file *seq, loff_t *_pos)
113{
114 read_lock(&rxrpc_connection_lock);
115 return seq_list_start_head(&rxrpc_connections, *_pos);
116}
117
118static void *rxrpc_connection_seq_next(struct seq_file *seq, void *v,
119 loff_t *pos)
120{
121 return seq_list_next(v, &rxrpc_connections, pos);
122}
123
124static void rxrpc_connection_seq_stop(struct seq_file *seq, void *v)
125{