n-i-bz Add support for the Linux BLKFLSBUF ioctl
n-i-bz Add support for the Linux BLKREPORTZONE and BLKRESETZONE ioctls
n-i-bz Fix possible stack trashing by semctl syscall wrapping
+n-i-bz Add support for the Linux membarrier() system call
Release 3.13.0 (15 June 2017)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DECL_TEMPLATE(linux, sys_syncfs);
+DECL_TEMPLATE(linux, sys_membarrier);
+
/* ---------------------------------------------------------------------
Wrappers for sockets and ipc-ery. These are split into standalone
procedures because x86-linux hides them inside multiplexors
LINX_(__NR_renameat2, sys_renameat2), // 316
// LIN__(__NR_seccomp, sys_ni_syscall), // 317
LINXY(__NR_getrandom, sys_getrandom), // 318
- LINXY(__NR_memfd_create, sys_memfd_create) // 319
+ LINXY(__NR_memfd_create, sys_memfd_create), // 319
// LIN__(__NR_kexec_file_load, sys_ni_syscall), // 320
// LIN__(__NR_bpf, sys_ni_syscall) // 321
+
+ LINX_(__NR_membarrier, sys_membarrier), // 324
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
// (__NR_bpf, sys_ni_syscall) // 280
// (__NR_execveat, sys_ni_syscall), // 281
// (__NR_userfaultfd, sys_ni_syscall), // 282
- // (__NR_membarrier, sys_ni_syscall), // 283
+ LINX_(__NR_membarrier, sys_membarrier), // 283
// (__NR_mlock2, sys_ni_syscall), // 284
// (__NR_copy_file_range, sys_ni_syscall), // 285
// (__NR_preadv2, sys_ni_syscall), // 286
}
}
+PRE(sys_membarrier)
+{
+ PRINT("sys_membarrier ( %#" FMT_REGWORD "x )", ARG1);
+ PRE_REG_READ1(int, "membarrier", int, flags);
+}
+
PRE(sys_syncfs)
{
*flags |= SfMayBlock;