OpenAFS
OpenAFS distributed network file system
/cygdrive/c/src/openafs/openafs.git/repo/src/rx/rx_internal.h
00001 /* Internal structures that are private to RX itself. These shouldn't be
00002  * modified by library callers.
00003  *
00004  * Data structures that are visible to security layers, but not to
00005  * customers of RX belong in rx_private.h, which is installed.
00006  */
00007 
00008 #ifdef AFS_RXERRQ_ENV
00009 # if defined(AFS_LINUX26_ENV) || defined(AFS_USR_LINUX26_ENV)
00010 #  include <linux/module.h>
00011 #  include <linux/types.h>
00012 #  include <linux/errqueue.h>
00013 #  include <linux/icmp.h>
00014 # endif
00015 #endif
00016 
00017 /* Globals that we don't want the world to know about */
00018 extern rx_atomic_t rx_nWaiting;
00019 extern rx_atomic_t rx_nWaited;
00020 
00021 /* Prototypes for internal functions */
00022 
00023 /* rx.c */
00024 extern void rxi_PacketsUnWait(void);
00025 extern void rxi_SetPeerMtu(struct rx_peer *peer, afs_uint32 host,
00026                            afs_uint32 port, int mtu);
00027 #ifdef AFS_RXERRQ_ENV
00028 extern void rxi_ProcessNetError(struct sock_extended_err *err,
00029                                 afs_uint32 addr, afs_uint16 port);
00030 #endif
00031 extern struct rx_peer *rxi_FindPeer(afs_uint32 host, u_short port,
00032                                     struct rx_peer *origPeer, int create);
00033 extern struct rx_packet *rxi_ReceivePacket(struct rx_packet *np,
00034                                            osi_socket socket, afs_uint32 host,
00035                                            u_short port, int *tnop,
00036                                            struct rx_call **newcallp);
00037 extern int rxi_IsConnInteresting(struct rx_connection *aconn);
00038 extern void rxi_PostDelayedAckEvent(struct rx_call *call, struct clock *now);
00039 extern void rxi_ConnectionError(struct rx_connection *conn, afs_int32 error);
00040 extern void rxi_Start(struct rx_call *call, int istack);
00041 extern void rxi_Send(struct rx_call *call, struct rx_packet *p, int istack);
00042 extern struct rx_packet *rxi_SendAck(struct rx_call *call,
00043                                      struct rx_packet *optionalPacket,
00044                                      int serial, int reason, int istack);
00045 extern struct rx_packet *rxi_SendConnectionAbort(struct rx_connection *conn,
00046                                                  struct rx_packet *packet,
00047                                                  int istack, int force);
00048 extern void rxi_IncrementTimeAndCount(struct rx_peer *peer,
00049                                       afs_uint32 rxInterface,
00050                                       afs_uint32 currentFunc,
00051                                       afs_uint32 totalFunc,
00052                                       struct clock *queueTime,
00053                                       struct clock *execTime,
00054                                       afs_uint64 bytesSent,
00055                                       afs_uint64 bytesRcvd,
00056                                       int isServer);
00057 
00058 /* rx_packet.h */
00059 
00060 extern int rxi_SendIovecs(struct rx_connection *conn, struct iovec *iov,
00061                           int iovcnt, size_t length, int istack);
00062 extern void rxi_SendRaw(struct rx_call *call, struct rx_connection *conn,
00063                         int type, char *data, int bytes, int istack);
 All Data Structures Files Functions Variables