#if defined(AFS_XBSD_ENV)
struct lock afs_global_lock;
+#ifdef AFS_FBSD50_ENV
+struct thread *afs_global_owner;
+#else
struct proc *afs_global_owner;
#endif
+#endif
#if defined(AFS_OSF_ENV) || defined(AFS_DARWIN_ENV)
thread_t afs_global_owner;
static int afs_RX_Running = 0;
static int afs_InitSetup_done = 0;
+afs_int32 afs_rx_deadtime = AFS_RXDEADTIME;
+afs_int32 afs_rx_harddead = AFS_HARDDEADTIME;
+
static int
Afscall_icl(long opcode, long p1, long p2, long p3, long p4, long *retval);
printf("AFS: RX failed to initialize.\n");
return code;
}
- rx_SetRxDeadTime(AFS_RXDEADTIME);
+ rx_SetRxDeadTime(afs_rx_deadtime);
/* resource init creates the services */
afs_ResourceInit(preallocs);
daemonize(); /* doesn't do much, since we were forked from keventd, but
does call mm_release, which wakes up our parent (since it
used CLONE_VFORK) */
+ reparent_to_init();
afs_osi_MaskSignals();
switch (parm) {
case AFSOP_START_RXCALLBACK:
char *tbuffer1 = osi_AllocSmallSpace(AFS_SMALLOCSIZ);
int cflags = parm4;
- /* wait for basic init */
+#if 0
+ /* wait for basic init - XXX can't find any reason we need this? */
while (afs_initState < AFSOP_START_BKG) afs_osi_Sleep(&afs_initState);
+#endif
AFS_COPYIN((char *)parm2, (char *)tcell.hosts, sizeof(tcell.hosts), code);
if (!code) {
mtu = ((i == -1) ? htonl(1500) : afs_cb_interface.mtu[i]);
#else /* AFS_USERSPACE_IP_ADDR */
struct ifnet *tifnp;
- struct in_ifaddr *tifadp = (struct in_ifaddr *) 0;
- extern struct ifnet *rxi_FindIfnet();
-
- tifnp = rxi_FindIfnet(parm2, &tifadp); /* make iterative */
+
+ tifnp = rxi_FindIfnet(parm2, NULL); /* make iterative */
mtu = (tifnp ? tifnp->if_mtu : htonl(1500));
#endif /* else AFS_USERSPACE_IP_ADDR */
#endif /* !AFS_SUN5_ENV */
}
#else /* AFS_USERSPACE_IP_ADDR */
struct ifnet *tifnp;
-#ifdef AFS_DARWIN60_ENV
- struct ifaddr *tifadp = (struct ifaddr *) 0;
-#else
- struct in_ifaddr *tifadp = (struct in_ifaddr *) 0;
-#endif
- extern struct ifnet *rxi_FindIfnet();
- tifnp = rxi_FindIfnet(parm2, &tifadp); /* make iterative */
- if (tifnp && tifadp) {
-#ifdef AFS_DARWIN60_ENV
- mask = ((struct sockaddr_in *)tifadp->ifa_netmask)->sin_addr.s_addr;
-#else
- mask = tifadp->ia_subnetmask;
-#endif
- } else {
+
+ tifnp = rxi_FindIfnet(parm2, &mask); /* make iterative */
+ if (!tifnp)
code = -1;
- }
#endif /* else AFS_USERSPACE_IP_ADDR */
#endif /* !AFS_SUN5_ENV */
if (!code)
}
#endif /* AFS_SUN57_64BIT_ENV */
-#if defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV)
+#if defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV) && !defined(AFS_AMD64_LINUX20_ENV)
struct iparam32 dst32;
#ifdef AFS_SPARC64_LINUX24_ENV