|
@@ -20,6 +20,7 @@
|
|
|
#include "qemu/osdep.h"
|
|
|
#include "qemu/cutils.h"
|
|
|
#include "qemu/path.h"
|
|
|
+#include "qemu/memfd.h"
|
|
|
#include "qemu/queue.h"
|
|
|
#include <elf.h>
|
|
|
#include <endian.h>
|
|
@@ -11938,6 +11939,17 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
|
|
|
/* PowerPC specific. */
|
|
|
return do_swapcontext(cpu_env, arg1, arg2, arg3);
|
|
|
#endif
|
|
|
+#ifdef TARGET_NR_memfd_create
|
|
|
+ case TARGET_NR_memfd_create:
|
|
|
+ p = lock_user_string(arg1);
|
|
|
+ if (!p) {
|
|
|
+ return -TARGET_EFAULT;
|
|
|
+ }
|
|
|
+ ret = get_errno(memfd_create(p, arg2));
|
|
|
+ fd_trans_unregister(ret);
|
|
|
+ unlock_user(p, arg1, 0);
|
|
|
+ return ret;
|
|
|
+#endif
|
|
|
|
|
|
default:
|
|
|
qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num);
|