Linux 5.15: Convert osi_Msg macro to a function
[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_LINUX_ENV) || defined(AFS_USR_LINUX_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 /* How many times to retry sendmsg()-equivalent calls for AFS_RXERRQ_ENV. */
21 #define RXI_SENDMSG_RETRY 8
22
23 /* Prototypes for internal functions */
24
25 /* rx.c */
26 extern int rxi_IsRunning(void);
27 extern void rxi_CancelDelayedAckEvent(struct rx_call *);
28 extern void rxi_PacketsUnWait(void);
29 extern void rxi_SetPeerMtu(struct rx_peer *peer, afs_uint32 host,
30                            afs_uint32 port, int mtu);
31 #ifdef AFS_RXERRQ_ENV
32 extern void rxi_ProcessNetError(struct sock_extended_err *err,
33                                 afs_uint32 addr, afs_uint16 port);
34 extern int osi_HandleSocketError(osi_socket sock, void *cmsgbuf,
35                                  size_t cmsgbuf_len);
36 extern void rxi_HandleSocketErrors(osi_socket sock);
37 #else
38 # define rxi_HandleSocketErrors(sock) do { } while (0)
39 #endif
40 extern struct rx_peer *rxi_FindPeer(afs_uint32 host, u_short port,
41                                     int create);
42 extern struct rx_packet *rxi_ReceivePacket(struct rx_packet *np,
43                                            osi_socket socket, afs_uint32 host,
44                                            u_short port, int *tnop,
45                                            struct rx_call **newcallp);
46 extern int rxi_IsConnInteresting(struct rx_connection *aconn);
47 extern void rxi_PostDelayedAckEvent(struct rx_call *call, struct clock *now);
48 extern void rxi_ConnectionError(struct rx_connection *conn, afs_int32 error);
49 extern void rxi_Start(struct rx_call *call, int istack);
50 extern void rxi_Send(struct rx_call *call, struct rx_packet *p, int istack);
51 extern struct rx_packet *rxi_SendAck(struct rx_call *call,
52                                      struct rx_packet *optionalPacket,
53                                      int serial, int reason, int istack);
54 extern struct rx_packet *rxi_SendConnectionAbort(struct rx_connection *conn,
55                                                  struct rx_packet *packet,
56                                                  int istack, int force);
57 extern void rxi_IncrementTimeAndCount(struct rx_peer *peer,
58                                       afs_uint32 rxInterface,
59                                       afs_uint32 currentFunc,
60                                       afs_uint32 totalFunc,
61                                       struct clock *queueTime,
62                                       struct clock *execTime,
63                                       afs_uint64 bytesSent,
64                                       afs_uint64 bytesRcvd,
65                                       int isServer);
66 #ifdef RX_ENABLE_LOCKS
67 extern void rxi_WaitforTQBusy(struct rx_call *call);
68 #else
69 # define rxi_WaitforTQBusy(call)
70 #endif
71
72 /* rx_packet.h */
73
74 extern int rxi_SendIovecs(struct rx_connection *conn, struct iovec *iov,
75                           int iovcnt, size_t length, int istack);
76 extern void rxi_SendRaw(struct rx_call *call, struct rx_connection *conn,
77                         int type, char *data, int bytes, int istack);
78 extern struct rx_packet *rxi_SplitJumboPacket(struct rx_packet *p);
79
80 /* rx_kcommon.c / rx_user.c */
81 extern void osi_Msg(const char *fmt, ...) AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);