extern void rx_rto_setPeerTimeoutSecs(struct rx_peer *, int secs);
-extern void rx_SetEpoch(afs_uint32 epoch);
extern int rx_Init(u_int port);
extern int rx_InitHost(u_int host, u_int port);
-extern void rx_SetBusyChannelError(afs_int32 onoff);
#ifdef AFS_NT40_ENV
extern void rx_DebugOnOff(int on);
extern void rx_StatsOnOff(int on);
extern void rxi_CallError(struct rx_call *call, afs_int32 error);
extern void rx_SetConnSecondsUntilNatPing(struct rx_connection *conn,
afs_int32 seconds);
-extern void rx_KeepAliveOn(struct rx_call *call);
-extern void rx_KeepAliveOff(struct rx_call *call);
extern int rxs_Release(struct rx_securityClass *aobj);
#ifndef KERNEL
extern void rx_PrintTheseStats(FILE * file, struct rx_statistics *s, int size,
extern afs_int32 rx_GetLocalPeers(afs_uint32 peerHost, afs_uint16 peerPort,
struct rx_debugPeer * peerStats);
extern void shutdown_rx(void);
-#ifndef osirx_AssertMine
-extern void osirx_AssertMine(afs_kmutex_t * lockaddr, char *msg);
-#endif
#ifndef KERNEL
extern int rx_KeyCreate(rx_destructor_t rtn);
#endif
extern void rx_clearPeerRPCStats(afs_uint32 clearFlag);
extern void rx_SetRxStatUserOk(int (*proc) (struct rx_call * call));
extern int rx_RxStatUserOk(struct rx_call *call);
+extern void rx_ClearProcessRPCStats(afs_int32 rxInterface);
+extern void rx_ClearPeerRPCStats(afs_int32 rxInterface, afs_uint32 peerHost, afs_uint16 peerPort);
+extern void *rx_CopyProcessRPCStats(afs_uint64 op);
+extern void *rx_CopyPeerRPCStats(afs_uint64 op, afs_uint32 peerHost, afs_uint16 peerPort);
+extern void rx_ReleaseRPCStats(void *stats);
extern afs_int32 rx_SetSecurityConfiguration(struct rx_service *service,
rx_securityConfigVariables type,
void *value);
void rxi_DebugPrint(char *format, ...)
AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2);
+extern int rx_GetNetworkError(struct rx_connection *conn, int *err_origin,
+ int *err_type, int *err_code, const char **msg);
+
/* rx_clock.c */
#if !defined(clock_Init)
extern void clock_Init(void);
extern void shutdown_rxevent(void);
extern struct rxepoch *rxepoch_Allocate(struct clock *when);
extern void rxevent_Init(int nEvents, void (*scheduler) (void));
-extern void rxevent_Cancel(struct rxevent **ev, struct rx_call *call,
- int type);
extern int rxevent_RaiseEvents(struct clock *next);
extern void rxk_shutdownPorts(void);
extern osi_socket rxi_GetUDPSocket(u_short port);
extern osi_socket rxi_GetHostUDPSocket(u_int host, u_short port);
-# if defined(AFS_LINUX26_ENV)
-# define osi_Panic(msg...) do { printk(KERN_CRIT "openafs: " msg); BUG(); } while (0)
-# undef osi_Assert
-# define osi_Assert(expr) \
- do { if (!(expr)) osi_Panic("assertion failed: %s, file: %s, line: %d\n", #expr, __FILE__, __LINE__); } while (0)
-# elif defined(AFS_AIX_ENV)
-extern void osi_Panic(char *fmt, void *a1, void *a2, void *a3);
-# else
-extern void osi_Panic(char *fmt, ...)
- AFS_ATTRIBUTE_FORMAT(__printf__, 1, 2)
- AFS_NORETURN;
-#endif
extern int osi_utoa(char *buf, size_t len, unsigned long val);
extern void rxi_InitPeerParams(struct rx_peer *pp);
extern void shutdown_rxkernel(void);
extern int rxi_TrimDataBufs(struct rx_packet *p, int first);
extern void rxi_FreePacket(struct rx_packet *p);
extern struct rx_packet *rxi_AllocPacket(int cla_ss);
-extern int rxi_AllocPackets(int cla_ss, int num_pkts, struct rx_queue *q);
-extern int rxi_FreePackets(int num_pkts, struct rx_queue *q);
+extern int rxi_AllocPackets(int cla_ss, int num_pkts, struct opr_queue *q);
+extern int rxi_FreePackets(int num_pkts, struct opr_queue *q);
extern struct rx_packet *rxi_AllocSendPacket(struct rx_call *call,
int want);
extern int rxi_ReadPacket(osi_socket socket, struct rx_packet *p,
extern int rxi_AdjustIfMTU(int mtu);
extern int rxi_AdjustMaxMTU(int mtu, int peerMaxMTU);
extern int rxi_AdjustDgramPackets(int frags, int mtu);
-#ifdef AFS_GLOBAL_RXLOCK_KERNEL
-extern void rxi_WaitforTQBusy(struct rx_call *call);
-#endif
/* rxperf.c */
extern int rx_WritevProc(struct rx_call *call, struct iovec *iov, int nio,
int nbytes);
extern void rxi_FlushWrite(struct rx_call *call);
+extern void rxi_FlushWriteLocked(struct rx_call *call);
extern void rx_FlushWrite(struct rx_call *call);
extern afs_kmutex_t rx_if_mutex;
#endif
extern osi_socket rxi_GetUDPSocket(u_short port);
-extern void osi_AssertFailU(const char *expr, const char *file, int line) AFS_NORETURN;
extern void rxi_InitPeerParams(struct rx_peer *pp);
extern int rxi_HandleSocketError(int socket);