X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=instrumentation%2Fsyscalls%2Fheaders%2Fsyscalls_pointers_override.h;h=184f3a96e8c08b0b0604999531e17f70af817e56;hb=639655f9b4c42d3e82a7e69afbae8d26e69f9be3;hp=dd6f95448eef0fd8a77f3650a12fd5ed0824b112;hpb=f22697caff66036a134afa017980999caf02f938;p=lttng-modules.git diff --git a/instrumentation/syscalls/headers/syscalls_pointers_override.h b/instrumentation/syscalls/headers/syscalls_pointers_override.h index dd6f9544..184f3a96 100644 --- a/instrumentation/syscalls/headers/syscalls_pointers_override.h +++ b/instrumentation/syscalls/headers/syscalls_pointers_override.h @@ -225,7 +225,7 @@ end: ; /* Label at end of compound statement. */ \ kfree(tp_locvar->fds_out); \ kfree(tp_locvar->fds_ex); -#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) +#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) #define OVERRIDE_32_select #define OVERRIDE_64_select SC_LTTNG_TRACEPOINT_EVENT_CODE(select, @@ -260,7 +260,7 @@ SC_LTTNG_TRACEPOINT_EVENT_CODE(select, LTTNG_SYSCALL_SELECT_code_post ) ) -#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) */ +#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) */ #if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) #define OVERRIDE_32_pselect6 @@ -418,8 +418,7 @@ static struct lttng_type lttng_pollfd_elem = { if (!tp_locvar->fds) \ goto error; \ err = lib_ring_buffer_copy_from_user_check_nofault( \ - tp_locvar->fds, ufds, \ - nfds * sizeof(struct pollfd)); \ + tp_locvar->fds, ufds, tp_locvar->alloc_fds); \ if (err != 0) \ goto error; \ } \ @@ -497,7 +496,7 @@ end: \ #define LTTNG_SYSCALL_POLL_code_post \ kfree(tp_locvar->fds); -#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) +#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) #define OVERRIDE_32_poll #define OVERRIDE_64_poll SC_LTTNG_TRACEPOINT_EVENT_CODE(poll, @@ -522,7 +521,7 @@ SC_LTTNG_TRACEPOINT_EVENT_CODE(poll, LTTNG_SYSCALL_POLL_code_post ) ) -#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) */ +#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) */ #if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) #define OVERRIDE_32_ppoll @@ -772,7 +771,7 @@ static struct lttng_type lttng_epoll_wait_elem = { \ err = lib_ring_buffer_copy_from_user_check_nofault( \ tp_locvar->events, uevents, \ - maxevents * sizeof(struct epoll_event)); \ + maxalloc * sizeof(struct epoll_event)); \ if (err != 0) \ tp_locvar->fds_length = 0; \ } \ @@ -810,7 +809,7 @@ static struct lttng_type lttng_epoll_wait_elem = { ) -#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) +#if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) #define OVERRIDE_32_epoll_wait #define OVERRIDE_64_epoll_wait SC_LTTNG_TRACEPOINT_EVENT_CODE(epoll_wait, @@ -838,7 +837,7 @@ SC_LTTNG_TRACEPOINT_EVENT_CODE(epoll_wait, LTTNG_SYSCALL_EPOLL_WAIT_code_post ) ) -#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) */ +#endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM) */ #if defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) #define OVERRIDE_32_epoll_pwait @@ -872,4 +871,20 @@ SC_LTTNG_TRACEPOINT_EVENT_CODE(epoll_pwait, ) #endif /* defined(CONFIG_X86_32) || defined(CONFIG_X86_64) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) */ +#if (defined(CONFIG_X86_64) && !defined(LTTNG_SC_COMPAT)) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) +#define OVERRIDE_32_socketpair +#define OVERRIDE_64_socketpair +SC_LTTNG_TRACEPOINT_EVENT(socketpair, + TP_PROTO(sc_exit(long ret,) int family, int type, int protocol, int *usockvec), + TP_ARGS(sc_exit(ret,) family, type, protocol, usockvec), + TP_FIELDS( + sc_exit(ctf_integer(long, ret, ret)) + sc_in(ctf_integer(int, family, family)) + sc_in(ctf_integer(int, type, type)) + sc_in(ctf_integer(int, protocol, protocol)) + sc_out(ctf_user_array(int, socket, usockvec, 2)) + ) +) +#endif /* (defined(CONFIG_X86_64) && !defined(LTTNG_SC_COMPAT)) || defined(CONFIG_ARM64) || defined(CONFIG_ARM) */ + #endif /* CREATE_SYSCALL_TABLE */