Commit e5febef5f1811dfd59aa197aad83e96db26a9516

Authored by ths
1 parent 2053152b

Conditionalize more syscall implementations, by Mike Frysinger.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2576 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 62 additions and 2 deletions
linux-user/syscall.c
@@ -2057,6 +2057,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2057,6 +2057,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2057 case TARGET_NR_fork: 2057 case TARGET_NR_fork:
2058 ret = get_errno(do_fork(cpu_env, SIGCHLD, 0)); 2058 ret = get_errno(do_fork(cpu_env, SIGCHLD, 0));
2059 break; 2059 break;
  2060 +#ifdef TARGET_NR_waitpid
2060 case TARGET_NR_waitpid: 2061 case TARGET_NR_waitpid:
2061 { 2062 {
2062 int status; 2063 int status;
@@ -2065,6 +2066,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2065,6 +2066,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2065 tput32(arg2, status); 2066 tput32(arg2, status);
2066 } 2067 }
2067 break; 2068 break;
  2069 +#endif
2068 case TARGET_NR_creat: 2070 case TARGET_NR_creat:
2069 p = lock_user_string(arg1); 2071 p = lock_user_string(arg1);
2070 ret = get_errno(creat(p, arg2)); 2072 ret = get_errno(creat(p, arg2));
@@ -2193,11 +2195,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2193,11 +2195,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2193 unlock_user(p3, arg3, 0); 2195 unlock_user(p3, arg3, 0);
2194 break; 2196 break;
2195 } 2197 }
  2198 +#ifdef TARGET_NR_umount
2196 case TARGET_NR_umount: 2199 case TARGET_NR_umount:
2197 p = lock_user_string(arg1); 2200 p = lock_user_string(arg1);
2198 ret = get_errno(umount(p)); 2201 ret = get_errno(umount(p));
2199 unlock_user(p, arg1, 0); 2202 unlock_user(p, arg1, 0);
2200 break; 2203 break;
  2204 +#endif
2201 case TARGET_NR_stime: 2205 case TARGET_NR_stime:
2202 { 2206 {
2203 time_t host_time; 2207 time_t host_time;
@@ -2217,6 +2221,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2217,6 +2221,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2217 case TARGET_NR_pause: 2221 case TARGET_NR_pause:
2218 ret = get_errno(pause()); 2222 ret = get_errno(pause());
2219 break; 2223 break;
  2224 +#ifdef TARGET_NR_utime
2220 case TARGET_NR_utime: 2225 case TARGET_NR_utime:
2221 { 2226 {
2222 struct utimbuf tbuf, *host_tbuf; 2227 struct utimbuf tbuf, *host_tbuf;
@@ -2235,6 +2240,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2235,6 +2240,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2235 unlock_user(p, arg1, 0); 2240 unlock_user(p, arg1, 0);
2236 } 2241 }
2237 break; 2242 break;
  2243 +#endif
2238 case TARGET_NR_utimes: 2244 case TARGET_NR_utimes:
2239 { 2245 {
2240 struct timeval *tvp, tv[2]; 2246 struct timeval *tvp, tv[2];
@@ -2331,9 +2337,10 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2331,9 +2337,10 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2331 case TARGET_NR_prof: 2337 case TARGET_NR_prof:
2332 goto unimplemented; 2338 goto unimplemented;
2333 #endif 2339 #endif
  2340 +#ifdef TARGET_NR_signal
2334 case TARGET_NR_signal: 2341 case TARGET_NR_signal:
2335 goto unimplemented; 2342 goto unimplemented;
2336 - 2343 +#endif
2337 case TARGET_NR_acct: 2344 case TARGET_NR_acct:
2338 p = lock_user_string(arg1); 2345 p = lock_user_string(arg1);
2339 ret = get_errno(acct(path(p))); 2346 ret = get_errno(acct(path(p)));
@@ -2391,6 +2398,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2391,6 +2398,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2391 case TARGET_NR_setsid: 2398 case TARGET_NR_setsid:
2392 ret = get_errno(setsid()); 2399 ret = get_errno(setsid());
2393 break; 2400 break;
  2401 +#ifdef TARGET_NR_sigaction
2394 case TARGET_NR_sigaction: 2402 case TARGET_NR_sigaction:
2395 { 2403 {
2396 #if !defined(TARGET_MIPS) 2404 #if !defined(TARGET_MIPS)
@@ -2445,6 +2453,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2445,6 +2453,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2445 #endif 2453 #endif
2446 } 2454 }
2447 break; 2455 break;
  2456 +#endif
2448 case TARGET_NR_rt_sigaction: 2457 case TARGET_NR_rt_sigaction:
2449 { 2458 {
2450 struct target_sigaction *act; 2459 struct target_sigaction *act;
@@ -2486,6 +2495,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2486,6 +2495,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2486 ret = target_set; 2495 ret = target_set;
2487 } 2496 }
2488 break; 2497 break;
  2498 +#ifdef TARGET_NR_sigprocmask
2489 case TARGET_NR_sigprocmask: 2499 case TARGET_NR_sigprocmask:
2490 { 2500 {
2491 int how = arg1; 2501 int how = arg1;
@@ -2522,6 +2532,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2522,6 +2532,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2522 } 2532 }
2523 } 2533 }
2524 break; 2534 break;
  2535 +#endif
2525 case TARGET_NR_rt_sigprocmask: 2536 case TARGET_NR_rt_sigprocmask:
2526 { 2537 {
2527 int how = arg1; 2538 int how = arg1;
@@ -2558,6 +2569,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2558,6 +2569,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2558 } 2569 }
2559 } 2570 }
2560 break; 2571 break;
  2572 +#ifdef TARGET_NR_sigpending
2561 case TARGET_NR_sigpending: 2573 case TARGET_NR_sigpending:
2562 { 2574 {
2563 sigset_t set; 2575 sigset_t set;
@@ -2569,6 +2581,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2569,6 +2581,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2569 } 2581 }
2570 } 2582 }
2571 break; 2583 break;
  2584 +#endif
2572 case TARGET_NR_rt_sigpending: 2585 case TARGET_NR_rt_sigpending:
2573 { 2586 {
2574 sigset_t set; 2587 sigset_t set;
@@ -2580,6 +2593,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2580,6 +2593,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2580 } 2593 }
2581 } 2594 }
2582 break; 2595 break;
  2596 +#ifdef TARGET_NR_sigsuspend
2583 case TARGET_NR_sigsuspend: 2597 case TARGET_NR_sigsuspend:
2584 { 2598 {
2585 sigset_t set; 2599 sigset_t set;
@@ -2589,6 +2603,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2589,6 +2603,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2589 ret = get_errno(sigsuspend(&set)); 2603 ret = get_errno(sigsuspend(&set));
2590 } 2604 }
2591 break; 2605 break;
  2606 +#endif
2592 case TARGET_NR_rt_sigsuspend: 2607 case TARGET_NR_rt_sigsuspend:
2593 { 2608 {
2594 sigset_t set; 2609 sigset_t set;
@@ -2630,10 +2645,12 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2630,10 +2645,12 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2630 ret = get_errno(sys_rt_sigqueueinfo(arg1, arg2, &uinfo)); 2645 ret = get_errno(sys_rt_sigqueueinfo(arg1, arg2, &uinfo));
2631 } 2646 }
2632 break; 2647 break;
  2648 +#ifdef TARGET_NR_sigreturn
2633 case TARGET_NR_sigreturn: 2649 case TARGET_NR_sigreturn:
2634 /* NOTE: ret is eax, so not transcoding must be done */ 2650 /* NOTE: ret is eax, so not transcoding must be done */
2635 ret = do_sigreturn(cpu_env); 2651 ret = do_sigreturn(cpu_env);
2636 break; 2652 break;
  2653 +#endif
2637 case TARGET_NR_rt_sigreturn: 2654 case TARGET_NR_rt_sigreturn:
2638 /* NOTE: ret is eax, so not transcoding must be done */ 2655 /* NOTE: ret is eax, so not transcoding must be done */
2639 ret = do_rt_sigreturn(cpu_env); 2656 ret = do_rt_sigreturn(cpu_env);
@@ -2739,17 +2756,24 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2739,17 +2756,24 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2739 unlock_user(p, arg1, 0); 2756 unlock_user(p, arg1, 0);
2740 } 2757 }
2741 break; 2758 break;
  2759 +#ifdef TARGET_NR_uselib
2742 case TARGET_NR_uselib: 2760 case TARGET_NR_uselib:
2743 goto unimplemented; 2761 goto unimplemented;
  2762 +#endif
  2763 +#ifdef TARGET_NR_swapon
2744 case TARGET_NR_swapon: 2764 case TARGET_NR_swapon:
2745 p = lock_user_string(arg1); 2765 p = lock_user_string(arg1);
2746 ret = get_errno(swapon(p, arg2)); 2766 ret = get_errno(swapon(p, arg2));
2747 unlock_user(p, arg1, 0); 2767 unlock_user(p, arg1, 0);
2748 break; 2768 break;
  2769 +#endif
2749 case TARGET_NR_reboot: 2770 case TARGET_NR_reboot:
2750 goto unimplemented; 2771 goto unimplemented;
  2772 +#ifdef TARGET_NR_readdir
2751 case TARGET_NR_readdir: 2773 case TARGET_NR_readdir:
2752 goto unimplemented; 2774 goto unimplemented;
  2775 +#endif
  2776 +#ifdef TARGET_NR_mmap
2753 case TARGET_NR_mmap: 2777 case TARGET_NR_mmap:
2754 #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_M68K) 2778 #if defined(TARGET_I386) || defined(TARGET_ARM) || defined(TARGET_M68K)
2755 { 2779 {
@@ -2774,6 +2798,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2774,6 +2798,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2774 arg6)); 2798 arg6));
2775 #endif 2799 #endif
2776 break; 2800 break;
  2801 +#endif
2777 #ifdef TARGET_NR_mmap2 2802 #ifdef TARGET_NR_mmap2
2778 case TARGET_NR_mmap2: 2803 case TARGET_NR_mmap2:
2779 #if defined(TARGET_SPARC) || defined(TARGET_MIPS) 2804 #if defined(TARGET_SPARC) || defined(TARGET_MIPS)
@@ -2793,25 +2818,37 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2793,25 +2818,37 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2793 case TARGET_NR_mprotect: 2818 case TARGET_NR_mprotect:
2794 ret = get_errno(target_mprotect(arg1, arg2, arg3)); 2819 ret = get_errno(target_mprotect(arg1, arg2, arg3));
2795 break; 2820 break;
  2821 +#ifdef TARGET_NR_mremap
2796 case TARGET_NR_mremap: 2822 case TARGET_NR_mremap:
2797 ret = get_errno(target_mremap(arg1, arg2, arg3, arg4, arg5)); 2823 ret = get_errno(target_mremap(arg1, arg2, arg3, arg4, arg5));
2798 break; 2824 break;
  2825 +#endif
2799 /* ??? msync/mlock/munlock are broken for softmmu. */ 2826 /* ??? msync/mlock/munlock are broken for softmmu. */
  2827 +#ifdef TARGET_NR_msync
2800 case TARGET_NR_msync: 2828 case TARGET_NR_msync:
2801 ret = get_errno(msync(g2h(arg1), arg2, arg3)); 2829 ret = get_errno(msync(g2h(arg1), arg2, arg3));
2802 break; 2830 break;
  2831 +#endif
  2832 +#ifdef TARGET_NR_mlock
2803 case TARGET_NR_mlock: 2833 case TARGET_NR_mlock:
2804 ret = get_errno(mlock(g2h(arg1), arg2)); 2834 ret = get_errno(mlock(g2h(arg1), arg2));
2805 break; 2835 break;
  2836 +#endif
  2837 +#ifdef TARGET_NR_munlock
2806 case TARGET_NR_munlock: 2838 case TARGET_NR_munlock:
2807 ret = get_errno(munlock(g2h(arg1), arg2)); 2839 ret = get_errno(munlock(g2h(arg1), arg2));
2808 break; 2840 break;
  2841 +#endif
  2842 +#ifdef TARGET_NR_mlockall
2809 case TARGET_NR_mlockall: 2843 case TARGET_NR_mlockall:
2810 ret = get_errno(mlockall(arg1)); 2844 ret = get_errno(mlockall(arg1));
2811 break; 2845 break;
  2846 +#endif
  2847 +#ifdef TARGET_NR_munlockall
2812 case TARGET_NR_munlockall: 2848 case TARGET_NR_munlockall:
2813 ret = get_errno(munlockall()); 2849 ret = get_errno(munlockall());
2814 break; 2850 break;
  2851 +#endif
2815 case TARGET_NR_truncate: 2852 case TARGET_NR_truncate:
2816 p = lock_user_string(arg1); 2853 p = lock_user_string(arg1);
2817 ret = get_errno(truncate(p, arg2)); 2854 ret = get_errno(truncate(p, arg2));
@@ -2889,10 +2926,11 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -2889,10 +2926,11 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
2889 case TARGET_NR_ioperm: 2926 case TARGET_NR_ioperm:
2890 goto unimplemented; 2927 goto unimplemented;
2891 #endif 2928 #endif
  2929 +#ifdef TARGET_NR_socketcall
2892 case TARGET_NR_socketcall: 2930 case TARGET_NR_socketcall:
2893 ret = do_socketcall(arg1, arg2); 2931 ret = do_socketcall(arg1, arg2);
2894 break; 2932 break;
2895 - 2933 +#endif
2896 #ifdef TARGET_NR_accept 2934 #ifdef TARGET_NR_accept
2897 case TARGET_NR_accept: 2935 case TARGET_NR_accept:
2898 ret = do_accept(arg1, arg2, arg3); 2936 ret = do_accept(arg1, arg2, arg3);
@@ -3101,11 +3139,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3101,11 +3139,13 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3101 } 3139 }
3102 } 3140 }
3103 break; 3141 break;
  3142 +#ifdef TARGET_NR_swapoff
3104 case TARGET_NR_swapoff: 3143 case TARGET_NR_swapoff:
3105 p = lock_user_string(arg1); 3144 p = lock_user_string(arg1);
3106 ret = get_errno(swapoff(p)); 3145 ret = get_errno(swapoff(p));
3107 unlock_user(p, arg1, 0); 3146 unlock_user(p, arg1, 0);
3108 break; 3147 break;
  3148 +#endif
3109 case TARGET_NR_sysinfo: 3149 case TARGET_NR_sysinfo:
3110 { 3150 {
3111 struct target_sysinfo *target_value; 3151 struct target_sysinfo *target_value;
@@ -3133,9 +3173,11 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3133,9 +3173,11 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3133 } 3173 }
3134 } 3174 }
3135 break; 3175 break;
  3176 +#ifdef TARGET_NR_ipc
3136 case TARGET_NR_ipc: 3177 case TARGET_NR_ipc:
3137 ret = do_ipc(arg1, arg2, arg3, arg4, arg5, arg6); 3178 ret = do_ipc(arg1, arg2, arg3, arg4, arg5, arg6);
3138 break; 3179 break;
  3180 +#endif
3139 case TARGET_NR_fsync: 3181 case TARGET_NR_fsync:
3140 ret = get_errno(fsync(arg1)); 3182 ret = get_errno(fsync(arg1));
3141 break; 3183 break;
@@ -3184,10 +3226,14 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3184,10 +3226,14 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3184 #endif 3226 #endif
3185 case TARGET_NR_adjtimex: 3227 case TARGET_NR_adjtimex:
3186 goto unimplemented; 3228 goto unimplemented;
  3229 +#ifdef TARGET_NR_create_module
3187 case TARGET_NR_create_module: 3230 case TARGET_NR_create_module:
  3231 +#endif
3188 case TARGET_NR_init_module: 3232 case TARGET_NR_init_module:
3189 case TARGET_NR_delete_module: 3233 case TARGET_NR_delete_module:
  3234 +#ifdef TARGET_NR_get_kernel_syms
3190 case TARGET_NR_get_kernel_syms: 3235 case TARGET_NR_get_kernel_syms:
  3236 +#endif
