fix-rx-mtu-params-20030131
[openafs.git] / src / rx / rx_prototypes.h
1 /*
2  * Copyright 2000, International Business Machines Corporation and others.
3  * All Rights Reserved.
4  * 
5  * This software has been released under the terms of the IBM Public
6  * License.  For details, see the LICENSE file in the top-level source
7  * directory or online at http://www.openafs.org/dl/license10.html
8  */
9
10 #ifndef _RX_PROTOTYPES_H
11 #define _RX_PROTOTYPES_H
12
13 /* rx.c */
14 extern void rx_SetEpoch (afs_uint32 epoch);
15 extern int rx_Init(u_int port);
16 #ifndef KERNEL
17 extern void rxi_StartServerProcs(int nExistingProcs);
18 #endif
19 extern void rx_StartServer(int donateMe);
20 extern struct rx_connection *rx_NewConnection(register afs_uint32 shost, 
21         u_short sport, u_short sservice, 
22         register struct rx_securityClass *securityObject, int serviceSecurityIndex);
23 extern void rx_SetConnDeadTime(register struct rx_connection *conn, register int seconds);
24 extern void rxi_CleanupConnection(struct rx_connection *conn);
25 extern void rxi_DestroyConnection(register struct rx_connection *conn);
26 extern void rx_DestroyConnection(register struct rx_connection *conn);
27 extern struct rx_call *rx_NewCall(register struct rx_connection *conn);
28 extern int rxi_HasActiveCalls(register struct rx_connection *aconn);
29 extern int rxi_GetCallNumberVector(register struct rx_connection *aconn, 
30         register afs_int32 *aint32s);
31 extern int rxi_SetCallNumberVector(register struct rx_connection *aconn, 
32         register afs_int32 *aint32s);
33 extern struct rx_service *rx_NewService(u_short port, u_short serviceId, 
34         char *serviceName,
35         struct rx_securityClass **securityObjects,
36         int nSecurityObjects, afs_int32 (*serviceProc)(struct rx_call *acall));
37 extern void rxi_ServerProc(int threadID, struct rx_call *newcall, osi_socket *socketp);
38 extern void rx_WakeupServerProcs(void);
39 extern struct rx_call *rx_GetCall(int tno, struct rx_service *cur_service, osi_socket *socketp);
40 extern void rx_SetArrivalProc(register struct rx_call *call, 
41         register VOID (*proc)(register struct rx_call *call,
42         register struct multi_handle *mh, register int index), 
43         register VOID *handle, register VOID *arg);
44 extern afs_int32 rx_EndCall(register struct rx_call *call, afs_int32 rc);
45 extern void rx_Finalize(void);
46 extern void rxi_PacketsUnWait(void);
47 extern struct rx_service *rxi_FindService(register osi_socket socket, 
48         register u_short serviceId);
49 extern struct rx_call *rxi_NewCall(register struct rx_connection *conn,
50         register int channel);
51
52 /* Don't like this - change source at some point to make calls identical */
53 #ifdef RX_ENABLE_LOCKS
54 extern void rxi_FreeCall(register struct rx_call *call, int haveCTLock);
55 #else /* RX_ENABLE_LOCKS */
56 extern void rxi_FreeCall(register struct rx_call *call);
57 #endif /* RX_ENABLE_LOCKS */
58
59 extern char *rxi_Alloc(register size_t size);
60 extern void rxi_Free(void *addr, register size_t size);
61 extern struct rx_peer *rxi_FindPeer(register afs_uint32 host, 
62         register u_short port, struct rx_peer *origPeer, int create);
63 extern struct rx_connection *rxi_FindConnection(osi_socket socket, 
64         register afs_int32 host, register u_short port, u_short serviceId, 
65         afs_uint32 cid, afs_uint32 epoch, int type, u_int securityIndex);
66 extern struct rx_packet *rxi_ReceivePacket(register struct rx_packet *np, 
67         osi_socket socket, afs_uint32 host, u_short port, 
68         int *tnop, struct rx_call **newcallp);
69 extern int rxi_IsConnInteresting(struct rx_connection *aconn);
70 extern struct rx_packet *rxi_ReceiveDataPacket(register struct rx_call *call, 
71         register struct rx_packet *np, int istack, osi_socket socket, 
72         afs_uint32 host, u_short port, int *tnop, struct rx_call **newcallp);
73 extern struct rx_packet *rxi_ReceiveAckPacket(register struct rx_call *call, 
74         struct rx_packet *np, int istack);
75 extern struct rx_packet *rxi_ReceiveResponsePacket(register struct rx_connection *conn, 
76         register struct rx_packet *np, int istack);
77 extern struct rx_packet *rxi_ReceiveChallengePacket(register struct rx_connection *conn, 
78         register struct rx_packet *np, int istack);
79 extern void rxi_AttachServerProc(register struct rx_call *call, 
80         register osi_socket socket, register int *tnop, register struct rx_call **newcallp);
81 extern void rxi_AckAll(struct rxevent *event, register struct rx_call *call, char *dummy);
82 extern void rxi_SendDelayedAck(struct rxevent *event, register struct rx_call *call, char *dummy);
83 extern void rxi_ClearTransmitQueue(register struct rx_call *call, register int force);
84 extern void rxi_ClearReceiveQueue(register struct rx_call *call);
85 extern struct rx_packet *rxi_SendCallAbort(register struct rx_call *call, 
86         struct rx_packet *packet, int istack, int force);
87 extern struct rx_packet *rxi_SendConnectionAbort(register struct rx_connection *conn,
88         struct rx_packet *packet, int istack, int force);
89 extern void rxi_ConnectionError(register struct rx_connection *conn, 
90         register afs_int32 error);
91 extern void rxi_CallError(register struct rx_call *call, afs_int32 error);
92 extern void rxi_ResetCall(register struct rx_call *call, register int newcall);
93 extern struct rx_packet *rxi_SendAck(register struct rx_call *call, 
94         register struct rx_packet *optionalPacket, int seq, int serial, 
95         int pflags, int reason, int istack);
96 extern void rxi_StartUnlocked(struct rxevent *event, register struct rx_call *call, 
97         int istack);
98 extern void rxi_Start(struct rxevent *event, register struct rx_call *call,
99         int istack);
100 extern void rxi_Send(register struct rx_call *call, register struct rx_packet *p, 
101         int istack);
102 #ifdef RX_ENABLE_LOCKS
103 extern int rxi_CheckCall(register struct rx_call *call, int haveCTLock);
104 #else /* RX_ENABLE_LOCKS */
105 extern int rxi_CheckCall(register struct rx_call *call);
106 #endif /* RX_ENABLE_LOCKS */
107 extern void rxi_KeepAliveEvent(struct rxevent *event, register struct rx_call *call, char *dummy);
108 extern void rxi_ScheduleKeepAliveEvent(register struct rx_call *call);
109 extern void rxi_KeepAliveOn(register struct rx_call *call);
110 extern void rxi_SendDelayedConnAbort(struct rxevent *event, register struct rx_connection *conn, 
111         char *dummy);
112 extern void rxi_SendDelayedCallAbort(struct rxevent *event, register struct rx_call *call,
113         char *dummy);
114 extern void rxi_ChallengeEvent(struct rxevent *event, register struct rx_connection *conn, 
115         void *atries);
116 extern void rxi_ChallengeOn(register struct rx_connection *conn);
117 extern void rxi_ComputeRoundTripTime(register struct rx_packet *p, 
118         register struct clock *sentp, register struct rx_peer *peer);
119 extern void rxi_ReapConnections(void);
120 extern int rxs_Release (struct rx_securityClass *aobj);
121 #ifndef KERNEL
122 extern void rx_PrintTheseStats (FILE *file, struct rx_stats *s, int size, 
123         afs_int32 freePackets, char version);
124 extern void rx_PrintStats(FILE *file);
125 extern void rx_PrintPeerStats(FILE *file, struct rx_peer *peer);
126 #endif
127 extern afs_int32 rx_GetServerDebug(osi_socket socket, afs_uint32 remoteAddr, 
128         afs_uint16 remotePort, struct rx_debugStats *stat, afs_uint32 *supportedValues);
129 extern afs_int32 rx_GetServerStats(osi_socket socket, afs_uint32 remoteAddr,
130         afs_uint16 remotePort, struct rx_stats *stat, afs_uint32 *supportedValues);
131 extern afs_int32 rx_GetServerVersion(osi_socket socket, afs_uint32 remoteAddr,
132         afs_uint16 remotePort, size_t version_length, char *version);
133 extern afs_int32 rx_GetServerConnections(osi_socket socket, afs_uint32 remoteAddr,
134         afs_uint16 remotePort, afs_int32 *nextConnection, int allConnections,
135         afs_uint32 debugSupportedValues, struct rx_debugConn *conn, afs_uint32 *supportedValues);
136 extern afs_int32 rx_GetServerPeers(osi_socket socket, afs_uint32 remoteAddr, afs_uint16 remotePort,
137         afs_int32 *nextPeer, afs_uint32 debugSupportedValues, struct rx_debugPeer *peer,
138         afs_uint32 *supportedValues);
139 extern void shutdown_rx(void);
140 #ifndef osirx_AssertMine
141 extern void osirx_AssertMine(afs_kmutex_t *lockaddr, char *msg);
142 #endif
143 #ifndef KERNEL
144 extern int rx_KeyCreate(rx_destructor_t rtn);
145 #endif
146 extern void rx_SetSpecific(struct rx_connection *conn, int key, void *ptr);
147 extern void *rx_GetSpecific(struct rx_connection *conn, int key);
148 extern void rx_IncrementTimeAndCount(struct rx_peer *peer, afs_uint32 rxInterface,
149         afs_uint32 currentFunc, afs_uint32 totalFunc, struct clock *queueTime,
150         struct clock *execTime, afs_hyper_t *bytesSent, afs_hyper_t *bytesRcvd, int isServer);
151 extern void rx_MarshallProcessRPCStats(afs_uint32 callerVersion,
152         int count, rx_function_entry_v1_t *stats, afs_uint32 **ptrP);
153 extern int rx_RetrieveProcessRPCStats(afs_uint32 callerVersion,
154         afs_uint32 *myVersion, afs_uint32 *clock_sec, afs_uint32 *clock_usec,
155         size_t *allocSize, afs_uint32 *statCount, afs_uint32 **stats);
156 extern int rx_RetrievePeerRPCStats(afs_uint32 callerVersion,
157         afs_uint32 *myVersion, afs_uint32 *clock_sec, afs_uint32 *clock_usec,
158         size_t *allocSize, afs_uint32 *statCount, afs_uint32 **stats);
159 extern void rx_FreeRPCStats(afs_uint32 *stats, size_t allocSize);
160 extern int rx_queryProcessRPCStats(void);
161 extern int rx_queryPeerRPCStats(void);
162 extern void rx_enableProcessRPCStats(void);
163 extern void rx_enablePeerRPCStats(void);
164 extern void rx_disableProcessRPCStats(void);
165 extern void rx_disablePeerRPCStats(void);
166 extern void rx_clearProcessRPCStats(afs_uint32 clearFlag);
167 extern void rx_clearPeerRPCStats(afs_uint32 clearFlag);
168 extern void rx_SetRxStatUserOk(int (*proc)(struct rx_call *call));
169 extern int rx_RxStatUserOk(struct rx_call *call);
170
171
172 /* old style till varargs */
173 #if 0
174 void
175 rxi_DebugPrint(char *format, int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10,
176                int a11, int a12, int a13, int a14, int a15);
177 #else
178 void rxi_DebugPrint();
179 #endif
180
181 /* rx_clock.c */
182 #if !defined(clock_Init)
183 extern void clock_Init(void);
184 #endif
185 #if !defined(clock_UnInit)
186 extern int clock_UnInit(void);
187 #endif
188 #if !defined(clock_UpdateTime)
189 extern void clock_UpdateTime(void);
190 #endif
191
192 /* rx_clock_nt.c */
193
194
195 /* rx_conncache.c */
196 extern void rxi_DeleteCachedConnections(void);
197 extern struct rx_connection *rx_GetCachedConnection(unsigned int remoteAddr,
198         unsigned short port, unsigned short service, struct rx_securityClass *securityObject,
199         int securityIndex);
200 extern void rx_ReleaseCachedConnection(struct rx_connection *conn);
201
202
203 /* rxdebug.c */
204
205
206 /* rx_event.c */
207 #if 0
208 extern struct rxevent *rxevent_Post(struct clock *when, 
209         void (*func)(struct rxevent *event,
210         struct rx_connection *conn, struct rx_call *acall),
211         void *arg, void *arg1);
212 /* this func seems to be called with tons of different style routines, need to look
213 at another time. */
214 #else
215 extern struct rxevent *rxevent_Post(struct clock *when, 
216         void (*func)(),
217         void *arg, void *arg1);
218 #endif
219 extern void shutdown_rxevent(void);
220 extern struct rxepoch *rxepoch_Allocate(struct clock *when);
221 extern void rxevent_Init(int nEvents, void (*scheduler)(void));
222 extern void rxevent_Cancel_1(register struct rxevent *ev,
223         register struct rx_call *call, register int type);
224 extern int rxevent_RaiseEvents(struct clock *next);
225
226
227
228
229 /* rx_getaddr.c */
230 extern void rxi_setaddr(afs_int32 x);
231 extern afs_int32 rxi_getaddr(void);
232
233 /* rx_globals.c */
234
235
236 /* rx_kcommon.c */
237 extern int (*rxk_PacketArrivalProc)(register struct rx_packet *ahandle,
238         register struct sockaddr_in *afrom, char *arock,
239         afs_int32 asize);
240 extern int (*rxk_GetPacketProc)(char **ahandle, int asize);
241 extern afs_int32 afs_termState;
242 extern int rxk_initDone;
243
244 extern int rxk_DelPort(u_short aport);
245 extern void rxk_shutdownPorts(void);
246 extern osi_socket rxi_GetUDPSocket(u_short port);
247 extern void osi_Panic();
248 extern int osi_utoa(char *buf, size_t len, unsigned long val);
249 extern void rxi_InitPeerParams(register struct rx_peer *pp);
250 extern void shutdown_rxkernel(void);
251 #ifdef AFS_USERSPACE_IP_ADDR
252 extern int rxi_GetcbiInfo(void);
253 extern afs_int32 rxi_Findcbi(afs_uint32 addr);
254 #else
255 extern int rxi_GetIFInfo(void);
256 #endif
257 #ifndef UKERNEL
258 #if 0
259 extern int rxk_FreeSocket(register struct socket *asocket);
260 #endif
261 extern struct osi_socket *rxk_NewSocket(short aport);
262 #endif
263 extern int rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host, int *port);
264 #ifdef UKERNEL
265 extern void rx_ServerProc(void);
266 #endif
267 extern void osi_AssertFailK(const char *expr, const char *file, int line);
268 extern void rxk_ListenerProc(void);
269 extern void rxk_Listener(void);
270 #ifndef UKERNEL
271 extern void afs_rxevent_daemon(void);
272 extern struct ifnet *rxi_FindIfnet(afs_uint32 addr, afs_uint32 *maskp);
273 #endif
274 extern void osi_StopListener(void);
275
276
277 /* ARCH/rx_kmutex.c */
278 #ifdef CONFIG_SMP
279 extern void afs_mutex_init(afs_kmutex_t *l);
280 extern void afs_mutex_enter(afs_kmutex_t *l);
281 extern int afs_mutex_tryenter(afs_kmutex_t *l);
282 extern void afs_mutex_exit(afs_kmutex_t *l);
283 extern int afs_cv_wait(afs_kcondvar_t *cv, afs_kmutex_t *l, int sigok);
284 extern void afs_cv_timedwait(afs_kcondvar_t *cv, afs_kmutex_t *l, int waittime);
285 #endif
286
287
288
289 /* rx_knet.c */
290 extern struct osi_socket *rxk_NewSocket(short aport);
291 extern int rxk_FreeSocket(register osi_socket asocket);
292 #if defined(KERNEL) && !defined(AFS_SGI_ENV)
293 extern int osi_NetSend(osi_socket asocket, struct sockaddr_in *addr,
294                        struct iovec *dvec, int nvecs, afs_int32 asize, int istack);
295 #endif
296 extern int osi_NetReceive(osi_socket so, struct sockaddr_in *addr,
297                    struct iovec *dvec, int nvecs, int *lengthp);
298 extern void osi_StopListener(void);
299 extern int rxi_FindIfMTU(afs_uint32 addr);
300 #ifndef RXK_LISTENER_ENV
301 extern void rxk_init();
302 #endif
303
304 /* UKERNEL/rx_knet.c */
305 #ifdef UKERNEL
306 extern void afs_rxevent_daemon(void);
307 #endif
308
309
310 /* rx_lwp.c */
311 extern void rx_ServerProc(void);
312 extern void rxi_Sleep(void *addr);
313 extern void rxi_Delay(int seconds);
314 extern void rxi_InitializeThreadSupport(void);
315 extern void rxi_Wakeup(void *addr);
316 extern void rxi_StopListener(void);
317 #ifndef KERNEL
318 extern void rxi_ReScheduleEvents(void);
319 #endif
320 extern void rxi_InitializeThreadSupport(void);
321 extern void rxi_StartServerProc(void (*proc)(void), int stacksize);
322 extern void rxi_StartListener(void);
323 extern void rx_ServerProc(void);
324 extern int rxi_Listen(osi_socket sock);
325 extern int rxi_Recvmsg(int socket, struct msghdr *msg_p, int flags);
326 extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
327
328
329 /* rx_misc.c */
330 #ifndef osi_alloc
331 extern char *osi_alloc(afs_int32 x);
332 #endif
333 #ifndef osi_free
334 extern int osi_free(char *x, afs_int32 size);
335 #endif
336 extern int hton_syserr_conv(register afs_int32 code);
337 extern int ntoh_syserr_conv(int code);
338
339
340 /* rx_multi.c */
341 extern struct multi_handle *multi_Init(struct rx_connection **conns, 
342         register int nConns);
343 extern int multi_Select(register struct multi_handle *mh);
344 extern void multi_Ready(register struct rx_call *call,
345         register struct multi_handle *mh, register int index);
346 extern void multi_Finalize(register struct multi_handle *mh);
347 extern void multi_Finalize_Ignore(register struct multi_handle *mh);
348
349
350
351 /* rx_null.c */
352 extern struct rx_securityClass *rxnull_NewServerSecurityObject(void);
353 extern struct rx_securityClass *rxnull_NewClientSecurityObject(void);
354
355 /* rx_packet.c */
356 extern afs_int32 rx_SlowGetInt32(struct rx_packet *packet, size_t offset);
357 extern afs_int32 rx_SlowPutInt32(struct rx_packet *packet, size_t offset, afs_int32 data);
358 extern afs_int32 rx_SlowReadPacket(struct rx_packet *packet, unsigned int offset,
359         int resid, char *out);
360 extern afs_int32 rx_SlowWritePacket(struct rx_packet *packet, int offset,
361         int resid, char *in);
362 extern void rxi_freeCBuf(struct rx_packet *c);
363 extern int rxi_RoundUpPacket(struct rx_packet *p, unsigned int nb);
364 extern int rxi_AllocDataBuf(struct rx_packet *p, int nb, int class);
365 extern void rxi_MorePackets(int apackets);
366 extern void rxi_MorePacketsNoLock(int apackets);
367 extern void rxi_FreeAllPackets(void);
368 extern void rx_CheckPackets(void);
369 extern void rxi_FreePacketNoLock(struct rx_packet *p);
370 extern int rxi_FreeDataBufsNoLock(struct rx_packet *p, int first);
371 extern void rxi_RestoreDataBufs(struct rx_packet *p);
372 extern int rxi_TrimDataBufs(struct rx_packet *p, int first);
373 extern void rxi_FreePacket(struct rx_packet *p);
374 extern struct rx_packet *rxi_AllocPacketNoLock(int class);
375 extern struct rx_packet *rxi_AllocPacket(int class);
376 extern struct rx_packet *rxi_AllocSendPacket(register struct rx_call *call, int want);
377 extern int rxi_ReadPacket(int socket, register struct rx_packet *p, afs_uint32 *host, u_short *port);
378 extern struct rx_packet *rxi_SplitJumboPacket(register struct rx_packet *p, afs_int32 host, 
379         short port, int first);
380 #ifndef KERNEL
381 extern int osi_NetSend(osi_socket socket, void *addr, struct iovec *dvec, int nvecs, 
382         int length, int istack);
383 #endif
384 extern struct rx_packet *rxi_ReceiveDebugPacket(register struct rx_packet *ap, 
385         osi_socket asocket, afs_int32 ahost, short aport, int istack);
386 extern struct rx_packet *rxi_ReceiveVersionPacket(register struct rx_packet *ap, 
387         osi_socket asocket, afs_int32 ahost, short aport, int istack);
388 extern void rxi_SendPacket(struct rx_call * call, struct rx_connection * conn,
389                            struct rx_packet *p, int istack);
390 extern void rxi_SendPacketList(struct rx_call * call, struct rx_connection * conn,
391                                struct rx_packet **list, int len, int istack);
392 extern struct rx_packet *rxi_SendSpecial(register struct rx_call *call,
393         register struct rx_connection *conn, struct rx_packet *optionalPacket,
394         int type, char *data, int nbytes, int istack);
395 extern void rxi_EncodePacketHeader(register struct rx_packet *p);
396 extern void rxi_DecodePacketHeader(register struct rx_packet *p);
397 extern void rxi_PrepareSendPacket(register struct rx_call *call, register struct rx_packet *p, 
398         register int last);
399 extern int rxi_AdjustIfMTU(int mtu);
400 extern int rxi_AdjustMaxMTU(int mtu, int peerMaxMTU);
401 extern int rxi_AdjustDgramPackets(int frags, int mtu);
402
403
404 /* rxperf.c */
405
406
407 /* rx_pthread.c */
408 extern void rxi_Delay(int sec);
409 extern void rxi_InitializeThreadSupport(void);
410 extern void rxi_StartServerProc(void (*proc)(void), int stacksize);
411 #ifndef rxi_ReScheduleEvents
412 extern void rxi_ReScheduleEvents(void);
413 #endif
414 extern void rx_ServerProc(void);
415 extern void rxi_StartListener(void);
416 extern int rxi_Listen(osi_socket sock);
417 extern int rxi_Recvmsg(int socket, struct msghdr *msg_p, int flags);
418 extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
419
420
421 /* rx_rdwr.c */
422 extern int rxi_ReadProc(register struct rx_call *call, register char *buf, 
423         register int nbytes);
424 extern int rx_ReadProc(struct rx_call *call, char *buf, int nbytes);
425 extern int rx_ReadProc32(struct rx_call *call, afs_int32 *value);
426 extern int rxi_FillReadVec(struct rx_call *call, afs_uint32 seq, 
427         afs_uint32 serial, afs_uint32 flags);
428 extern int rxi_ReadvProc(struct rx_call *call, struct iovec *iov, int *nio, 
429         int maxio, int nbytes);
430 extern int rx_ReadvProc(struct rx_call *call, struct iovec *iov, 
431         int *nio, int maxio, int nbytes);
432 extern int rxi_WriteProc(register struct rx_call *call, register char *buf,    
433         register int nbytes);
434 extern int rx_WriteProc(struct rx_call *call, char *buf, int nbytes);
435 extern int rx_WriteProc32(register struct rx_call *call, register afs_int32 *value);
436 extern int rxi_WritevAlloc(struct rx_call *call, struct iovec *iov, 
437         int *nio, int maxio, int nbytes);
438 extern int rx_WritevAlloc(struct rx_call *call, struct iovec *iov, int *nio, 
439         int maxio, int nbytes);
440 extern int rxi_WritevProc(struct rx_call *call, struct iovec *iov, 
441         int nio, int nbytes);
442 extern int rx_WritevProc(struct rx_call *call, struct iovec *iov, int nio, int nbytes);
443 extern void rxi_FlushWrite(register struct rx_call *call);
444 extern void rx_FlushWrite(struct rx_call *call);
445
446 /* rx_stream.c */
447
448
449 /* rx_trace.c */
450
451
452 /* rx_user.c */
453 #ifdef AFS_PTHREAD_ENV
454 extern pthread_mutex_t rx_if_init_mutex;
455 extern pthread_mutex_t rx_if_mutex;
456 #endif
457 extern osi_socket rxi_GetUDPSocket(u_short port);
458 extern void osi_AssertFailU(const char *expr, const char *file, int line);
459 extern int rx_getAllAddr (afs_int32 *buffer, int maxSize);
460 extern void osi_Panic(); /* leave without args till stdarg rewrite */
461 extern void rxi_InitPeerParams(struct rx_peer *pp);
462 #ifdef  AFS_AIX32_ENV
463 #ifndef osi_Alloc
464 extern char *osi_Alloc(afs_int32 x);
465 extern void osi_Free(char *x, afs_int32 size);
466 #endif
467 #endif /* AFS_AIX32_ENV */
468 #if defined(AFS_NT40_ENV) || defined(AFS_DJGPP_ENV)
469 extern int rxi_getaddr(void);
470 extern int rx_getAllAddr (afs_int32 *buffer, int maxSize);
471 #endif
472 extern void rx_GetIFInfo(void);
473 extern void rx_SetNoJumbo(void);
474
475
476 /* rx_xmit_nt.c */
477
478
479 /* MISC PROTOTYPES - MOVE TO APPROPRIATE LOCATION LATER */
480
481 /* EXTERNAL PROTOTYPES - include here cause it causes too many issues to
482    include the afs_prototypes.h file - just make sure they match */
483 extern void *afs_osi_Alloc(size_t x);
484 extern void *afs_osi_Alloc_NoSleep(size_t x);
485 extern void afs_osi_Free(void *x, size_t asize);
486 #ifndef afs_osi_Wakeup
487 extern int afs_osi_Wakeup(void *event);
488 #endif
489 #ifndef afs_osi_Sleep
490 extern void afs_osi_Sleep(void *event);
491 #endif
492 extern unsigned int afs_random(void);
493 extern void osi_linux_rxkreg(void);
494
495 #endif /* _RX_PROTOTYPES_H */