]>
Commit | Line | Data |
---|---|---|
651350d1 | 1 | /* RxRPC kernel service interface definitions |
17926a79 | 2 | * |
651350d1 | 3 | * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. |
17926a79 DH |
4 | * 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. | |
10 | */ | |
11 | ||
12 | #ifndef _NET_RXRPC_H | |
13 | #define _NET_RXRPC_H | |
14 | ||
8e688d9c | 15 | #include <linux/skbuff.h> |
17926a79 DH |
16 | #include <linux/rxrpc.h> |
17 | ||
4de48af6 DH |
18 | struct key; |
19 | struct sock; | |
20 | struct socket; | |
651350d1 DH |
21 | struct rxrpc_call; |
22 | ||
23 | /* | |
24 | * the mark applied to socket buffers that may be intercepted | |
25 | */ | |
dc44b3a0 | 26 | enum rxrpc_skb_mark { |
651350d1 DH |
27 | RXRPC_SKB_MARK_DATA, /* data message */ |
28 | RXRPC_SKB_MARK_FINAL_ACK, /* final ACK received message */ | |
29 | RXRPC_SKB_MARK_BUSY, /* server busy message */ | |
30 | RXRPC_SKB_MARK_REMOTE_ABORT, /* remote abort message */ | |
dc44b3a0 | 31 | RXRPC_SKB_MARK_LOCAL_ABORT, /* local abort message */ |
651350d1 DH |
32 | RXRPC_SKB_MARK_NET_ERROR, /* network error message */ |
33 | RXRPC_SKB_MARK_LOCAL_ERROR, /* local error message */ | |
34 | RXRPC_SKB_MARK_NEW_CALL, /* local error message */ | |
35 | }; | |
36 | ||
37 | typedef void (*rxrpc_interceptor_t)(struct sock *, unsigned long, | |
38 | struct sk_buff *); | |
cd2cf63a JP |
39 | void rxrpc_kernel_intercept_rx_messages(struct socket *, rxrpc_interceptor_t); |
40 | struct rxrpc_call *rxrpc_kernel_begin_call(struct socket *, | |
41 | struct sockaddr_rxrpc *, | |
42 | struct key *, | |
43 | unsigned long, | |
44 | gfp_t); | |
4de48af6 DH |
45 | int rxrpc_kernel_send_data(struct socket *, struct rxrpc_call *, |
46 | struct msghdr *, size_t); | |
372ee163 | 47 | void rxrpc_kernel_data_consumed(struct rxrpc_call *, struct sk_buff *); |
4de48af6 DH |
48 | void rxrpc_kernel_abort_call(struct socket *, struct rxrpc_call *, u32); |
49 | void rxrpc_kernel_end_call(struct socket *, struct rxrpc_call *); | |
cd2cf63a JP |
50 | bool rxrpc_kernel_is_data_last(struct sk_buff *); |
51 | u32 rxrpc_kernel_get_abort_code(struct sk_buff *); | |
52 | int rxrpc_kernel_get_error_number(struct sk_buff *); | |
cd2cf63a JP |
53 | void rxrpc_kernel_free_skb(struct sk_buff *); |
54 | struct rxrpc_call *rxrpc_kernel_accept_call(struct socket *, unsigned long); | |
55 | int rxrpc_kernel_reject_call(struct socket *); | |
8324f0bc DH |
56 | void rxrpc_kernel_get_peer(struct socket *, struct rxrpc_call *, |
57 | struct sockaddr_rxrpc *); | |
651350d1 | 58 | |
17926a79 | 59 | #endif /* _NET_RXRPC_H */ |