long linux_ret=0;
long *retval = &linux_ret;
long eparm[4]; /* matches AFSCALL_ICL in fstrace.c */
+ /* eparm is also used by AFSCALL_CALL in afsd.c */
#else
#if defined(UKERNEL)
Afs_syscall ()
uap->parm1 = parm1;
uap->parm2 = parm2;
uap->parm3 = parm3;
- if (syscall == AFSCALL_ICL) {
+ if (syscall == AFSCALL_ICL || syscall == AFSCALL_CALL) {
AFS_COPYIN((char*)parm4, (char*)eparm, sizeof(eparm), code);
uap->parm4 = eparm[0];
uap->parm5 = eparm[1];
long param1, param2, param3, param4, param5, param6, param7;
{
int error;
+#ifdef AFS_LINUX20_ENV
+ long eparm[4];
+
+ eparm[0] = param4;
+ eparm[1] = param5;
+ eparm[2] = param6;
+ eparm[3] = param7;
+
+ param4 = eparm;
+#endif
error = syscall(AFS_SYSCALL, AFSCALL_CALL, param1, param2, param3, param4, param5, param6, param7);
if (afsd_verbose) printf("SScall(%d, %d)=%d ", AFS_SYSCALL, AFSCALL_CALL, error);
ifr.ifr_addr.sa_family=AF_INET;
strncpy(ifr.ifr_name, sdl->sdl_data, sdl->sdl_nlen);
if (ioctl(s, SIOCGIFMTU, (caddr_t)&ifr) < 0)
- mtuBuffer[count]=1500;
+ mtuBuffer[count]=htonl(1500);
else
- mtuBuffer[count]=ifr.ifr_mtu;
+ mtuBuffer[count]=htonl(ifr.ifr_mtu);
count++;
}
addrcount--;
if ( ioctl(s, SIOCGIFMTU, (caddr_t)ifr) < 0) {
perror("SIOCGIFMTU");
} else {
- mtuBuffer[count] = ifr->ifr_metric;
+ mtuBuffer[count] = htonl(ifr->ifr_metric);
}
#endif /* SIOCGIFMTU */
#ifdef SIOCRIPMTU
if ( ioctl(s, SIOCRIPMTU, (caddr_t)ifr) < 0) {
perror("SIOCRIPMTU");
} else {
- mtuBuffer[count] = ifr->ifr_metric;
+ mtuBuffer[count] = htonl(ifr->ifr_metric);
}
#endif /* SIOCRIPMTU */