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 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 (void) copy_from_user(tp_locvar
->v6addr
,
33 &((struct sockaddr_in6
*) uservaddr
)->sin6_addr
.in6_u
.u6_addr8
,
34 sizeof(tp_locvar
->v6addr
));
35 tp_locvar
->v6addr_len
= 8;
42 sc_exit(__field(long, ret
))
43 sc_in(__field(int, fd
))
44 sc_in(__field_hex(struct sockaddr
*, uservaddr
))
45 sc_in(__field_hex(int, addrlen
))
46 sc_in(__field(int, family
))
47 sc_in(__field_network(uint16_t, dport
))
48 sc_in(__dynamic_array_network(uint8_t, v4addr
, tp_locvar
->v4addr_len
))
49 sc_in(__dynamic_array_network_hex(uint16_t, v6addr
, tp_locvar
->v6addr_len
))
52 sc_exit(tp_assign(ret
, ret
))
53 sc_in(tp_assign(fd
, fd
))
54 sc_in(tp_assign(uservaddr
, uservaddr
))
55 sc_in(tp_assign(addrlen
, addrlen
))
56 sc_in(tp_assign(family
, tp_locvar
->sa_family
))
57 sc_in(tp_assign(dport
, tp_locvar
->dport
))
58 sc_in(tp_memcpy_dyn(v4addr
, &tp_locvar
->v4addr
))
59 sc_in(tp_memcpy_dyn(v6addr
, &tp_locvar
->v6addr
))
64 #define OVERRIDE_64_accept
65 SC_LTTNG_TRACEPOINT_EVENT_CODE(accept
,
66 TP_PROTO(sc_exit(long ret
,) int fd
, struct sockaddr
* upeer_sockaddr
, int * upeer_addrlen
),
67 TP_ARGS(sc_exit(ret
,) fd
, upeer_sockaddr
, upeer_addrlen
),
69 __typeof__(upeer_sockaddr
->sa_family
) sa_family
;
73 int v4addr_len
, v6addr_len
;
78 memset(tp_locvar
, 0, sizeof(*tp_locvar
));
79 (void) get_user(tp_locvar
->uaddr_len
, upeer_addrlen
);
82 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr
))
84 (void) get_user(tp_locvar
->sa_family
, &upeer_sockaddr
->sa_family
);
85 switch (tp_locvar
->sa_family
) {
87 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr_in
))
89 (void) get_user(tp_locvar
->sport
, &((struct sockaddr_in
*) upeer_sockaddr
)->sin_port
);
90 (void) get_user(tp_locvar
->v4addr
, &((struct sockaddr_in
*) upeer_sockaddr
)->sin_addr
.s_addr
);
91 tp_locvar
->v4addr_len
= 4;
94 if (tp_locvar
->uaddr_len
< sizeof(struct sockaddr_in6
))
96 (void) get_user(tp_locvar
->sport
, &((struct sockaddr_in6
*) upeer_sockaddr
)->sin6_port
);
97 (void) copy_from_user(tp_locvar
->v6addr
,
98 &((struct sockaddr_in6
*) upeer_sockaddr
)->sin6_addr
.in6_u
.u6_addr8
,
99 sizeof(tp_locvar
->v6addr
));
100 tp_locvar
->v6addr_len
= 8;
107 sc_exit(__field(long, ret
))
108 sc_in(__field(int, fd
))
109 sc_in(__field_hex(struct sockaddr
*, upeer_sockaddr
))
110 sc_inout(__field(int, upeer_addrlen
))
111 sc_out(__field(int, family
))
112 sc_out(__field_network(uint16_t, sport
))
113 sc_out(__dynamic_array_network(uint8_t, v4addr
, tp_locvar
->v4addr_len
))
114 sc_out(__dynamic_array_network_hex(uint16_t, v6addr
, tp_locvar
->v6addr_len
))
117 sc_exit(tp_assign(ret
, ret
))
118 sc_in(tp_assign(fd
, fd
))
119 sc_in(tp_assign(upeer_sockaddr
, upeer_sockaddr
))
120 sc_inout(tp_assign(upeer_addrlen
, tp_locvar
->uaddr_len
))
121 sc_out(tp_assign(family
, tp_locvar
->sa_family
))
122 sc_out(tp_assign(sport
, tp_locvar
->sport
))
123 sc_out(tp_memcpy_dyn(v4addr
, &tp_locvar
->v4addr
))
124 sc_out(tp_memcpy_dyn(v6addr
, &tp_locvar
->v6addr
))
129 #else /* CREATE_SYSCALL_TABLE */
131 #define OVERRIDE_TABLE_64_clone
132 TRACE_SYSCALL_TABLE(clone
, clone
, 56, 5)
133 #define OVERRIDE_TABLE_64_execve
134 TRACE_SYSCALL_TABLE(execve
, execve
, 59, 3)
135 #define OVERRIDE_TABLE_64_getcpu
136 TRACE_SYSCALL_TABLE(getcpu
, getcpu
, 309, 3)
138 #endif /* CREATE_SYSCALL_TABLE */
This page took 0.033088 seconds and 4 git commands to generate.