3191 goto unimplemented; 3237 goto unimplemented;
3192 case TARGET_NR_quotactl: 3238 case TARGET_NR_quotactl:
3193 goto unimplemented; 3239 goto unimplemented;
@@ -3199,13 +3245,17 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3199,13 +3245,17 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3199 break; 3245 break;
3200 case TARGET_NR_bdflush: 3246 case TARGET_NR_bdflush:
3201 goto unimplemented; 3247 goto unimplemented;
  3248 +#ifdef TARGET_NR_sysfs
3202 case TARGET_NR_sysfs: 3249 case TARGET_NR_sysfs:
3203 goto unimplemented; 3250 goto unimplemented;
  3251 +#endif
3204 case TARGET_NR_personality: 3252 case TARGET_NR_personality:
3205 ret = get_errno(personality(arg1)); 3253 ret = get_errno(personality(arg1));
3206 break; 3254 break;
  3255 +#ifdef TARGET_NR_afs_syscall
3207 case TARGET_NR_afs_syscall: 3256 case TARGET_NR_afs_syscall:
3208 goto unimplemented; 3257 goto unimplemented;
  3258 +#endif
3209 case TARGET_NR__llseek: 3259 case TARGET_NR__llseek:
3210 { 3260 {
3211 #if defined (__x86_64__) 3261 #if defined (__x86_64__)
@@ -3319,9 +3369,12 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3319,9 +3369,12 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3319 } 3369 }
3320 break; 3370 break;
3321 #endif /* TARGET_NR_getdents64 */ 3371 #endif /* TARGET_NR_getdents64 */
  3372 +#ifdef TARGET_NR__newselect
3322 case TARGET_NR__newselect: 3373 case TARGET_NR__newselect:
3323 ret = do_select(arg1, arg2, arg3, arg4, arg5); 3374 ret = do_select(arg1, arg2, arg3, arg4, arg5);
3324 break; 3375 break;
  3376 +#endif
  3377 +#ifdef TARGET_NR_poll
3325 case TARGET_NR_poll: 3378 case TARGET_NR_poll:
3326 { 3379 {
3327 struct target_pollfd *target_pfd; 3380 struct target_pollfd *target_pfd;
@@ -3347,6 +3400,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3347,6 +3400,7 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3347 unlock_user(target_pfd, arg1, ret); 3400 unlock_user(target_pfd, arg1, ret);
3348 } 3401 }
3349 break; 3402 break;
  3403 +#endif
3350 case TARGET_NR_flock: 3404 case TARGET_NR_flock:
3351 /* NOTE: the flock constant seems to be the same for every 3405 /* NOTE: the flock constant seems to be the same for every
3352 Linux platform */ 3406 Linux platform */
@@ -3448,10 +3502,14 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -3448,10 +3502,14 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
3448 } 3502 }
3449 } 3503 }
3450 break; 3504 break;
  3505 +#ifdef TARGET_NR_query_module
3451 case TARGET_NR_query_module: 3506 case TARGET_NR_query_module:
3452 goto unimplemented; 3507 goto unimplemented;
  3508 +#endif
  3509 +#ifdef TARGET_NR_nfsservctl
3453 case TARGET_NR_nfsservctl: 3510 case TARGET_NR_nfsservctl:
3454 goto unimplemented; 3511 goto unimplemented;
  3512 +#endif
3455 case TARGET_NR_prctl: 3513 case TARGET_NR_prctl:
3456 switch (arg1) 3514 switch (arg1)
3457 { 3515 {
@@ -4004,8 +4062,10 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3, @@ -4004,8 +4062,10 @@ long do_syscall(void *cpu_env, int num, long arg1, long arg2, long arg3,
4004 case TARGET_NR_gettid: 4062 case TARGET_NR_gettid:
4005 ret = get_errno(gettid()); 4063 ret = get_errno(gettid());
4006 break; 4064 break;
  4065 +#ifdef TARGET_NR_readahead
4007 case TARGET_NR_readahead: 4066 case TARGET_NR_readahead:
4008 goto unimplemented; 4067 goto unimplemented;
  4068 +#endif
4009 #ifdef TARGET_NR_setxattr 4069 #ifdef TARGET_NR_setxattr
4010 case TARGET_NR_setxattr: 4070 case TARGET_NR_setxattr:
4011 case TARGET_NR_lsetxattr: 4071 case TARGET_NR_lsetxattr: