1 #ifndef CREATE_SYSCALL_TABLE
3 #define OVERRIDE_64_connect
4 SC_LTTNG_TRACEPOINT_EVENT_CODE(connect
,
5 TP_PROTO(sc_exit(long ret
,) int fd
, struct sockaddr
* uservaddr
, int addrlen
),
6 TP_ARGS(sc_exit(ret
,) fd
, uservaddr
, addrlen
),
8 __typeof__(uservaddr
->sa_family
) sa_family
;
12 unsigned int v4addr_len
, v6addr_len
;
16 memset(tp_locvar
, 0, sizeof(*tp_locvar
));
17 if (addrlen
< sizeof(struct sockaddr
))
19 (void) get_user(tp_locvar
->sa_family
, &uservaddr
->sa_family
);
20 switch (tp_locvar
->sa_family
) {
22 if (addrlen
< sizeof(struct sockaddr_in
))
24 (void) get_user(tp_locvar
->dport
, &((struct sockaddr_in
*) uservaddr
)->sin_port
);
25 (void) get_user(tp_locvar
->v4addr
, &((struct sockaddr_in
*) uservaddr
)->sin_addr
.s_addr
);
26 tp_locvar
->v4addr_len
= 4;
29 if (addrlen
< sizeof(struct sockaddr_in6
))
31 (void) get_user(tp_locvar
->dport
, &((struct sockaddr_in6
*) uservaddr
)->sin6_port
);
32 if (copy_from_user(tp_locvar
->v6addr
,
33 &((struct sockaddr_in6
*) uservaddr
)->sin6_addr
.in6_u
.u6_addr8
,
34 sizeof(tp_locvar
->v6addr
)))
35 memset(tp_locvar
->v6addr
, 0, sizeof(tp_locvar
->v6addr
));
36 tp_locvar
->v6addr_len
= 8;
43 sc_exit(ctf_integer(long, ret
, ret
))
44 sc_in(ctf_integer(int, fd
, fd
))
45 sc_in(ctf_integer_hex(struct sockaddr
*, uservaddr
, uservaddr
))
46 sc_in(ctf_integer_hex(int, addrlen
, addrlen
))
47 sc_in(ctf_integer(int, family
, tp_locvar
->sa_family
))
48 sc_in(ctf_integer_network(uint16_t, dport
, tp_locvar
->dport
))
49 sc_in(ctf_sequence_network(uint8_t, v4addr
, &tp_locvar
->v4addr
, unsigned int, tp_locvar
->v4addr_len
))
50 sc_in(ctf_sequence_network(uint16_t, v6addr
, &tp_locvar
->v6addr
, unsigned int, tp_locvar
->v6addr_len
))
55 #define OVERRIDE_64_accept
56 SC_LTTNG_TRACEPOINT_EVENT_CODE(accept
,
57 TP_PROTO(sc_exit(long ret
,) int fd
, struct sockaddr
* upeer_sockaddr
, int * upeer_addrlen
),
58 TP_ARGS(sc_exit(ret
,) fd
, upeer_sockaddr
, upeer_addrlen
),
60 __typeof__(upeer_sockaddr
->sa_family
) sa_family
;
64 int v4addr_len
, v6addr_len
;
69 memset(tp_locvar
, 0, sizeof(*tp_locvar
));
70 (void) get_user(tp_locvar
->uaddr_len
, upeer_addrlen
);
73 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr
))
75 (void) get_user(tp_locvar
->sa_family
, &upeer_sockaddr
->sa_family
);
76 switch (tp_locvar
->sa_family
) {
78 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr_in
))
80 (void) get_user(tp_locvar
->sport
, &((struct sockaddr_in
*) upeer_sockaddr
)->sin_port
);
81 (void) get_user(tp_locvar
->v4addr
, &((struct sockaddr_in
*) upeer_sockaddr
)->sin_addr
.s_addr
);
82 tp_locvar
->v4addr_len
= 4;
85 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr_in6
))
87 (void) get_user(tp_locvar
->sport
, &((struct sockaddr_in6
*) upeer_sockaddr
)->sin6_port
);
88 if (copy_from_user(tp_locvar
->v6addr
,
89 &((struct sockaddr_in6
*) upeer_sockaddr
)->sin6_addr
.in6_u
.u6_addr8
,
90 sizeof(tp_locvar
->v6addr
)))
91 memset(tp_locvar
->v6addr
, 0, sizeof(tp_locvar
->v6addr
));
92 tp_locvar
->v6addr_len
= 8;
99 sc_exit(ctf_integer(long, ret
, ret
))
100 sc_in(ctf_integer(int, fd
, fd
))
101 sc_in(ctf_integer_hex(struct sockaddr
*, upeer_sockaddr
, upeer_sockaddr
))
102 sc_inout(ctf_integer(int, upeer_addrlen
, tp_locvar
->uaddr_len
))
103 sc_out(ctf_integer(int, family
, tp_locvar
->sa_family
))
104 sc_out(ctf_integer_network(uint16_t, sport
, tp_locvar
->sport
))
105 sc_out(ctf_sequence_network(uint8_t, v4addr
, &tp_locvar
->v4addr
, unsigned int, tp_locvar
->v4addr_len
))
106 sc_out(ctf_sequence_network(uint16_t, v6addr
, &tp_locvar
->v6addr
, unsigned int, tp_locvar
->v6addr_len
))
111 #define OVERRIDE_64_pipe
112 SC_LTTNG_TRACEPOINT_EVENT(pipe
,
113 TP_PROTO(sc_exit(long ret
,) int * fildes
),
114 TP_ARGS(sc_exit(ret
,) fildes
),
115 TP_FIELDS(sc_exit(ctf_integer(long, ret
, ret
))
116 sc_out(ctf_user_array(int, fildes
, fildes
, 2))
120 #else /* CREATE_SYSCALL_TABLE */
122 #define OVERRIDE_TABLE_64_clone
123 TRACE_SYSCALL_TABLE(clone
, clone
, 56, 5)
124 #define OVERRIDE_TABLE_64_execve
125 TRACE_SYSCALL_TABLE(execve
, execve
, 59, 3)
126 #define OVERRIDE_TABLE_64_getcpu
127 TRACE_SYSCALL_TABLE(getcpu
, getcpu
, 309, 3)
129 #endif /* CREATE_SYSCALL_TABLE */
This page took 0.036121 seconds and 5 git commands to generate.