Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / rx / rx_internal.h
1 /* Internal structures that are private to RX itself. These shouldn't be
2 * modified by library callers.
3 *
4 * Data structures that are visible to security layers, but not to
5 * customers of RX belong in rx_private.h, which is installed.
6 */
7
8 #ifdef AFS_RXERRQ_ENV
9 # if defined(AFS_LINUX26_ENV) || defined(AFS_USR_LINUX26_ENV)
10 # include <linux/types.h>
11 # include <linux/errqueue.h>
12 # include <linux/icmp.h>
13 # endif
14 #endif
15
16 /* Globals that we don't want the world to know about */
17 extern rx_atomic_t rx_nWaiting;
18 extern rx_atomic_t rx_nWaited;
19
20 /* Prototypes for internal functions */
21
22 /* rx.c */
23 extern int rxi_IsRunning(void);
24 extern void rxi_CancelDelayedAckEvent(struct rx_call *);
25 extern void rxi_PacketsUnWait(void);
26 extern void rxi_SetPeerMtu(struct rx_peer *peer, afs_uint32 host,
27 afs_uint32 port, int mtu);
28 #ifdef AFS_RXERRQ_ENV
29 extern void rxi_ProcessNetError(struct sock_extended_err *err,
30 afs_uint32 addr, afs_uint16 port);
31 #endif
32 extern struct rx_peer *rxi_FindPeer(afs_uint32 host, u_short port,
33 int create);
34 extern struct rx_packet *rxi_ReceivePacket(struct rx_packet *np,
35 osi_socket socket, afs_uint32 host,
36 u_short port, int *tnop,
37 struct rx_call **newcallp);
38 extern int rxi_IsConnInteresting(struct rx_connection *aconn);
39 extern void rxi_PostDelayedAckEvent(struct rx_call *call, struct clock *now);
40 extern void rxi_ConnectionError(struct rx_connection *conn, afs_int32 error);
41 extern void rxi_Start(struct rx_call *call, int istack);
42 extern void rxi_Send(struct rx_call *call, struct rx_packet *p, int istack);
43 extern struct rx_packet *rxi_SendAck(struct rx_call *call,
44 struct rx_packet *optionalPacket,
45 int serial, int reason, int istack);
46 extern struct rx_packet *rxi_SendConnectionAbort(struct rx_connection *conn,
47 struct rx_packet *packet,
48 int istack, int force);
49 extern void rxi_IncrementTimeAndCount(struct rx_peer *peer,
50 afs_uint32 rxInterface,
51 afs_uint32 currentFunc,
52 afs_uint32 totalFunc,
53 struct clock *queueTime,
54 struct clock *execTime,
55 afs_uint64 bytesSent,
56 afs_uint64 bytesRcvd,
57 int isServer);
58 #ifdef RX_ENABLE_LOCKS
59 extern void rxi_WaitforTQBusy(struct rx_call *call);
60 #else
61 # define rxi_WaitforTQBusy(call)
62 #endif
63
64 /* rx_packet.h */
65
66 extern int rxi_SendIovecs(struct rx_connection *conn, struct iovec *iov,
67 int iovcnt, size_t length, int istack);
68 extern void rxi_SendRaw(struct rx_call *call, struct rx_connection *conn,
69 int type, char *data, int bytes, int istack);