fi
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
+$as_echo_n "checking size of void *... " >&6; }
+if ${ac_cv_sizeof_void_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_void_p" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot compute sizeof (void *)
+See \`config.log' for more details" "$LINENO" 5; }
+ else
+ ac_cv_sizeof_void_p=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
+$as_echo "$ac_cv_sizeof_void_p" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+_ACEOF
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct statfs" >&5
$as_echo_n "checking for struct statfs... " >&6; }
if ${sim_cv_struct_statfs+:} false; then :
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12861 "configure"
+#line 12895 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12967 "configure"
+#line 13001 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-
ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default"
if test "x$ac_cv_have_decl_ffs" = xyes; then :
ac_have_decl=1
break;
case TARGET_LINUX_SYS_brk:
- result = brk ((void *) arg1);
+ result = brk ((void *) (uintptr_t) arg1);
errcode = errno;
//result = arg1;
break;
{
int n;
fd_set readfds;
- fd_set *treadfdsp;
+ unsigned int treadfdsp;
fd_set *hreadfdsp;
fd_set writefds;
- fd_set *twritefdsp;
+ unsigned int twritefdsp;
fd_set *hwritefdsp;
fd_set exceptfds;
- fd_set *texceptfdsp;
+ unsigned int texceptfdsp;
fd_set *hexceptfdsp;
- struct timeval *ttimeoutp;
+ unsigned int ttimeoutp;
struct timeval timeout;
n = arg1;
- treadfdsp = (fd_set *) arg2;
- if (treadfdsp != NULL)
+ treadfdsp = arg2;
+ if (treadfdsp !=0)
{
- readfds = *((fd_set *) t2h_addr (cb, &s, (unsigned int) treadfdsp));
+ readfds = *((fd_set *) t2h_addr (cb, &s, treadfdsp));
translate_endian_t2h (&readfds, sizeof(readfds));
hreadfdsp = &readfds;
}
else
hreadfdsp = NULL;
- twritefdsp = (fd_set *) arg3;
- if (twritefdsp != NULL)
+ twritefdsp = arg3;
+ if (twritefdsp != 0)
{
- writefds = *((fd_set *) t2h_addr (cb, &s, (unsigned int) twritefdsp));
+ writefds = *((fd_set *) t2h_addr (cb, &s, twritefdsp));
translate_endian_t2h (&writefds, sizeof(writefds));
hwritefdsp = &writefds;
}
else
hwritefdsp = NULL;
- texceptfdsp = (fd_set *) arg4;
- if (texceptfdsp != NULL)
+ texceptfdsp = arg4;
+ if (texceptfdsp != 0)
{
- exceptfds = *((fd_set *) t2h_addr (cb, &s, (unsigned int) texceptfdsp));
+ exceptfds = *((fd_set *) t2h_addr (cb, &s, texceptfdsp));
translate_endian_t2h (&exceptfds, sizeof(exceptfds));
hexceptfdsp = &exceptfds;
}
else
hexceptfdsp = NULL;
- ttimeoutp = (struct timeval *) arg5;
- timeout = *((struct timeval *) t2h_addr (cb, &s, (unsigned int) ttimeoutp));
+ ttimeoutp = arg5;
+ timeout = *((struct timeval *) t2h_addr (cb, &s, ttimeoutp));
translate_endian_t2h (&timeout, sizeof(timeout));
result = select (n, hreadfdsp, hwritefdsp, hexceptfdsp, &timeout);
if (result != 0)
break;
- if (treadfdsp != NULL)
+ if (treadfdsp != 0)
{
translate_endian_h2t (&readfds, sizeof(readfds));
- if ((s.write_mem) (cb, &s, (unsigned long) treadfdsp,
+ if ((s.write_mem) (cb, &s, treadfdsp,
(char *) &readfds, sizeof(readfds)) != sizeof(readfds))
{
result = -1;
}
}
- if (twritefdsp != NULL)
+ if (twritefdsp != 0)
{
translate_endian_h2t (&writefds, sizeof(writefds));
- if ((s.write_mem) (cb, &s, (unsigned long) twritefdsp,
+ if ((s.write_mem) (cb, &s, twritefdsp,
(char *) &writefds, sizeof(writefds)) != sizeof(writefds))
{
result = -1;
}
}
- if (texceptfdsp != NULL)
+ if (texceptfdsp != 0)
{
translate_endian_h2t (&exceptfds, sizeof(exceptfds));
- if ((s.write_mem) (cb, &s, (unsigned long) texceptfdsp,
+ if ((s.write_mem) (cb, &s, texceptfdsp,
(char *) &exceptfds, sizeof(exceptfds)) != sizeof(exceptfds))
{
result = -1;
}
translate_endian_h2t (&timeout, sizeof(timeout));
- if ((s.write_mem) (cb, &s, (unsigned long) ttimeoutp,
+ if ((s.write_mem) (cb, &s, ttimeoutp,
(char *) &timeout, sizeof(timeout)) != sizeof(timeout))
{
result = -1;
break;
case TARGET_LINUX_SYS_readdir:
+#if SIZEOF_VOID_P == 4
result = (int) readdir ((DIR *) t2h_addr (cb, &s, arg1));
errcode = errno;
+#else
+ result = 0;
+ errcode = ENOSYS;
+#endif
break;
#if 0
#endif
case TARGET_LINUX_SYS_mmap2:
{
+#if SIZEOF_VOID_P == 4 /* Code assumes m32r pointer size matches host. */
void *addr;
size_t len;
int prot, flags, fildes;
0, access_read_write_exec, 0,
result, len, 0, NULL, NULL);
}
+#else
+ result = 0;
+ errcode = ENOSYS;
+#endif
}
break;
case TARGET_LINUX_SYS_mmap:
{
+#if SIZEOF_VOID_P == 4 /* Code assumes m32r pointer size matches host. */
void *addr;
size_t len;
int prot, flags, fildes;
0, access_read_write_exec, 0,
result, len, 0, NULL, NULL);
}
+#else
+ result = 0;
+ errcode = ENOSYS;
+#endif
}
break;
case TARGET_LINUX_SYS_munmap:
- result = munmap ((void *)arg1, arg2);
+ result = munmap ((void *) (uintptr_t) arg1, arg2);
errcode = errno;
if (result != -1)
sim_core_detach (sd, NULL, 0, arg2, result);
break;
case TARGET_LINUX_SYS_mprotect:
- result = mprotect ((void *) arg1, arg2, arg3);
+ result = mprotect ((void *) (uintptr_t) arg1, arg2, arg3);
errcode = errno;
break;
break;
case TARGET_LINUX_SYS_msync:
- result = msync ((void *) arg1, arg2, arg3);
+ result = msync ((void *) (uintptr_t) arg1, arg2, arg3);
errcode = errno;
break;
break;
case TARGET_LINUX_SYS_mremap: /* FIXME */
+#if SIZEOF_VOID_P == 4 /* Code assumes m32r pointer size matches host. */
result = (int) mremap ((void *) t2h_addr (cb, &s, arg1), arg2, arg3, arg4);
errcode = errno;
+#else
+ result = -1;
+ errcode = ENOSYS;
+#endif
break;
case TARGET_LINUX_SYS_getresuid32:
break;
case TARGET_LINUX_SYS_getcwd:
- result = (int) getcwd ((char *) t2h_addr (cb, &s, arg1), arg2);
- errcode = errno;
+ {
+ void *ret;
+
+ ret = getcwd ((char *) t2h_addr (cb, &s, arg1), arg2);
+ result = ret == NULL ? 0 : arg1;
+ errcode = errno;
+ }
break;
case TARGET_LINUX_SYS_sendfile: