int sys_arch_prctl();
int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy();
int sys_utimensat(), sys_epoll_pwait(), sys_signalfd(), sys_timerfd(), sys_eventfd();
+int sys_getcpu();
/* sys_socketcall subcalls */
{ 4, TD, printargs, "tee" }, /* 315 */
{ 4, TD, printargs, "vmsplice" }, /* 316 */
{ 6, 0, sys_move_pages, "move_pages" }, /* 317 */
- { 5, 0, printargs, "SYS_318" }, /* 318 */
+ { 3, 0, sys_getcpu, "getcpu" }, /* 318 */
{ 5, TD, sys_epoll_pwait, "epoll_pwait" }, /* 319 */
{ 4, TD|TF, sys_utimensat, "utimensat" }, /* 320 */
{ 3, TD|TS, sys_signalfd, "signalfd" }, /* 321 */
}
#endif
+
+int
+sys_getcpu(tcp)
+struct tcb *tcp;
+{
+ if (exiting(tcp)) {
+ unsigned u;
+ if (tcp->u_arg[0] == 0)
+ tprintf("NULL, ");
+ else if (umove(tcp, tcp->u_arg[0], &u) < 0)
+ tprintf("%#lx, ", tcp->u_arg[0]);
+ else
+ tprintf("[%u], ", u);
+ if (tcp->u_arg[1] == 0)
+ tprintf("NULL, ");
+ else if (umove(tcp, tcp->u_arg[1], &u) < 0)
+ tprintf("%#lx, ", tcp->u_arg[1]);
+ else
+ tprintf("[%u], ", u);
+ tprintf("%#lx", tcp->u_arg[2]);
+ }
+ return 0;
+}
+
#endif