mutex_init(&afs_global_lock, "afs_global_lock", MUTEX_DEFAULT, NULL)
#endif
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-
#endif /* _OSI_MACHDEP_H_ */
#define uprintf printf
#endif
-#ifndef AFS_DARWIN80_ENV
-#define ifaddr_address_family(x) (x)->ifa_addr->sa_family
-#define ifaddr_address(x, y, z) memcpy(y, (x)->ifa_addr, z)
-#define ifaddr_netmask(x, y, z) memcpy(y, (x)->ifa_netmask, z)
-#define ifaddr_dstaddress(x, y, z) memcpy(y, (x)->ifa_dstaddr, z)
-#define ifaddr_ifnet(x) (x?(x)->ifa_ifp:0)
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-#define ifnet_metric(x) (x?(x)->if_data.ifi_metric:0)
-/*#define ifnet_mtu(x) (x)->if_mtu*/
-#define ifaddr_withnet(x) ifa_ifwithnet(x)
-#endif
-
/* Vnode related macros */
#if defined(AFS_DARWIN80_ENV)
#undef USERPRI
#define USERPRI splx(splvar)
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-
#endif /* _OSI_MACHDEP_H_ */
#define vfs_data vfs_bh.bh_first->bd_pdata
#endif /* AFS_SGI64_ENV */
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-
/*
* Global lock, semaphore, mutex and state vector support.
*/
#define flock usr_flock
#define fid usr_fid
#define sysent usr_sysent
+#define ifaddr usr_ifaddr
+#define ifnet usr_ifnet
#define in_ifaddr usr_in_ifaddr
-#define ifaddr usr_ifaddr
-#define ifnet usr_ifnet
#define socket usr_socket
#define crget usr_crget
#define crcopy usr_crcopy
i = rxi_Findcbi(parm2);
mtu = ((i == -1) ? htonl(1500) : afs_cb_interface.mtu[i]);
#else /* AFS_USERSPACE_IP_ADDR */
- AFS_IFNET_T tifnp;
+ rx_ifnet_t tifnp;
tifnp = rxi_FindIfnet(parm2, NULL); /* make iterative */
- mtu = (tifnp ? ifnet_mtu(tifnp) : htonl(1500));
+ mtu = (tifnp ? rx_ifnet_mtu(tifnp) : htonl(1500));
#endif /* else AFS_USERSPACE_IP_ADDR */
#endif /* !AFS_SUN5_ENV */
if (!code)
code = -1;
}
#else /* AFS_USERSPACE_IP_ADDR */
- AFS_IFNET_T tifnp;
+ rx_ifnet_t tifnp;
tifnp = rxi_FindIfnet(parm2, &mask); /* make iterative */
if (!tifnp)
void
afsi_SetServerIPRank(sa, ifa)
struct srvAddr *sa;
-#ifdef AFS_DARWIN80_ENV
- ifaddr_t ifa;
-#else
- struct ifaddr *ifa;
-#endif
+ rx_ifaddr_t ifa;
{
struct sockaddr sout;
struct sockaddr_in *sin;
afs_uint32 subnetmask, myAddr, myNet, myDstaddr, mySubnet, netMask;
afs_uint32 serverAddr;
- if (ifaddr_address_family(ifa) != AF_INET)
+ if (rx_ifaddr_address_family(ifa) != AF_INET)
return;
- t = ifaddr_address(ifa, &sout, sizeof(sout));
+ t = rx_ifaddr_address(ifa, &sout, sizeof(sout));
if (t == 0) {
sin = (struct sockaddr_in *)&sout;
myAddr = ntohl(sin->sin_addr.s_addr); /* one of my IP addr in host order */
myAddr = 0;
}
serverAddr = ntohl(sa->sa_ip); /* server's IP addr in host order */
- t = ifaddr_netmask(ifa, &sout, sizeof(sout));
+ t = rx_ifaddr_netmask(ifa, &sout, sizeof(sout));
if (t == 0) {
sin = (struct sockaddr_in *)&sout;
subnetmask = ntohl(sin->sin_addr.s_addr); /* subnet mask in host order */
} else {
subnetmask = 0;
}
- t = ifaddr_dstaddress(ifa, &sout, sizeof(sout));
+ t = rx_ifaddr_dstaddress(ifa, &sout, sizeof(sout));
if (t == 0) {
sin = (struct sockaddr_in *)&sout;
myDstaddr = sin->sin_addr.s_addr;
if (serverAddr == myAddr) { /* same machine */
sa->sa_iprank = afs_min(sa->sa_iprank, TOPR);
} else { /* same subnet */
- sa->sa_iprank = afs_min(sa->sa_iprank, HI + ifnet_metric(ifaddr_ifnet(ifa)));
+ sa->sa_iprank = afs_min(sa->sa_iprank, HI + rx_ifnet_metric(rx_ifaddr_ifnet(ifa)));
}
} else { /* same net */
- sa->sa_iprank = afs_min(sa->sa_iprank, MED + ifnet_metric(ifaddr_ifnet(ifa)));
+ sa->sa_iprank = afs_min(sa->sa_iprank, MED + rx_ifnet_metric(rx_ifaddr_ifnet(ifa)));
}
}
#ifdef IFF_POINTTOPOINT
/* check for case #4 -- point-to-point link */
- if ((ifnet_flags(ifaddr_ifnet(ifa)) & IFF_POINTOPOINT)
+ if ((rx_ifnet_flags(rx_ifaddr_ifnet(ifa)) & IFF_POINTOPOINT)
&& (myDstaddr == serverAddr)) {
- if (ifnet_metric(ifaddr_ifnet(ifa)) >= (MAXDEFRANK - MED) / PPWEIGHT)
+ if (rx_ifnet_metric(rx_ifaddr_ifnet(ifa)) >= (MAXDEFRANK - MED) / PPWEIGHT)
t = MAXDEFRANK;
else
- t = MED + (PPWEIGHT << ifnet_metric(ifaddr_ifnet(ifa)));
+ t = MED + (PPWEIGHT << rx_ifnet_metric(rx_ifaddr_ifnet(ifa)));
if (sa->sa_iprank > t)
sa->sa_iprank = t;
}
#endif /* AFS_SUN510_ENV */
#else
#ifndef USEIFADDR
- struct ifnet *ifn = NULL;
+ rx_ifnet_t ifn = NULL;
struct in_ifaddr *ifad = (struct in_ifaddr *)0;
struct sockaddr_in *sin;
errno_t t;
unsigned int count;
int cnt=0, m, j;
- ifaddr_t *ifads;
- ifnet_t *ifn;
+ rx_ifaddr_t *ifads;
+ rx_ifnet_t *ifns;
- if (!ifnet_list_get(AF_INET, &ifn, &count)) {
+ if (!ifnet_list_get(AF_INET, ifns, &count)) {
for (m = 0; m < count; m++) {
- if (!ifnet_get_address_list(ifn[m], &ifads)) {
+ if (!ifnet_get_address_list(ifns[m], &ifads)) {
for (j = 0; ifads[j] != NULL && cnt < ADDRSPERSITE; j++) {
afsi_SetServerIPRank(sa, ifads[j]);
cnt++;
ifnet_free_address_list(ifads);
}
}
- ifnet_list_free(ifn);
+ ifnet_list_free(ifns);
}
}
#elif defined(AFS_DARWIN60_ENV)
{
- struct ifnet *ifn;
- struct ifaddr *ifa;
+ rx_ifnet_t ifn;
+ rx_ifaddr_t ifa;
TAILQ_FOREACH(ifn, &ifnet, if_link) {
TAILQ_FOREACH(ifa, &ifn->if_addrhead, ifa_link) {
afsi_SetServerIPRank(sa, ifa);
/* free socket allocated by osi_NetSocket */
int
-rxk_FreeSocket(register struct socket *asocket)
+rxk_FreeSocket(struct socket *asocket)
{
AFS_STATCNT(osi_FreeSocket);
return 0;
/* free socket allocated by osi_NetSocket */
int
-rxk_FreeSocket(register struct socket *asocket)
+rxk_FreeSocket(struct socket *asocket)
{
AFS_STATCNT(osi_FreeSocket);
return 0;
extern rxk_ports_t rxk_ports;
extern rxk_portRocks_t rxk_portRocks;
-#ifndef ifnet_flags
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-#endif
-
+#define rx_ifaddr_t struct usr_ifaddr *
+#define rx_ifnet_t struct usr_ifnet *
#endif /* _RX_KCOMMON_H_ */
pp->ifMTU = MIN(RX_REMOTE_PACKET_SIZE, rx_MyMaxSendSize);
}
# else /* AFS_USERSPACE_IP_ADDR */
- AFS_IFNET_T ifn;
+ rx_ifnet_t ifn;
# if !defined(AFS_SGI62_ENV)
if (numMyNetAddrs == 0)
/* pp->timeout.usec = 0; */
pp->ifMTU = MIN(RX_MAX_PACKET_SIZE, rx_MyMaxSendSize);
# ifdef IFF_POINTOPOINT
- if (ifnet_flags(ifn) & IFF_POINTOPOINT) {
+ if (rx_ifnet_flags(ifn) & IFF_POINTOPOINT) {
/* wish we knew the bit rate and the chunk size, sigh. */
pp->timeout.sec = 4;
pp->ifMTU = RX_PP_PACKET_SIZE;
# endif /* IFF_POINTOPOINT */
/* Diminish the packet size to one based on the MTU given by
* the interface. */
- if (ifnet_mtu(ifn) > (RX_IPUDP_SIZE + RX_HEADER_SIZE)) {
- rxmtu = ifnet_mtu(ifn) - RX_IPUDP_SIZE;
+ if (rx_ifnet_mtu(ifn) > (RX_IPUDP_SIZE + RX_HEADER_SIZE)) {
+ rxmtu = rx_ifnet_mtu(ifn) - RX_IPUDP_SIZE;
if (rxmtu < pp->ifMTU)
pp->ifMTU = rxmtu;
}
errno_t t;
unsigned int count;
int cnt=0, m, j;
- ifaddr_t *ifads;
- ifnet_t *ifn;
+ rx_ifaddr_t *ifads;
+ rx_ifnet_t *ifns;
struct sockaddr sout;
struct sockaddr_in *sin;
struct in_addr pin;
#else
- struct ifaddr *ifad; /* ifnet points to a if_addrlist of ifaddrs */
- struct ifnet *ifn;
+ rx_ifaddr_t ifad; /* ifnet points to a if_addrlist of ifaddrs */
+ rx_ifnet_t ifn;
#endif
memset(addrs, 0, sizeof(addrs));
memset(mtus, 0, sizeof(mtus));
#if defined(AFS_DARWIN80_ENV)
- if (!ifnet_list_get(AF_INET, &ifn, &count)) {
+ if (!ifnet_list_get(AF_INET, ifns, &count)) {
for (m = 0; m < count; m++) {
- if (!ifnet_get_address_list(ifn[m], &ifads)) {
+ if (!ifnet_get_address_list(ifns[m], &ifads)) {
for (j = 0; ifads[j] != NULL && cnt < ADDRSPERSITE; j++) {
if ((t = ifaddr_address(ifads[j], &sout, sizeof(struct sockaddr))) == 0) {
sin = (struct sockaddr_in *)&sout;
- rxmtu = ifnet_mtu(ifaddr_ifnet(ifads[j])) - RX_IPUDP_SIZE;
+ rxmtu = rx_ifnet_mtu(rx_ifaddr_ifnet(ifads[j])) - RX_IPUDP_SIZE;
ifinaddr = ntohl(sin->sin_addr.s_addr);
if (myNetAddrs[i] != ifinaddr) {
different++;
ifnet_free_address_list(ifads);
}
}
- ifnet_list_free(ifn);
+ ifnet_list_free(ifns);
}
#else
#if defined(AFS_DARWIN_ENV) || defined(AFS_FBSD_ENV)
#if defined(AFS_DARWIN60_ENV) || defined(AFS_XBSD_ENV)
/* Returns ifnet which best matches address */
-#ifdef AFS_DARWIN80_ENV
-ifnet_t
-#else
-struct ifnet *
-#endif
+rx_ifnet_t
rxi_FindIfnet(afs_uint32 addr, afs_uint32 * maskp)
{
struct sockaddr_in s, sr;
-#ifdef AFS_DARWIN80_ENV
- ifaddr_t ifad;
-#else
- struct ifaddr *ifad;
-#endif
+ rx_ifaddr_t ifad;
s.sin_family = AF_INET;
s.sin_addr.s_addr = addr;
-#ifdef AFS_DARWIN80_ENV
- ifad = ifaddr_withnet((struct sockaddr *)&s);
-#else
- ifad = ifa_ifwithnet((struct sockaddr *)&s);
-#endif
+ ifad = rx_ifaddr_withnet((struct sockaddr *)&s);
-#ifdef AFS_DARWIN80_ENV
if (ifad && maskp) {
- ifaddr_netmask(ifad, (struct sockaddr *)&sr, sizeof(sr));
+ rx_ifaddr_netmask(ifad, (struct sockaddr *)&sr, sizeof(sr));
*maskp = sr.sin_addr.s_addr;
}
- return (ifad ? ifaddr_ifnet(ifad) : NULL);
-#else
- if (ifad && maskp)
- *maskp = ((struct sockaddr_in *)ifad->ifa_netmask)->sin_addr.s_addr;
- return (ifad ? ifad->ifa_ifp : NULL);
-#endif
+ return (ifad ? rx_ifaddr_ifnet(ifad) : NULL);
}
#else /* DARWIN60 || XBSD */
/* Returns ifnet which best matches address */
-struct ifnet *
+rx_ifnet_t
rxi_FindIfnet(afs_uint32 addr, afs_uint32 * maskp)
{
int match_value = 0;
#define osi_YieldIfPossible()
#define osi_WakeupAndYieldIfPossible(x) rx_Wakeup(x)
-#ifndef AFS_DARWIN80_ENV
-#define ifnet_mtu(x) (x)->if_mtu
-#define ifnet_flags(x) (x?(x)->if_flags:0)
-#define AFS_IFNET_T struct ifnet *
+#if !defined(AFS_DARWIN80_ENV) || defined(UKERNEL)
+# ifdef UKERNEL
+# define rx_ifnet_t struct usr_ifnet *
+# define rx_ifaddr_t struct usr_ifaddr *
+# else
+# define rx_ifnet_t struct ifnet *
+# define rx_ifaddr_t struct ifaddr *
+#endif
+#define rx_ifnet_mtu(x) (x)->if_mtu
+#define rx_ifnet_flags(x) (x?(x)->if_flags:0)
+#define rx_ifaddr_withnet(x) ifa_ifwithnet(x)
+#define rx_ifnet_metric(x) (x?(x)->if_data.ifi_metric:0)
+#define rx_ifaddr_ifnet(x) (x?(x)->ifa_ifp:0)
+#define rx_ifaddr_address_family(x) (x)->ifa_addr->sa_family
+#define rx_ifaddr_address(x, y, z) memcpy(y, (x)->ifa_addr, z)
+#define rx_ifaddr_netmask(x, y, z) memcpy(y, (x)->ifa_netmask, z)
+#define rx_ifaddr_dstaddress(x, y, z) memcpy(y, (x)->ifa_dstaddr, z)
#else
-#define AFS_IFNET_T ifnet_t
+#define rx_ifnet_t ifnet_t
+#define rx_ifaddr_t ifaddr_t
+#define rx_ifaddr_withnet(x) ifaddr_ifwithnet(x)
+#define rx_ifnet_mtu(x) ifnet_mtu(x)
+#define rx_ifnet_flags(x) ifnet_flags(x)
+#define rx_ifnet_metric(x) ifnet_metric(x)
+#define rx_ifaddr_ifnet(x) ifaddr_ifnet(x)
+#define rx_ifaddr_address_family(x) ifaddr_address_family(x)
+#define rx_ifaddr_address(x, y, z) ifaddr_address(x, y, z)
+#define rx_ifaddr_netmask(x, y, z) ifaddr_netmask(x, y, z)
+#define rx_ifaddr_dstaddress(x, y, z) ifaddr_dstaddress(x, y, z)
#endif
#endif /* __RX_KERNEL_INCL_ */
extern int rx_GetMinPeerTimeout(void);
extern void rx_SetMinPeerTimeout(int msecs);
+#ifdef KERNEL
/* rx_kcommon.c */
struct socket;
extern int (*rxk_PacketArrivalProc) (struct rx_packet * ahandle,
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(KERNEL) && defined(AFS_LINUX26_ENV)
-#define osi_Panic(msg...) do { printk(KERN_CRIT "openafs: " msg); BUG(); } while (0)
-#undef osi_Assert
-#define osi_Assert(expr) \
+# 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_AssertFailK(#expr, __FILE__, __LINE__); BUG(); } } while (0)
-#else
-#if defined(KERNEL) && (defined(AFS_AIX_ENV) && !defined(AFS_AIX61_ENV))
+# elif defined(AFS_AIX_ENV) && !defined(AFS_AIX61_ENV)
extern void osi_Panic(char *fmt, void *a1, void *a2, void *a3);
-#else
-#ifdef AFS_AIX61_ENV
+# elif defined(AFS_AIX61_ENV)
/* No prototype. Deliberate, since there's no vprintf et al */
-#else
+# else
extern void osi_Panic(char *fmt, ...);
-#endif
-#endif
-#endif
+# 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);
-#ifdef AFS_USERSPACE_IP_ADDR
+# ifdef AFS_USERSPACE_IP_ADDR
extern int rxi_GetcbiInfo(void);
extern afs_int32 rxi_Findcbi(afs_uint32 addr);
-#else
+# else
extern int rxi_GetIFInfo(void);
-#endif
-#ifndef UKERNEL
-#if 0
+# endif
+# ifndef UKERNEL
extern int rxk_FreeSocket(struct socket *asocket);
-#endif
-#ifndef AFS_NT40_ENV
extern osi_socket *rxk_NewSocket(short aport);
-#endif
-#endif
+# endif
extern int rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host,
int *port);
-#ifdef UKERNEL
+# ifdef UKERNEL
extern void *rx_ServerProc(void *);
-#endif
+# endif
extern void osi_AssertFailK(const char *expr, const char *file, int line);
extern void rxk_ListenerProc(void);
extern void rxk_Listener(void);
-#ifndef UKERNEL
+# ifndef UKERNEL
extern void afs_rxevent_daemon(void);
-#endif
-#if defined(AFS_DARWIN80_ENV) && defined(KERNEL)
-extern ifnet_t rxi_FindIfnet(afs_uint32 addr, afs_uint32 * maskp);
-#else
-extern struct ifnet *rxi_FindIfnet(afs_uint32 addr, afs_uint32 * maskp);
-#endif
+# endif
+extern rx_ifnet_t rxi_FindIfnet(afs_uint32 addr, afs_uint32 * maskp);
extern void osi_StopListener(void);
/* ARCH/rx_kmutex.c */
-#if defined(KERNEL) && defined(AFS_LINUX20_ENV)
+# if defined(AFS_LINUX20_ENV)
extern void afs_mutex_init(afs_kmutex_t * l);
extern void afs_mutex_enter(afs_kmutex_t * l);
extern int afs_mutex_tryenter(afs_kmutex_t * l);
extern int afs_cv_wait(afs_kcondvar_t * cv, afs_kmutex_t * l, int sigok);
extern void afs_cv_timedwait(afs_kcondvar_t * cv, afs_kmutex_t * l,
int waittime);
-#endif
+# endif
/* ARCH/rx_knet.c */
-#if defined(KERNEL) && !defined(AFS_SGI_ENV)
+# if !defined(AFS_SGI_ENV)
extern int osi_NetSend(osi_socket asocket, struct sockaddr_in *addr,
struct iovec *dvec, int nvecs, afs_int32 asize,
int istack);
-#endif
+# endif
extern int osi_NetReceive(osi_socket so, struct sockaddr_in *addr,
struct iovec *dvec, int nvecs, int *lengthp);
-#if defined(KERNEL) && defined(AFS_SUN510_ENV)
+# if defined(AFS_SUN510_ENV)
extern void osi_StartNetIfPoller(void);
extern void osi_NetIfPoller(void);
extern struct afs_ifinfo afsifinfo[ADDRSPERSITE];
-#endif
+# endif
extern void osi_StopListener(void);
extern int rxi_FindIfMTU(afs_uint32 addr);
-#if defined(UKERNEL)
+# if defined(UKERNEL)
extern void rxi_ListenerProc(osi_socket usockp, int *tnop,
struct rx_call **newcallp);
-#endif
+# endif
-#ifndef RXK_LISTENER_ENV
+# ifndef RXK_LISTENER_ENV
extern void rxk_init();
-#endif
+# endif
/* UKERNEL/rx_knet.c */
-#ifdef UKERNEL
+# ifdef UKERNEL
extern void afs_rxevent_daemon(void);
+# endif
#endif
-
/* rx_lwp.c */
extern void rxi_Sleep(void *addr);
extern void rxi_Delay(int seconds);
extern void osi_Free(void *x, afs_int32 size);
#endif
#endif /* defined(AFS_AIX32_ENV) && !defined(KERNEL) */
+#ifndef KERNEL
+extern void osi_Panic(char *fmt, ...);
+#endif
extern void rx_GetIFInfo(void);
extern void rx_SetNoJumbo(void);