openbsd-20021016
[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 #endif
273 extern void osi_StopListener(void);
274
275
276 /* ARCH/rx_kmutex.c */
277 #ifdef CONFIG_SMP
278 extern void afs_mutex_init(afs_kmutex_t *l);
279 extern void afs_mutex_enter(afs_kmutex_t *l);
280 extern int afs_mutex_tryenter(afs_kmutex_t *l);
281 extern void afs_mutex_exit(afs_kmutex_t *l);
282 extern int afs_cv_wait(afs_kcondvar_t *cv, afs_kmutex_t *l, int sigok);
283 extern void afs_cv_timedwait(afs_kcondvar_t *cv, afs_kmutex_t *l, int waittime);
284 #endif
285
286
287
288 /* rx_knet.c */
289 extern struct osi_socket *rxk_NewSocket(short aport);
290 extern int rxk_FreeSocket(register osi_socket asocket);
291 #if defined(KERNEL) && !defined(AFS_SGI_ENV)
292 extern int osi_NetSend(osi_socket asocket, struct sockaddr_in *addr,
293                        struct iovec *dvec, int nvecs, afs_int32 asize, int istack);
294 #endif
295 extern int osi_NetReceive(osi_socket so, struct sockaddr_in *addr,
296                    struct iovec *dvec, int nvecs, int *lengthp);
297 extern void osi_StopListener(void);
298 extern int rxi_FindIfMTU(afs_uint32 addr);
299 #ifndef RXK_LISTENER_ENV
300 extern void rxk_init();
301 #endif
302
303 /* UKERNEL/rx_knet.c */
304 #ifdef UKERNEL
305 extern void afs_rxevent_daemon(void);
306 #endif
307
308
309 /* rx_lwp.c */
310 extern void rx_ServerProc(void);
311 extern void rxi_Sleep(void *addr);
312 extern void rxi_Delay(int seconds);
313 extern void rxi_InitializeThreadSupport(void);
314 extern void rxi_Wakeup(void *addr);
315 extern void rxi_StopListener(void);
316 #ifndef KERNEL
317 extern void rxi_ReScheduleEvents(void);
318 #endif
319 extern void rxi_InitializeThreadSupport(void);
320 extern void rxi_StartServerProc(void (*proc)(void), int stacksize);
321 extern void rxi_StartListener(void);
322 extern void rx_ServerProc(void);
323 extern int rxi_Listen(osi_socket sock);
324 extern int rxi_Recvmsg(int socket, struct msghdr *msg_p, int flags);
325 extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
326
327
328 /* rx_misc.c */
329 #ifndef osi_alloc
330 extern char *osi_alloc(afs_int32 x);
331 #endif
332 #ifndef osi_free
333 extern int osi_free(char *x, afs_int32 size);
334 #endif
335 extern int hton_syserr_conv(register afs_int32 code);
336 extern int ntoh_syserr_conv(int code);
337
338
339 /* rx_multi.c */
340 extern struct multi_handle *multi_Init(struct rx_connection **conns, 
341         register int nConns);
342 extern int multi_Select(register struct multi_handle *mh);
343 extern void multi_Ready(register struct rx_call *call,
344         register struct multi_handle *mh, register int index);
345 extern void multi_Finalize(register struct multi_handle *mh);
346 extern void multi_Finalize_Ignore(register struct multi_handle *mh);
347
348
349
350 /* rx_null.c */
351 extern struct rx_securityClass *rxnull_NewServerSecurityObject(void);
352 extern struct rx_securityClass *rxnull_NewClientSecurityObject(void);
353
354 /* rx_packet.c */
355 extern afs_int32 rx_SlowGetInt32(struct rx_packet *packet, size_t offset);
356 extern afs_int32 rx_SlowPutInt32(struct rx_packet *packet, size_t offset, afs_int32 data);
357 extern afs_int32 rx_SlowReadPacket(struct rx_packet *packet, unsigned int offset,
358         int resid, char *out);
359 extern afs_int32 rx_SlowWritePacket(struct rx_packet *packet, int offset,
360         int resid, char *in);
361 extern void rxi_freeCBuf(struct rx_packet *c);
362 extern int rxi_RoundUpPacket(struct rx_packet *p, unsigned int nb);
363 extern int rxi_AllocDataBuf(struct rx_packet *p, int nb, int class);
364 extern void rxi_MorePackets(int apackets);
365 extern void rxi_MorePacketsNoLock(int apackets);
366 extern void rxi_FreeAllPackets(void);
367 extern void rx_CheckPackets(void);
368 extern void rxi_FreePacketNoLock(struct rx_packet *p);
369 extern int rxi_FreeDataBufsNoLock(struct rx_packet *p, int first);
370 extern void rxi_RestoreDataBufs(struct rx_packet *p);
371 extern int rxi_TrimDataBufs(struct rx_packet *p, int first);
372 extern void rxi_FreePacket(struct rx_packet *p);
373 extern struct rx_packet *rxi_AllocPacketNoLock(int class);
374 extern struct rx_packet *rxi_AllocPacket(int class);
375 extern struct rx_packet *rxi_AllocSendPacket(register struct rx_call *call, int want);
376 extern int rxi_ReadPacket(int socket, register struct rx_packet *p, afs_uint32 *host, u_short *port);
377 extern struct rx_packet *rxi_SplitJumboPacket(register struct rx_packet *p, afs_int32 host, 
378         short port, int first);
379 #ifndef KERNEL
380 extern int osi_NetSend(osi_socket socket, void *addr, struct iovec *dvec, int nvecs, 
381         int length, int istack);
382 #endif
383 extern struct rx_packet *rxi_ReceiveDebugPacket(register struct rx_packet *ap, 
384         osi_socket asocket, afs_int32 ahost, short aport, int istack);
385 extern struct rx_packet *rxi_ReceiveVersionPacket(register struct rx_packet *ap, 
386         osi_socket asocket, afs_int32 ahost, short aport, int istack);
387 extern void rxi_SendPacket(struct rx_connection * conn, struct rx_packet *p,
388                     int istack);
389 extern void rxi_SendPacketList(struct rx_connection * conn, struct rx_packet **list,
390         int len, int istack);
391 extern struct rx_packet *rxi_SendSpecial(register struct rx_call *call,
392         register struct rx_connection *conn, struct rx_packet *optionalPacket,
393         int type, char *data, int nbytes, int istack);
394 extern void rxi_EncodePacketHeader(register struct rx_packet *p);
395 extern void rxi_DecodePacketHeader(register struct rx_packet *p);
396 extern void rxi_PrepareSendPacket(register struct rx_call *call, register struct rx_packet *p, 
397         register int last);
398 extern int rxi_AdjustIfMTU(int mtu);
399 extern int rxi_AdjustMaxMTU(int mtu, int peerMaxMTU);
400 extern int rxi_AdjustDgramPackets(int frags, int mtu);
401
402
403 /* rxperf.c */
404
405
406 /* rx_pthread.c */
407 extern void rxi_Delay(int sec);
408 extern void rxi_InitializeThreadSupport(void);
409 extern void rxi_StartServerProc(void (*proc)(void), int stacksize);
410 #ifndef rxi_ReScheduleEvents
411 extern void rxi_ReScheduleEvents(void);
412 #endif
413 extern void rx_ServerProc(void);
414 extern void rxi_StartListener(void);
415 extern int rxi_Listen(osi_socket sock);
416 extern int rxi_Recvmsg(int socket, struct msghdr *msg_p, int flags);
417 extern int rxi_Sendmsg(osi_socket socket, struct msghdr *msg_p, int flags);
418
419
420 /* rx_rdwr.c */
421 extern int rxi_ReadProc(register struct rx_call *call, register char *buf, 
422         register int nbytes);
423 extern int rx_ReadProc(struct rx_call *call, char *buf, int nbytes);
424 extern int rx_ReadProc32(struct rx_call *call, afs_int32 *value);
425 extern int rxi_FillReadVec(struct rx_call *call, afs_uint32 seq, 
426         afs_uint32 serial, afs_uint32 flags);
427 extern int rxi_ReadvProc(struct rx_call *call, struct iovec *iov, int *nio, 
428         int maxio, int nbytes);
429 extern int rx_ReadvProc(struct rx_call *call, struct iovec *iov, 
430         int *nio, int maxio, int nbytes);
431 extern int rxi_WriteProc(register struct rx_call *call, register char *buf,    
432         register int nbytes);
433 extern int rx_WriteProc(struct rx_call *call, char *buf, int nbytes);
434 extern int rx_WriteProc32(register struct rx_call *call, register afs_int32 *value);
435 extern int rxi_WritevAlloc(struct rx_call *call, struct iovec *iov, 
436         int *nio, int maxio, int nbytes);
437 extern int rx_WritevAlloc(struct rx_call *call, struct iovec *iov, int *nio, 
438         int maxio, int nbytes);
439 extern int rx_WritevInit(struct rx_call *call);
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 */