Revision 89aaf1a6

b/linux-user/strace.list
1521 1521
#ifdef TARGET_NR_pipe2
1522 1522
{ TARGET_NR_pipe2, "pipe2", NULL, NULL, NULL },
1523 1523
#endif
1524
#ifdef TARGET_NR_atomic_cmpxchg_32
1525
{ TARGET_NR_atomic_cmpxchg_32, "atomic_cmpxchg_32", NULL, NULL, NULL },
1526
#endif
1527
#ifdef TARGET_NR_atomic_barrier
1528
{ TARGET_NR_atomic_barrier, "atomic_barrier", NULL, NULL, NULL },
1529
#endif
b/linux-user/syscall.c
9133 9133
        break;
9134 9134
    }
9135 9135
#endif
9136
#ifdef TARGET_NR_atomic_cmpxchg_32
9137
    case TARGET_NR_atomic_cmpxchg_32:
9138
    {
9139
        /* should use start_exclusive from main.c */
9140
        abi_ulong mem_value;
9141
        if (get_user_u32(mem_value, arg6)) {
9142
            target_siginfo_t info;
9143
            info.si_signo = SIGSEGV;
9144
            info.si_errno = 0;
9145
            info.si_code = TARGET_SEGV_MAPERR;
9146
            info._sifields._sigfault._addr = arg6;
9147
            queue_signal((CPUArchState *)cpu_env, info.si_signo, &info);
9148
            ret = 0xdeadbeef;
9149

  
9150
        }
9151
        if (mem_value == arg2)
9152
            put_user_u32(arg1, arg6);
9153
        ret = mem_value;
9154
        break;
9155
    }
9156
#endif
9157
#ifdef TARGET_NR_atomic_barrier
9158
    case TARGET_NR_atomic_barrier:
9159
    {
9160
        /* Like the kernel implementation and the qemu arm barrier, no-op this? */
9161
        break;
9162
    }
9163
#endif
9136 9164
    default:
9137 9165
    unimplemented:
9138 9166
        gemu_log("qemu: Unsupported syscall: %d\n", num);

Also available in: Unified diff