Commit 388bb21af622a413cc37f6df1f3ac5a92e951760
1 parent
29929e34
MIPS linux-user update.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2810 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
6 changed files
with
321 additions
and
261 deletions
linux-user/elfload.c
| @@ -287,7 +287,11 @@ static inline void init_thread(struct target_pt_regs *_regs, struct image_info * | @@ -287,7 +287,11 @@ static inline void init_thread(struct target_pt_regs *_regs, struct image_info * | ||
| 287 | 287 | ||
| 288 | #define elf_check_arch(x) ( (x) == EM_MIPS ) | 288 | #define elf_check_arch(x) ( (x) == EM_MIPS ) |
| 289 | 289 | ||
| 290 | +#ifdef TARGET_MIPS64 | ||
| 291 | +#define ELF_CLASS ELFCLASS64 | ||
| 292 | +#else | ||
| 290 | #define ELF_CLASS ELFCLASS32 | 293 | #define ELF_CLASS ELFCLASS32 |
| 294 | +#endif | ||
| 291 | #ifdef TARGET_WORDS_BIGENDIAN | 295 | #ifdef TARGET_WORDS_BIGENDIAN |
| 292 | #define ELF_DATA ELFDATA2MSB | 296 | #define ELF_DATA ELFDATA2MSB |
| 293 | #else | 297 | #else |
| @@ -302,6 +306,9 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i | @@ -302,6 +306,9 @@ static inline void init_thread(struct target_pt_regs *regs, struct image_info *i | ||
| 302 | regs->regs[29] = infop->start_stack; | 306 | regs->regs[29] = infop->start_stack; |
| 303 | } | 307 | } |
| 304 | 308 | ||
| 309 | +#define USE_ELF_CORE_DUMP | ||
| 310 | +#define ELF_EXEC_PAGESIZE 4096 | ||
| 311 | + | ||
| 305 | #endif /* TARGET_MIPS */ | 312 | #endif /* TARGET_MIPS */ |
| 306 | 313 | ||
| 307 | #ifdef TARGET_SH4 | 314 | #ifdef TARGET_SH4 |
linux-user/main.c
| @@ -1312,9 +1312,41 @@ static const uint8_t mips_syscall_args[] = { | @@ -1312,9 +1312,41 @@ static const uint8_t mips_syscall_args[] = { | ||
| 1312 | MIPS_SYS(sys_waitid , 4) | 1312 | MIPS_SYS(sys_waitid , 4) |
| 1313 | MIPS_SYS(sys_ni_syscall , 0) /* available, was setaltroot */ | 1313 | MIPS_SYS(sys_ni_syscall , 0) /* available, was setaltroot */ |
| 1314 | MIPS_SYS(sys_add_key , 5) | 1314 | MIPS_SYS(sys_add_key , 5) |
| 1315 | - MIPS_SYS(sys_request_key , 4) | 1315 | + MIPS_SYS(sys_request_key, 4) |
| 1316 | MIPS_SYS(sys_keyctl , 5) | 1316 | MIPS_SYS(sys_keyctl , 5) |
| 1317 | MIPS_SYS(sys_set_thread_area, 1) | 1317 | MIPS_SYS(sys_set_thread_area, 1) |
| 1318 | + MIPS_SYS(sys_inotify_init, 0) | ||
| 1319 | + MIPS_SYS(sys_inotify_add_watch, 3) /* 4285 */ | ||
| 1320 | + MIPS_SYS(sys_inotify_rm_watch, 2) | ||
| 1321 | + MIPS_SYS(sys_migrate_pages, 4) | ||
| 1322 | + MIPS_SYS(sys_openat, 4) | ||
| 1323 | + MIPS_SYS(sys_mkdirat, 3) | ||
| 1324 | + MIPS_SYS(sys_mknodat, 4) /* 4290 */ | ||
| 1325 | + MIPS_SYS(sys_fchownat, 5) | ||
| 1326 | + MIPS_SYS(sys_futimesat, 3) | ||
| 1327 | + MIPS_SYS(sys_fstatat64, 4) | ||
| 1328 | + MIPS_SYS(sys_unlinkat, 3) | ||
| 1329 | + MIPS_SYS(sys_renameat, 4) /* 4295 */ | ||
| 1330 | + MIPS_SYS(sys_linkat, 5) | ||
| 1331 | + MIPS_SYS(sys_symlinkat, 3) | ||
| 1332 | + MIPS_SYS(sys_readlinkat, 4) | ||
| 1333 | + MIPS_SYS(sys_fchmodat, 3) | ||
| 1334 | + MIPS_SYS(sys_faccessat, 3) /* 4300 */ | ||
| 1335 | + MIPS_SYS(sys_pselect6, 6) | ||
| 1336 | + MIPS_SYS(sys_ppoll, 5) | ||
| 1337 | + MIPS_SYS(sys_unshare, 1) | ||
| 1338 | + MIPS_SYS(sys_splice, 4) | ||
| 1339 | + MIPS_SYS(sys_sync_file_range, 7) /* 4305 */ | ||
| 1340 | + MIPS_SYS(sys_tee, 4) | ||
| 1341 | + MIPS_SYS(sys_vmsplice, 4) | ||
| 1342 | + MIPS_SYS(sys_move_pages, 6) | ||
| 1343 | + MIPS_SYS(sys_set_robust_list, 2) | ||
| 1344 | + MIPS_SYS(sys_get_robust_list, 3) /* 4310 */ | ||
| 1345 | + MIPS_SYS(sys_kexec_load, 4) | ||
| 1346 | + MIPS_SYS(sys_getcpu, 3) | ||
| 1347 | + MIPS_SYS(sys_epoll_pwait, 6) | ||
| 1348 | + MIPS_SYS(sys_ioprio_set, 3) | ||
| 1349 | + MIPS_SYS(sys_ioprio_get, 2) | ||
| 1318 | }; | 1350 | }; |
| 1319 | 1351 | ||
| 1320 | #undef MIPS_SYS | 1352 | #undef MIPS_SYS |
| @@ -1322,53 +1354,45 @@ static const uint8_t mips_syscall_args[] = { | @@ -1322,53 +1354,45 @@ static const uint8_t mips_syscall_args[] = { | ||
| 1322 | void cpu_loop(CPUMIPSState *env) | 1354 | void cpu_loop(CPUMIPSState *env) |
| 1323 | { | 1355 | { |
| 1324 | target_siginfo_t info; | 1356 | target_siginfo_t info; |
| 1325 | - int trapnr, ret, nb_args; | 1357 | + int trapnr, ret; |
| 1326 | unsigned int syscall_num; | 1358 | unsigned int syscall_num; |
| 1327 | - target_ulong arg5, arg6, sp_reg; | ||
| 1328 | 1359 | ||
| 1329 | for(;;) { | 1360 | for(;;) { |
| 1330 | trapnr = cpu_mips_exec(env); | 1361 | trapnr = cpu_mips_exec(env); |
| 1331 | switch(trapnr) { | 1362 | switch(trapnr) { |
| 1332 | case EXCP_SYSCALL: | 1363 | case EXCP_SYSCALL: |
| 1333 | - { | ||
| 1334 | - syscall_num = env->gpr[2] - 4000; | ||
| 1335 | - env->PC += 4; | ||
| 1336 | - if (syscall_num >= sizeof(mips_syscall_args)) { | ||
| 1337 | - ret = -ENOSYS; | ||
| 1338 | - } else { | ||
| 1339 | - nb_args = mips_syscall_args[syscall_num]; | ||
| 1340 | - if (nb_args >= 5) { | ||
| 1341 | - sp_reg = env->gpr[29]; | ||
| 1342 | - /* these arguments are taken from the stack */ | ||
| 1343 | - arg5 = tgetl(sp_reg + 16); | ||
| 1344 | - if (nb_args >= 6) { | ||
| 1345 | - arg6 = tgetl(sp_reg + 20); | ||
| 1346 | - } else { | ||
| 1347 | - arg6 = 0; | ||
| 1348 | - } | ||
| 1349 | - } else { | ||
| 1350 | - arg5 = 0; | ||
| 1351 | - arg6 = 0; | ||
| 1352 | - } | ||
| 1353 | - ret = do_syscall(env, | ||
| 1354 | - env->gpr[2], | ||
| 1355 | - env->gpr[4], | ||
| 1356 | - env->gpr[5], | ||
| 1357 | - env->gpr[6], | ||
| 1358 | - env->gpr[7], | ||
| 1359 | - arg5, | ||
| 1360 | - arg6); | ||
| 1361 | - } | ||
| 1362 | - if ((unsigned int)ret >= (unsigned int)(-1133)) { | ||
| 1363 | - env->gpr[7] = 1; /* error flag */ | ||
| 1364 | - ret = -ret; | ||
| 1365 | - env->gpr[0] = ret; | ||
| 1366 | - env->gpr[2] = ret; | ||
| 1367 | - } else { | ||
| 1368 | - env->gpr[7] = 0; /* error flag */ | ||
| 1369 | - env->gpr[2] = ret; | 1364 | + syscall_num = env->gpr[2] - 4000; |
| 1365 | + env->PC += 4; | ||
| 1366 | + if (syscall_num >= sizeof(mips_syscall_args)) { | ||
| 1367 | + ret = -ENOSYS; | ||
| 1368 | + } else { | ||
| 1369 | + int nb_args; | ||
| 1370 | + target_ulong sp_reg; | ||
| 1371 | + target_ulong arg5 = 0, arg6 = 0, arg7 = 0, arg8 = 0; | ||
| 1372 | + | ||
| 1373 | + nb_args = mips_syscall_args[syscall_num]; | ||
| 1374 | + sp_reg = env->gpr[29]; | ||
| 1375 | + switch (nb_args) { | ||
| 1376 | + /* these arguments are taken from the stack */ | ||
| 1377 | + case 8: arg8 = tgetl(sp_reg + 28); | ||
| 1378 | + case 7: arg7 = tgetl(sp_reg + 24); | ||
| 1379 | + case 6: arg6 = tgetl(sp_reg + 20); | ||
| 1380 | + case 5: arg5 = tgetl(sp_reg + 16); | ||
| 1381 | + default: | ||
| 1382 | + break; | ||
| 1370 | } | 1383 | } |
| 1384 | + ret = do_syscall(env, env->gpr[2], | ||
| 1385 | + env->gpr[4], env->gpr[5], | ||
| 1386 | + env->gpr[6], env->gpr[7], | ||
| 1387 | + arg5, arg6/*, arg7, arg8*/); | ||
| 1388 | + } | ||
| 1389 | + if ((unsigned int)ret >= (unsigned int)(-1133)) { | ||
| 1390 | + env->gpr[7] = 1; /* error flag */ | ||
| 1391 | + ret = -ret; | ||
| 1392 | + } else { | ||
| 1393 | + env->gpr[7] = 0; /* error flag */ | ||
| 1371 | } | 1394 | } |
| 1395 | + env->gpr[2] = ret; | ||
| 1372 | break; | 1396 | break; |
| 1373 | case EXCP_TLBL: | 1397 | case EXCP_TLBL: |
| 1374 | case EXCP_TLBS: | 1398 | case EXCP_TLBS: |
linux-user/mips/syscall_nr.h
| @@ -2,45 +2,45 @@ | @@ -2,45 +2,45 @@ | ||
| 2 | * Linux o32 style syscalls are in the range from 4000 to 4999. | 2 | * Linux o32 style syscalls are in the range from 4000 to 4999. |
| 3 | */ | 3 | */ |
| 4 | #define TARGET_NR_Linux 4000 | 4 | #define TARGET_NR_Linux 4000 |
| 5 | -#define TARGET_NR_syscall (TARGET_NR_Linux + 0) | 5 | +#define TARGET_NR_syscall (TARGET_NR_Linux + 0) |
| 6 | #define TARGET_NR_exit (TARGET_NR_Linux + 1) | 6 | #define TARGET_NR_exit (TARGET_NR_Linux + 1) |
| 7 | #define TARGET_NR_fork (TARGET_NR_Linux + 2) | 7 | #define TARGET_NR_fork (TARGET_NR_Linux + 2) |
| 8 | #define TARGET_NR_read (TARGET_NR_Linux + 3) | 8 | #define TARGET_NR_read (TARGET_NR_Linux + 3) |
| 9 | #define TARGET_NR_write (TARGET_NR_Linux + 4) | 9 | #define TARGET_NR_write (TARGET_NR_Linux + 4) |
| 10 | #define TARGET_NR_open (TARGET_NR_Linux + 5) | 10 | #define TARGET_NR_open (TARGET_NR_Linux + 5) |
| 11 | #define TARGET_NR_close (TARGET_NR_Linux + 6) | 11 | #define TARGET_NR_close (TARGET_NR_Linux + 6) |
| 12 | -#define TARGET_NR_waitpid (TARGET_NR_Linux + 7) | 12 | +#define TARGET_NR_waitpid (TARGET_NR_Linux + 7) |
| 13 | #define TARGET_NR_creat (TARGET_NR_Linux + 8) | 13 | #define TARGET_NR_creat (TARGET_NR_Linux + 8) |
| 14 | #define TARGET_NR_link (TARGET_NR_Linux + 9) | 14 | #define TARGET_NR_link (TARGET_NR_Linux + 9) |
| 15 | -#define TARGET_NR_unlink (TARGET_NR_Linux + 10) | ||
| 16 | -#define TARGET_NR_execve (TARGET_NR_Linux + 11) | 15 | +#define TARGET_NR_unlink (TARGET_NR_Linux + 10) |
| 16 | +#define TARGET_NR_execve (TARGET_NR_Linux + 11) | ||
| 17 | #define TARGET_NR_chdir (TARGET_NR_Linux + 12) | 17 | #define TARGET_NR_chdir (TARGET_NR_Linux + 12) |
| 18 | #define TARGET_NR_time (TARGET_NR_Linux + 13) | 18 | #define TARGET_NR_time (TARGET_NR_Linux + 13) |
| 19 | #define TARGET_NR_mknod (TARGET_NR_Linux + 14) | 19 | #define TARGET_NR_mknod (TARGET_NR_Linux + 14) |
| 20 | #define TARGET_NR_chmod (TARGET_NR_Linux + 15) | 20 | #define TARGET_NR_chmod (TARGET_NR_Linux + 15) |
| 21 | -#define TARGET_NR_lchown32 (TARGET_NR_Linux + 16) | 21 | +#define TARGET_NR_lchown32 (TARGET_NR_Linux + 16) |
| 22 | #define TARGET_NR_break (TARGET_NR_Linux + 17) | 22 | #define TARGET_NR_break (TARGET_NR_Linux + 17) |
| 23 | -#define TARGET_NR_unused18 (TARGET_NR_Linux + 18) | 23 | +#define TARGET_NR_unused18 (TARGET_NR_Linux + 18) |
| 24 | #define TARGET_NR_lseek (TARGET_NR_Linux + 19) | 24 | #define TARGET_NR_lseek (TARGET_NR_Linux + 19) |
| 25 | -#define TARGET_NR_getpid (TARGET_NR_Linux + 20) | 25 | +#define TARGET_NR_getpid (TARGET_NR_Linux + 20) |
| 26 | #define TARGET_NR_mount (TARGET_NR_Linux + 21) | 26 | #define TARGET_NR_mount (TARGET_NR_Linux + 21) |
| 27 | -#define TARGET_NR_umount (TARGET_NR_Linux + 22) | ||
| 28 | -#define TARGET_NR_setuid32 (TARGET_NR_Linux + 23) | ||
| 29 | -#define TARGET_NR_getuid32 (TARGET_NR_Linux + 24) | 27 | +#define TARGET_NR_umount (TARGET_NR_Linux + 22) |
| 28 | +#define TARGET_NR_setuid32 (TARGET_NR_Linux + 23) | ||
| 29 | +#define TARGET_NR_getuid32 (TARGET_NR_Linux + 24) | ||
| 30 | #define TARGET_NR_stime (TARGET_NR_Linux + 25) | 30 | #define TARGET_NR_stime (TARGET_NR_Linux + 25) |
| 31 | -#define TARGET_NR_ptrace (TARGET_NR_Linux + 26) | 31 | +#define TARGET_NR_ptrace (TARGET_NR_Linux + 26) |
| 32 | #define TARGET_NR_alarm (TARGET_NR_Linux + 27) | 32 | #define TARGET_NR_alarm (TARGET_NR_Linux + 27) |
| 33 | -#define TARGET_NR_unused28 (TARGET_NR_Linux + 28) | 33 | +#define TARGET_NR_unused28 (TARGET_NR_Linux + 28) |
| 34 | #define TARGET_NR_pause (TARGET_NR_Linux + 29) | 34 | #define TARGET_NR_pause (TARGET_NR_Linux + 29) |
| 35 | #define TARGET_NR_utime (TARGET_NR_Linux + 30) | 35 | #define TARGET_NR_utime (TARGET_NR_Linux + 30) |
| 36 | #define TARGET_NR_stty (TARGET_NR_Linux + 31) | 36 | #define TARGET_NR_stty (TARGET_NR_Linux + 31) |
| 37 | #define TARGET_NR_gtty (TARGET_NR_Linux + 32) | 37 | #define TARGET_NR_gtty (TARGET_NR_Linux + 32) |
| 38 | -#define TARGET_NR_access (TARGET_NR_Linux + 33) | 38 | +#define TARGET_NR_access (TARGET_NR_Linux + 33) |
| 39 | #define TARGET_NR_nice (TARGET_NR_Linux + 34) | 39 | #define TARGET_NR_nice (TARGET_NR_Linux + 34) |
| 40 | #define TARGET_NR_ftime (TARGET_NR_Linux + 35) | 40 | #define TARGET_NR_ftime (TARGET_NR_Linux + 35) |
| 41 | #define TARGET_NR_sync (TARGET_NR_Linux + 36) | 41 | #define TARGET_NR_sync (TARGET_NR_Linux + 36) |
| 42 | #define TARGET_NR_kill (TARGET_NR_Linux + 37) | 42 | #define TARGET_NR_kill (TARGET_NR_Linux + 37) |
| 43 | -#define TARGET_NR_rename (TARGET_NR_Linux + 38) | 43 | +#define TARGET_NR_rename (TARGET_NR_Linux + 38) |
| 44 | #define TARGET_NR_mkdir (TARGET_NR_Linux + 39) | 44 | #define TARGET_NR_mkdir (TARGET_NR_Linux + 39) |
| 45 | #define TARGET_NR_rmdir (TARGET_NR_Linux + 40) | 45 | #define TARGET_NR_rmdir (TARGET_NR_Linux + 40) |
| 46 | #define TARGET_NR_dup (TARGET_NR_Linux + 41) | 46 | #define TARGET_NR_dup (TARGET_NR_Linux + 41) |
| @@ -48,241 +48,273 @@ | @@ -48,241 +48,273 @@ | ||
| 48 | #define TARGET_NR_times (TARGET_NR_Linux + 43) | 48 | #define TARGET_NR_times (TARGET_NR_Linux + 43) |
| 49 | #define TARGET_NR_prof (TARGET_NR_Linux + 44) | 49 | #define TARGET_NR_prof (TARGET_NR_Linux + 44) |
| 50 | #define TARGET_NR_brk (TARGET_NR_Linux + 45) | 50 | #define TARGET_NR_brk (TARGET_NR_Linux + 45) |
| 51 | -#define TARGET_NR_setgid32 (TARGET_NR_Linux + 46) | ||
| 52 | -#define TARGET_NR_getgid32 (TARGET_NR_Linux + 47) | ||
| 53 | -#define TARGET_NR_signal (TARGET_NR_Linux + 48) | ||
| 54 | -#define TARGET_NR_geteuid32 (TARGET_NR_Linux + 49) | ||
| 55 | -#define TARGET_NR_getegid32 (TARGET_NR_Linux + 50) | 51 | +#define TARGET_NR_setgid32 (TARGET_NR_Linux + 46) |
| 52 | +#define TARGET_NR_getgid32 (TARGET_NR_Linux + 47) | ||
| 53 | +#define TARGET_NR_signal (TARGET_NR_Linux + 48) | ||
| 54 | +#define TARGET_NR_geteuid32 (TARGET_NR_Linux + 49) | ||
| 55 | +#define TARGET_NR_getegid32 (TARGET_NR_Linux + 50) | ||
| 56 | #define TARGET_NR_acct (TARGET_NR_Linux + 51) | 56 | #define TARGET_NR_acct (TARGET_NR_Linux + 51) |
| 57 | -#define TARGET_NR_umount2 (TARGET_NR_Linux + 52) | 57 | +#define TARGET_NR_umount2 (TARGET_NR_Linux + 52) |
| 58 | #define TARGET_NR_lock (TARGET_NR_Linux + 53) | 58 | #define TARGET_NR_lock (TARGET_NR_Linux + 53) |
| 59 | #define TARGET_NR_ioctl (TARGET_NR_Linux + 54) | 59 | #define TARGET_NR_ioctl (TARGET_NR_Linux + 54) |
| 60 | #define TARGET_NR_fcntl (TARGET_NR_Linux + 55) | 60 | #define TARGET_NR_fcntl (TARGET_NR_Linux + 55) |
| 61 | #define TARGET_NR_mpx (TARGET_NR_Linux + 56) | 61 | #define TARGET_NR_mpx (TARGET_NR_Linux + 56) |
| 62 | -#define TARGET_NR_setpgid (TARGET_NR_Linux + 57) | ||
| 63 | -#define TARGET_NR_ulimit (TARGET_NR_Linux + 58) | ||
| 64 | -#define TARGET_NR_unused59 (TARGET_NR_Linux + 59) | 62 | +#define TARGET_NR_setpgid (TARGET_NR_Linux + 57) |
| 63 | +#define TARGET_NR_ulimit (TARGET_NR_Linux + 58) | ||
| 64 | +#define TARGET_NR_unused59 (TARGET_NR_Linux + 59) | ||
| 65 | #define TARGET_NR_umask (TARGET_NR_Linux + 60) | 65 | #define TARGET_NR_umask (TARGET_NR_Linux + 60) |
| 66 | -#define TARGET_NR_chroot (TARGET_NR_Linux + 61) | 66 | +#define TARGET_NR_chroot (TARGET_NR_Linux + 61) |
| 67 | #define TARGET_NR_ustat (TARGET_NR_Linux + 62) | 67 | #define TARGET_NR_ustat (TARGET_NR_Linux + 62) |
| 68 | #define TARGET_NR_dup2 (TARGET_NR_Linux + 63) | 68 | #define TARGET_NR_dup2 (TARGET_NR_Linux + 63) |
| 69 | -#define TARGET_NR_getppid (TARGET_NR_Linux + 64) | ||
| 70 | -#define TARGET_NR_getpgrp (TARGET_NR_Linux + 65) | ||
| 71 | -#define TARGET_NR_setsid (TARGET_NR_Linux + 66) | ||
| 72 | -#define TARGET_NR_sigaction (TARGET_NR_Linux + 67) | ||
| 73 | -#define TARGET_NR_sgetmask (TARGET_NR_Linux + 68) | ||
| 74 | -#define TARGET_NR_ssetmask (TARGET_NR_Linux + 69) | ||
| 75 | -#define TARGET_NR_setreuid32 (TARGET_NR_Linux + 70) | ||
| 76 | -#define TARGET_NR_setregid32 (TARGET_NR_Linux + 71) | ||
| 77 | -#define TARGET_NR_sigsuspend (TARGET_NR_Linux + 72) | ||
| 78 | -#define TARGET_NR_sigpending (TARGET_NR_Linux + 73) | 69 | +#define TARGET_NR_getppid (TARGET_NR_Linux + 64) |
| 70 | +#define TARGET_NR_getpgrp (TARGET_NR_Linux + 65) | ||
| 71 | +#define TARGET_NR_setsid (TARGET_NR_Linux + 66) | ||
| 72 | +#define TARGET_NR_sigaction (TARGET_NR_Linux + 67) | ||
| 73 | +#define TARGET_NR_sgetmask (TARGET_NR_Linux + 68) | ||
| 74 | +#define TARGET_NR_ssetmask (TARGET_NR_Linux + 69) | ||
| 75 | +#define TARGET_NR_setreuid32 (TARGET_NR_Linux + 70) | ||
| 76 | +#define TARGET_NR_setregid32 (TARGET_NR_Linux + 71) | ||
| 77 | +#define TARGET_NR_sigsuspend (TARGET_NR_Linux + 72) | ||
| 78 | +#define TARGET_NR_sigpending (TARGET_NR_Linux + 73) | ||
| 79 | #define TARGET_NR_sethostname (TARGET_NR_Linux + 74) | 79 | #define TARGET_NR_sethostname (TARGET_NR_Linux + 74) |
| 80 | -#define TARGET_NR_setrlimit (TARGET_NR_Linux + 75) | ||
| 81 | -#define TARGET_NR_getrlimit (TARGET_NR_Linux + 76) | ||
| 82 | -#define TARGET_NR_getrusage (TARGET_NR_Linux + 77) | 80 | +#define TARGET_NR_setrlimit (TARGET_NR_Linux + 75) |
| 81 | +#define TARGET_NR_getrlimit (TARGET_NR_Linux + 76) | ||
| 82 | +#define TARGET_NR_getrusage (TARGET_NR_Linux + 77) | ||
| 83 | #define TARGET_NR_gettimeofday (TARGET_NR_Linux + 78) | 83 | #define TARGET_NR_gettimeofday (TARGET_NR_Linux + 78) |
| 84 | #define TARGET_NR_settimeofday (TARGET_NR_Linux + 79) | 84 | #define TARGET_NR_settimeofday (TARGET_NR_Linux + 79) |
| 85 | -#define TARGET_NR_getgroups32 (TARGET_NR_Linux + 80) | ||
| 86 | -#define TARGET_NR_setgroups32 (TARGET_NR_Linux + 81) | ||
| 87 | -#define TARGET_NR_reserved82 (TARGET_NR_Linux + 82) | ||
| 88 | -#define TARGET_NR_symlink (TARGET_NR_Linux + 83) | ||
| 89 | -#define TARGET_NR_unused84 (TARGET_NR_Linux + 84) | ||
| 90 | -#define TARGET_NR_readlink (TARGET_NR_Linux + 85) | ||
| 91 | -#define TARGET_NR_uselib (TARGET_NR_Linux + 86) | ||
| 92 | -#define TARGET_NR_swapon (TARGET_NR_Linux + 87) | ||
| 93 | -#define TARGET_NR_reboot (TARGET_NR_Linux + 88) | ||
| 94 | -#define TARGET_NR_readdir (TARGET_NR_Linux + 89) | 85 | +#define TARGET_NR_getgroups32 (TARGET_NR_Linux + 80) |
| 86 | +#define TARGET_NR_setgroups32 (TARGET_NR_Linux + 81) | ||
| 87 | +#define TARGET_NR_reserved82 (TARGET_NR_Linux + 82) | ||
| 88 | +#define TARGET_NR_symlink (TARGET_NR_Linux + 83) | ||
| 89 | +#define TARGET_NR_unused84 (TARGET_NR_Linux + 84) | ||
| 90 | +#define TARGET_NR_readlink (TARGET_NR_Linux + 85) | ||
| 91 | +#define TARGET_NR_uselib (TARGET_NR_Linux + 86) | ||
| 92 | +#define TARGET_NR_swapon (TARGET_NR_Linux + 87) | ||
| 93 | +#define TARGET_NR_reboot (TARGET_NR_Linux + 88) | ||
| 94 | +#define TARGET_NR_readdir (TARGET_NR_Linux + 89) | ||
| 95 | #define TARGET_NR_mmap (TARGET_NR_Linux + 90) | 95 | #define TARGET_NR_mmap (TARGET_NR_Linux + 90) |
| 96 | -#define TARGET_NR_munmap (TARGET_NR_Linux + 91) | ||
| 97 | -#define TARGET_NR_truncate (TARGET_NR_Linux + 92) | ||
| 98 | -#define TARGET_NR_ftruncate (TARGET_NR_Linux + 93) | ||
| 99 | -#define TARGET_NR_fchmod (TARGET_NR_Linux + 94) | ||
| 100 | -#define TARGET_NR_fchown32 (TARGET_NR_Linux + 95) | 96 | +#define TARGET_NR_munmap (TARGET_NR_Linux + 91) |
| 97 | +#define TARGET_NR_truncate (TARGET_NR_Linux + 92) | ||
| 98 | +#define TARGET_NR_ftruncate (TARGET_NR_Linux + 93) | ||
| 99 | +#define TARGET_NR_fchmod (TARGET_NR_Linux + 94) | ||
| 100 | +#define TARGET_NR_fchown32 (TARGET_NR_Linux + 95) | ||
| 101 | #define TARGET_NR_getpriority (TARGET_NR_Linux + 96) | 101 | #define TARGET_NR_getpriority (TARGET_NR_Linux + 96) |
| 102 | #define TARGET_NR_setpriority (TARGET_NR_Linux + 97) | 102 | #define TARGET_NR_setpriority (TARGET_NR_Linux + 97) |
| 103 | -#define TARGET_NR_profil (TARGET_NR_Linux + 98) | ||
| 104 | -#define TARGET_NR_statfs (TARGET_NR_Linux + 99) | ||
| 105 | -#define TARGET_NR_fstatfs (TARGET_NR_Linux + 100) | ||
| 106 | -#define TARGET_NR_ioperm (TARGET_NR_Linux + 101) | ||
| 107 | -#define TARGET_NR_socketcall (TARGET_NR_Linux + 102) | ||
| 108 | -#define TARGET_NR_syslog (TARGET_NR_Linux + 103) | ||
| 109 | -#define TARGET_NR_setitimer (TARGET_NR_Linux + 104) | ||
| 110 | -#define TARGET_NR_getitimer (TARGET_NR_Linux + 105) | 103 | +#define TARGET_NR_profil (TARGET_NR_Linux + 98) |
| 104 | +#define TARGET_NR_statfs (TARGET_NR_Linux + 99) | ||
| 105 | +#define TARGET_NR_fstatfs (TARGET_NR_Linux + 100) | ||
| 106 | +#define TARGET_NR_ioperm (TARGET_NR_Linux + 101) | ||
| 107 | +#define TARGET_NR_socketcall (TARGET_NR_Linux + 102) | ||
| 108 | +#define TARGET_NR_syslog (TARGET_NR_Linux + 103) | ||
| 109 | +#define TARGET_NR_setitimer (TARGET_NR_Linux + 104) | ||
| 110 | +#define TARGET_NR_getitimer (TARGET_NR_Linux + 105) | ||
| 111 | #define TARGET_NR_stat (TARGET_NR_Linux + 106) | 111 | #define TARGET_NR_stat (TARGET_NR_Linux + 106) |
| 112 | #define TARGET_NR_lstat (TARGET_NR_Linux + 107) | 112 | #define TARGET_NR_lstat (TARGET_NR_Linux + 107) |
| 113 | #define TARGET_NR_fstat (TARGET_NR_Linux + 108) | 113 | #define TARGET_NR_fstat (TARGET_NR_Linux + 108) |
| 114 | -#define TARGET_NR_unused109 (TARGET_NR_Linux + 109) | 114 | +#define TARGET_NR_unused109 (TARGET_NR_Linux + 109) |
| 115 | #define TARGET_NR_iopl (TARGET_NR_Linux + 110) | 115 | #define TARGET_NR_iopl (TARGET_NR_Linux + 110) |
| 116 | -#define TARGET_NR_vhangup (TARGET_NR_Linux + 111) | 116 | +#define TARGET_NR_vhangup (TARGET_NR_Linux + 111) |
| 117 | #define TARGET_NR_idle (TARGET_NR_Linux + 112) | 117 | #define TARGET_NR_idle (TARGET_NR_Linux + 112) |
| 118 | #define TARGET_NR_vm86 (TARGET_NR_Linux + 113) | 118 | #define TARGET_NR_vm86 (TARGET_NR_Linux + 113) |
| 119 | #define TARGET_NR_wait4 (TARGET_NR_Linux + 114) | 119 | #define TARGET_NR_wait4 (TARGET_NR_Linux + 114) |
| 120 | -#define TARGET_NR_swapoff (TARGET_NR_Linux + 115) | ||
| 121 | -#define TARGET_NR_sysinfo (TARGET_NR_Linux + 116) | 120 | +#define TARGET_NR_swapoff (TARGET_NR_Linux + 115) |
| 121 | +#define TARGET_NR_sysinfo (TARGET_NR_Linux + 116) | ||
| 122 | #define TARGET_NR_ipc (TARGET_NR_Linux + 117) | 122 | #define TARGET_NR_ipc (TARGET_NR_Linux + 117) |
| 123 | #define TARGET_NR_fsync (TARGET_NR_Linux + 118) | 123 | #define TARGET_NR_fsync (TARGET_NR_Linux + 118) |
| 124 | -#define TARGET_NR_sigreturn (TARGET_NR_Linux + 119) | 124 | +#define TARGET_NR_sigreturn (TARGET_NR_Linux + 119) |
| 125 | #define TARGET_NR_clone (TARGET_NR_Linux + 120) | 125 | #define TARGET_NR_clone (TARGET_NR_Linux + 120) |
| 126 | #define TARGET_NR_setdomainname (TARGET_NR_Linux + 121) | 126 | #define TARGET_NR_setdomainname (TARGET_NR_Linux + 121) |
| 127 | #define TARGET_NR_uname (TARGET_NR_Linux + 122) | 127 | #define TARGET_NR_uname (TARGET_NR_Linux + 122) |
| 128 | -#define TARGET_NR_modify_ldt (TARGET_NR_Linux + 123) | ||
| 129 | -#define TARGET_NR_adjtimex (TARGET_NR_Linux + 124) | ||
| 130 | -#define TARGET_NR_mprotect (TARGET_NR_Linux + 125) | 128 | +#define TARGET_NR_modify_ldt (TARGET_NR_Linux + 123) |
| 129 | +#define TARGET_NR_adjtimex (TARGET_NR_Linux + 124) | ||
| 130 | +#define TARGET_NR_mprotect (TARGET_NR_Linux + 125) | ||
| 131 | #define TARGET_NR_sigprocmask (TARGET_NR_Linux + 126) | 131 | #define TARGET_NR_sigprocmask (TARGET_NR_Linux + 126) |
| 132 | #define TARGET_NR_create_module (TARGET_NR_Linux + 127) | 132 | #define TARGET_NR_create_module (TARGET_NR_Linux + 127) |
| 133 | #define TARGET_NR_init_module (TARGET_NR_Linux + 128) | 133 | #define TARGET_NR_init_module (TARGET_NR_Linux + 128) |
| 134 | #define TARGET_NR_delete_module (TARGET_NR_Linux + 129) | 134 | #define TARGET_NR_delete_module (TARGET_NR_Linux + 129) |
| 135 | -#define TARGET_NR_get_kernel_syms (TARGET_NR_Linux + 130) | ||
| 136 | -#define TARGET_NR_quotactl (TARGET_NR_Linux + 131) | ||
| 137 | -#define TARGET_NR_getpgid (TARGET_NR_Linux + 132) | ||
| 138 | -#define TARGET_NR_fchdir (TARGET_NR_Linux + 133) | ||
| 139 | -#define TARGET_NR_bdflush (TARGET_NR_Linux + 134) | 135 | +#define TARGET_NR_get_kernel_syms (TARGET_NR_Linux + 130) |
| 136 | +#define TARGET_NR_quotactl (TARGET_NR_Linux + 131) | ||
| 137 | +#define TARGET_NR_getpgid (TARGET_NR_Linux + 132) | ||
| 138 | +#define TARGET_NR_fchdir (TARGET_NR_Linux + 133) | ||
| 139 | +#define TARGET_NR_bdflush (TARGET_NR_Linux + 134) | ||
| 140 | #define TARGET_NR_sysfs (TARGET_NR_Linux + 135) | 140 | #define TARGET_NR_sysfs (TARGET_NR_Linux + 135) |
| 141 | #define TARGET_NR_personality (TARGET_NR_Linux + 136) | 141 | #define TARGET_NR_personality (TARGET_NR_Linux + 136) |
| 142 | #define TARGET_NR_afs_syscall (TARGET_NR_Linux + 137) /* Syscall for Andrew File System */ | 142 | #define TARGET_NR_afs_syscall (TARGET_NR_Linux + 137) /* Syscall for Andrew File System */ |
| 143 | -#define TARGET_NR_setfsuid32 (TARGET_NR_Linux + 138) | ||
| 144 | -#define TARGET_NR_setfsgid32 (TARGET_NR_Linux + 139) | ||
| 145 | -#define TARGET_NR__llseek (TARGET_NR_Linux + 140) | ||
| 146 | -#define TARGET_NR_getdents (TARGET_NR_Linux + 141) | ||
| 147 | -#define TARGET_NR__newselect (TARGET_NR_Linux + 142) | 143 | +#define TARGET_NR_setfsuid32 (TARGET_NR_Linux + 138) |
| 144 | +#define TARGET_NR_setfsgid32 (TARGET_NR_Linux + 139) | ||
| 145 | +#define TARGET_NR__llseek (TARGET_NR_Linux + 140) | ||
| 146 | +#define TARGET_NR_getdents (TARGET_NR_Linux + 141) | ||
| 147 | +#define TARGET_NR__newselect (TARGET_NR_Linux + 142) | ||
| 148 | #define TARGET_NR_flock (TARGET_NR_Linux + 143) | 148 | #define TARGET_NR_flock (TARGET_NR_Linux + 143) |
| 149 | #define TARGET_NR_msync (TARGET_NR_Linux + 144) | 149 | #define TARGET_NR_msync (TARGET_NR_Linux + 144) |
| 150 | #define TARGET_NR_readv (TARGET_NR_Linux + 145) | 150 | #define TARGET_NR_readv (TARGET_NR_Linux + 145) |
| 151 | -#define TARGET_NR_writev (TARGET_NR_Linux + 146) | ||
| 152 | -#define TARGET_NR_cacheflush (TARGET_NR_Linux + 147) | ||
| 153 | -#define TARGET_NR_cachectl (TARGET_NR_Linux + 148) | ||
| 154 | -#define TARGET_NR_sysmips (TARGET_NR_Linux + 149) | ||
| 155 | -#define TARGET_NR_unused150 (TARGET_NR_Linux + 150) | ||
| 156 | -#define TARGET_NR_getsid (TARGET_NR_Linux + 151) | ||
| 157 | -#define TARGET_NR_fdatasync (TARGET_NR_Linux + 152) | ||
| 158 | -#define TARGET_NR__sysctl (TARGET_NR_Linux + 153) | 151 | +#define TARGET_NR_writev (TARGET_NR_Linux + 146) |
| 152 | +#define TARGET_NR_cacheflush (TARGET_NR_Linux + 147) | ||
| 153 | +#define TARGET_NR_cachectl (TARGET_NR_Linux + 148) | ||
| 154 | +#define TARGET_NR_sysmips (TARGET_NR_Linux + 149) | ||
| 155 | +#define TARGET_NR_unused150 (TARGET_NR_Linux + 150) | ||
| 156 | +#define TARGET_NR_getsid (TARGET_NR_Linux + 151) | ||
| 157 | +#define TARGET_NR_fdatasync (TARGET_NR_Linux + 152) | ||
| 158 | +#define TARGET_NR__sysctl (TARGET_NR_Linux + 153) | ||
| 159 | #define TARGET_NR_mlock (TARGET_NR_Linux + 154) | 159 | #define TARGET_NR_mlock (TARGET_NR_Linux + 154) |
| 160 | -#define TARGET_NR_munlock (TARGET_NR_Linux + 155) | ||
| 161 | -#define TARGET_NR_mlockall (TARGET_NR_Linux + 156) | ||
| 162 | -#define TARGET_NR_munlockall (TARGET_NR_Linux + 157) | ||
| 163 | -#define TARGET_NR_sched_setparam (TARGET_NR_Linux + 158) | ||
| 164 | -#define TARGET_NR_sched_getparam (TARGET_NR_Linux + 159) | ||
| 165 | -#define TARGET_NR_sched_setscheduler (TARGET_NR_Linux + 160) | ||
| 166 | -#define TARGET_NR_sched_getscheduler (TARGET_NR_Linux + 161) | 160 | +#define TARGET_NR_munlock (TARGET_NR_Linux + 155) |
| 161 | +#define TARGET_NR_mlockall (TARGET_NR_Linux + 156) | ||
| 162 | +#define TARGET_NR_munlockall (TARGET_NR_Linux + 157) | ||
| 163 | +#define TARGET_NR_sched_setparam (TARGET_NR_Linux + 158) | ||
| 164 | +#define TARGET_NR_sched_getparam (TARGET_NR_Linux + 159) | ||
| 165 | +#define TARGET_NR_sched_setscheduler (TARGET_NR_Linux + 160) | ||
| 166 | +#define TARGET_NR_sched_getscheduler (TARGET_NR_Linux + 161) | ||
| 167 | #define TARGET_NR_sched_yield (TARGET_NR_Linux + 162) | 167 | #define TARGET_NR_sched_yield (TARGET_NR_Linux + 162) |
| 168 | #define TARGET_NR_sched_get_priority_max (TARGET_NR_Linux + 163) | 168 | #define TARGET_NR_sched_get_priority_max (TARGET_NR_Linux + 163) |
| 169 | #define TARGET_NR_sched_get_priority_min (TARGET_NR_Linux + 164) | 169 | #define TARGET_NR_sched_get_priority_min (TARGET_NR_Linux + 164) |
| 170 | #define TARGET_NR_sched_rr_get_interval (TARGET_NR_Linux + 165) | 170 | #define TARGET_NR_sched_rr_get_interval (TARGET_NR_Linux + 165) |
| 171 | -#define TARGET_NR_nanosleep (TARGET_NR_Linux + 166) | ||
| 172 | -#define TARGET_NR_mremap (TARGET_NR_Linux + 167) | ||
| 173 | -#define TARGET_NR_accept (TARGET_NR_Linux + 168) | 171 | +#define TARGET_NR_nanosleep (TARGET_NR_Linux + 166) |
| 172 | +#define TARGET_NR_mremap (TARGET_NR_Linux + 167) | ||
| 173 | +#define TARGET_NR_accept (TARGET_NR_Linux + 168) | ||
| 174 | #define TARGET_NR_bind (TARGET_NR_Linux + 169) | 174 | #define TARGET_NR_bind (TARGET_NR_Linux + 169) |
| 175 | -#define TARGET_NR_connect (TARGET_NR_Linux + 170) | 175 | +#define TARGET_NR_connect (TARGET_NR_Linux + 170) |
| 176 | #define TARGET_NR_getpeername (TARGET_NR_Linux + 171) | 176 | #define TARGET_NR_getpeername (TARGET_NR_Linux + 171) |
| 177 | #define TARGET_NR_getsockname (TARGET_NR_Linux + 172) | 177 | #define TARGET_NR_getsockname (TARGET_NR_Linux + 172) |
| 178 | -#define TARGET_NR_getsockopt (TARGET_NR_Linux + 173) | ||
| 179 | -#define TARGET_NR_listen (TARGET_NR_Linux + 174) | 178 | +#define TARGET_NR_getsockopt (TARGET_NR_Linux + 173) |
| 179 | +#define TARGET_NR_listen (TARGET_NR_Linux + 174) | ||
| 180 | #define TARGET_NR_recv (TARGET_NR_Linux + 175) | 180 | #define TARGET_NR_recv (TARGET_NR_Linux + 175) |
| 181 | -#define TARGET_NR_recvfrom (TARGET_NR_Linux + 176) | ||
| 182 | -#define TARGET_NR_recvmsg (TARGET_NR_Linux + 177) | 181 | +#define TARGET_NR_recvfrom (TARGET_NR_Linux + 176) |
| 182 | +#define TARGET_NR_recvmsg (TARGET_NR_Linux + 177) | ||
| 183 | #define TARGET_NR_send (TARGET_NR_Linux + 178) | 183 | #define TARGET_NR_send (TARGET_NR_Linux + 178) |
| 184 | -#define TARGET_NR_sendmsg (TARGET_NR_Linux + 179) | ||
| 185 | -#define TARGET_NR_sendto (TARGET_NR_Linux + 180) | ||
| 186 | -#define TARGET_NR_setsockopt (TARGET_NR_Linux + 181) | ||
| 187 | -#define TARGET_NR_shutdown (TARGET_NR_Linux + 182) | ||
| 188 | -#define TARGET_NR_socket (TARGET_NR_Linux + 183) | ||
| 189 | -#define TARGET_NR_socketpair (TARGET_NR_Linux + 184) | ||
| 190 | -#define TARGET_NR_setresuid32 (TARGET_NR_Linux + 185) | ||
| 191 | -#define TARGET_NR_getresuid32 (TARGET_NR_Linux + 186) | 184 | +#define TARGET_NR_sendmsg (TARGET_NR_Linux + 179) |
| 185 | +#define TARGET_NR_sendto (TARGET_NR_Linux + 180) | ||
| 186 | +#define TARGET_NR_setsockopt (TARGET_NR_Linux + 181) | ||
| 187 | +#define TARGET_NR_shutdown (TARGET_NR_Linux + 182) | ||
| 188 | +#define TARGET_NR_socket (TARGET_NR_Linux + 183) | ||
| 189 | +#define TARGET_NR_socketpair (TARGET_NR_Linux + 184) | ||
| 190 | +#define TARGET_NR_setresuid32 (TARGET_NR_Linux + 185) | ||
| 191 | +#define TARGET_NR_getresuid32 (TARGET_NR_Linux + 186) | ||
| 192 | #define TARGET_NR_query_module (TARGET_NR_Linux + 187) | 192 | #define TARGET_NR_query_module (TARGET_NR_Linux + 187) |
| 193 | #define TARGET_NR_poll (TARGET_NR_Linux + 188) | 193 | #define TARGET_NR_poll (TARGET_NR_Linux + 188) |
| 194 | -#define TARGET_NR_nfsservctl (TARGET_NR_Linux + 189) | ||
| 195 | -#define TARGET_NR_setresgid32 (TARGET_NR_Linux + 190) | ||
| 196 | -#define TARGET_NR_getresgid32 (TARGET_NR_Linux + 191) | 194 | +#define TARGET_NR_nfsservctl (TARGET_NR_Linux + 189) |
| 195 | +#define TARGET_NR_setresgid32 (TARGET_NR_Linux + 190) | ||
| 196 | +#define TARGET_NR_getresgid32 (TARGET_NR_Linux + 191) | ||
| 197 | #define TARGET_NR_prctl (TARGET_NR_Linux + 192) | 197 | #define TARGET_NR_prctl (TARGET_NR_Linux + 192) |
| 198 | #define TARGET_NR_rt_sigreturn (TARGET_NR_Linux + 193) | 198 | #define TARGET_NR_rt_sigreturn (TARGET_NR_Linux + 193) |
| 199 | #define TARGET_NR_rt_sigaction (TARGET_NR_Linux + 194) | 199 | #define TARGET_NR_rt_sigaction (TARGET_NR_Linux + 194) |
| 200 | -#define TARGET_NR_rt_sigprocmask (TARGET_NR_Linux + 195) | 200 | +#define TARGET_NR_rt_sigprocmask (TARGET_NR_Linux + 195) |
| 201 | #define TARGET_NR_rt_sigpending (TARGET_NR_Linux + 196) | 201 | #define TARGET_NR_rt_sigpending (TARGET_NR_Linux + 196) |
| 202 | -#define TARGET_NR_rt_sigtimedwait (TARGET_NR_Linux + 197) | ||
| 203 | -#define TARGET_NR_rt_sigqueueinfo (TARGET_NR_Linux + 198) | 202 | +#define TARGET_NR_rt_sigtimedwait (TARGET_NR_Linux + 197) |
| 203 | +#define TARGET_NR_rt_sigqueueinfo (TARGET_NR_Linux + 198) | ||
| 204 | #define TARGET_NR_rt_sigsuspend (TARGET_NR_Linux + 199) | 204 | #define TARGET_NR_rt_sigsuspend (TARGET_NR_Linux + 199) |
| 205 | -#define TARGET_NR_pread64 (TARGET_NR_Linux + 200) | ||
| 206 | -#define TARGET_NR_pwrite64 (TARGET_NR_Linux + 201) | ||
| 207 | -#define TARGET_NR_chown32 (TARGET_NR_Linux + 202) | ||
| 208 | -#define TARGET_NR_getcwd (TARGET_NR_Linux + 203) | ||
| 209 | -#define TARGET_NR_capget (TARGET_NR_Linux + 204) | ||
| 210 | -#define TARGET_NR_capset (TARGET_NR_Linux + 205) | 205 | +#define TARGET_NR_pread64 (TARGET_NR_Linux + 200) |
| 206 | +#define TARGET_NR_pwrite64 (TARGET_NR_Linux + 201) | ||
| 207 | +#define TARGET_NR_chown32 (TARGET_NR_Linux + 202) | ||
| 208 | +#define TARGET_NR_getcwd (TARGET_NR_Linux + 203) | ||
| 209 | +#define TARGET_NR_capget (TARGET_NR_Linux + 204) | ||
| 210 | +#define TARGET_NR_capset (TARGET_NR_Linux + 205) | ||
| 211 | #define TARGET_NR_sigaltstack (TARGET_NR_Linux + 206) | 211 | #define TARGET_NR_sigaltstack (TARGET_NR_Linux + 206) |
| 212 | -#define TARGET_NR_sendfile (TARGET_NR_Linux + 207) | ||
| 213 | -#define TARGET_NR_getpmsg (TARGET_NR_Linux + 208) | ||
| 214 | -#define TARGET_NR_putpmsg (TARGET_NR_Linux + 209) | 212 | +#define TARGET_NR_sendfile (TARGET_NR_Linux + 207) |
| 213 | +#define TARGET_NR_getpmsg (TARGET_NR_Linux + 208) | ||
| 214 | +#define TARGET_NR_putpmsg (TARGET_NR_Linux + 209) | ||
| 215 | #define TARGET_NR_mmap2 (TARGET_NR_Linux + 210) | 215 | #define TARGET_NR_mmap2 (TARGET_NR_Linux + 210) |
| 216 | -#define TARGET_NR_truncate64 (TARGET_NR_Linux + 211) | 216 | +#define TARGET_NR_truncate64 (TARGET_NR_Linux + 211) |
| 217 | #define TARGET_NR_ftruncate64 (TARGET_NR_Linux + 212) | 217 | #define TARGET_NR_ftruncate64 (TARGET_NR_Linux + 212) |
| 218 | -#define TARGET_NR_stat64 (TARGET_NR_Linux + 213) | ||
| 219 | -#define TARGET_NR_lstat64 (TARGET_NR_Linux + 214) | ||
| 220 | -#define TARGET_NR_fstat64 (TARGET_NR_Linux + 215) | ||
| 221 | -#define TARGET_NR_pivot_root (TARGET_NR_Linux + 216) | ||
| 222 | -#define TARGET_NR_mincore (TARGET_NR_Linux + 217) | ||
| 223 | -#define TARGET_NR_madvise (TARGET_NR_Linux + 218) | ||
| 224 | -#define TARGET_NR_getdents64 (TARGET_NR_Linux + 219) | ||
| 225 | -#define TARGET_NR_fcntl64 (TARGET_NR_Linux + 220) | 218 | +#define TARGET_NR_stat64 (TARGET_NR_Linux + 213) |
| 219 | +#define TARGET_NR_lstat64 (TARGET_NR_Linux + 214) | ||
| 220 | +#define TARGET_NR_fstat64 (TARGET_NR_Linux + 215) | ||
| 221 | +#define TARGET_NR_pivot_root (TARGET_NR_Linux + 216) | ||
| 222 | +#define TARGET_NR_mincore (TARGET_NR_Linux + 217) | ||
| 223 | +#define TARGET_NR_madvise (TARGET_NR_Linux + 218) | ||
| 224 | +#define TARGET_NR_getdents64 (TARGET_NR_Linux + 219) | ||
| 225 | +#define TARGET_NR_fcntl64 (TARGET_NR_Linux + 220) | ||
| 226 | #define TARGET_NR_reserved221 (TARGET_NR_Linux + 221) | 226 | #define TARGET_NR_reserved221 (TARGET_NR_Linux + 221) |
| 227 | -#define TARGET_NR_gettid (TARGET_NR_Linux + 222) | ||
| 228 | -#define TARGET_NR_readahead (TARGET_NR_Linux + 223) | ||
| 229 | -#define TARGET_NR_setxattr (TARGET_NR_Linux + 224) | ||
| 230 | -#define TARGET_NR_lsetxattr (TARGET_NR_Linux + 225) | ||
| 231 | -#define TARGET_NR_fsetxattr (TARGET_NR_Linux + 226) | ||
| 232 | -#define TARGET_NR_getxattr (TARGET_NR_Linux + 227) | ||
| 233 | -#define TARGET_NR_lgetxattr (TARGET_NR_Linux + 228) | ||
| 234 | -#define TARGET_NR_fgetxattr (TARGET_NR_Linux + 229) | ||
| 235 | -#define TARGET_NR_listxattr (TARGET_NR_Linux + 230) | ||
| 236 | -#define TARGET_NR_llistxattr (TARGET_NR_Linux + 231) | ||
| 237 | -#define TARGET_NR_flistxattr (TARGET_NR_Linux + 232) | 227 | +#define TARGET_NR_gettid (TARGET_NR_Linux + 222) |
| 228 | +#define TARGET_NR_readahead (TARGET_NR_Linux + 223) | ||
| 229 | +#define TARGET_NR_setxattr (TARGET_NR_Linux + 224) | ||
| 230 | +#define TARGET_NR_lsetxattr (TARGET_NR_Linux + 225) | ||
| 231 | +#define TARGET_NR_fsetxattr (TARGET_NR_Linux + 226) | ||
| 232 | +#define TARGET_NR_getxattr (TARGET_NR_Linux + 227) | ||
| 233 | +#define TARGET_NR_lgetxattr (TARGET_NR_Linux + 228) | ||
| 234 | +#define TARGET_NR_fgetxattr (TARGET_NR_Linux + 229) | ||
| 235 | +#define TARGET_NR_listxattr (TARGET_NR_Linux + 230) | ||
| 236 | +#define TARGET_NR_llistxattr (TARGET_NR_Linux + 231) | ||
| 237 | +#define TARGET_NR_flistxattr (TARGET_NR_Linux + 232) | ||
| 238 | #define TARGET_NR_removexattr (TARGET_NR_Linux + 233) | 238 | #define TARGET_NR_removexattr (TARGET_NR_Linux + 233) |
| 239 | #define TARGET_NR_lremovexattr (TARGET_NR_Linux + 234) | 239 | #define TARGET_NR_lremovexattr (TARGET_NR_Linux + 234) |
| 240 | #define TARGET_NR_fremovexattr (TARGET_NR_Linux + 235) | 240 | #define TARGET_NR_fremovexattr (TARGET_NR_Linux + 235) |
| 241 | #define TARGET_NR_tkill (TARGET_NR_Linux + 236) | 241 | #define TARGET_NR_tkill (TARGET_NR_Linux + 236) |
| 242 | -#define TARGET_NR_sendfile64 (TARGET_NR_Linux + 237) | 242 | +#define TARGET_NR_sendfile64 (TARGET_NR_Linux + 237) |
| 243 | #define TARGET_NR_futex (TARGET_NR_Linux + 238) | 243 | #define TARGET_NR_futex (TARGET_NR_Linux + 238) |
| 244 | -#define TARGET_NR_sched_setaffinity (TARGET_NR_Linux + 239) | ||
| 245 | -#define TARGET_NR_sched_getaffinity (TARGET_NR_Linux + 240) | ||
| 246 | -#define TARGET_NR_io_setup (TARGET_NR_Linux + 241) | ||
| 247 | -#define TARGET_NR_io_destroy (TARGET_NR_Linux + 242) | 244 | +#define TARGET_NR_sched_setaffinity (TARGET_NR_Linux + 239) |
| 245 | +#define TARGET_NR_sched_getaffinity (TARGET_NR_Linux + 240) | ||
| 246 | +#define TARGET_NR_io_setup (TARGET_NR_Linux + 241) | ||
| 247 | +#define TARGET_NR_io_destroy (TARGET_NR_Linux + 242) | ||
| 248 | #define TARGET_NR_io_getevents (TARGET_NR_Linux + 243) | 248 | #define TARGET_NR_io_getevents (TARGET_NR_Linux + 243) |
| 249 | -#define TARGET_NR_io_submit (TARGET_NR_Linux + 244) | ||
| 250 | -#define TARGET_NR_io_cancel (TARGET_NR_Linux + 245) | ||
| 251 | -#define TARGET_NR_exit_group (TARGET_NR_Linux + 246) | ||
| 252 | -#define TARGET_NR_lookup_dcookie (TARGET_NR_Linux + 247) | 249 | +#define TARGET_NR_io_submit (TARGET_NR_Linux + 244) |
| 250 | +#define TARGET_NR_io_cancel (TARGET_NR_Linux + 245) | ||
| 251 | +#define TARGET_NR_exit_group (TARGET_NR_Linux + 246) | ||
| 252 | +#define TARGET_NR_lookup_dcookie (TARGET_NR_Linux + 247) | ||
| 253 | #define TARGET_NR_epoll_create (TARGET_NR_Linux + 248) | 253 | #define TARGET_NR_epoll_create (TARGET_NR_Linux + 248) |
| 254 | -#define TARGET_NR_epoll_ctl (TARGET_NR_Linux + 249) | ||
| 255 | -#define TARGET_NR_epoll_wait (TARGET_NR_Linux + 250) | ||
| 256 | -#define TARGET_NR_remap_file_pages (TARGET_NR_Linux + 251) | ||
| 257 | -#define TARGET_NR_set_tid_address (TARGET_NR_Linux + 252) | ||
| 258 | -#define TARGET_NR_restart_syscall (TARGET_NR_Linux + 253) | ||
| 259 | -#define TARGET_NR_fadvise64 (TARGET_NR_Linux + 254) | ||
| 260 | -#define TARGET_NR_statfs64 (TARGET_NR_Linux + 255) | ||
| 261 | -#define TARGET_NR_fstatfs64 (TARGET_NR_Linux + 256) | 254 | +#define TARGET_NR_epoll_ctl (TARGET_NR_Linux + 249) |
| 255 | +#define TARGET_NR_epoll_wait (TARGET_NR_Linux + 250) | ||
| 256 | +#define TARGET_NR_remap_file_pages (TARGET_NR_Linux + 251) | ||
| 257 | +#define TARGET_NR_set_tid_address (TARGET_NR_Linux + 252) | ||
| 258 | +#define TARGET_NR_restart_syscall (TARGET_NR_Linux + 253) | ||
| 259 | +#define TARGET_NR_fadvise64 (TARGET_NR_Linux + 254) | ||
| 260 | +#define TARGET_NR_statfs64 (TARGET_NR_Linux + 255) | ||
| 261 | +#define TARGET_NR_fstatfs64 (TARGET_NR_Linux + 256) | ||
| 262 | #define TARGET_NR_timer_create (TARGET_NR_Linux + 257) | 262 | #define TARGET_NR_timer_create (TARGET_NR_Linux + 257) |
| 263 | #define TARGET_NR_timer_settime (TARGET_NR_Linux + 258) | 263 | #define TARGET_NR_timer_settime (TARGET_NR_Linux + 258) |
| 264 | #define TARGET_NR_timer_gettime (TARGET_NR_Linux + 259) | 264 | #define TARGET_NR_timer_gettime (TARGET_NR_Linux + 259) |
| 265 | -#define TARGET_NR_timer_getoverrun (TARGET_NR_Linux + 260) | 265 | +#define TARGET_NR_timer_getoverrun (TARGET_NR_Linux + 260) |
| 266 | #define TARGET_NR_timer_delete (TARGET_NR_Linux + 261) | 266 | #define TARGET_NR_timer_delete (TARGET_NR_Linux + 261) |
| 267 | #define TARGET_NR_clock_settime (TARGET_NR_Linux + 262) | 267 | #define TARGET_NR_clock_settime (TARGET_NR_Linux + 262) |
| 268 | #define TARGET_NR_clock_gettime (TARGET_NR_Linux + 263) | 268 | #define TARGET_NR_clock_gettime (TARGET_NR_Linux + 263) |
| 269 | #define TARGET_NR_clock_getres (TARGET_NR_Linux + 264) | 269 | #define TARGET_NR_clock_getres (TARGET_NR_Linux + 264) |
| 270 | -#define TARGET_NR_clock_nanosleep (TARGET_NR_Linux + 265) | ||
| 271 | -#define TARGET_NR_tgkill (TARGET_NR_Linux + 266) | ||
| 272 | -#define TARGET_NR_utimes (TARGET_NR_Linux + 267) | 270 | +#define TARGET_NR_clock_nanosleep (TARGET_NR_Linux + 265) |
| 271 | +#define TARGET_NR_tgkill (TARGET_NR_Linux + 266) | ||
| 272 | +#define TARGET_NR_utimes (TARGET_NR_Linux + 267) | ||
| 273 | #define TARGET_NR_mbind (TARGET_NR_Linux + 268) | 273 | #define TARGET_NR_mbind (TARGET_NR_Linux + 268) |
| 274 | #define TARGET_NR_get_mempolicy (TARGET_NR_Linux + 269) | 274 | #define TARGET_NR_get_mempolicy (TARGET_NR_Linux + 269) |
| 275 | #define TARGET_NR_set_mempolicy (TARGET_NR_Linux + 270) | 275 | #define TARGET_NR_set_mempolicy (TARGET_NR_Linux + 270) |
| 276 | -#define TARGET_NR_mq_open (TARGET_NR_Linux + 271) | ||
| 277 | -#define TARGET_NR_mq_unlink (TARGET_NR_Linux + 272) | 276 | +#define TARGET_NR_mq_open (TARGET_NR_Linux + 271) |
| 277 | +#define TARGET_NR_mq_unlink (TARGET_NR_Linux + 272) | ||
| 278 | #define TARGET_NR_mq_timedsend (TARGET_NR_Linux + 273) | 278 | #define TARGET_NR_mq_timedsend (TARGET_NR_Linux + 273) |
| 279 | -#define TARGET_NR_mq_timedreceive (TARGET_NR_Linux + 274) | ||
| 280 | -#define TARGET_NR_mq_notify (TARGET_NR_Linux + 275) | 279 | +#define TARGET_NR_mq_timedreceive (TARGET_NR_Linux + 274) |
| 280 | +#define TARGET_NR_mq_notify (TARGET_NR_Linux + 275) | ||
| 281 | #define TARGET_NR_mq_getsetattr (TARGET_NR_Linux + 276) | 281 | #define TARGET_NR_mq_getsetattr (TARGET_NR_Linux + 276) |
| 282 | -#define TARGET_NR_vserver (TARGET_NR_Linux + 277) | ||
| 283 | -#define TARGET_NR_waitid (TARGET_NR_Linux + 278) | ||
| 284 | -/* #define TARGET_NR_sys_setaltroot (TARGET_NR_Linux + 279) */ | ||
| 285 | -#define TARGET_NR_add_key (TARGET_NR_Linux + 280) | 282 | +#define TARGET_NR_vserver (TARGET_NR_Linux + 277) |
| 283 | +#define TARGET_NR_waitid (TARGET_NR_Linux + 278) | ||
| 284 | +/* #define TARGET_NR_sys_setaltroot (TARGET_NR_Linux + 279) */ | ||
| 285 | +#define TARGET_NR_add_key (TARGET_NR_Linux + 280) | ||
| 286 | #define TARGET_NR_request_key (TARGET_NR_Linux + 281) | 286 | #define TARGET_NR_request_key (TARGET_NR_Linux + 281) |
| 287 | -#define TARGET_NR_keyctl (TARGET_NR_Linux + 282) | 287 | +#define TARGET_NR_keyctl (TARGET_NR_Linux + 282) |
| 288 | #define TARGET_NR_set_thread_area (TARGET_NR_Linux + 283) | 288 | #define TARGET_NR_set_thread_area (TARGET_NR_Linux + 283) |
| 289 | +#define TARGET_NR_inotify_init (TARGET_NR_Linux + 284) | ||
| 290 | +#define TARGET_NR_inotify_add_watch (TARGET_NR_Linux + 285) | ||
| 291 | +#define TARGET_NR_inotify_rm_watch (TARGET_NR_Linux + 286) | ||
| 292 | +#define TARGET_NR_migrate_pages (TARGET_NR_Linux + 287) | ||
| 293 | +#define TARGET_NR_openat (TARGET_NR_Linux + 288) | ||
| 294 | +#define TARGET_NR_mkdirat (TARGET_NR_Linux + 289) | ||
| 295 | +#define TARGET_NR_mknodat (TARGET_NR_Linux + 290) | ||
| 296 | +#define TARGET_NR_fchownat (TARGET_NR_Linux + 291) | ||
| 297 | +#define TARGET_NR_futimesat (TARGET_NR_Linux + 292) | ||
| 298 | +#define TARGET_NR_fstatat64 (TARGET_NR_Linux + 293) | ||
| 299 | +#define TARGET_NR_unlinkat (TARGET_NR_Linux + 294) | ||
| 300 | +#define TARGET_NR_renameat (TARGET_NR_Linux + 295) | ||
| 301 | +#define TARGET_NR_linkat (TARGET_NR_Linux + 296) | ||
| 302 | +#define TARGET_NR_symlinkat (TARGET_NR_Linux + 297) | ||
| 303 | +#define TARGET_NR_readlinkat (TARGET_NR_Linux + 298) | ||
| 304 | +#define TARGET_NR_fchmodat (TARGET_NR_Linux + 299) | ||
| 305 | +#define TARGET_NR_faccessat (TARGET_NR_Linux + 300) | ||
| 306 | +#define TARGET_NR_pselect6 (TARGET_NR_Linux + 301) | ||
| 307 | +#define TARGET_NR_ppoll (TARGET_NR_Linux + 302) | ||
| 308 | +#define TARGET_NR_unshare (TARGET_NR_Linux + 303) | ||
| 309 | +#define TARGET_NR_splice (TARGET_NR_Linux + 304) | ||
| 310 | +#define TARGET_NR_sync_file_range (TARGET_NR_Linux + 305) | ||
| 311 | +#define TARGET_NR_tee (TARGET_NR_Linux + 306) | ||
| 312 | +#define TARGET_NR_vmsplice (TARGET_NR_Linux + 307) | ||
| 313 | +#define TARGET_NR_move_pages (TARGET_NR_Linux + 308) | ||
| 314 | +#define TARGET_NR_set_robust_list (TARGET_NR_Linux + 309) | ||
| 315 | +#define TARGET_NR_get_robust_list (TARGET_NR_Linux + 310) | ||
| 316 | +#define TARGET_NR_kexec_load (TARGET_NR_Linux + 311) | ||
| 317 | +#define TARGET_NR_getcpu (TARGET_NR_Linux + 312) | ||
| 318 | +#define TARGET_NR_epoll_pwait (TARGET_NR_Linux + 313) | ||
| 319 | +#define TARGET_NR_ioprio_set (TARGET_NR_Linux + 314) | ||
| 320 | +#define TARGET_NR_ioprio_get (TARGET_NR_Linux + 315) |
linux-user/signal.c
| @@ -432,17 +432,17 @@ int do_sigaction(int sig, const struct target_sigaction *act, | @@ -432,17 +432,17 @@ int do_sigaction(int sig, const struct target_sigaction *act, | ||
| 432 | if (oact) { | 432 | if (oact) { |
| 433 | oact->_sa_handler = tswapl(k->sa._sa_handler); | 433 | oact->_sa_handler = tswapl(k->sa._sa_handler); |
| 434 | oact->sa_flags = tswapl(k->sa.sa_flags); | 434 | oact->sa_flags = tswapl(k->sa.sa_flags); |
| 435 | - #if !defined(TARGET_MIPS) | ||
| 436 | - oact->sa_restorer = tswapl(k->sa.sa_restorer); | ||
| 437 | - #endif | 435 | +#if !defined(TARGET_MIPS) |
| 436 | + oact->sa_restorer = tswapl(k->sa.sa_restorer); | ||
| 437 | +#endif | ||
| 438 | oact->sa_mask = k->sa.sa_mask; | 438 | oact->sa_mask = k->sa.sa_mask; |
| 439 | } | 439 | } |
| 440 | if (act) { | 440 | if (act) { |
| 441 | k->sa._sa_handler = tswapl(act->_sa_handler); | 441 | k->sa._sa_handler = tswapl(act->_sa_handler); |
| 442 | k->sa.sa_flags = tswapl(act->sa_flags); | 442 | k->sa.sa_flags = tswapl(act->sa_flags); |
| 443 | - #if !defined(TARGET_MIPS) | ||
| 444 | - k->sa.sa_restorer = tswapl(act->sa_restorer); | ||
| 445 | - #endif | 443 | +#if !defined(TARGET_MIPS) |
| 444 | + k->sa.sa_restorer = tswapl(act->sa_restorer); | ||
| 445 | +#endif | ||
| 446 | k->sa.sa_mask = act->sa_mask; | 446 | k->sa.sa_mask = act->sa_mask; |
| 447 | 447 | ||
| 448 | /* we update the host linux signal state */ | 448 | /* we update the host linux signal state */ |
| @@ -1684,8 +1684,8 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1684,8 +1684,8 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1684 | 1684 | ||
| 1685 | err |= __put_user(regs->PC, &sc->sc_pc); | 1685 | err |= __put_user(regs->PC, &sc->sc_pc); |
| 1686 | 1686 | ||
| 1687 | - #define save_gp_reg(i) do { \ | ||
| 1688 | - err |= __put_user(regs->gpr[i], &sc->sc_regs[i]); \ | 1687 | +#define save_gp_reg(i) do { \ |
| 1688 | + err |= __put_user(regs->gpr[i], &sc->sc_regs[i]); \ | ||
| 1689 | } while(0) | 1689 | } while(0) |
| 1690 | __put_user(0, &sc->sc_regs[0]); save_gp_reg(1); save_gp_reg(2); | 1690 | __put_user(0, &sc->sc_regs[0]); save_gp_reg(1); save_gp_reg(2); |
| 1691 | save_gp_reg(3); save_gp_reg(4); save_gp_reg(5); save_gp_reg(6); | 1691 | save_gp_reg(3); save_gp_reg(4); save_gp_reg(5); save_gp_reg(6); |
| @@ -1696,7 +1696,7 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1696,7 +1696,7 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1696 | save_gp_reg(23); save_gp_reg(24); save_gp_reg(25); save_gp_reg(26); | 1696 | save_gp_reg(23); save_gp_reg(24); save_gp_reg(25); save_gp_reg(26); |
| 1697 | save_gp_reg(27); save_gp_reg(28); save_gp_reg(29); save_gp_reg(30); | 1697 | save_gp_reg(27); save_gp_reg(28); save_gp_reg(29); save_gp_reg(30); |
| 1698 | save_gp_reg(31); | 1698 | save_gp_reg(31); |
| 1699 | - #undef save_gp_reg | 1699 | +#undef save_gp_reg |
| 1700 | 1700 | ||
| 1701 | err |= __put_user(regs->HI, &sc->sc_mdhi); | 1701 | err |= __put_user(regs->HI, &sc->sc_mdhi); |
| 1702 | err |= __put_user(regs->LO, &sc->sc_mdlo); | 1702 | err |= __put_user(regs->LO, &sc->sc_mdlo); |
| @@ -1713,7 +1713,7 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1713,7 +1713,7 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1713 | err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); | 1713 | err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); |
| 1714 | } | 1714 | } |
| 1715 | /* same with 64 bit */ | 1715 | /* same with 64 bit */ |
| 1716 | - #ifdef CONFIG_64BIT | 1716 | +#ifdef CONFIG_64BIT |
| 1717 | err |= __put_user(regs->hi, &sc->sc_hi[0]); | 1717 | err |= __put_user(regs->hi, &sc->sc_hi[0]); |
| 1718 | err |= __put_user(regs->lo, &sc->sc_lo[0]); | 1718 | err |= __put_user(regs->lo, &sc->sc_lo[0]); |
| 1719 | if (cpu_has_dsp) { | 1719 | if (cpu_has_dsp) { |
| @@ -1725,13 +1725,10 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1725,13 +1725,10 @@ setup_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1725 | err |= __put_user(mflo3(), &sc->sc_lo[3]); | 1725 | err |= __put_user(mflo3(), &sc->sc_lo[3]); |
| 1726 | err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); | 1726 | err |= __put_user(rddsp(DSP_MASK), &sc->sc_dsp); |
| 1727 | } | 1727 | } |
| 1728 | - #endif | ||
| 1729 | - | ||
| 1730 | - | ||
| 1731 | - #endif | ||
| 1732 | - | 1728 | +#endif |
| 1729 | +#endif | ||
| 1733 | 1730 | ||
| 1734 | - #if 0 | 1731 | +#if 0 |
| 1735 | err |= __put_user(!!used_math(), &sc->sc_used_math); | 1732 | err |= __put_user(!!used_math(), &sc->sc_used_math); |
| 1736 | 1733 | ||
| 1737 | if (!used_math()) | 1734 | if (!used_math()) |
| @@ -1765,7 +1762,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1765,7 +1762,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1765 | err |= __get_user(regs->HI, &sc->sc_mdhi); | 1762 | err |= __get_user(regs->HI, &sc->sc_mdhi); |
| 1766 | err |= __get_user(regs->LO, &sc->sc_mdlo); | 1763 | err |= __get_user(regs->LO, &sc->sc_mdlo); |
| 1767 | 1764 | ||
| 1768 | - #define restore_gp_reg(i) do { \ | 1765 | +#define restore_gp_reg(i) do { \ |
| 1769 | err |= __get_user(regs->gpr[i], &sc->sc_regs[i]); \ | 1766 | err |= __get_user(regs->gpr[i], &sc->sc_regs[i]); \ |
| 1770 | } while(0) | 1767 | } while(0) |
| 1771 | restore_gp_reg( 1); restore_gp_reg( 2); restore_gp_reg( 3); | 1768 | restore_gp_reg( 1); restore_gp_reg( 2); restore_gp_reg( 3); |
| @@ -1779,7 +1776,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1779,7 +1776,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1779 | restore_gp_reg(25); restore_gp_reg(26); restore_gp_reg(27); | 1776 | restore_gp_reg(25); restore_gp_reg(26); restore_gp_reg(27); |
| 1780 | restore_gp_reg(28); restore_gp_reg(29); restore_gp_reg(30); | 1777 | restore_gp_reg(28); restore_gp_reg(29); restore_gp_reg(30); |
| 1781 | restore_gp_reg(31); | 1778 | restore_gp_reg(31); |
| 1782 | - #undef restore_gp_reg | 1779 | +#undef restore_gp_reg |
| 1783 | 1780 | ||
| 1784 | #if 0 | 1781 | #if 0 |
| 1785 | if (cpu_has_dsp) { | 1782 | if (cpu_has_dsp) { |
| @@ -1791,7 +1788,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1791,7 +1788,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1791 | err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg); | 1788 | err |= __get_user(treg, &sc->sc_lo3); mtlo3(treg); |
| 1792 | err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); | 1789 | err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); |
| 1793 | } | 1790 | } |
| 1794 | - #ifdef CONFIG_64BIT | 1791 | +#ifdef CONFIG_64BIT |
| 1795 | err |= __get_user(regs->hi, &sc->sc_hi[0]); | 1792 | err |= __get_user(regs->hi, &sc->sc_hi[0]); |
| 1796 | err |= __get_user(regs->lo, &sc->sc_lo[0]); | 1793 | err |= __get_user(regs->lo, &sc->sc_lo[0]); |
| 1797 | if (cpu_has_dsp) { | 1794 | if (cpu_has_dsp) { |
| @@ -1803,7 +1800,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | @@ -1803,7 +1800,7 @@ restore_sigcontext(CPUState *regs, struct target_sigcontext *sc) | ||
| 1803 | err |= __get_user(treg, &sc->sc_lo[3]); mthi3(treg); | 1800 | err |= __get_user(treg, &sc->sc_lo[3]); mthi3(treg); |
| 1804 | err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); | 1801 | err |= __get_user(treg, &sc->sc_dsp); wrdsp(treg, DSP_MASK); |
| 1805 | } | 1802 | } |
| 1806 | - #endif | 1803 | +#endif |
| 1807 | 1804 | ||
| 1808 | err |= __get_user(used_math, &sc->sc_used_math); | 1805 | err |= __get_user(used_math, &sc->sc_used_math); |
| 1809 | conditional_used_math(used_math); | 1806 | conditional_used_math(used_math); |
| @@ -1898,51 +1895,50 @@ give_sigsegv: | @@ -1898,51 +1895,50 @@ give_sigsegv: | ||
| 1898 | 1895 | ||
| 1899 | long do_sigreturn(CPUState *regs) | 1896 | long do_sigreturn(CPUState *regs) |
| 1900 | { | 1897 | { |
| 1901 | - struct sigframe *frame; | ||
| 1902 | - sigset_t blocked; | ||
| 1903 | - target_sigset_t target_set; | ||
| 1904 | - int i; | 1898 | + struct sigframe *frame; |
| 1899 | + sigset_t blocked; | ||
| 1900 | + target_sigset_t target_set; | ||
| 1901 | + int i; | ||
| 1905 | 1902 | ||
| 1906 | #if defined(DEBUG_SIGNAL) | 1903 | #if defined(DEBUG_SIGNAL) |
| 1907 | - fprintf(stderr, "do_sigreturn\n"); | 1904 | + fprintf(stderr, "do_sigreturn\n"); |
| 1908 | #endif | 1905 | #endif |
| 1909 | - frame = (struct sigframe *) regs->gpr[29]; | ||
| 1910 | - if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | 1906 | + frame = (struct sigframe *) regs->gpr[29]; |
| 1907 | + if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) | ||
| 1911 | goto badframe; | 1908 | goto badframe; |
| 1912 | 1909 | ||
| 1913 | - for(i = 0; i < TARGET_NSIG_WORDS; i++) { | 1910 | + for(i = 0; i < TARGET_NSIG_WORDS; i++) { |
| 1914 | if(__get_user(target_set.sig[i], &frame->sf_mask.sig[i])) | 1911 | if(__get_user(target_set.sig[i], &frame->sf_mask.sig[i])) |
| 1915 | goto badframe; | 1912 | goto badframe; |
| 1916 | - } | 1913 | + } |
| 1917 | 1914 | ||
| 1918 | - target_to_host_sigset_internal(&blocked, &target_set); | ||
| 1919 | - sigprocmask(SIG_SETMASK, &blocked, NULL); | 1915 | + target_to_host_sigset_internal(&blocked, &target_set); |
| 1916 | + sigprocmask(SIG_SETMASK, &blocked, NULL); | ||
| 1920 | 1917 | ||
| 1921 | - if (restore_sigcontext(regs, &frame->sf_sc)) | 1918 | + if (restore_sigcontext(regs, &frame->sf_sc)) |
| 1922 | goto badframe; | 1919 | goto badframe; |
| 1923 | 1920 | ||
| 1924 | #if 0 | 1921 | #if 0 |
| 1925 | - /* | ||
| 1926 | - * Don't let your children do this ... | ||
| 1927 | - */ | ||
| 1928 | - __asm__ __volatile__( | 1922 | + /* |
| 1923 | + * Don't let your children do this ... | ||
| 1924 | + */ | ||
| 1925 | + __asm__ __volatile__( | ||
| 1929 | "move\t$29, %0\n\t" | 1926 | "move\t$29, %0\n\t" |
| 1930 | "j\tsyscall_exit" | 1927 | "j\tsyscall_exit" |
| 1931 | :/* no outputs */ | 1928 | :/* no outputs */ |
| 1932 | :"r" (®s)); | 1929 | :"r" (®s)); |
| 1933 | - /* Unreached */ | 1930 | + /* Unreached */ |
| 1934 | #endif | 1931 | #endif |
| 1935 | 1932 | ||
| 1936 | regs->PC = regs->CP0_EPC; | 1933 | regs->PC = regs->CP0_EPC; |
| 1937 | - /* I am not sure this is right, but it seems to work | 1934 | + /* I am not sure this is right, but it seems to work |
| 1938 | * maybe a problem with nested signals ? */ | 1935 | * maybe a problem with nested signals ? */ |
| 1939 | regs->CP0_EPC = 0; | 1936 | regs->CP0_EPC = 0; |
| 1940 | return 0; | 1937 | return 0; |
| 1941 | 1938 | ||
| 1942 | badframe: | 1939 | badframe: |
| 1943 | - force_sig(TARGET_SIGSEGV/*, current*/); | ||
| 1944 | - return 0; | ||
| 1945 | - | 1940 | + force_sig(TARGET_SIGSEGV/*, current*/); |
| 1941 | + return 0; | ||
| 1946 | } | 1942 | } |
| 1947 | 1943 | ||
| 1948 | static void setup_rt_frame(int sig, struct emulated_sigaction *ka, | 1944 | static void setup_rt_frame(int sig, struct emulated_sigaction *ka, |
| @@ -2070,5 +2066,3 @@ void process_pending_signals(void *cpu_env) | @@ -2070,5 +2066,3 @@ void process_pending_signals(void *cpu_env) | ||
| 2070 | if (q != &k->info) | 2066 | if (q != &k->info) |
| 2071 | free_sigqueue(q); | 2067 | free_sigqueue(q); |
| 2072 | } | 2068 | } |
| 2073 | - | ||
| 2074 | - |
linux-user/syscall.c
| @@ -1750,7 +1750,9 @@ int do_fork(CPUState *env, unsigned int flags, unsigned long newsp) | @@ -1750,7 +1750,9 @@ int do_fork(CPUState *env, unsigned int flags, unsigned long newsp) | ||
| 1750 | new_env->dregs[0] = 0; | 1750 | new_env->dregs[0] = 0; |
| 1751 | /* ??? is this sufficient? */ | 1751 | /* ??? is this sufficient? */ |
| 1752 | #elif defined(TARGET_MIPS) | 1752 | #elif defined(TARGET_MIPS) |
| 1753 | - printf ("HELPME: %s:%d\n", __FILE__, __LINE__); | 1753 | + if (!newsp) |
| 1754 | + newsp = env->gpr[29]; | ||
| 1755 | + new_env->gpr[29] = newsp; | ||
| 1754 | #elif defined(TARGET_PPC) | 1756 | #elif defined(TARGET_PPC) |
| 1755 | if (!newsp) | 1757 | if (!newsp) |
| 1756 | newsp = env->gpr[1]; | 1758 | newsp = env->gpr[1]; |
| @@ -2429,7 +2431,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | @@ -2429,7 +2431,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | ||
| 2429 | #ifdef TARGET_NR_sigaction | 2431 | #ifdef TARGET_NR_sigaction |
| 2430 | case TARGET_NR_sigaction: | 2432 | case TARGET_NR_sigaction: |
| 2431 | { | 2433 | { |
| 2432 | - #if !defined(TARGET_MIPS) | 2434 | +#if !defined(TARGET_MIPS) |
| 2433 | struct target_old_sigaction *old_act; | 2435 | struct target_old_sigaction *old_act; |
| 2434 | struct target_sigaction act, oact, *pact; | 2436 | struct target_sigaction act, oact, *pact; |
| 2435 | if (arg2) { | 2437 | if (arg2) { |
| @@ -2452,7 +2454,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | @@ -2452,7 +2454,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | ||
| 2452 | old_act->sa_restorer = oact.sa_restorer; | 2454 | old_act->sa_restorer = oact.sa_restorer; |
| 2453 | unlock_user_struct(old_act, arg3, 1); | 2455 | unlock_user_struct(old_act, arg3, 1); |
| 2454 | } | 2456 | } |
| 2455 | - #else | 2457 | +#else |
| 2456 | struct target_sigaction act, oact, *pact, *old_act; | 2458 | struct target_sigaction act, oact, *pact, *old_act; |
| 2457 | 2459 | ||
| 2458 | if (arg2) { | 2460 | if (arg2) { |
| @@ -2478,7 +2480,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | @@ -2478,7 +2480,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, | ||
| 2478 | old_act->sa_mask.sig[3] = 0; | 2480 | old_act->sa_mask.sig[3] = 0; |
| 2479 | unlock_user_struct(old_act, arg3, 1); | 2481 | unlock_user_struct(old_act, arg3, 1); |
| 2480 | } | 2482 | } |
| 2481 | - #endif | 2483 | +#endif |
| 2482 | } | 2484 | } |
| 2483 | break; | 2485 | break; |
| 2484 | #endif | 2486 | #endif |
target-mips/cpu.h
| @@ -372,5 +372,6 @@ enum { | @@ -372,5 +372,6 @@ enum { | ||
| 372 | int cpu_mips_exec(CPUMIPSState *s); | 372 | int cpu_mips_exec(CPUMIPSState *s); |
| 373 | CPUMIPSState *cpu_mips_init(void); | 373 | CPUMIPSState *cpu_mips_init(void); |
| 374 | uint32_t cpu_mips_get_clock (void); | 374 | uint32_t cpu_mips_get_clock (void); |
| 375 | +int cpu_mips_signal_handler(int host_signum, void *pinfo, void *puc); | ||
| 375 | 376 | ||
| 376 | #endif /* !defined (__MIPS_CPU_H__) */ | 377 | #endif /* !defined (__MIPS_CPU_H__) */ |