}
+#define __NR_sys_exit __NR_exit
#define __NR_sys_uname __NR_uname
#define __NR_sys_faccessat __NR_faccessat
#define __NR_sys_fchmodat __NR_fchmodat
return -ENOSYS;
}
#endif
+_syscall1(int,sys_exit,int,status)
_syscall1(int,sys_uname,struct new_utsname *,buf)
#if defined(TARGET_NR_faccessat) && defined(__NR_faccessat)
_syscall4(int,sys_faccessat,int,dirfd,const char *,pathname,int,mode,int,flags)
__put_user(host_msginfo->msgtql, &target_msginfo->msgtql);
__put_user(host_msginfo->msgseg, &target_msginfo->msgseg);
unlock_user_struct(target_msginfo, target_addr, 1);
+ return 0;
}
static inline abi_long do_msgctl(int msgid, int cmd, abi_long ptr)
#if defined(TARGET_I386)
/* NOTE: there is really one LDT for all the threads */
-uint8_t *ldt_table;
+static uint8_t *ldt_table;
static abi_long read_ldt(abi_ulong ptr, unsigned long bytecount)
{
#endif
gdb_exit(cpu_env, arg1);
/* XXX: should free thread stack and CPU env */
- _exit(arg1);
+ sys_exit(arg1);
ret = 0; /* avoid warning */
break;
case TARGET_NR_read:
if (tnamelen > 256)
tnamelen = 256;
/* XXX: may not be correct */
- strncpy(tde->d_name, de->d_name, tnamelen);
+ pstrcpy(tde->d_name, tnamelen, de->d_name);
de = (struct linux_dirent *)((char *)de + reclen);
len -= reclen;
tde = (struct target_dirent *)((char *)tde + treclen);