hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/include/net/af_rxrpc.h
....@@ -1,34 +1,25 @@
1
+/* SPDX-License-Identifier: GPL-2.0-or-later */
12 /* RxRPC kernel service interface definitions
23 *
34 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
45 * Written by David Howells (dhowells@redhat.com)
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public License
8
- * as published by the Free Software Foundation; either version
9
- * 2 of the License, or (at your option) any later version.
106 */
117
128 #ifndef _NET_RXRPC_H
139 #define _NET_RXRPC_H
1410
1511 #include <linux/rxrpc.h>
12
+#include <linux/ktime.h>
1613
1714 struct key;
1815 struct sock;
1916 struct socket;
2017 struct rxrpc_call;
2118
22
-/*
23
- * Call completion condition (state == RXRPC_CALL_COMPLETE).
24
- */
25
-enum rxrpc_call_completion {
26
- RXRPC_CALL_SUCCEEDED, /* - Normal termination */
27
- RXRPC_CALL_REMOTELY_ABORTED, /* - call aborted by peer */
28
- RXRPC_CALL_LOCALLY_ABORTED, /* - call aborted locally on error or close */
29
- RXRPC_CALL_LOCAL_ERROR, /* - call failed due to local error */
30
- RXRPC_CALL_NETWORK_ERROR, /* - call terminated by network error */
31
- NR__RXRPC_CALL_COMPLETIONS
19
+enum rxrpc_interruptibility {
20
+ RXRPC_INTERRUPTIBLE, /* Call is interruptible */
21
+ RXRPC_PREINTERRUPTIBLE, /* Call can be cancelled whilst waiting for a slot */
22
+ RXRPC_UNINTERRUPTIBLE, /* Call should not be interruptible at all */
3223 };
3324
3425 /*
....@@ -56,6 +47,7 @@
5647 gfp_t,
5748 rxrpc_notify_rx_t,
5849 bool,
50
+ enum rxrpc_interruptibility,
5951 unsigned int);
6052 int rxrpc_kernel_send_data(struct socket *, struct rxrpc_call *,
6153 struct msghdr *, size_t,
....@@ -67,15 +59,19 @@
6759 void rxrpc_kernel_end_call(struct socket *, struct rxrpc_call *);
6860 void rxrpc_kernel_get_peer(struct socket *, struct rxrpc_call *,
6961 struct sockaddr_rxrpc *);
70
-u64 rxrpc_kernel_get_rtt(struct socket *, struct rxrpc_call *);
62
+bool rxrpc_kernel_get_srtt(struct socket *, struct rxrpc_call *, u32 *);
7163 int rxrpc_kernel_charge_accept(struct socket *, rxrpc_notify_rx_t,
7264 rxrpc_user_attach_call_t, unsigned long, gfp_t,
7365 unsigned int);
7466 void rxrpc_kernel_set_tx_length(struct socket *, struct rxrpc_call *, s64);
75
-int rxrpc_kernel_retry_call(struct socket *, struct rxrpc_call *,
76
- struct sockaddr_rxrpc *, struct key *);
77
-int rxrpc_kernel_check_call(struct socket *, struct rxrpc_call *,
78
- enum rxrpc_call_completion *, u32 *);
79
-u32 rxrpc_kernel_check_life(struct socket *, struct rxrpc_call *);
67
+bool rxrpc_kernel_check_life(const struct socket *, const struct rxrpc_call *);
68
+u32 rxrpc_kernel_get_epoch(struct socket *, struct rxrpc_call *);
69
+bool rxrpc_kernel_get_reply_time(struct socket *, struct rxrpc_call *,
70
+ ktime_t *);
71
+bool rxrpc_kernel_call_is_complete(struct rxrpc_call *);
72
+void rxrpc_kernel_set_max_life(struct socket *, struct rxrpc_call *,
73
+ unsigned long);
74
+
75
+int rxrpc_sock_set_min_security_level(struct sock *sk, unsigned int val);
8076
8177 #endif /* _NET_RXRPC_H */