1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* RxRPC kernel service interface definitions
4 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
11 #include <linux/rxrpc.h>
12 #include <linux/ktime.h>
20 * Debug ID counter for tracing.
22 extern atomic_t rxrpc_debug_id
;
24 typedef void (*rxrpc_notify_rx_t
)(struct sock
*, struct rxrpc_call
*,
26 typedef void (*rxrpc_notify_end_tx_t
)(struct sock
*, struct rxrpc_call
*,
28 typedef void (*rxrpc_notify_new_call_t
)(struct sock
*, struct rxrpc_call
*,
30 typedef void (*rxrpc_discard_new_call_t
)(struct rxrpc_call
*, unsigned long);
31 typedef void (*rxrpc_user_attach_call_t
)(struct rxrpc_call
*, unsigned long);
33 void rxrpc_kernel_new_call_notification(struct socket
*,
34 rxrpc_notify_new_call_t
,
35 rxrpc_discard_new_call_t
);
36 struct rxrpc_call
*rxrpc_kernel_begin_call(struct socket
*,
37 struct sockaddr_rxrpc
*,
46 int rxrpc_kernel_send_data(struct socket
*, struct rxrpc_call
*,
47 struct msghdr
*, size_t,
48 rxrpc_notify_end_tx_t
);
49 int rxrpc_kernel_recv_data(struct socket
*, struct rxrpc_call
*,
50 struct iov_iter
*, bool, u32
*, u16
*);
51 bool rxrpc_kernel_abort_call(struct socket
*, struct rxrpc_call
*,
52 u32
, int, const char *);
53 void rxrpc_kernel_end_call(struct socket
*, struct rxrpc_call
*);
54 void rxrpc_kernel_get_peer(struct socket
*, struct rxrpc_call
*,
55 struct sockaddr_rxrpc
*);
56 u64
rxrpc_kernel_get_rtt(struct socket
*, struct rxrpc_call
*);
57 int rxrpc_kernel_charge_accept(struct socket
*, rxrpc_notify_rx_t
,
58 rxrpc_user_attach_call_t
, unsigned long, gfp_t
,
60 void rxrpc_kernel_set_tx_length(struct socket
*, struct rxrpc_call
*, s64
);
61 bool rxrpc_kernel_check_life(const struct socket
*, const struct rxrpc_call
*,
63 void rxrpc_kernel_probe_life(struct socket
*, struct rxrpc_call
*);
64 u32
rxrpc_kernel_get_epoch(struct socket
*, struct rxrpc_call
*);
65 bool rxrpc_kernel_get_reply_time(struct socket
*, struct rxrpc_call
*,
67 bool rxrpc_kernel_call_is_complete(struct rxrpc_call
*);
68 void rxrpc_kernel_set_max_life(struct socket
*, struct rxrpc_call
*,
71 #endif /* _NET_RXRPC_H */