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 | ||
651350d1 DH |
18 | struct rxrpc_call; |
19 | ||
20 | /* | |
21 | * the mark applied to socket buffers that may be intercepted | |
22 | */ | |
dc44b3a0 | 23 | enum rxrpc_skb_mark { |
651350d1 DH |
24 | RXRPC_SKB_MARK_DATA, /* data message */ |
25 | RXRPC_SKB_MARK_FINAL_ACK, /* final ACK received message */ | |
26 | RXRPC_SKB_MARK_BUSY, /* server busy message */ | |
27 | RXRPC_SKB_MARK_REMOTE_ABORT, /* remote abort message */ | |
dc44b3a0 | 28 | RXRPC_SKB_MARK_LOCAL_ABORT, /* local abort message */ |
651350d1 DH |
29 | RXRPC_SKB_MARK_NET_ERROR, /* network error message */ |
30 | RXRPC_SKB_MARK_LOCAL_ERROR, /* local error message */ | |
31 | RXRPC_SKB_MARK_NEW_CALL, /* local error message */ | |
32 | }; | |
33 | ||
34 | typedef void (*rxrpc_interceptor_t)(struct sock *, unsigned long, | |
35 | struct sk_buff *); | |
cd2cf63a JP |
36 | void rxrpc_kernel_intercept_rx_messages(struct socket *, rxrpc_interceptor_t); |
37 | struct rxrpc_call *rxrpc_kernel_begin_call(struct socket *, | |
38 | struct sockaddr_rxrpc *, | |
39 | struct key *, | |
40 | unsigned long, | |
41 | gfp_t); | |
42 | int rxrpc_kernel_send_data(struct rxrpc_call *, struct msghdr *, size_t); | |
43 | void rxrpc_kernel_abort_call(struct rxrpc_call *, u32); | |
44 | void rxrpc_kernel_end_call(struct rxrpc_call *); | |
45 | bool rxrpc_kernel_is_data_last(struct sk_buff *); | |
46 | u32 rxrpc_kernel_get_abort_code(struct sk_buff *); | |
47 | int rxrpc_kernel_get_error_number(struct sk_buff *); | |
48 | void rxrpc_kernel_data_delivered(struct sk_buff *); | |
49 | void rxrpc_kernel_free_skb(struct sk_buff *); | |
50 | struct rxrpc_call *rxrpc_kernel_accept_call(struct socket *, unsigned long); | |
51 | int rxrpc_kernel_reject_call(struct socket *); | |
651350d1 | 52 | |
17926a79 | 53 | #endif /* _NET_RXRPC_H */ |