mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
MIPS queue Aug 16, 2018
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJbdbIoAAoJENSXKoln91pl9KwIAJQ0CB4V/eRlvPOj828qLJyt FxCETpCKBD1mSRX80E2HdYdaj8KfhhKrd9R2Wrk2VsiTQhLA0+hYsLxuT8VfPjsX 8WSN7egxzzA8Hzm1+wbwFCDNL13xjuhHWPk9YA1RYS6eQJot/Y27KYfvt/OPTrBO jGaTmvXOE9q3qXZczP2TwipYkehg1+Ss5ZJl7dUmHc3Iek5t/H+kumkhBPoJqwAQ wcwQuPm2KRGLuq9aB2IVbtfJA5Rme1GMFDWZicitJX2uK+Mx76fgi9IorrW6XAyM 6LM8DjvrivxW+UgZ+3QdJKkQCbyIrXqDAp1MRd3CWMlB576WWKm6RUTZclSo9gI= =m1CJ -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-aug-2018' into staging MIPS queue Aug 16, 2018 # gpg: Signature made Thu 16 Aug 2018 18:19:36 BST # gpg: using RSA key D4972A8967F75A65 # gpg: Good signature from "Aleksandar Markovic <amarkovic@wavecomp.com>" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8526 FBF1 5DA3 811F 4A01 DD75 D497 2A89 67F7 5A65 * remotes/amarkovic/tags/mips-queue-aug-2018: qemu-doc: Amend MIPS-related items linux-user: Add preprocessor availability control to some syscalls linux-user: Update MIPS syscall numbers up to kernel 4.18 headers elf: Add ELF flags for MIPS machine variants elf: Remove duplicate preprocessor constant definition target/mips: Check ELPA flag only in some cases of MFHC0 and MTHC0 target/mips: Don't update BadVAddr register in Debug Mode target/mips: Implement CP0 Config1.WR bit functionality target/mips: Add CP0 BadInstrX register target/mips: Update some CP0 registers bit definitions target/mips: Fix two instances of shadow variables target/mips: Mark switch fallthroughs with interpretable comments target/mips: Avoid case statements formulated by ranges - part 2 target/mips: Avoid case statements formulated by ranges - part 1 MAINTAINERS: Update target/mips maintainer's email addresses Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
b8f7ff1e10
13 changed files with 526 additions and 150 deletions
|
@ -7286,6 +7286,9 @@ static inline int target_to_host_mlockall_arg(int arg)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if (defined(TARGET_NR_stat64) || defined(TARGET_NR_lstat64) || \
|
||||
defined(TARGET_NR_fstat64) || defined(TARGET_NR_fstatat64) || \
|
||||
defined(TARGET_NR_newfstatat))
|
||||
static inline abi_long host_to_target_stat64(void *cpu_env,
|
||||
abi_ulong target_addr,
|
||||
struct stat *host_st)
|
||||
|
@ -7348,6 +7351,7 @@ static inline abi_long host_to_target_stat64(void *cpu_env,
|
|||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ??? Using host futex calls even when target atomic operations
|
||||
are not really atomic probably breaks things. However implementing
|
||||
|
@ -7996,8 +8000,15 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
{
|
||||
CPUState *cpu = ENV_GET_CPU(cpu_env);
|
||||
abi_long ret;
|
||||
#if defined(TARGET_NR_stat) || defined(TARGET_NR_stat64) \
|
||||
|| defined(TARGET_NR_lstat) || defined(TARGET_NR_lstat64) \
|
||||
|| defined(TARGET_NR_fstat) || defined(TARGET_NR_fstat64)
|
||||
struct stat st;
|
||||
#endif
|
||||
#if defined(TARGET_NR_statfs) || defined(TARGET_NR_statfs64) \
|
||||
|| defined(TARGET_NR_fstatfs)
|
||||
struct statfs stfs;
|
||||
#endif
|
||||
void *p;
|
||||
|
||||
#if defined(DEBUG_ERESTARTSYS)
|
||||
|
@ -8365,9 +8376,11 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
case TARGET_NR_oldstat:
|
||||
goto unimplemented;
|
||||
#endif
|
||||
#ifdef TARGET_NR_lseek
|
||||
case TARGET_NR_lseek:
|
||||
ret = get_errno(lseek(arg1, arg2, arg3));
|
||||
break;
|
||||
#endif
|
||||
#if defined(TARGET_NR_getxpid) && defined(TARGET_ALPHA)
|
||||
/* Alpha specific */
|
||||
case TARGET_NR_getxpid:
|
||||
|
@ -9251,6 +9264,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
ret = get_errno(sethostname(p, arg2));
|
||||
unlock_user(p, arg1, 0);
|
||||
break;
|
||||
#ifdef TARGET_NR_setrlimit
|
||||
case TARGET_NR_setrlimit:
|
||||
{
|
||||
int resource = target_to_host_resource(arg1);
|
||||
|
@ -9264,6 +9278,8 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
ret = get_errno(setrlimit(resource, &rlim));
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#ifdef TARGET_NR_getrlimit
|
||||
case TARGET_NR_getrlimit:
|
||||
{
|
||||
int resource = target_to_host_resource(arg1);
|
||||
|
@ -9280,6 +9296,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case TARGET_NR_getrusage:
|
||||
{
|
||||
struct rusage rusage;
|
||||
|
@ -9644,15 +9661,19 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
ret = get_errno(munlockall());
|
||||
break;
|
||||
#endif
|
||||
#ifdef TARGET_NR_truncate
|
||||
case TARGET_NR_truncate:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
goto efault;
|
||||
ret = get_errno(truncate(p, arg2));
|
||||
unlock_user(p, arg1, 0);
|
||||
break;
|
||||
#endif
|
||||
#ifdef TARGET_NR_ftruncate
|
||||
case TARGET_NR_ftruncate:
|
||||
ret = get_errno(ftruncate(arg1, arg2));
|
||||
break;
|
||||
#endif
|
||||
case TARGET_NR_fchmod:
|
||||
ret = get_errno(fchmod(arg1, arg2));
|
||||
break;
|
||||
|
@ -9688,6 +9709,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
case TARGET_NR_profil:
|
||||
goto unimplemented;
|
||||
#endif
|
||||
#ifdef TARGET_NR_statfs
|
||||
case TARGET_NR_statfs:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
goto efault;
|
||||
|
@ -9719,9 +9741,12 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
unlock_user_struct(target_stfs, arg2, 1);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#ifdef TARGET_NR_fstatfs
|
||||
case TARGET_NR_fstatfs:
|
||||
ret = get_errno(fstatfs(arg1, &stfs));
|
||||
goto convert_statfs;
|
||||
#endif
|
||||
#ifdef TARGET_NR_statfs64
|
||||
case TARGET_NR_statfs64:
|
||||
if (!(p = lock_user_string(arg1)))
|
||||
|
@ -9969,6 +9994,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
unlock_user(p, arg1, 0);
|
||||
goto do_stat;
|
||||
#endif
|
||||
#ifdef TARGET_NR_fstat
|
||||
case TARGET_NR_fstat:
|
||||
{
|
||||
ret = get_errno(fstat(arg1, &st));
|
||||
|
@ -9998,6 +10024,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#ifdef TARGET_NR_olduname
|
||||
case TARGET_NR_olduname:
|
||||
goto unimplemented;
|
||||
|
@ -11004,6 +11031,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
break;
|
||||
|
||||
#ifdef CONFIG_SENDFILE
|
||||
#ifdef TARGET_NR_sendfile
|
||||
case TARGET_NR_sendfile:
|
||||
{
|
||||
off_t *offp = NULL;
|
||||
|
@ -11024,6 +11052,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
|
|||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
#ifdef TARGET_NR_sendfile64
|
||||
case TARGET_NR_sendfile64:
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue