Requires r14705 for updated system call lists.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14709
340509 arm64: unhandled instruction fcvtas
340630 arm64: fchmod (52) and fchown (55) syscalls not recognized
340632 arm64: unhandled instruction fcvtas
+340788 warning: unhandled syscall: 318 (getrandom)
n-i-bz Provide implementations of certain compiler builtins to support
compilers who may not provide those
n-i-bz Old STABS code is still being compiled, but never used. Remove it.
DECL_TEMPLATE(linux, sys_fanotify_init);
DECL_TEMPLATE(linux, sys_fanotify_mark);
+// Linux-specific (new in Linux 3.17)
+DECL_TEMPLATE(linux, sys_getrandom);
+
/* ---------------------------------------------------------------------
Wrappers for sockets and ipc-ery. These are split into standalone
procedures because x86-linux hides them inside multiplexors
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 310
LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 311
- LINX_(__NR_kcmp, sys_kcmp) // 312
+ LINX_(__NR_kcmp, sys_kcmp), // 312
+// LIN__(__NR_finit_module, sys_ni_syscall), // 313
+// LIN__(__NR_sched_setattr, sys_ni_syscall), // 314
+
+// LIN__(__NR_sched_getattr, sys_ni_syscall), // 315
+// LIN__(__NR_renameat2, sys_ni_syscall), // 316
+// LIN__(__NR_seccomp, sys_ni_syscall), // 317
+ LINXY(__NR_getrandom, sys_getrandom) // 318
+// LIN__(__NR_memfd_create, sys_ni_syscall), // 319
+
+// LIN__(__NR_kexec_file_load, sys_ni_syscall), // 320
+// LIN__(__NR_bpf, sys_ni_syscall) // 321
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 370
LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 371
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 372
- LINXY(__NR_sendmmsg, sys_sendmmsg) // 374
+ LINXY(__NR_sendmmsg, sys_sendmmsg), // 374
+ LINXY(__NR_getrandom, sys_getrandom) // 384
};
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 270
LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 271
+ LINXY(__NR_getrandom, sys_getrandom), // 278
// The numbers below are bogus. (See comment further down.)
// When pulling entries above this line, change the numbers
POST_MEM_WRITE(ARG5, ARG2 * sizeof(int));
}
+PRE(sys_getrandom)
+{
+ PRINT("sys_getrandom ( %#lx, %ld, %ld )" , ARG1,ARG2,ARG3);
+ PRE_REG_READ3(int, "getrandom",
+ char *, buf, vki_size_t, count, unsigned int, flags);
+ PRE_MEM_WRITE( "getrandom(cpu)", ARG1, ARG2 );
+}
+
+POST(sys_getrandom)
+{
+ POST_MEM_WRITE( ARG1, ARG2 );
+}
+
/* ---------------------------------------------------------------------
utime wrapper
------------------------------------------------------------------ */
LINXY (__NR_clock_adjtime, sys_clock_adjtime), // 341
//..
LINXY (__NR_process_vm_readv, sys_process_vm_readv), // 345
- LINX_ (__NR_process_vm_writev, sys_process_vm_writev) // 346
+ LINX_ (__NR_process_vm_writev, sys_process_vm_writev), // 346
+ //..
+ LINXY(__NR_getrandom, sys_getrandom) // 353
};
SyscallTableEntry* ML_(get_linux_syscall_entry) (UInt sysno)
LINXY (__NR_prlimit64, sys_prlimit64),
LINXY (__NR_clock_adjtime, sys_clock_adjtime),
LINXY (__NR_process_vm_readv, sys_process_vm_readv),
- LINX_ (__NR_process_vm_writev, sys_process_vm_writev)
+ LINX_ (__NR_process_vm_writev, sys_process_vm_writev),
+ LINXY(__NR_getrandom, sys_getrandom)
};
SyscallTableEntry * ML_(get_linux_syscall_entry) ( UInt sysno )
LINX_(__NR_pwritev, sys_pwritev), // 321
LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 322
- LINX_(__NR_clock_adjtime, sys_clock_adjtime), // 347
-
LINXY(__NR_socket, sys_socket), // 326
LINX_(__NR_bind, sys_bind), // 327
LINX_(__NR_connect, sys_connect), // 328
LINXY(__NR_accept4, sys_accept4), // 344
+ LINX_(__NR_clock_adjtime, sys_clock_adjtime), // 347
+
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351
- LINX_(__NR_process_vm_writev, sys_process_vm_writev) // 352
+ LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352
+
+ LINXY(__NR_getrandom, sys_getrandom) // 359
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 347
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351
- LINX_(__NR_process_vm_writev, sys_process_vm_writev) // 352
+ LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 352
+
+ LINXY(__NR_getrandom, sys_getrandom) // 359
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 340
LINX_(__NR_process_vm_writev, sys_process_vm_writev), // 341
// ?????(__NR_s390_runtime_instr, ), // 342
- LINX_(__NR_kcmp, sys_kcmp) // 343
+ LINX_(__NR_kcmp, sys_kcmp), // 343
// ?????(__NR_finit_module, ), // 344
// ?????(__NR_sched_setattr, ), // 345
// ?????(__NR_sched_getattr, ), // 346
// ?????(__NR_renameat2, ), // 347
+// ?????(__NR_seccomp, ), // 348
+ LINXY(__NR_getrandom, sys_getrandom) // 349
+
+// ?????(__NR_memfd_create, ), // 350
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
// LINX_(__NR_setns, sys_ni_syscall), // 346
LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 347
LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 348
- LINX_(__NR_kcmp, sys_kcmp) // 349
+ LINX_(__NR_kcmp, sys_kcmp), // 349
+
+// LIN__(__NR_finit_module, sys_ni_syscall), // 350
+// LIN__(__NR_sched_setattr, sys_ni_syscall), // 351
+// LIN__(__NR_sched_getattr, sys_ni_syscall), // 352
+// LIN__(__NR_renameat2, sys_ni_syscall), // 353
+// LIN__(__NR_seccomp, sys_ni_syscall), // 354
+
+ LINXY(__NR_getrandom, sys_getrandom) // 355
+// LIN__(__NR_memfd_create, sys_ni_syscall), // 356
+// LIN__(__NR_bpf, sys_ni_syscall) // 357
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )