diff --git a/include/ebpf_nethooks.h b/include/ebpf_nethooks.h index 719e93d39..73843109d 100644 --- a/include/ebpf_nethooks.h +++ b/include/ebpf_nethooks.h @@ -148,6 +148,7 @@ typedef struct bpf_sock_addr }; uint32_t protocol; ///< IP protocol. uint32_t compartment_id; ///< Network compartment Id. + uint64_t interface_luid; ///< Interface LUID. } bpf_sock_addr_t; /** @@ -201,8 +202,10 @@ typedef struct _bpf_sock_ops uint32_t remote_ip6[4]; }; ///< Remote IP address. uint32_t remote_port; - }; ///< Remote IP address and port stored in network byte order. - uint8_t protocol; ///< IP protocol. + }; ///< Remote IP address and port stored in network byte order. + uint8_t protocol; ///< IP protocol. + uint32_t compartment_id; ///< Network compartment Id. + uint64_t interface_luid; ///< Interface LUID. } bpf_sock_ops_t; /** @@ -222,4 +225,4 @@ sock_ops_hook_t(bpf_sock_ops_t* context); #ifdef _MSC_VER #pragma warning(pop) -#endif \ No newline at end of file +#endif diff --git a/netebpfext/net_ebpf_ext.h b/netebpfext/net_ebpf_ext.h index 261b0bb97..d9de8f04b 100644 --- a/netebpfext/net_ebpf_ext.h +++ b/netebpfext/net_ebpf_ext.h @@ -63,6 +63,7 @@ typedef struct _wfp_ale_layer_fields uint16_t protocol_field; uint32_t direction_field; uint16_t compartment_id_field; + uint16_t interface_luid_field; } wfp_ale_layer_fields_t; typedef struct _net_ebpf_extension_wfp_filter_parameters @@ -257,4 +258,4 @@ net_ebpf_ext_register_providers(); * */ void -net_ebpf_ext_unregister_providers(); \ No newline at end of file +net_ebpf_ext_unregister_providers(); diff --git a/netebpfext/net_ebpf_ext_sock_addr.c b/netebpfext/net_ebpf_ext_sock_addr.c index cfc612eb1..70adb8a87 100644 --- a/netebpfext/net_ebpf_ext_sock_addr.c +++ b/netebpfext/net_ebpf_ext_sock_addr.c @@ -251,7 +251,8 @@ wfp_ale_layer_fields_t wfp_connection_fields[] = { FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_REMOTE_PORT, FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_PROTOCOL, 0, // No direction field in this layer. - FWPS_FIELD_ALE_AUTH_CONNECT_V4_COMPARTMENT_ID}, + FWPS_FIELD_ALE_AUTH_CONNECT_V4_COMPARTMENT_ID, + FWPS_FIELD_ALE_AUTH_CONNECT_V4_IP_LOCAL_INTERFACE}, // EBPF_HOOK_ALE_AUTH_CONNECT_V6 {FWPS_FIELD_ALE_AUTH_CONNECT_V6_IP_LOCAL_ADDRESS, @@ -260,7 +261,8 @@ wfp_ale_layer_fields_t wfp_connection_fields[] = { FWPS_FIELD_ALE_AUTH_CONNECT_V6_IP_REMOTE_PORT, FWPS_FIELD_ALE_AUTH_CONNECT_V6_IP_PROTOCOL, 0, // No direction field in this layer. - FWPS_FIELD_ALE_AUTH_CONNECT_V6_COMPARTMENT_ID}, + FWPS_FIELD_ALE_AUTH_CONNECT_V6_COMPARTMENT_ID, + FWPS_FIELD_ALE_AUTH_CONNECT_V6_IP_LOCAL_INTERFACE}, // EBPF_HOOK_ALE_AUTH_RECV_ACCEPT_V4 {FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_ADDRESS, @@ -269,7 +271,8 @@ wfp_ale_layer_fields_t wfp_connection_fields[] = { FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_REMOTE_PORT, FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_PROTOCOL, 0, // No direction field in this layer. - FWPS_FIELD_ALE_AUTH_CONNECT_V4_COMPARTMENT_ID}, + FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_COMPARTMENT_ID, + FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V4_IP_LOCAL_INTERFACE}, // EBPF_HOOK_ALE_AUTH_RECV_ACCEPT_V6 {FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V6_IP_LOCAL_ADDRESS, @@ -278,7 +281,8 @@ wfp_ale_layer_fields_t wfp_connection_fields[] = { FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V6_IP_REMOTE_PORT, FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V6_IP_PROTOCOL, 0, // No direction field in this layer. - FWPS_FIELD_ALE_AUTH_CONNECT_V6_COMPARTMENT_ID}}; + FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V6_COMPARTMENT_ID, + FWPS_FIELD_ALE_AUTH_RECV_ACCEPT_V6_IP_LOCAL_INTERFACE}}; static void _net_ebpf_extension_sock_addr_copy_wfp_connection_fields( @@ -321,6 +325,7 @@ _net_ebpf_extension_sock_addr_copy_wfp_connection_fields( sock_addr_ctx->user_port = htons(incoming_values[destination_port_field].value.uint16); sock_addr_ctx->protocol = incoming_values[fields->protocol_field].value.uint8; sock_addr_ctx->compartment_id = incoming_values[fields->compartment_id_field].value.uint32; + sock_addr_ctx->interface_luid = *incoming_values[fields->interface_luid_field].value.uint64; } // @@ -382,4 +387,4 @@ net_ebpf_extension_sock_addr_authorize_connection_classify( Exit: if (attached_client) net_ebpf_extension_hook_client_leave_rundown(attached_client, execution_type); -} \ No newline at end of file +} diff --git a/netebpfext/net_ebpf_ext_sock_ops.c b/netebpfext/net_ebpf_ext_sock_ops.c index ef365e073..1cc9d7c74 100644 --- a/netebpfext/net_ebpf_ext_sock_ops.c +++ b/netebpfext/net_ebpf_ext_sock_ops.c @@ -290,7 +290,8 @@ wfp_ale_layer_fields_t wfp_flow_established_fields[] = { FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_REMOTE_PORT, FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_PROTOCOL, FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_DIRECTION, - FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_COMPARTMENT_ID}, + FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_COMPARTMENT_ID, + FWPS_FIELD_ALE_FLOW_ESTABLISHED_V4_IP_LOCAL_INTERFACE}, // EBPF_HOOK_ALE_FLOW_ESTABLISHED_V6 {FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_IP_LOCAL_ADDRESS, FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_IP_LOCAL_PORT, @@ -298,13 +299,12 @@ wfp_ale_layer_fields_t wfp_flow_established_fields[] = { FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_IP_REMOTE_PORT, FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_IP_PROTOCOL, FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_DIRECTION, - FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_COMPARTMENT_ID}}; + FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_COMPARTMENT_ID, + FWPS_FIELD_ALE_FLOW_ESTABLISHED_V6_IP_LOCAL_INTERFACE}}; static void _net_ebpf_extension_sock_ops_copy_wfp_connection_fields( - _In_ const FWPS_INCOMING_VALUES* incoming_fixed_values, - _Out_ bpf_sock_ops_t* sock_ops_context, - _Out_ uint32_t* compartment_id) + _In_ const FWPS_INCOMING_VALUES* incoming_fixed_values, _Out_ bpf_sock_ops_t* sock_ops_context) { uint16_t wfp_layer_id = incoming_fixed_values->layerId; net_ebpf_extension_hook_id_t hook_id = net_ebpf_extension_get_hook_id_from_wfp_layer_id(wfp_layer_id); @@ -335,7 +335,8 @@ _net_ebpf_extension_sock_ops_copy_wfp_connection_fields( sock_ops_context->local_port = htons(incoming_values[fields->local_port_field].value.uint16); sock_ops_context->remote_port = htons(incoming_values[fields->remote_port_field].value.uint16); sock_ops_context->protocol = incoming_values[fields->protocol_field].value.uint8; - *compartment_id = incoming_values[fields->compartment_id_field].value.uint32; + sock_ops_context->compartment_id = incoming_values[fields->compartment_id_field].value.uint32; + sock_ops_context->interface_luid = *incoming_values[fields->interface_luid_field].value.uint64; } // @@ -360,7 +361,6 @@ net_ebpf_extension_sock_ops_flow_established_classify( net_ebpf_extension_sock_ops_wfp_flow_context_t* local_flow_context = NULL; bpf_sock_ops_t* sock_ops_context = NULL; uint32_t client_compartment_id = UNSPECIFIED_COMPARTMENT_ID; - uint32_t compartment_id = UNSPECIFIED_COMPARTMENT_ID; net_ebpf_extension_hook_id_t hook_id = net_ebpf_extension_get_hook_id_from_wfp_layer_id(incoming_fixed_values->layerId); KIRQL irql; @@ -396,11 +396,14 @@ net_ebpf_extension_sock_ops_flow_established_classify( local_flow_context->filter_context = filter_context; sock_ops_context = &local_flow_context->context; - _net_ebpf_extension_sock_ops_copy_wfp_connection_fields(incoming_fixed_values, sock_ops_context, &compartment_id); + _net_ebpf_extension_sock_ops_copy_wfp_connection_fields(incoming_fixed_values, sock_ops_context); client_compartment_id = filter_context->compartment_id; - ASSERT((client_compartment_id == UNSPECIFIED_COMPARTMENT_ID) || (client_compartment_id == compartment_id)); - if (client_compartment_id != UNSPECIFIED_COMPARTMENT_ID && client_compartment_id != compartment_id) { + ASSERT( + (client_compartment_id == UNSPECIFIED_COMPARTMENT_ID) || + (client_compartment_id == sock_ops_context->compartment_id)); + if (client_compartment_id != UNSPECIFIED_COMPARTMENT_ID && + client_compartment_id != sock_ops_context->compartment_id) { // The client is not interested in this compartment Id. goto Exit; } @@ -491,4 +494,4 @@ Exit: ExFreePool(local_flow_context); if (attached_client != NULL) net_ebpf_extension_hook_client_leave_rundown(attached_client, execution_type); -} \ No newline at end of file +} diff --git a/tests/bpf2c_tests/expected/cgroup_sock_addr_dll.c b/tests/bpf2c_tests/expected/cgroup_sock_addr_dll.c index 578de1be2..8e133780b 100644 --- a/tests/bpf2c_tests/expected/cgroup_sock_addr_dll.c +++ b/tests/bpf2c_tests/expected/cgroup_sock_addr_dll.c @@ -55,7 +55,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -67,7 +67,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -101,129 +101,126 @@ static uint16_t authorize_connect4_maps[] = { #pragma code_seg(push, "cgroup~1") static uint64_t authorize_connect4(void* context) -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" { -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" // Prologue -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_connect4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_connect4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 68 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 70 "sample/cgroup_sock_addr.c" return r0; -#line 68 "sample/cgroup_sock_addr.c" +#line 70 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -243,153 +240,162 @@ static uint16_t authorize_connect6_maps[] = { #pragma code_seg(push, "cgroup~2") static uint64_t authorize_connect6(void* context) -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" { -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" // Prologue -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_connect6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_connect6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 75 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 77 "sample/cgroup_sock_addr.c" return r0; -#line 75 "sample/cgroup_sock_addr.c" +#line 77 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -409,129 +415,126 @@ static uint16_t authorize_recv_accept4_maps[] = { #pragma code_seg(push, "cgroup~3") static uint64_t authorize_recv_accept4(void* context) -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" { -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" // Prologue -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 82 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 84 "sample/cgroup_sock_addr.c" return r0; -#line 82 "sample/cgroup_sock_addr.c" +#line 84 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -551,153 +554,162 @@ static uint16_t authorize_recv_accept6_maps[] = { #pragma code_seg(push, "cgroup~4") static uint64_t authorize_recv_accept6(void* context) -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" { -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" // Prologue -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/cgroup_sock_addr.c" return r0; -#line 89 "sample/cgroup_sock_addr.c" +#line 91 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -714,7 +726,7 @@ static program_entry_t _programs[] = { 1, authorize_connect4_helpers, 1, - 30, + 29, &authorize_connect4_program_type_guid, &authorize_connect4_attach_type_guid, }, @@ -728,7 +740,7 @@ static program_entry_t _programs[] = { 1, authorize_connect6_helpers, 1, - 38, + 41, &authorize_connect6_program_type_guid, &authorize_connect6_attach_type_guid, }, @@ -742,7 +754,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept4_helpers, 1, - 30, + 29, &authorize_recv_accept4_program_type_guid, &authorize_recv_accept4_attach_type_guid, }, @@ -756,7 +768,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept6_helpers, 1, - 38, + 41, &authorize_recv_accept6_program_type_guid, &authorize_recv_accept6_attach_type_guid, }, diff --git a/tests/bpf2c_tests/expected/cgroup_sock_addr_raw.c b/tests/bpf2c_tests/expected/cgroup_sock_addr_raw.c index 820b1bd5b..f59c6eaae 100644 --- a/tests/bpf2c_tests/expected/cgroup_sock_addr_raw.c +++ b/tests/bpf2c_tests/expected/cgroup_sock_addr_raw.c @@ -17,7 +17,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -29,7 +29,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -63,129 +63,126 @@ static uint16_t authorize_connect4_maps[] = { #pragma code_seg(push, "cgroup~1") static uint64_t authorize_connect4(void* context) -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" { -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" // Prologue -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_connect4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_connect4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 68 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 70 "sample/cgroup_sock_addr.c" return r0; -#line 68 "sample/cgroup_sock_addr.c" +#line 70 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -205,153 +202,162 @@ static uint16_t authorize_connect6_maps[] = { #pragma code_seg(push, "cgroup~2") static uint64_t authorize_connect6(void* context) -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" { -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" // Prologue -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_connect6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_connect6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 75 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 77 "sample/cgroup_sock_addr.c" return r0; -#line 75 "sample/cgroup_sock_addr.c" +#line 77 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -371,129 +377,126 @@ static uint16_t authorize_recv_accept4_maps[] = { #pragma code_seg(push, "cgroup~3") static uint64_t authorize_recv_accept4(void* context) -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" { -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" // Prologue -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 82 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 84 "sample/cgroup_sock_addr.c" return r0; -#line 82 "sample/cgroup_sock_addr.c" +#line 84 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -513,153 +516,162 @@ static uint16_t authorize_recv_accept6_maps[] = { #pragma code_seg(push, "cgroup~4") static uint64_t authorize_recv_accept6(void* context) -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" { -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" // Prologue -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/cgroup_sock_addr.c" return r0; -#line 89 "sample/cgroup_sock_addr.c" +#line 91 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -676,7 +688,7 @@ static program_entry_t _programs[] = { 1, authorize_connect4_helpers, 1, - 30, + 29, &authorize_connect4_program_type_guid, &authorize_connect4_attach_type_guid, }, @@ -690,7 +702,7 @@ static program_entry_t _programs[] = { 1, authorize_connect6_helpers, 1, - 38, + 41, &authorize_connect6_program_type_guid, &authorize_connect6_attach_type_guid, }, @@ -704,7 +716,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept4_helpers, 1, - 30, + 29, &authorize_recv_accept4_program_type_guid, &authorize_recv_accept4_attach_type_guid, }, @@ -718,7 +730,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept6_helpers, 1, - 38, + 41, &authorize_recv_accept6_program_type_guid, &authorize_recv_accept6_attach_type_guid, }, diff --git a/tests/bpf2c_tests/expected/cgroup_sock_addr_sys.c b/tests/bpf2c_tests/expected/cgroup_sock_addr_sys.c index 80bf1044c..fa3a83a26 100644 --- a/tests/bpf2c_tests/expected/cgroup_sock_addr_sys.c +++ b/tests/bpf2c_tests/expected/cgroup_sock_addr_sys.c @@ -184,7 +184,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -196,7 +196,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -230,129 +230,126 @@ static uint16_t authorize_connect4_maps[] = { #pragma code_seg(push, "cgroup~1") static uint64_t authorize_connect4(void* context) -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" { -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" // Prologue -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 66 "sample/cgroup_sock_addr.c" +#line 68 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_connect4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_connect4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 68 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 70 "sample/cgroup_sock_addr.c" return r0; -#line 68 "sample/cgroup_sock_addr.c" +#line 70 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -372,153 +369,162 @@ static uint16_t authorize_connect6_maps[] = { #pragma code_seg(push, "cgroup~2") static uint64_t authorize_connect6(void* context) -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" { -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" // Prologue -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 73 "sample/cgroup_sock_addr.c" +#line 75 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_connect6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_connect6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 75 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 77 "sample/cgroup_sock_addr.c" return r0; -#line 75 "sample/cgroup_sock_addr.c" +#line 77 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -538,129 +544,126 @@ static uint16_t authorize_recv_accept4_maps[] = { #pragma code_seg(push, "cgroup~3") static uint64_t authorize_recv_accept4(void* context) -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" { -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" // Prologue -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 80 "sample/cgroup_sock_addr.c" +#line 82 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXW pc=1 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r2; - // EBPF_OP_STXW pc=2 dst=r10 src=r2 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=3 dst=r10 src=r2 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_STXW pc=4 dst=r10 src=r2 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_STXW pc=5 dst=r10 src=r2 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=5 dst=r10 src=r2 offset=-48 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_STXW pc=6 dst=r10 src=r2 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=6 dst=r10 src=r2 offset=-56 imm=0 #line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; - // EBPF_OP_STXW pc=7 dst=r10 src=r2 offset=-36 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; - // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-40 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r2; - // EBPF_OP_STXW pc=9 dst=r10 src=r2 offset=-44 imm=0 -#line 34 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=4 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=7 dst=r2 src=r1 offset=4 imm=0 #line 37 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_STXW pc=11 dst=r10 src=r2 offset=-48 imm=0 + // EBPF_OP_STXW pc=8 dst=r10 src=r2 offset=-56 imm=0 #line 37 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=12 dst=r2 src=r1 offset=20 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=9 dst=r2 src=r1 offset=20 imm=0 #line 38 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=13 dst=r10 src=r2 offset=-32 imm=0 + // EBPF_OP_STXH pc=10 dst=r10 src=r2 offset=-40 imm=0 #line 38 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=14 dst=r2 src=r1 offset=24 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=11 dst=r2 src=r1 offset=24 imm=0 #line 39 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=15 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=12 dst=r10 src=r2 offset=-36 imm=0 #line 39 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=16 dst=r2 src=r1 offset=40 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=13 dst=r2 src=r1 offset=40 imm=0 #line 40 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=17 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=14 dst=r10 src=r2 offset=-20 imm=0 #line 40 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=18 dst=r1 src=r1 offset=44 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=15 dst=r2 src=r1 offset=44 imm=0 #line 41 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=19 dst=r10 src=r1 offset=-8 imm=0 -#line 41 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=20 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=16 dst=r10 src=r2 offset=-16 imm=0 #line 41 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=17 dst=r1 src=r1 offset=56 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=18 dst=r10 src=r1 offset=-8 imm=0 +#line 42 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=19 dst=r2 src=r10 offset=0 imm=0 +#line 42 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=21 dst=r2 src=r0 offset=0 imm=-48 -#line 41 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=22 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_ADD64_IMM pc=20 dst=r2 src=r0 offset=0 imm=-56 +#line 42 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=21 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=24 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=23 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept4_helpers[0].address -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept4_helpers[0].tail_call) && (r0 == 0)) -#line 43 "sample/cgroup_sock_addr.c" +#line 44 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=25 dst=r1 src=r0 offset=0 imm=0 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=24 dst=r1 src=r0 offset=0 imm=0 +#line 44 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=26 dst=r0 src=r0 offset=0 imm=1 -#line 43 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=25 dst=r0 src=r0 offset=0 imm=1 +#line 44 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=27 dst=r1 src=r0 offset=1 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=26 dst=r1 src=r0 offset=1 imm=0 +#line 46 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 45 "sample/cgroup_sock_addr.c" +#line 46 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=28 dst=r0 src=r1 offset=0 imm=0 -#line 45 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=27 dst=r0 src=r1 offset=0 imm=0 +#line 46 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=29 dst=r0 src=r0 offset=0 imm=0 -#line 82 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=28 dst=r0 src=r0 offset=0 imm=0 +#line 84 "sample/cgroup_sock_addr.c" return r0; -#line 82 "sample/cgroup_sock_addr.c" +#line 84 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -680,153 +683,162 @@ static uint16_t authorize_recv_accept6_maps[] = { #pragma code_seg(push, "cgroup~4") static uint64_t authorize_recv_accept6(void* context) -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" { -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" // Prologue -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r0 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r1 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r2 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r3 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r4 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r5 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" register uint64_t r10 = 0; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r1 = (uintptr_t)context; -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r2 src=r0 offset=0 imm=0 -#line 87 "sample/cgroup_sock_addr.c" +#line 89 "sample/cgroup_sock_addr.c" r2 = IMMEDIATE(0); // EBPF_OP_STXDW pc=1 dst=r10 src=r2 offset=-16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; // EBPF_OP_STXDW pc=2 dst=r10 src=r2 offset=-24 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; // EBPF_OP_STXDW pc=3 dst=r10 src=r2 offset=-32 imm=0 -#line 53 "sample/cgroup_sock_addr.c" +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=4 dst=r2 src=r1 offset=8 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); - // EBPF_OP_LSH64_IMM pc=5 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=6 dst=r3 src=r1 offset=4 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=7 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=8 dst=r10 src=r2 offset=-48 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; - // EBPF_OP_LDXW pc=9 dst=r2 src=r1 offset=16 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); - // EBPF_OP_LSH64_IMM pc=10 dst=r2 src=r0 offset=0 imm=32 -#line 53 "sample/cgroup_sock_addr.c" - r2 <<= IMMEDIATE(32); - // EBPF_OP_LDXW pc=11 dst=r3 src=r1 offset=12 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=12 dst=r2 src=r3 offset=0 imm=0 -#line 53 "sample/cgroup_sock_addr.c" - r2 |= r3; - // EBPF_OP_STXDW pc=13 dst=r10 src=r2 offset=-40 imm=0 -#line 53 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXDW pc=4 dst=r10 src=r2 offset=-40 imm=0 +#line 54 "sample/cgroup_sock_addr.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; - // EBPF_OP_LDXH pc=14 dst=r2 src=r1 offset=20 imm=0 + // EBPF_OP_LDXW pc=5 dst=r2 src=r1 offset=8 imm=0 #line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(8)); + // EBPF_OP_LSH64_IMM pc=6 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=7 dst=r3 src=r1 offset=4 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=8 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=9 dst=r10 src=r2 offset=-56 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; + // EBPF_OP_LDXW pc=10 dst=r2 src=r1 offset=16 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(16)); + // EBPF_OP_LSH64_IMM pc=11 dst=r2 src=r0 offset=0 imm=32 +#line 54 "sample/cgroup_sock_addr.c" + r2 <<= IMMEDIATE(32); + // EBPF_OP_LDXW pc=12 dst=r3 src=r1 offset=12 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r3 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=13 dst=r2 src=r3 offset=0 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + r2 |= r3; + // EBPF_OP_STXDW pc=14 dst=r10 src=r2 offset=-48 imm=0 +#line 54 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_LDXH pc=15 dst=r2 src=r1 offset=20 imm=0 +#line 55 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(20)); - // EBPF_OP_STXH pc=15 dst=r10 src=r2 offset=-32 imm=0 -#line 54 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=16 dst=r2 src=r1 offset=24 imm=0 + // EBPF_OP_STXH pc=16 dst=r10 src=r2 offset=-40 imm=0 #line 55 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=17 dst=r2 src=r1 offset=24 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(24)); - // EBPF_OP_STXW pc=17 dst=r10 src=r2 offset=-28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=18 dst=r2 src=r1 offset=28 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=18 dst=r10 src=r2 offset=-36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=19 dst=r2 src=r1 offset=28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(28)); - // EBPF_OP_STXW pc=19 dst=r10 src=r2 offset=-24 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=20 dst=r2 src=r1 offset=32 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=20 dst=r10 src=r2 offset=-32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=21 dst=r2 src=r1 offset=32 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(32)); - // EBPF_OP_STXW pc=21 dst=r10 src=r2 offset=-20 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r2; - // EBPF_OP_LDXW pc=22 dst=r2 src=r1 offset=36 imm=0 -#line 55 "sample/cgroup_sock_addr.c" + // EBPF_OP_STXW pc=22 dst=r10 src=r2 offset=-28 imm=0 +#line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; + // EBPF_OP_LDXW pc=23 dst=r2 src=r1 offset=36 imm=0 +#line 56 "sample/cgroup_sock_addr.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(36)); - // EBPF_OP_STXW pc=23 dst=r10 src=r2 offset=-16 imm=0 -#line 55 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_LDXH pc=24 dst=r2 src=r1 offset=40 imm=0 + // EBPF_OP_STXW pc=24 dst=r10 src=r2 offset=-24 imm=0 #line 56 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXH pc=25 dst=r2 src=r1 offset=40 imm=0 +#line 57 "sample/cgroup_sock_addr.c" r2 = *(uint16_t*)(uintptr_t)(r1 + OFFSET(40)); - // EBPF_OP_STXH pc=25 dst=r10 src=r2 offset=-12 imm=0 -#line 56 "sample/cgroup_sock_addr.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXW pc=26 dst=r1 src=r1 offset=44 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); - // EBPF_OP_STXW pc=27 dst=r10 src=r1 offset=-8 imm=0 -#line 57 "sample/cgroup_sock_addr.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=28 dst=r2 src=r10 offset=0 imm=0 + // EBPF_OP_STXH pc=26 dst=r10 src=r2 offset=-20 imm=0 #line 57 "sample/cgroup_sock_addr.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint16_t)r2; + // EBPF_OP_LDXW pc=27 dst=r2 src=r1 offset=44 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(44)); + // EBPF_OP_STXW pc=28 dst=r10 src=r2 offset=-16 imm=0 +#line 58 "sample/cgroup_sock_addr.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=29 dst=r1 src=r1 offset=56 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXDW pc=30 dst=r10 src=r1 offset=-8 imm=0 +#line 59 "sample/cgroup_sock_addr.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=31 dst=r2 src=r10 offset=0 imm=0 +#line 59 "sample/cgroup_sock_addr.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=29 dst=r2 src=r0 offset=0 imm=-48 -#line 57 "sample/cgroup_sock_addr.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=30 dst=r1 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_IMM pc=32 dst=r2 src=r0 offset=0 imm=-56 #line 59 "sample/cgroup_sock_addr.c" + r2 += IMMEDIATE(-56); + // EBPF_OP_LDDW pc=33 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=32 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_CALL pc=35 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = authorize_recv_accept6_helpers[0].address -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" (r1, r2, r3, r4, r5); -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" if ((authorize_recv_accept6_helpers[0].tail_call) && (r0 == 0)) -#line 59 "sample/cgroup_sock_addr.c" +#line 61 "sample/cgroup_sock_addr.c" return 0; - // EBPF_OP_MOV64_REG pc=33 dst=r1 src=r0 offset=0 imm=0 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_REG pc=36 dst=r1 src=r0 offset=0 imm=0 +#line 61 "sample/cgroup_sock_addr.c" r1 = r0; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=1 -#line 59 "sample/cgroup_sock_addr.c" + // EBPF_OP_MOV64_IMM pc=37 dst=r0 src=r0 offset=0 imm=1 +#line 61 "sample/cgroup_sock_addr.c" r0 = IMMEDIATE(1); - // EBPF_OP_JEQ_IMM pc=35 dst=r1 src=r0 offset=1 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_JEQ_IMM pc=38 dst=r1 src=r0 offset=1 imm=0 +#line 63 "sample/cgroup_sock_addr.c" if (r1 == IMMEDIATE(0)) -#line 61 "sample/cgroup_sock_addr.c" +#line 63 "sample/cgroup_sock_addr.c" goto label_1; - // EBPF_OP_LDXW pc=36 dst=r0 src=r1 offset=0 imm=0 -#line 61 "sample/cgroup_sock_addr.c" + // EBPF_OP_LDXW pc=39 dst=r0 src=r1 offset=0 imm=0 +#line 63 "sample/cgroup_sock_addr.c" r0 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); label_1: - // EBPF_OP_EXIT pc=37 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/cgroup_sock_addr.c" + // EBPF_OP_EXIT pc=40 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/cgroup_sock_addr.c" return r0; -#line 89 "sample/cgroup_sock_addr.c" +#line 91 "sample/cgroup_sock_addr.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -843,7 +855,7 @@ static program_entry_t _programs[] = { 1, authorize_connect4_helpers, 1, - 30, + 29, &authorize_connect4_program_type_guid, &authorize_connect4_attach_type_guid, }, @@ -857,7 +869,7 @@ static program_entry_t _programs[] = { 1, authorize_connect6_helpers, 1, - 38, + 41, &authorize_connect6_program_type_guid, &authorize_connect6_attach_type_guid, }, @@ -871,7 +883,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept4_helpers, 1, - 30, + 29, &authorize_recv_accept4_program_type_guid, &authorize_recv_accept4_attach_type_guid, }, @@ -885,7 +897,7 @@ static program_entry_t _programs[] = { 1, authorize_recv_accept6_helpers, 1, - 38, + 41, &authorize_recv_accept6_program_type_guid, &authorize_recv_accept6_attach_type_guid, }, diff --git a/tests/bpf2c_tests/expected/sockops_dll.c b/tests/bpf2c_tests/expected/sockops_dll.c index 13e2ed632..0a9570a21 100644 --- a/tests/bpf2c_tests/expected/sockops_dll.c +++ b/tests/bpf2c_tests/expected/sockops_dll.c @@ -55,7 +55,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -103,760 +103,769 @@ static uint16_t connection_monitor_maps[] = { #pragma code_seg(push, "sockops") static uint64_t connection_monitor(void* context) -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" { -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" // Prologue -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r0 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r1 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r2 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r3 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r4 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r5 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r6 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r7 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r8 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r9 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r10 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r1 = (uintptr_t)context; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r7 src=r0 offset=0 imm=2 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r7 = IMMEDIATE(2); // EBPF_OP_MOV64_IMM pc=1 dst=r4 src=r0 offset=0 imm=1 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r4 = IMMEDIATE(1); // EBPF_OP_LDXW pc=2 dst=r2 src=r1 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); // EBPF_OP_JEQ_IMM pc=3 dst=r2 src=r0 offset=8 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(0)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; // EBPF_OP_JEQ_IMM pc=4 dst=r2 src=r0 offset=5 imm=2 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(2)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_1; // EBPF_OP_LDDW pc=5 dst=r6 src=r0 offset=0 imm=-1 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r6 = (uint64_t)4294967295; - // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=214 imm=1 -#line 70 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=217 imm=1 +#line 72 "sample/sockops.c" if (r2 != IMMEDIATE(1)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_13; // EBPF_OP_MOV64_IMM pc=8 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_JA pc=9 dst=r0 src=r0 offset=2 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; label_1: // EBPF_OP_MOV64_IMM pc=10 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_MOV64_IMM pc=11 dst=r7 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r7 = IMMEDIATE(0); label_2: // EBPF_OP_LDXW pc=12 dst=r2 src=r1 offset=4 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=51 imm=2 -#line 87 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=50 imm=2 +#line 89 "sample/sockops.c" if (r2 != IMMEDIATE(2)) -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" goto label_7; // EBPF_OP_MOV64_IMM pc=14 dst=r6 src=r0 offset=0 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_STXW pc=15 dst=r10 src=r6 offset=-4 imm=0 + // EBPF_OP_STXDW pc=15 dst=r10 src=r6 offset=-8 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint32_t)r6; - // EBPF_OP_STXW pc=16 dst=r10 src=r6 offset=-8 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=16 dst=r10 src=r6 offset=-16 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r6; - // EBPF_OP_STXW pc=17 dst=r10 src=r6 offset=-12 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=17 dst=r10 src=r6 offset=-24 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r6; - // EBPF_OP_STXW pc=18 dst=r10 src=r6 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=18 dst=r10 src=r6 offset=-32 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r6; - // EBPF_OP_STXW pc=19 dst=r10 src=r6 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=19 dst=r10 src=r6 offset=-40 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r6; - // EBPF_OP_STXW pc=20 dst=r10 src=r6 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=20 dst=r10 src=r6 offset=-48 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r6; - // EBPF_OP_STXW pc=21 dst=r10 src=r6 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=21 dst=r10 src=r6 offset=-56 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r6; - // EBPF_OP_STXW pc=22 dst=r10 src=r6 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=22 dst=r10 src=r6 offset=-64 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r6; - // EBPF_OP_STXW pc=23 dst=r10 src=r6 offset=-36 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r6; - // EBPF_OP_STXW pc=24 dst=r10 src=r6 offset=-40 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r6; - // EBPF_OP_STXW pc=25 dst=r10 src=r6 offset=-44 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r6; - // EBPF_OP_MOV64_IMM pc=26 dst=r2 src=r0 offset=0 imm=28 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r6; + // EBPF_OP_MOV64_IMM pc=23 dst=r2 src=r0 offset=0 imm=28 #line 22 "sample/sockops.c" r2 = IMMEDIATE(28); - // EBPF_OP_MOV64_IMM pc=27 dst=r5 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=24 dst=r5 src=r0 offset=0 imm=8 #line 24 "sample/sockops.c" r5 = IMMEDIATE(8); - // EBPF_OP_JNE_IMM pc=28 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=25 dst=r4 src=r0 offset=1 imm=0 #line 24 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 24 "sample/sockops.c" goto label_3; - // EBPF_OP_MOV64_IMM pc=29 dst=r5 src=r0 offset=0 imm=28 + // EBPF_OP_MOV64_IMM pc=26 dst=r5 src=r0 offset=0 imm=28 #line 24 "sample/sockops.c" r5 = IMMEDIATE(28); label_3: - // EBPF_OP_MOV64_REG pc=30 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=27 dst=r3 src=r1 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=31 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=28 dst=r3 src=r5 offset=0 imm=0 #line 24 "sample/sockops.c" r3 += r5; - // EBPF_OP_LDXW pc=32 dst=r3 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=29 dst=r3 src=r3 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=33 dst=r10 src=r3 offset=-48 imm=0 + // EBPF_OP_STXW pc=30 dst=r10 src=r3 offset=-64 imm=0 #line 24 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r3; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=44 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint32_t)r3; + // EBPF_OP_MOV64_IMM pc=31 dst=r0 src=r0 offset=0 imm=44 #line 24 "sample/sockops.c" r0 = IMMEDIATE(44); - // EBPF_OP_MOV64_IMM pc=35 dst=r3 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=32 dst=r3 src=r0 offset=0 imm=24 #line 25 "sample/sockops.c" r3 = IMMEDIATE(24); - // EBPF_OP_JNE_IMM pc=36 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=33 dst=r4 src=r0 offset=1 imm=0 #line 25 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 25 "sample/sockops.c" goto label_4; - // EBPF_OP_MOV64_IMM pc=37 dst=r3 src=r0 offset=0 imm=44 + // EBPF_OP_MOV64_IMM pc=34 dst=r3 src=r0 offset=0 imm=44 #line 25 "sample/sockops.c" r3 = IMMEDIATE(44); label_4: - // EBPF_OP_MOV64_REG pc=38 dst=r5 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=35 dst=r5 src=r1 offset=0 imm=0 #line 25 "sample/sockops.c" r5 = r1; - // EBPF_OP_ADD64_REG pc=39 dst=r5 src=r3 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=36 dst=r5 src=r3 offset=0 imm=0 #line 25 "sample/sockops.c" r5 += r3; - // EBPF_OP_LDXW pc=40 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_LDXW pc=37 dst=r3 src=r5 offset=0 imm=0 #line 25 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r5 + OFFSET(0)); - // EBPF_OP_STXH pc=41 dst=r10 src=r3 offset=-32 imm=0 + // EBPF_OP_STXH pc=38 dst=r10 src=r3 offset=-48 imm=0 #line 25 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r3; - // EBPF_OP_JNE_IMM pc=42 dst=r4 src=r0 offset=1 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r3; + // EBPF_OP_JNE_IMM pc=39 dst=r4 src=r0 offset=1 imm=0 #line 27 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 27 "sample/sockops.c" goto label_5; - // EBPF_OP_MOV64_IMM pc=43 dst=r0 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=40 dst=r0 src=r0 offset=0 imm=24 #line 27 "sample/sockops.c" r0 = IMMEDIATE(24); label_5: - // EBPF_OP_JNE_IMM pc=44 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=41 dst=r4 src=r0 offset=1 imm=0 #line 26 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 26 "sample/sockops.c" goto label_6; - // EBPF_OP_MOV64_IMM pc=45 dst=r2 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=42 dst=r2 src=r0 offset=0 imm=8 #line 26 "sample/sockops.c" r2 = IMMEDIATE(8); label_6: - // EBPF_OP_OR64_REG pc=46 dst=r7 src=r4 offset=0 imm=0 -#line 29 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=43 dst=r7 src=r4 offset=0 imm=0 +#line 30 "sample/sockops.c" r7 |= r4; - // EBPF_OP_MOV64_REG pc=47 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=44 dst=r3 src=r1 offset=0 imm=0 #line 26 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=48 dst=r3 src=r2 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=45 dst=r3 src=r2 offset=0 imm=0 #line 26 "sample/sockops.c" r3 += r2; - // EBPF_OP_LDXW pc=49 dst=r2 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=46 dst=r2 src=r3 offset=0 imm=0 #line 26 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=50 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=47 dst=r10 src=r2 offset=-44 imm=0 #line 26 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_MOV64_REG pc=51 dst=r2 src=r1 offset=0 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; + // EBPF_OP_MOV64_REG pc=48 dst=r2 src=r1 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = r1; - // EBPF_OP_ADD64_REG pc=52 dst=r2 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=49 dst=r2 src=r0 offset=0 imm=0 #line 27 "sample/sockops.c" r2 += r0; - // EBPF_OP_LDXW pc=53 dst=r2 src=r2 offset=0 imm=0 + // EBPF_OP_LDXW pc=50 dst=r2 src=r2 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r2 + OFFSET(0)); - // EBPF_OP_STXH pc=54 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=51 dst=r10 src=r2 offset=-28 imm=0 #line 27 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXB pc=55 dst=r1 src=r1 offset=48 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r2; + // EBPF_OP_LDXB pc=52 dst=r2 src=r1 offset=48 imm=0 #line 28 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); - // EBPF_OP_STXB pc=56 dst=r10 src=r7 offset=-4 imm=0 -#line 30 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r7; - // EBPF_OP_STXW pc=57 dst=r10 src=r1 offset=-8 imm=0 + r2 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); + // EBPF_OP_STXW pc=53 dst=r10 src=r2 offset=-24 imm=0 #line 28 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=58 dst=r2 src=r10 offset=0 imm=0 -#line 28 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=59 dst=r2 src=r0 offset=0 imm=-48 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=54 dst=r1 src=r1 offset=56 imm=0 #line 29 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=60 dst=r1 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXB pc=55 dst=r10 src=r7 offset=-8 imm=0 +#line 31 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r7; + // EBPF_OP_STXDW pc=56 dst=r10 src=r1 offset=-16 imm=0 +#line 29 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=57 dst=r2 src=r10 offset=0 imm=0 +#line 29 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=58 dst=r2 src=r0 offset=0 imm=-64 +#line 30 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=59 dst=r1 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=62 dst=r0 src=r0 offset=0 imm=1 -#line 32 "sample/sockops.c" + // EBPF_OP_CALL pc=61 dst=r0 src=r0 offset=0 imm=1 +#line 33 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" return 0; - // EBPF_OP_JEQ_IMM pc=63 dst=r0 src=r0 offset=158 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=62 dst=r0 src=r0 offset=162 imm=0 +#line 33 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" goto label_13; - // EBPF_OP_JA pc=64 dst=r0 src=r0 offset=149 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JA pc=63 dst=r0 src=r0 offset=153 imm=0 +#line 33 "sample/sockops.c" goto label_12; label_7: - // EBPF_OP_STXDW pc=65 dst=r10 src=r7 offset=-56 imm=0 -#line 32 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r7; - // EBPF_OP_MOV64_IMM pc=66 dst=r2 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_STXDW pc=64 dst=r10 src=r7 offset=-72 imm=0 +#line 33 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r7; + // EBPF_OP_MOV64_IMM pc=65 dst=r2 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=66 dst=r10 src=r2 offset=-8 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-16 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-16 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-24 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-24 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-32 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-32 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_MOV64_REG pc=71 dst=r3 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-40 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=71 dst=r10 src=r2 offset=-48 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_MOV64_REG pc=72 dst=r3 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_IMM pc=72 dst=r3 src=r0 offset=0 imm=28 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=73 dst=r3 src=r0 offset=0 imm=28 +#line 47 "sample/sockops.c" r3 += IMMEDIATE(28); - // EBPF_OP_STXDW pc=73 dst=r10 src=r1 offset=-80 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; - // EBPF_OP_MOV64_REG pc=74 dst=r0 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=74 dst=r10 src=r1 offset=-96 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=75 dst=r0 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r1; - // EBPF_OP_ADD64_IMM pc=75 dst=r0 src=r0 offset=0 imm=8 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=76 dst=r0 src=r0 offset=0 imm=8 +#line 47 "sample/sockops.c" r0 += IMMEDIATE(8); - // EBPF_OP_STXDW pc=76 dst=r10 src=r0 offset=-104 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r0; - // EBPF_OP_JNE_IMM pc=77 dst=r4 src=r0 offset=1 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=77 dst=r10 src=r0 offset=-120 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)) = (uint64_t)r0; + // EBPF_OP_JNE_IMM pc=78 dst=r4 src=r0 offset=1 imm=0 +#line 47 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 46 "sample/sockops.c" +#line 47 "sample/sockops.c" goto label_8; - // EBPF_OP_MOV64_REG pc=78 dst=r0 src=r3 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=79 dst=r0 src=r3 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r3; label_8: - // EBPF_OP_LDXB pc=79 dst=r2 src=r0 offset=13 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=80 dst=r2 src=r0 offset=13 imm=0 +#line 48 "sample/sockops.c" r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=80 dst=r2 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=81 dst=r2 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=81 dst=r1 src=r0 offset=12 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=82 dst=r1 src=r0 offset=12 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(12)); - // EBPF_OP_STXDW pc=82 dst=r10 src=r1 offset=-64 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=83 dst=r8 src=r0 offset=15 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=83 dst=r10 src=r1 offset=-80 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=84 dst=r8 src=r0 offset=15 imm=0 +#line 48 "sample/sockops.c" r8 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=84 dst=r8 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=85 dst=r8 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r8 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=85 dst=r5 src=r0 offset=14 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=86 dst=r5 src=r0 offset=14 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=86 dst=r8 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=87 dst=r8 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r8 |= r5; - // EBPF_OP_LDXB pc=87 dst=r6 src=r0 offset=9 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=88 dst=r6 src=r0 offset=9 imm=0 +#line 48 "sample/sockops.c" r6 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=88 dst=r6 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=89 dst=r6 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r6 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=89 dst=r1 src=r0 offset=8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=90 dst=r1 src=r0 offset=8 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(8)); - // EBPF_OP_STXDW pc=90 dst=r10 src=r1 offset=-72 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=91 dst=r9 src=r0 offset=11 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=91 dst=r10 src=r1 offset=-88 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=92 dst=r9 src=r0 offset=11 imm=0 +#line 48 "sample/sockops.c" r9 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=92 dst=r9 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=93 dst=r9 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r9 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=93 dst=r5 src=r0 offset=10 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=94 dst=r5 src=r0 offset=10 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=94 dst=r9 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=95 dst=r9 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r9 |= r5; - // EBPF_OP_LDXB pc=95 dst=r5 src=r0 offset=1 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=96 dst=r5 src=r0 offset=1 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(1)); - // EBPF_OP_LDXB pc=96 dst=r7 src=r0 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=97 dst=r7 src=r0 offset=0 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(0)); - // EBPF_OP_STXDW pc=97 dst=r10 src=r7 offset=-88 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r7; - // EBPF_OP_LDXB pc=98 dst=r7 src=r0 offset=3 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=98 dst=r10 src=r7 offset=-104 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r7; + // EBPF_OP_LDXB pc=99 dst=r7 src=r0 offset=3 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(3)); - // EBPF_OP_LDXB pc=99 dst=r1 src=r0 offset=2 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=100 dst=r1 src=r0 offset=2 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(2)); - // EBPF_OP_STXDW pc=100 dst=r10 src=r1 offset=-96 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=101 dst=r4 src=r0 offset=1 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_STXDW pc=101 dst=r10 src=r1 offset=-112 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=102 dst=r4 src=r0 offset=1 imm=0 +#line 49 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" +#line 49 "sample/sockops.c" goto label_9; - // EBPF_OP_LDXDW pc=102 dst=r3 src=r10 offset=-104 imm=0 -#line 48 "sample/sockops.c" - r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_LDXDW pc=103 dst=r3 src=r10 offset=-120 imm=0 +#line 49 "sample/sockops.c" + r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)); label_9: - // EBPF_OP_LDXDW pc=103 dst=r1 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_OR64_REG pc=104 dst=r2 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=104 dst=r1 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_OR64_REG pc=105 dst=r2 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r2 |= r1; - // EBPF_OP_LDXDW pc=105 dst=r1 src=r10 offset=-72 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_OR64_REG pc=106 dst=r6 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r6 |= r1; - // EBPF_OP_LSH64_IMM pc=107 dst=r9 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r9 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=108 dst=r8 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r8 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=109 dst=r5 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LSH64_IMM pc=110 dst=r7 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r7 <<= IMMEDIATE(8); - // EBPF_OP_MOV64_IMM pc=111 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=112 dst=r10 src=r1 offset=-72 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_MOV64_IMM pc=113 dst=r1 src=r0 offset=0 imm=24 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=114 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=115 dst=r4 src=r0 offset=2 imm=0 -#line 48 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" - goto label_10; - // EBPF_OP_MOV64_IMM pc=116 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; -label_10: - // EBPF_OP_OR64_REG pc=118 dst=r9 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r9 |= r6; - // EBPF_OP_OR64_REG pc=119 dst=r8 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r8 |= r2; - // EBPF_OP_LDXDW pc=120 dst=r1 src=r10 offset=-88 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=106 dst=r1 src=r10 offset=-88 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); - // EBPF_OP_OR64_REG pc=121 dst=r5 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r5 |= r1; - // EBPF_OP_LDXDW pc=122 dst=r1 src=r10 offset=-96 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); - // EBPF_OP_OR64_REG pc=123 dst=r7 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r7 |= r1; - // EBPF_OP_JNE_IMM pc=124 dst=r4 src=r0 offset=2 imm=0 -#line 51 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 51 "sample/sockops.c" - goto label_11; - // EBPF_OP_MOV64_IMM pc=125 dst=r1 src=r0 offset=0 imm=24 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=107 dst=r6 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r6 |= r1; + // EBPF_OP_LSH64_IMM pc=108 dst=r9 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r9 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=109 dst=r8 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r8 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=110 dst=r5 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LSH64_IMM pc=111 dst=r7 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r7 <<= IMMEDIATE(8); + // EBPF_OP_MOV64_IMM pc=112 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=113 dst=r10 src=r1 offset=-88 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_MOV64_IMM pc=114 dst=r1 src=r0 offset=0 imm=24 +#line 49 "sample/sockops.c" r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=126 dst=r10 src=r1 offset=-72 imm=0 -#line 51 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; -label_11: - // EBPF_OP_LDXDW pc=127 dst=r2 src=r10 offset=-56 imm=0 -#line 51 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_OR64_REG pc=128 dst=r2 src=r4 offset=0 imm=0 -#line 53 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_STXDW pc=129 dst=r10 src=r2 offset=-56 imm=0 -#line 53 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; - // EBPF_OP_LSH64_IMM pc=130 dst=r8 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r8 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=131 dst=r8 src=r9 offset=0 imm=0 -#line 47 "sample/sockops.c" - r8 |= r9; - // EBPF_OP_STXDW pc=132 dst=r10 src=r8 offset=-40 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r8; - // EBPF_OP_LSH64_IMM pc=133 dst=r7 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r7 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=134 dst=r7 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" - r7 |= r5; - // EBPF_OP_LDXB pc=135 dst=r1 src=r0 offset=5 imm=0 -#line 47 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=136 dst=r1 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=137 dst=r2 src=r0 offset=4 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=138 dst=r1 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=139 dst=r2 src=r0 offset=6 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); - // EBPF_OP_LDXB pc=140 dst=r4 src=r0 offset=7 imm=0 -#line 47 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=141 dst=r4 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=142 dst=r4 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r2; - // EBPF_OP_LSH64_IMM pc=143 dst=r4 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=144 dst=r4 src=r1 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LSH64_IMM pc=145 dst=r4 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=146 dst=r4 src=r7 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r7; - // EBPF_OP_STXDW pc=147 dst=r10 src=r4 offset=-48 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r4; - // EBPF_OP_LDXDW pc=148 dst=r6 src=r10 offset=-80 imm=0 -#line 47 "sample/sockops.c" - r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); - // EBPF_OP_MOV64_REG pc=149 dst=r1 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=150 dst=r2 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_ADD64_REG pc=151 dst=r1 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 += r2; - // EBPF_OP_LDXW pc=152 dst=r1 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=153 dst=r10 src=r1 offset=-32 imm=0 -#line 48 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=154 dst=r4 src=r3 offset=13 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=155 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=156 dst=r1 src=r3 offset=12 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=157 dst=r4 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LDXB pc=158 dst=r2 src=r3 offset=15 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=159 dst=r2 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=160 dst=r1 src=r3 offset=14 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=161 dst=r2 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r1; - // EBPF_OP_LDXB pc=162 dst=r5 src=r3 offset=1 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); - // EBPF_OP_LSH64_IMM pc=163 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=164 dst=r1 src=r3 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_OR64_REG pc=165 dst=r5 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" + // EBPF_OP_STXDW pc=115 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=116 dst=r4 src=r0 offset=2 imm=0 +#line 49 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 49 "sample/sockops.c" + goto label_10; + // EBPF_OP_MOV64_IMM pc=117 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=118 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; +label_10: + // EBPF_OP_OR64_REG pc=119 dst=r9 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r9 |= r6; + // EBPF_OP_OR64_REG pc=120 dst=r8 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" + r8 |= r2; + // EBPF_OP_LDXDW pc=121 dst=r1 src=r10 offset=-104 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_OR64_REG pc=122 dst=r5 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r5 |= r1; - // EBPF_OP_LDXB pc=166 dst=r1 src=r3 offset=3 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); - // EBPF_OP_LSH64_IMM pc=167 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=168 dst=r0 src=r3 offset=2 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); - // EBPF_OP_OR64_REG pc=169 dst=r1 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r0; - // EBPF_OP_LSH64_IMM pc=170 dst=r1 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=171 dst=r1 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r5; - // EBPF_OP_LSH64_IMM pc=172 dst=r2 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=173 dst=r2 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_LDXB pc=174 dst=r4 src=r3 offset=9 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=175 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=176 dst=r5 src=r3 offset=8 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); - // EBPF_OP_OR64_REG pc=177 dst=r4 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r5; - // EBPF_OP_LDXB pc=178 dst=r5 src=r3 offset=11 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=179 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=180 dst=r0 src=r3 offset=10 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=181 dst=r5 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r0; - // EBPF_OP_LSH64_IMM pc=182 dst=r5 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=183 dst=r5 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r4; - // EBPF_OP_STXW pc=184 dst=r10 src=r5 offset=-20 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r5; - // EBPF_OP_STXW pc=185 dst=r10 src=r2 offset=-16 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=186 dst=r10 src=r1 offset=-28 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r1; - // EBPF_OP_LDXB pc=187 dst=r1 src=r3 offset=5 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=188 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=189 dst=r2 src=r3 offset=4 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=190 dst=r1 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=191 dst=r2 src=r3 offset=6 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); - // EBPF_OP_LDXB pc=192 dst=r3 src=r3 offset=7 imm=0 -#line 50 "sample/sockops.c" - r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=193 dst=r3 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=194 dst=r3 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r2; - // EBPF_OP_LSH64_IMM pc=195 dst=r3 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=196 dst=r3 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r1; - // EBPF_OP_STXW pc=197 dst=r10 src=r3 offset=-24 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r3; - // EBPF_OP_MOV64_REG pc=198 dst=r1 src=r6 offset=0 imm=0 -#line 51 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=199 dst=r2 src=r10 offset=-72 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXDW pc=123 dst=r1 src=r10 offset=-112 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)); + // EBPF_OP_OR64_REG pc=124 dst=r7 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r7 |= r1; + // EBPF_OP_JNE_IMM pc=125 dst=r4 src=r0 offset=2 imm=0 +#line 52 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 52 "sample/sockops.c" + goto label_11; + // EBPF_OP_MOV64_IMM pc=126 dst=r1 src=r0 offset=0 imm=24 +#line 52 "sample/sockops.c" + r1 = IMMEDIATE(24); + // EBPF_OP_STXDW pc=127 dst=r10 src=r1 offset=-88 imm=0 +#line 52 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; +label_11: + // EBPF_OP_LDXDW pc=128 dst=r2 src=r10 offset=-72 imm=0 +#line 52 "sample/sockops.c" r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_ADD64_REG pc=200 dst=r1 src=r2 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=129 dst=r2 src=r4 offset=0 imm=0 +#line 55 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_STXDW pc=130 dst=r10 src=r2 offset=-72 imm=0 +#line 55 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r2; + // EBPF_OP_LSH64_IMM pc=131 dst=r8 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r8 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=132 dst=r8 src=r9 offset=0 imm=0 +#line 48 "sample/sockops.c" + r8 |= r9; + // EBPF_OP_STXDW pc=133 dst=r10 src=r8 offset=-56 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r8; + // EBPF_OP_LSH64_IMM pc=134 dst=r7 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r7 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=135 dst=r7 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" + r7 |= r5; + // EBPF_OP_LDXB pc=136 dst=r1 src=r0 offset=5 imm=0 +#line 48 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=137 dst=r1 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=138 dst=r2 src=r0 offset=4 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=139 dst=r1 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=140 dst=r2 src=r0 offset=6 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); + // EBPF_OP_LDXB pc=141 dst=r4 src=r0 offset=7 imm=0 +#line 48 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=142 dst=r4 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=143 dst=r4 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r2; + // EBPF_OP_LSH64_IMM pc=144 dst=r4 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=145 dst=r4 src=r1 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LSH64_IMM pc=146 dst=r4 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=147 dst=r4 src=r7 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r7; + // EBPF_OP_STXDW pc=148 dst=r10 src=r4 offset=-64 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r4; + // EBPF_OP_LDXDW pc=149 dst=r6 src=r10 offset=-96 imm=0 +#line 48 "sample/sockops.c" + r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); + // EBPF_OP_MOV64_REG pc=150 dst=r1 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r1 = r6; + // EBPF_OP_LDXDW pc=151 dst=r2 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_ADD64_REG pc=152 dst=r1 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 += r2; - // EBPF_OP_LDXW pc=201 dst=r1 src=r1 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXW pc=153 dst=r1 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=202 dst=r10 src=r1 offset=-12 imm=0 + // EBPF_OP_STXH pc=154 dst=r10 src=r1 offset=-48 imm=0 +#line 49 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=155 dst=r4 src=r3 offset=13 imm=0 #line 51 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=203 dst=r1 src=r6 offset=48 imm=0 + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); + // EBPF_OP_LSH64_IMM pc=156 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=157 dst=r1 src=r3 offset=12 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=158 dst=r4 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LDXB pc=159 dst=r2 src=r3 offset=15 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); + // EBPF_OP_LSH64_IMM pc=160 dst=r2 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=161 dst=r1 src=r3 offset=14 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); + // EBPF_OP_OR64_REG pc=162 dst=r2 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r1; + // EBPF_OP_LDXB pc=163 dst=r5 src=r3 offset=1 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); + // EBPF_OP_LSH64_IMM pc=164 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=165 dst=r1 src=r3 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); + // EBPF_OP_OR64_REG pc=166 dst=r5 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r1; + // EBPF_OP_LDXB pc=167 dst=r1 src=r3 offset=3 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); + // EBPF_OP_LSH64_IMM pc=168 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=169 dst=r0 src=r3 offset=2 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); + // EBPF_OP_OR64_REG pc=170 dst=r1 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r0; + // EBPF_OP_LSH64_IMM pc=171 dst=r1 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=172 dst=r1 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r5; + // EBPF_OP_LSH64_IMM pc=173 dst=r2 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=174 dst=r2 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_LDXB pc=175 dst=r4 src=r3 offset=9 imm=0 +#line 51 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); + // EBPF_OP_LSH64_IMM pc=176 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=177 dst=r5 src=r3 offset=8 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); + // EBPF_OP_OR64_REG pc=178 dst=r4 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r5; + // EBPF_OP_LDXB pc=179 dst=r5 src=r3 offset=11 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); + // EBPF_OP_LSH64_IMM pc=180 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=181 dst=r0 src=r3 offset=10 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); + // EBPF_OP_OR64_REG pc=182 dst=r5 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r0; + // EBPF_OP_LSH64_IMM pc=183 dst=r5 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=184 dst=r5 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r4; + // EBPF_OP_STXW pc=185 dst=r10 src=r5 offset=-36 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r5; + // EBPF_OP_STXW pc=186 dst=r10 src=r2 offset=-32 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_STXW pc=187 dst=r10 src=r1 offset=-44 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r1; + // EBPF_OP_LDXB pc=188 dst=r1 src=r3 offset=5 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=189 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=190 dst=r2 src=r3 offset=4 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=191 dst=r1 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=192 dst=r2 src=r3 offset=6 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); + // EBPF_OP_LDXB pc=193 dst=r3 src=r3 offset=7 imm=0 +#line 51 "sample/sockops.c" + r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=194 dst=r3 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=195 dst=r3 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r2; + // EBPF_OP_LSH64_IMM pc=196 dst=r3 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=197 dst=r3 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r1; + // EBPF_OP_STXW pc=198 dst=r10 src=r3 offset=-40 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r3; + // EBPF_OP_MOV64_REG pc=199 dst=r1 src=r6 offset=0 imm=0 #line 52 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); - // EBPF_OP_LDXDW pc=204 dst=r2 src=r10 offset=-56 imm=0 -#line 54 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_STXB pc=205 dst=r10 src=r2 offset=-4 imm=0 -#line 54 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r2; - // EBPF_OP_STXW pc=206 dst=r10 src=r1 offset=-8 imm=0 + r1 = r6; + // EBPF_OP_LDXDW pc=200 dst=r2 src=r10 offset=-88 imm=0 #line 52 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=207 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); + // EBPF_OP_ADD64_REG pc=201 dst=r1 src=r2 offset=0 imm=0 #line 52 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=208 dst=r2 src=r0 offset=0 imm=-48 + r1 += r2; + // EBPF_OP_LDXW pc=202 dst=r1 src=r1 offset=0 imm=0 +#line 52 "sample/sockops.c" + r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); + // EBPF_OP_STXH pc=203 dst=r10 src=r1 offset=-28 imm=0 +#line 52 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=204 dst=r1 src=r6 offset=48 imm=0 #line 53 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=209 dst=r1 src=r0 offset=0 imm=0 + r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); + // EBPF_OP_STXW pc=205 dst=r10 src=r1 offset=-24 imm=0 +#line 53 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r1; + // EBPF_OP_LDXDW pc=206 dst=r1 src=r6 offset=56 imm=0 +#line 54 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r6 + OFFSET(56)); + // EBPF_OP_LDXDW pc=207 dst=r2 src=r10 offset=-72 imm=0 #line 56 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); + // EBPF_OP_STXB pc=208 dst=r10 src=r2 offset=-8 imm=0 +#line 56 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r2; + // EBPF_OP_STXDW pc=209 dst=r10 src=r1 offset=-16 imm=0 +#line 54 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=210 dst=r2 src=r10 offset=0 imm=0 +#line 54 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=211 dst=r2 src=r0 offset=0 imm=-64 +#line 55 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=212 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=211 dst=r0 src=r0 offset=0 imm=1 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=214 dst=r0 src=r0 offset=0 imm=1 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_IMM pc=212 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=215 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_JEQ_IMM pc=213 dst=r0 src=r0 offset=8 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=216 dst=r0 src=r0 offset=8 imm=0 +#line 58 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" goto label_13; label_12: - // EBPF_OP_MOV64_REG pc=214 dst=r2 src=r10 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=217 dst=r2 src=r10 offset=0 imm=0 +#line 58 "sample/sockops.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=215 dst=r2 src=r0 offset=0 imm=-48 -#line 56 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=216 dst=r1 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=218 dst=r2 src=r0 offset=0 imm=-64 +#line 58 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=219 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_MOV64_IMM pc=218 dst=r3 src=r0 offset=0 imm=48 -#line 56 "sample/sockops.c" - r3 = IMMEDIATE(48); - // EBPF_OP_MOV64_IMM pc=219 dst=r4 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=221 dst=r3 src=r0 offset=0 imm=64 +#line 58 "sample/sockops.c" + r3 = IMMEDIATE(64); + // EBPF_OP_MOV64_IMM pc=222 dst=r4 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r4 = IMMEDIATE(0); - // EBPF_OP_CALL pc=220 dst=r0 src=r0 offset=0 imm=11 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=223 dst=r0 src=r0 offset=0 imm=11 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[1].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[1].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_REG pc=221 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=224 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = r0; label_13: - // EBPF_OP_MOV64_REG pc=222 dst=r0 src=r6 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=225 dst=r0 src=r6 offset=0 imm=0 +#line 91 "sample/sockops.c" r0 = r6; - // EBPF_OP_EXIT pc=223 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_EXIT pc=226 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/sockops.c" return r0; -#line 89 "sample/sockops.c" +#line 91 "sample/sockops.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -873,7 +882,7 @@ static program_entry_t _programs[] = { 2, connection_monitor_helpers, 2, - 224, + 227, &connection_monitor_program_type_guid, &connection_monitor_attach_type_guid, }, diff --git a/tests/bpf2c_tests/expected/sockops_raw.c b/tests/bpf2c_tests/expected/sockops_raw.c index a39a61dc5..adaec43b2 100644 --- a/tests/bpf2c_tests/expected/sockops_raw.c +++ b/tests/bpf2c_tests/expected/sockops_raw.c @@ -17,7 +17,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -65,760 +65,769 @@ static uint16_t connection_monitor_maps[] = { #pragma code_seg(push, "sockops") static uint64_t connection_monitor(void* context) -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" { -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" // Prologue -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r0 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r1 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r2 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r3 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r4 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r5 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r6 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r7 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r8 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r9 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r10 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r1 = (uintptr_t)context; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r7 src=r0 offset=0 imm=2 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r7 = IMMEDIATE(2); // EBPF_OP_MOV64_IMM pc=1 dst=r4 src=r0 offset=0 imm=1 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r4 = IMMEDIATE(1); // EBPF_OP_LDXW pc=2 dst=r2 src=r1 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); // EBPF_OP_JEQ_IMM pc=3 dst=r2 src=r0 offset=8 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(0)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; // EBPF_OP_JEQ_IMM pc=4 dst=r2 src=r0 offset=5 imm=2 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(2)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_1; // EBPF_OP_LDDW pc=5 dst=r6 src=r0 offset=0 imm=-1 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r6 = (uint64_t)4294967295; - // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=214 imm=1 -#line 70 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=217 imm=1 +#line 72 "sample/sockops.c" if (r2 != IMMEDIATE(1)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_13; // EBPF_OP_MOV64_IMM pc=8 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_JA pc=9 dst=r0 src=r0 offset=2 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; label_1: // EBPF_OP_MOV64_IMM pc=10 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_MOV64_IMM pc=11 dst=r7 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r7 = IMMEDIATE(0); label_2: // EBPF_OP_LDXW pc=12 dst=r2 src=r1 offset=4 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=51 imm=2 -#line 87 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=50 imm=2 +#line 89 "sample/sockops.c" if (r2 != IMMEDIATE(2)) -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" goto label_7; // EBPF_OP_MOV64_IMM pc=14 dst=r6 src=r0 offset=0 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_STXW pc=15 dst=r10 src=r6 offset=-4 imm=0 + // EBPF_OP_STXDW pc=15 dst=r10 src=r6 offset=-8 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint32_t)r6; - // EBPF_OP_STXW pc=16 dst=r10 src=r6 offset=-8 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=16 dst=r10 src=r6 offset=-16 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r6; - // EBPF_OP_STXW pc=17 dst=r10 src=r6 offset=-12 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=17 dst=r10 src=r6 offset=-24 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r6; - // EBPF_OP_STXW pc=18 dst=r10 src=r6 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=18 dst=r10 src=r6 offset=-32 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r6; - // EBPF_OP_STXW pc=19 dst=r10 src=r6 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=19 dst=r10 src=r6 offset=-40 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r6; - // EBPF_OP_STXW pc=20 dst=r10 src=r6 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=20 dst=r10 src=r6 offset=-48 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r6; - // EBPF_OP_STXW pc=21 dst=r10 src=r6 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=21 dst=r10 src=r6 offset=-56 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r6; - // EBPF_OP_STXW pc=22 dst=r10 src=r6 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=22 dst=r10 src=r6 offset=-64 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r6; - // EBPF_OP_STXW pc=23 dst=r10 src=r6 offset=-36 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r6; - // EBPF_OP_STXW pc=24 dst=r10 src=r6 offset=-40 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r6; - // EBPF_OP_STXW pc=25 dst=r10 src=r6 offset=-44 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r6; - // EBPF_OP_MOV64_IMM pc=26 dst=r2 src=r0 offset=0 imm=28 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r6; + // EBPF_OP_MOV64_IMM pc=23 dst=r2 src=r0 offset=0 imm=28 #line 22 "sample/sockops.c" r2 = IMMEDIATE(28); - // EBPF_OP_MOV64_IMM pc=27 dst=r5 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=24 dst=r5 src=r0 offset=0 imm=8 #line 24 "sample/sockops.c" r5 = IMMEDIATE(8); - // EBPF_OP_JNE_IMM pc=28 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=25 dst=r4 src=r0 offset=1 imm=0 #line 24 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 24 "sample/sockops.c" goto label_3; - // EBPF_OP_MOV64_IMM pc=29 dst=r5 src=r0 offset=0 imm=28 + // EBPF_OP_MOV64_IMM pc=26 dst=r5 src=r0 offset=0 imm=28 #line 24 "sample/sockops.c" r5 = IMMEDIATE(28); label_3: - // EBPF_OP_MOV64_REG pc=30 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=27 dst=r3 src=r1 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=31 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=28 dst=r3 src=r5 offset=0 imm=0 #line 24 "sample/sockops.c" r3 += r5; - // EBPF_OP_LDXW pc=32 dst=r3 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=29 dst=r3 src=r3 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=33 dst=r10 src=r3 offset=-48 imm=0 + // EBPF_OP_STXW pc=30 dst=r10 src=r3 offset=-64 imm=0 #line 24 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r3; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=44 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint32_t)r3; + // EBPF_OP_MOV64_IMM pc=31 dst=r0 src=r0 offset=0 imm=44 #line 24 "sample/sockops.c" r0 = IMMEDIATE(44); - // EBPF_OP_MOV64_IMM pc=35 dst=r3 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=32 dst=r3 src=r0 offset=0 imm=24 #line 25 "sample/sockops.c" r3 = IMMEDIATE(24); - // EBPF_OP_JNE_IMM pc=36 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=33 dst=r4 src=r0 offset=1 imm=0 #line 25 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 25 "sample/sockops.c" goto label_4; - // EBPF_OP_MOV64_IMM pc=37 dst=r3 src=r0 offset=0 imm=44 + // EBPF_OP_MOV64_IMM pc=34 dst=r3 src=r0 offset=0 imm=44 #line 25 "sample/sockops.c" r3 = IMMEDIATE(44); label_4: - // EBPF_OP_MOV64_REG pc=38 dst=r5 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=35 dst=r5 src=r1 offset=0 imm=0 #line 25 "sample/sockops.c" r5 = r1; - // EBPF_OP_ADD64_REG pc=39 dst=r5 src=r3 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=36 dst=r5 src=r3 offset=0 imm=0 #line 25 "sample/sockops.c" r5 += r3; - // EBPF_OP_LDXW pc=40 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_LDXW pc=37 dst=r3 src=r5 offset=0 imm=0 #line 25 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r5 + OFFSET(0)); - // EBPF_OP_STXH pc=41 dst=r10 src=r3 offset=-32 imm=0 + // EBPF_OP_STXH pc=38 dst=r10 src=r3 offset=-48 imm=0 #line 25 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r3; - // EBPF_OP_JNE_IMM pc=42 dst=r4 src=r0 offset=1 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r3; + // EBPF_OP_JNE_IMM pc=39 dst=r4 src=r0 offset=1 imm=0 #line 27 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 27 "sample/sockops.c" goto label_5; - // EBPF_OP_MOV64_IMM pc=43 dst=r0 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=40 dst=r0 src=r0 offset=0 imm=24 #line 27 "sample/sockops.c" r0 = IMMEDIATE(24); label_5: - // EBPF_OP_JNE_IMM pc=44 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=41 dst=r4 src=r0 offset=1 imm=0 #line 26 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 26 "sample/sockops.c" goto label_6; - // EBPF_OP_MOV64_IMM pc=45 dst=r2 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=42 dst=r2 src=r0 offset=0 imm=8 #line 26 "sample/sockops.c" r2 = IMMEDIATE(8); label_6: - // EBPF_OP_OR64_REG pc=46 dst=r7 src=r4 offset=0 imm=0 -#line 29 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=43 dst=r7 src=r4 offset=0 imm=0 +#line 30 "sample/sockops.c" r7 |= r4; - // EBPF_OP_MOV64_REG pc=47 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=44 dst=r3 src=r1 offset=0 imm=0 #line 26 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=48 dst=r3 src=r2 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=45 dst=r3 src=r2 offset=0 imm=0 #line 26 "sample/sockops.c" r3 += r2; - // EBPF_OP_LDXW pc=49 dst=r2 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=46 dst=r2 src=r3 offset=0 imm=0 #line 26 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=50 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=47 dst=r10 src=r2 offset=-44 imm=0 #line 26 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_MOV64_REG pc=51 dst=r2 src=r1 offset=0 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; + // EBPF_OP_MOV64_REG pc=48 dst=r2 src=r1 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = r1; - // EBPF_OP_ADD64_REG pc=52 dst=r2 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=49 dst=r2 src=r0 offset=0 imm=0 #line 27 "sample/sockops.c" r2 += r0; - // EBPF_OP_LDXW pc=53 dst=r2 src=r2 offset=0 imm=0 + // EBPF_OP_LDXW pc=50 dst=r2 src=r2 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r2 + OFFSET(0)); - // EBPF_OP_STXH pc=54 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=51 dst=r10 src=r2 offset=-28 imm=0 #line 27 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXB pc=55 dst=r1 src=r1 offset=48 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r2; + // EBPF_OP_LDXB pc=52 dst=r2 src=r1 offset=48 imm=0 #line 28 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); - // EBPF_OP_STXB pc=56 dst=r10 src=r7 offset=-4 imm=0 -#line 30 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r7; - // EBPF_OP_STXW pc=57 dst=r10 src=r1 offset=-8 imm=0 + r2 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); + // EBPF_OP_STXW pc=53 dst=r10 src=r2 offset=-24 imm=0 #line 28 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=58 dst=r2 src=r10 offset=0 imm=0 -#line 28 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=59 dst=r2 src=r0 offset=0 imm=-48 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=54 dst=r1 src=r1 offset=56 imm=0 #line 29 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=60 dst=r1 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXB pc=55 dst=r10 src=r7 offset=-8 imm=0 +#line 31 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r7; + // EBPF_OP_STXDW pc=56 dst=r10 src=r1 offset=-16 imm=0 +#line 29 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=57 dst=r2 src=r10 offset=0 imm=0 +#line 29 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=58 dst=r2 src=r0 offset=0 imm=-64 +#line 30 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=59 dst=r1 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=62 dst=r0 src=r0 offset=0 imm=1 -#line 32 "sample/sockops.c" + // EBPF_OP_CALL pc=61 dst=r0 src=r0 offset=0 imm=1 +#line 33 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" return 0; - // EBPF_OP_JEQ_IMM pc=63 dst=r0 src=r0 offset=158 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=62 dst=r0 src=r0 offset=162 imm=0 +#line 33 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" goto label_13; - // EBPF_OP_JA pc=64 dst=r0 src=r0 offset=149 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JA pc=63 dst=r0 src=r0 offset=153 imm=0 +#line 33 "sample/sockops.c" goto label_12; label_7: - // EBPF_OP_STXDW pc=65 dst=r10 src=r7 offset=-56 imm=0 -#line 32 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r7; - // EBPF_OP_MOV64_IMM pc=66 dst=r2 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_STXDW pc=64 dst=r10 src=r7 offset=-72 imm=0 +#line 33 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r7; + // EBPF_OP_MOV64_IMM pc=65 dst=r2 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=66 dst=r10 src=r2 offset=-8 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-16 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-16 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-24 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-24 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-32 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-32 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_MOV64_REG pc=71 dst=r3 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-40 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=71 dst=r10 src=r2 offset=-48 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_MOV64_REG pc=72 dst=r3 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_IMM pc=72 dst=r3 src=r0 offset=0 imm=28 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=73 dst=r3 src=r0 offset=0 imm=28 +#line 47 "sample/sockops.c" r3 += IMMEDIATE(28); - // EBPF_OP_STXDW pc=73 dst=r10 src=r1 offset=-80 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; - // EBPF_OP_MOV64_REG pc=74 dst=r0 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=74 dst=r10 src=r1 offset=-96 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=75 dst=r0 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r1; - // EBPF_OP_ADD64_IMM pc=75 dst=r0 src=r0 offset=0 imm=8 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=76 dst=r0 src=r0 offset=0 imm=8 +#line 47 "sample/sockops.c" r0 += IMMEDIATE(8); - // EBPF_OP_STXDW pc=76 dst=r10 src=r0 offset=-104 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r0; - // EBPF_OP_JNE_IMM pc=77 dst=r4 src=r0 offset=1 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=77 dst=r10 src=r0 offset=-120 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)) = (uint64_t)r0; + // EBPF_OP_JNE_IMM pc=78 dst=r4 src=r0 offset=1 imm=0 +#line 47 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 46 "sample/sockops.c" +#line 47 "sample/sockops.c" goto label_8; - // EBPF_OP_MOV64_REG pc=78 dst=r0 src=r3 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=79 dst=r0 src=r3 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r3; label_8: - // EBPF_OP_LDXB pc=79 dst=r2 src=r0 offset=13 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=80 dst=r2 src=r0 offset=13 imm=0 +#line 48 "sample/sockops.c" r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=80 dst=r2 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=81 dst=r2 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=81 dst=r1 src=r0 offset=12 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=82 dst=r1 src=r0 offset=12 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(12)); - // EBPF_OP_STXDW pc=82 dst=r10 src=r1 offset=-64 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=83 dst=r8 src=r0 offset=15 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=83 dst=r10 src=r1 offset=-80 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=84 dst=r8 src=r0 offset=15 imm=0 +#line 48 "sample/sockops.c" r8 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=84 dst=r8 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=85 dst=r8 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r8 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=85 dst=r5 src=r0 offset=14 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=86 dst=r5 src=r0 offset=14 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=86 dst=r8 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=87 dst=r8 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r8 |= r5; - // EBPF_OP_LDXB pc=87 dst=r6 src=r0 offset=9 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=88 dst=r6 src=r0 offset=9 imm=0 +#line 48 "sample/sockops.c" r6 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=88 dst=r6 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=89 dst=r6 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r6 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=89 dst=r1 src=r0 offset=8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=90 dst=r1 src=r0 offset=8 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(8)); - // EBPF_OP_STXDW pc=90 dst=r10 src=r1 offset=-72 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=91 dst=r9 src=r0 offset=11 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=91 dst=r10 src=r1 offset=-88 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=92 dst=r9 src=r0 offset=11 imm=0 +#line 48 "sample/sockops.c" r9 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=92 dst=r9 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=93 dst=r9 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r9 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=93 dst=r5 src=r0 offset=10 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=94 dst=r5 src=r0 offset=10 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=94 dst=r9 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=95 dst=r9 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r9 |= r5; - // EBPF_OP_LDXB pc=95 dst=r5 src=r0 offset=1 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=96 dst=r5 src=r0 offset=1 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(1)); - // EBPF_OP_LDXB pc=96 dst=r7 src=r0 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=97 dst=r7 src=r0 offset=0 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(0)); - // EBPF_OP_STXDW pc=97 dst=r10 src=r7 offset=-88 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r7; - // EBPF_OP_LDXB pc=98 dst=r7 src=r0 offset=3 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=98 dst=r10 src=r7 offset=-104 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r7; + // EBPF_OP_LDXB pc=99 dst=r7 src=r0 offset=3 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(3)); - // EBPF_OP_LDXB pc=99 dst=r1 src=r0 offset=2 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=100 dst=r1 src=r0 offset=2 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(2)); - // EBPF_OP_STXDW pc=100 dst=r10 src=r1 offset=-96 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=101 dst=r4 src=r0 offset=1 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_STXDW pc=101 dst=r10 src=r1 offset=-112 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=102 dst=r4 src=r0 offset=1 imm=0 +#line 49 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" +#line 49 "sample/sockops.c" goto label_9; - // EBPF_OP_LDXDW pc=102 dst=r3 src=r10 offset=-104 imm=0 -#line 48 "sample/sockops.c" - r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_LDXDW pc=103 dst=r3 src=r10 offset=-120 imm=0 +#line 49 "sample/sockops.c" + r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)); label_9: - // EBPF_OP_LDXDW pc=103 dst=r1 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_OR64_REG pc=104 dst=r2 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=104 dst=r1 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_OR64_REG pc=105 dst=r2 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r2 |= r1; - // EBPF_OP_LDXDW pc=105 dst=r1 src=r10 offset=-72 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_OR64_REG pc=106 dst=r6 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r6 |= r1; - // EBPF_OP_LSH64_IMM pc=107 dst=r9 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r9 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=108 dst=r8 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r8 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=109 dst=r5 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LSH64_IMM pc=110 dst=r7 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r7 <<= IMMEDIATE(8); - // EBPF_OP_MOV64_IMM pc=111 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=112 dst=r10 src=r1 offset=-72 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_MOV64_IMM pc=113 dst=r1 src=r0 offset=0 imm=24 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=114 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=115 dst=r4 src=r0 offset=2 imm=0 -#line 48 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" - goto label_10; - // EBPF_OP_MOV64_IMM pc=116 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; -label_10: - // EBPF_OP_OR64_REG pc=118 dst=r9 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r9 |= r6; - // EBPF_OP_OR64_REG pc=119 dst=r8 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r8 |= r2; - // EBPF_OP_LDXDW pc=120 dst=r1 src=r10 offset=-88 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=106 dst=r1 src=r10 offset=-88 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); - // EBPF_OP_OR64_REG pc=121 dst=r5 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r5 |= r1; - // EBPF_OP_LDXDW pc=122 dst=r1 src=r10 offset=-96 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); - // EBPF_OP_OR64_REG pc=123 dst=r7 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r7 |= r1; - // EBPF_OP_JNE_IMM pc=124 dst=r4 src=r0 offset=2 imm=0 -#line 51 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 51 "sample/sockops.c" - goto label_11; - // EBPF_OP_MOV64_IMM pc=125 dst=r1 src=r0 offset=0 imm=24 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=107 dst=r6 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r6 |= r1; + // EBPF_OP_LSH64_IMM pc=108 dst=r9 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r9 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=109 dst=r8 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r8 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=110 dst=r5 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LSH64_IMM pc=111 dst=r7 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r7 <<= IMMEDIATE(8); + // EBPF_OP_MOV64_IMM pc=112 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=113 dst=r10 src=r1 offset=-88 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_MOV64_IMM pc=114 dst=r1 src=r0 offset=0 imm=24 +#line 49 "sample/sockops.c" r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=126 dst=r10 src=r1 offset=-72 imm=0 -#line 51 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; -label_11: - // EBPF_OP_LDXDW pc=127 dst=r2 src=r10 offset=-56 imm=0 -#line 51 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_OR64_REG pc=128 dst=r2 src=r4 offset=0 imm=0 -#line 53 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_STXDW pc=129 dst=r10 src=r2 offset=-56 imm=0 -#line 53 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; - // EBPF_OP_LSH64_IMM pc=130 dst=r8 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r8 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=131 dst=r8 src=r9 offset=0 imm=0 -#line 47 "sample/sockops.c" - r8 |= r9; - // EBPF_OP_STXDW pc=132 dst=r10 src=r8 offset=-40 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r8; - // EBPF_OP_LSH64_IMM pc=133 dst=r7 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r7 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=134 dst=r7 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" - r7 |= r5; - // EBPF_OP_LDXB pc=135 dst=r1 src=r0 offset=5 imm=0 -#line 47 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=136 dst=r1 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=137 dst=r2 src=r0 offset=4 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=138 dst=r1 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=139 dst=r2 src=r0 offset=6 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); - // EBPF_OP_LDXB pc=140 dst=r4 src=r0 offset=7 imm=0 -#line 47 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=141 dst=r4 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=142 dst=r4 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r2; - // EBPF_OP_LSH64_IMM pc=143 dst=r4 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=144 dst=r4 src=r1 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LSH64_IMM pc=145 dst=r4 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=146 dst=r4 src=r7 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r7; - // EBPF_OP_STXDW pc=147 dst=r10 src=r4 offset=-48 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r4; - // EBPF_OP_LDXDW pc=148 dst=r6 src=r10 offset=-80 imm=0 -#line 47 "sample/sockops.c" - r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); - // EBPF_OP_MOV64_REG pc=149 dst=r1 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=150 dst=r2 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_ADD64_REG pc=151 dst=r1 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 += r2; - // EBPF_OP_LDXW pc=152 dst=r1 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=153 dst=r10 src=r1 offset=-32 imm=0 -#line 48 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=154 dst=r4 src=r3 offset=13 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=155 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=156 dst=r1 src=r3 offset=12 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=157 dst=r4 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LDXB pc=158 dst=r2 src=r3 offset=15 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=159 dst=r2 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=160 dst=r1 src=r3 offset=14 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=161 dst=r2 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r1; - // EBPF_OP_LDXB pc=162 dst=r5 src=r3 offset=1 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); - // EBPF_OP_LSH64_IMM pc=163 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=164 dst=r1 src=r3 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_OR64_REG pc=165 dst=r5 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" + // EBPF_OP_STXDW pc=115 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=116 dst=r4 src=r0 offset=2 imm=0 +#line 49 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 49 "sample/sockops.c" + goto label_10; + // EBPF_OP_MOV64_IMM pc=117 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=118 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; +label_10: + // EBPF_OP_OR64_REG pc=119 dst=r9 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r9 |= r6; + // EBPF_OP_OR64_REG pc=120 dst=r8 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" + r8 |= r2; + // EBPF_OP_LDXDW pc=121 dst=r1 src=r10 offset=-104 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_OR64_REG pc=122 dst=r5 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r5 |= r1; - // EBPF_OP_LDXB pc=166 dst=r1 src=r3 offset=3 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); - // EBPF_OP_LSH64_IMM pc=167 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=168 dst=r0 src=r3 offset=2 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); - // EBPF_OP_OR64_REG pc=169 dst=r1 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r0; - // EBPF_OP_LSH64_IMM pc=170 dst=r1 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=171 dst=r1 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r5; - // EBPF_OP_LSH64_IMM pc=172 dst=r2 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=173 dst=r2 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_LDXB pc=174 dst=r4 src=r3 offset=9 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=175 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=176 dst=r5 src=r3 offset=8 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); - // EBPF_OP_OR64_REG pc=177 dst=r4 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r5; - // EBPF_OP_LDXB pc=178 dst=r5 src=r3 offset=11 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=179 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=180 dst=r0 src=r3 offset=10 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=181 dst=r5 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r0; - // EBPF_OP_LSH64_IMM pc=182 dst=r5 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=183 dst=r5 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r4; - // EBPF_OP_STXW pc=184 dst=r10 src=r5 offset=-20 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r5; - // EBPF_OP_STXW pc=185 dst=r10 src=r2 offset=-16 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=186 dst=r10 src=r1 offset=-28 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r1; - // EBPF_OP_LDXB pc=187 dst=r1 src=r3 offset=5 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=188 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=189 dst=r2 src=r3 offset=4 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=190 dst=r1 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=191 dst=r2 src=r3 offset=6 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); - // EBPF_OP_LDXB pc=192 dst=r3 src=r3 offset=7 imm=0 -#line 50 "sample/sockops.c" - r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=193 dst=r3 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=194 dst=r3 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r2; - // EBPF_OP_LSH64_IMM pc=195 dst=r3 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=196 dst=r3 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r1; - // EBPF_OP_STXW pc=197 dst=r10 src=r3 offset=-24 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r3; - // EBPF_OP_MOV64_REG pc=198 dst=r1 src=r6 offset=0 imm=0 -#line 51 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=199 dst=r2 src=r10 offset=-72 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXDW pc=123 dst=r1 src=r10 offset=-112 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)); + // EBPF_OP_OR64_REG pc=124 dst=r7 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r7 |= r1; + // EBPF_OP_JNE_IMM pc=125 dst=r4 src=r0 offset=2 imm=0 +#line 52 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 52 "sample/sockops.c" + goto label_11; + // EBPF_OP_MOV64_IMM pc=126 dst=r1 src=r0 offset=0 imm=24 +#line 52 "sample/sockops.c" + r1 = IMMEDIATE(24); + // EBPF_OP_STXDW pc=127 dst=r10 src=r1 offset=-88 imm=0 +#line 52 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; +label_11: + // EBPF_OP_LDXDW pc=128 dst=r2 src=r10 offset=-72 imm=0 +#line 52 "sample/sockops.c" r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_ADD64_REG pc=200 dst=r1 src=r2 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=129 dst=r2 src=r4 offset=0 imm=0 +#line 55 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_STXDW pc=130 dst=r10 src=r2 offset=-72 imm=0 +#line 55 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r2; + // EBPF_OP_LSH64_IMM pc=131 dst=r8 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r8 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=132 dst=r8 src=r9 offset=0 imm=0 +#line 48 "sample/sockops.c" + r8 |= r9; + // EBPF_OP_STXDW pc=133 dst=r10 src=r8 offset=-56 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r8; + // EBPF_OP_LSH64_IMM pc=134 dst=r7 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r7 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=135 dst=r7 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" + r7 |= r5; + // EBPF_OP_LDXB pc=136 dst=r1 src=r0 offset=5 imm=0 +#line 48 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=137 dst=r1 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=138 dst=r2 src=r0 offset=4 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=139 dst=r1 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=140 dst=r2 src=r0 offset=6 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); + // EBPF_OP_LDXB pc=141 dst=r4 src=r0 offset=7 imm=0 +#line 48 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=142 dst=r4 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=143 dst=r4 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r2; + // EBPF_OP_LSH64_IMM pc=144 dst=r4 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=145 dst=r4 src=r1 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LSH64_IMM pc=146 dst=r4 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=147 dst=r4 src=r7 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r7; + // EBPF_OP_STXDW pc=148 dst=r10 src=r4 offset=-64 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r4; + // EBPF_OP_LDXDW pc=149 dst=r6 src=r10 offset=-96 imm=0 +#line 48 "sample/sockops.c" + r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); + // EBPF_OP_MOV64_REG pc=150 dst=r1 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r1 = r6; + // EBPF_OP_LDXDW pc=151 dst=r2 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_ADD64_REG pc=152 dst=r1 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 += r2; - // EBPF_OP_LDXW pc=201 dst=r1 src=r1 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXW pc=153 dst=r1 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=202 dst=r10 src=r1 offset=-12 imm=0 + // EBPF_OP_STXH pc=154 dst=r10 src=r1 offset=-48 imm=0 +#line 49 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=155 dst=r4 src=r3 offset=13 imm=0 #line 51 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=203 dst=r1 src=r6 offset=48 imm=0 + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); + // EBPF_OP_LSH64_IMM pc=156 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=157 dst=r1 src=r3 offset=12 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=158 dst=r4 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LDXB pc=159 dst=r2 src=r3 offset=15 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); + // EBPF_OP_LSH64_IMM pc=160 dst=r2 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=161 dst=r1 src=r3 offset=14 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); + // EBPF_OP_OR64_REG pc=162 dst=r2 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r1; + // EBPF_OP_LDXB pc=163 dst=r5 src=r3 offset=1 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); + // EBPF_OP_LSH64_IMM pc=164 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=165 dst=r1 src=r3 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); + // EBPF_OP_OR64_REG pc=166 dst=r5 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r1; + // EBPF_OP_LDXB pc=167 dst=r1 src=r3 offset=3 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); + // EBPF_OP_LSH64_IMM pc=168 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=169 dst=r0 src=r3 offset=2 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); + // EBPF_OP_OR64_REG pc=170 dst=r1 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r0; + // EBPF_OP_LSH64_IMM pc=171 dst=r1 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=172 dst=r1 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r5; + // EBPF_OP_LSH64_IMM pc=173 dst=r2 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=174 dst=r2 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_LDXB pc=175 dst=r4 src=r3 offset=9 imm=0 +#line 51 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); + // EBPF_OP_LSH64_IMM pc=176 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=177 dst=r5 src=r3 offset=8 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); + // EBPF_OP_OR64_REG pc=178 dst=r4 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r5; + // EBPF_OP_LDXB pc=179 dst=r5 src=r3 offset=11 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); + // EBPF_OP_LSH64_IMM pc=180 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=181 dst=r0 src=r3 offset=10 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); + // EBPF_OP_OR64_REG pc=182 dst=r5 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r0; + // EBPF_OP_LSH64_IMM pc=183 dst=r5 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=184 dst=r5 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r4; + // EBPF_OP_STXW pc=185 dst=r10 src=r5 offset=-36 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r5; + // EBPF_OP_STXW pc=186 dst=r10 src=r2 offset=-32 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_STXW pc=187 dst=r10 src=r1 offset=-44 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r1; + // EBPF_OP_LDXB pc=188 dst=r1 src=r3 offset=5 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=189 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=190 dst=r2 src=r3 offset=4 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=191 dst=r1 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=192 dst=r2 src=r3 offset=6 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); + // EBPF_OP_LDXB pc=193 dst=r3 src=r3 offset=7 imm=0 +#line 51 "sample/sockops.c" + r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=194 dst=r3 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=195 dst=r3 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r2; + // EBPF_OP_LSH64_IMM pc=196 dst=r3 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=197 dst=r3 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r1; + // EBPF_OP_STXW pc=198 dst=r10 src=r3 offset=-40 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r3; + // EBPF_OP_MOV64_REG pc=199 dst=r1 src=r6 offset=0 imm=0 #line 52 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); - // EBPF_OP_LDXDW pc=204 dst=r2 src=r10 offset=-56 imm=0 -#line 54 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_STXB pc=205 dst=r10 src=r2 offset=-4 imm=0 -#line 54 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r2; - // EBPF_OP_STXW pc=206 dst=r10 src=r1 offset=-8 imm=0 + r1 = r6; + // EBPF_OP_LDXDW pc=200 dst=r2 src=r10 offset=-88 imm=0 #line 52 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=207 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); + // EBPF_OP_ADD64_REG pc=201 dst=r1 src=r2 offset=0 imm=0 #line 52 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=208 dst=r2 src=r0 offset=0 imm=-48 + r1 += r2; + // EBPF_OP_LDXW pc=202 dst=r1 src=r1 offset=0 imm=0 +#line 52 "sample/sockops.c" + r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); + // EBPF_OP_STXH pc=203 dst=r10 src=r1 offset=-28 imm=0 +#line 52 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=204 dst=r1 src=r6 offset=48 imm=0 #line 53 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=209 dst=r1 src=r0 offset=0 imm=0 + r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); + // EBPF_OP_STXW pc=205 dst=r10 src=r1 offset=-24 imm=0 +#line 53 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r1; + // EBPF_OP_LDXDW pc=206 dst=r1 src=r6 offset=56 imm=0 +#line 54 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r6 + OFFSET(56)); + // EBPF_OP_LDXDW pc=207 dst=r2 src=r10 offset=-72 imm=0 #line 56 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); + // EBPF_OP_STXB pc=208 dst=r10 src=r2 offset=-8 imm=0 +#line 56 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r2; + // EBPF_OP_STXDW pc=209 dst=r10 src=r1 offset=-16 imm=0 +#line 54 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=210 dst=r2 src=r10 offset=0 imm=0 +#line 54 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=211 dst=r2 src=r0 offset=0 imm=-64 +#line 55 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=212 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=211 dst=r0 src=r0 offset=0 imm=1 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=214 dst=r0 src=r0 offset=0 imm=1 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_IMM pc=212 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=215 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_JEQ_IMM pc=213 dst=r0 src=r0 offset=8 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=216 dst=r0 src=r0 offset=8 imm=0 +#line 58 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" goto label_13; label_12: - // EBPF_OP_MOV64_REG pc=214 dst=r2 src=r10 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=217 dst=r2 src=r10 offset=0 imm=0 +#line 58 "sample/sockops.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=215 dst=r2 src=r0 offset=0 imm=-48 -#line 56 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=216 dst=r1 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=218 dst=r2 src=r0 offset=0 imm=-64 +#line 58 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=219 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_MOV64_IMM pc=218 dst=r3 src=r0 offset=0 imm=48 -#line 56 "sample/sockops.c" - r3 = IMMEDIATE(48); - // EBPF_OP_MOV64_IMM pc=219 dst=r4 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=221 dst=r3 src=r0 offset=0 imm=64 +#line 58 "sample/sockops.c" + r3 = IMMEDIATE(64); + // EBPF_OP_MOV64_IMM pc=222 dst=r4 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r4 = IMMEDIATE(0); - // EBPF_OP_CALL pc=220 dst=r0 src=r0 offset=0 imm=11 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=223 dst=r0 src=r0 offset=0 imm=11 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[1].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[1].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_REG pc=221 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=224 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = r0; label_13: - // EBPF_OP_MOV64_REG pc=222 dst=r0 src=r6 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=225 dst=r0 src=r6 offset=0 imm=0 +#line 91 "sample/sockops.c" r0 = r6; - // EBPF_OP_EXIT pc=223 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_EXIT pc=226 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/sockops.c" return r0; -#line 89 "sample/sockops.c" +#line 91 "sample/sockops.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -835,7 +844,7 @@ static program_entry_t _programs[] = { 2, connection_monitor_helpers, 2, - 224, + 227, &connection_monitor_program_type_guid, &connection_monitor_attach_type_guid, }, diff --git a/tests/bpf2c_tests/expected/sockops_sys.c b/tests/bpf2c_tests/expected/sockops_sys.c index 71939a06d..179e7ed54 100644 --- a/tests/bpf2c_tests/expected/sockops_sys.c +++ b/tests/bpf2c_tests/expected/sockops_sys.c @@ -184,7 +184,7 @@ static map_entry_t _maps[] = { {NULL, { BPF_MAP_TYPE_HASH, // Type of map. - 44, // Size in bytes of a map key. + 56, // Size in bytes of a map key. 4, // Size in bytes of a map value. 1, // Maximum number of entries allowed in the map. 0, // Inner map index. @@ -232,760 +232,769 @@ static uint16_t connection_monitor_maps[] = { #pragma code_seg(push, "sockops") static uint64_t connection_monitor(void* context) -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" { -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" // Prologue -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" uint64_t stack[(UBPF_STACK_SIZE + 7) / 8]; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r0 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r1 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r2 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r3 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r4 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r5 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r6 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r7 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r8 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r9 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" register uint64_t r10 = 0; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r1 = (uintptr_t)context; -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r10 = (uintptr_t)((uint8_t*)stack + sizeof(stack)); // EBPF_OP_MOV64_IMM pc=0 dst=r7 src=r0 offset=0 imm=2 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r7 = IMMEDIATE(2); // EBPF_OP_MOV64_IMM pc=1 dst=r4 src=r0 offset=0 imm=1 -#line 65 "sample/sockops.c" +#line 67 "sample/sockops.c" r4 = IMMEDIATE(1); // EBPF_OP_LDXW pc=2 dst=r2 src=r1 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); // EBPF_OP_JEQ_IMM pc=3 dst=r2 src=r0 offset=8 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(0)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; // EBPF_OP_JEQ_IMM pc=4 dst=r2 src=r0 offset=5 imm=2 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" if (r2 == IMMEDIATE(2)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_1; // EBPF_OP_LDDW pc=5 dst=r6 src=r0 offset=0 imm=-1 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r6 = (uint64_t)4294967295; - // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=214 imm=1 -#line 70 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=7 dst=r2 src=r0 offset=217 imm=1 +#line 72 "sample/sockops.c" if (r2 != IMMEDIATE(1)) -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_13; // EBPF_OP_MOV64_IMM pc=8 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_JA pc=9 dst=r0 src=r0 offset=2 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" goto label_2; label_1: // EBPF_OP_MOV64_IMM pc=10 dst=r4 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r4 = IMMEDIATE(0); // EBPF_OP_MOV64_IMM pc=11 dst=r7 src=r0 offset=0 imm=0 -#line 70 "sample/sockops.c" +#line 72 "sample/sockops.c" r7 = IMMEDIATE(0); label_2: // EBPF_OP_LDXW pc=12 dst=r2 src=r1 offset=4 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(4)); - // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=51 imm=2 -#line 87 "sample/sockops.c" + // EBPF_OP_JNE_IMM pc=13 dst=r2 src=r0 offset=50 imm=2 +#line 89 "sample/sockops.c" if (r2 != IMMEDIATE(2)) -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" goto label_7; // EBPF_OP_MOV64_IMM pc=14 dst=r6 src=r0 offset=0 imm=0 -#line 87 "sample/sockops.c" +#line 89 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_STXW pc=15 dst=r10 src=r6 offset=-4 imm=0 + // EBPF_OP_STXDW pc=15 dst=r10 src=r6 offset=-8 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint32_t)r6; - // EBPF_OP_STXW pc=16 dst=r10 src=r6 offset=-8 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=16 dst=r10 src=r6 offset=-16 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r6; - // EBPF_OP_STXW pc=17 dst=r10 src=r6 offset=-12 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=17 dst=r10 src=r6 offset=-24 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint32_t)r6; - // EBPF_OP_STXW pc=18 dst=r10 src=r6 offset=-16 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=18 dst=r10 src=r6 offset=-32 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r6; - // EBPF_OP_STXW pc=19 dst=r10 src=r6 offset=-20 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=19 dst=r10 src=r6 offset=-40 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r6; - // EBPF_OP_STXW pc=20 dst=r10 src=r6 offset=-24 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=20 dst=r10 src=r6 offset=-48 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r6; - // EBPF_OP_STXW pc=21 dst=r10 src=r6 offset=-28 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=21 dst=r10 src=r6 offset=-56 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r6; - // EBPF_OP_STXW pc=22 dst=r10 src=r6 offset=-32 imm=0 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r6; + // EBPF_OP_STXDW pc=22 dst=r10 src=r6 offset=-64 imm=0 #line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r6; - // EBPF_OP_STXW pc=23 dst=r10 src=r6 offset=-36 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r6; - // EBPF_OP_STXW pc=24 dst=r10 src=r6 offset=-40 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r6; - // EBPF_OP_STXW pc=25 dst=r10 src=r6 offset=-44 imm=0 -#line 22 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r6; - // EBPF_OP_MOV64_IMM pc=26 dst=r2 src=r0 offset=0 imm=28 + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r6; + // EBPF_OP_MOV64_IMM pc=23 dst=r2 src=r0 offset=0 imm=28 #line 22 "sample/sockops.c" r2 = IMMEDIATE(28); - // EBPF_OP_MOV64_IMM pc=27 dst=r5 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=24 dst=r5 src=r0 offset=0 imm=8 #line 24 "sample/sockops.c" r5 = IMMEDIATE(8); - // EBPF_OP_JNE_IMM pc=28 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=25 dst=r4 src=r0 offset=1 imm=0 #line 24 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 24 "sample/sockops.c" goto label_3; - // EBPF_OP_MOV64_IMM pc=29 dst=r5 src=r0 offset=0 imm=28 + // EBPF_OP_MOV64_IMM pc=26 dst=r5 src=r0 offset=0 imm=28 #line 24 "sample/sockops.c" r5 = IMMEDIATE(28); label_3: - // EBPF_OP_MOV64_REG pc=30 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=27 dst=r3 src=r1 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=31 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=28 dst=r3 src=r5 offset=0 imm=0 #line 24 "sample/sockops.c" r3 += r5; - // EBPF_OP_LDXW pc=32 dst=r3 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=29 dst=r3 src=r3 offset=0 imm=0 #line 24 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=33 dst=r10 src=r3 offset=-48 imm=0 + // EBPF_OP_STXW pc=30 dst=r10 src=r3 offset=-64 imm=0 #line 24 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint32_t)r3; - // EBPF_OP_MOV64_IMM pc=34 dst=r0 src=r0 offset=0 imm=44 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint32_t)r3; + // EBPF_OP_MOV64_IMM pc=31 dst=r0 src=r0 offset=0 imm=44 #line 24 "sample/sockops.c" r0 = IMMEDIATE(44); - // EBPF_OP_MOV64_IMM pc=35 dst=r3 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=32 dst=r3 src=r0 offset=0 imm=24 #line 25 "sample/sockops.c" r3 = IMMEDIATE(24); - // EBPF_OP_JNE_IMM pc=36 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=33 dst=r4 src=r0 offset=1 imm=0 #line 25 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 25 "sample/sockops.c" goto label_4; - // EBPF_OP_MOV64_IMM pc=37 dst=r3 src=r0 offset=0 imm=44 + // EBPF_OP_MOV64_IMM pc=34 dst=r3 src=r0 offset=0 imm=44 #line 25 "sample/sockops.c" r3 = IMMEDIATE(44); label_4: - // EBPF_OP_MOV64_REG pc=38 dst=r5 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=35 dst=r5 src=r1 offset=0 imm=0 #line 25 "sample/sockops.c" r5 = r1; - // EBPF_OP_ADD64_REG pc=39 dst=r5 src=r3 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=36 dst=r5 src=r3 offset=0 imm=0 #line 25 "sample/sockops.c" r5 += r3; - // EBPF_OP_LDXW pc=40 dst=r3 src=r5 offset=0 imm=0 + // EBPF_OP_LDXW pc=37 dst=r3 src=r5 offset=0 imm=0 #line 25 "sample/sockops.c" r3 = *(uint32_t*)(uintptr_t)(r5 + OFFSET(0)); - // EBPF_OP_STXH pc=41 dst=r10 src=r3 offset=-32 imm=0 + // EBPF_OP_STXH pc=38 dst=r10 src=r3 offset=-48 imm=0 #line 25 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r3; - // EBPF_OP_JNE_IMM pc=42 dst=r4 src=r0 offset=1 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r3; + // EBPF_OP_JNE_IMM pc=39 dst=r4 src=r0 offset=1 imm=0 #line 27 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 27 "sample/sockops.c" goto label_5; - // EBPF_OP_MOV64_IMM pc=43 dst=r0 src=r0 offset=0 imm=24 + // EBPF_OP_MOV64_IMM pc=40 dst=r0 src=r0 offset=0 imm=24 #line 27 "sample/sockops.c" r0 = IMMEDIATE(24); label_5: - // EBPF_OP_JNE_IMM pc=44 dst=r4 src=r0 offset=1 imm=0 + // EBPF_OP_JNE_IMM pc=41 dst=r4 src=r0 offset=1 imm=0 #line 26 "sample/sockops.c" if (r4 != IMMEDIATE(0)) #line 26 "sample/sockops.c" goto label_6; - // EBPF_OP_MOV64_IMM pc=45 dst=r2 src=r0 offset=0 imm=8 + // EBPF_OP_MOV64_IMM pc=42 dst=r2 src=r0 offset=0 imm=8 #line 26 "sample/sockops.c" r2 = IMMEDIATE(8); label_6: - // EBPF_OP_OR64_REG pc=46 dst=r7 src=r4 offset=0 imm=0 -#line 29 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=43 dst=r7 src=r4 offset=0 imm=0 +#line 30 "sample/sockops.c" r7 |= r4; - // EBPF_OP_MOV64_REG pc=47 dst=r3 src=r1 offset=0 imm=0 + // EBPF_OP_MOV64_REG pc=44 dst=r3 src=r1 offset=0 imm=0 #line 26 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_REG pc=48 dst=r3 src=r2 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=45 dst=r3 src=r2 offset=0 imm=0 #line 26 "sample/sockops.c" r3 += r2; - // EBPF_OP_LDXW pc=49 dst=r2 src=r3 offset=0 imm=0 + // EBPF_OP_LDXW pc=46 dst=r2 src=r3 offset=0 imm=0 #line 26 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_STXW pc=50 dst=r10 src=r2 offset=-28 imm=0 + // EBPF_OP_STXW pc=47 dst=r10 src=r2 offset=-44 imm=0 #line 26 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r2; - // EBPF_OP_MOV64_REG pc=51 dst=r2 src=r1 offset=0 imm=0 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r2; + // EBPF_OP_MOV64_REG pc=48 dst=r2 src=r1 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = r1; - // EBPF_OP_ADD64_REG pc=52 dst=r2 src=r0 offset=0 imm=0 + // EBPF_OP_ADD64_REG pc=49 dst=r2 src=r0 offset=0 imm=0 #line 27 "sample/sockops.c" r2 += r0; - // EBPF_OP_LDXW pc=53 dst=r2 src=r2 offset=0 imm=0 + // EBPF_OP_LDXW pc=50 dst=r2 src=r2 offset=0 imm=0 #line 27 "sample/sockops.c" r2 = *(uint32_t*)(uintptr_t)(r2 + OFFSET(0)); - // EBPF_OP_STXH pc=54 dst=r10 src=r2 offset=-12 imm=0 + // EBPF_OP_STXH pc=51 dst=r10 src=r2 offset=-28 imm=0 #line 27 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r2; - // EBPF_OP_LDXB pc=55 dst=r1 src=r1 offset=48 imm=0 + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r2; + // EBPF_OP_LDXB pc=52 dst=r2 src=r1 offset=48 imm=0 #line 28 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); - // EBPF_OP_STXB pc=56 dst=r10 src=r7 offset=-4 imm=0 -#line 30 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r7; - // EBPF_OP_STXW pc=57 dst=r10 src=r1 offset=-8 imm=0 + r2 = *(uint8_t*)(uintptr_t)(r1 + OFFSET(48)); + // EBPF_OP_STXW pc=53 dst=r10 src=r2 offset=-24 imm=0 #line 28 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=58 dst=r2 src=r10 offset=0 imm=0 -#line 28 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=59 dst=r2 src=r0 offset=0 imm=-48 + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r2; + // EBPF_OP_LDXDW pc=54 dst=r1 src=r1 offset=56 imm=0 #line 29 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=60 dst=r1 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r1 + OFFSET(56)); + // EBPF_OP_STXB pc=55 dst=r10 src=r7 offset=-8 imm=0 +#line 31 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r7; + // EBPF_OP_STXDW pc=56 dst=r10 src=r1 offset=-16 imm=0 +#line 29 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=57 dst=r2 src=r10 offset=0 imm=0 +#line 29 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=58 dst=r2 src=r0 offset=0 imm=-64 +#line 30 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=59 dst=r1 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=62 dst=r0 src=r0 offset=0 imm=1 -#line 32 "sample/sockops.c" + // EBPF_OP_CALL pc=61 dst=r0 src=r0 offset=0 imm=1 +#line 33 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" return 0; - // EBPF_OP_JEQ_IMM pc=63 dst=r0 src=r0 offset=158 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=62 dst=r0 src=r0 offset=162 imm=0 +#line 33 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 32 "sample/sockops.c" +#line 33 "sample/sockops.c" goto label_13; - // EBPF_OP_JA pc=64 dst=r0 src=r0 offset=149 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_JA pc=63 dst=r0 src=r0 offset=153 imm=0 +#line 33 "sample/sockops.c" goto label_12; label_7: - // EBPF_OP_STXDW pc=65 dst=r10 src=r7 offset=-56 imm=0 -#line 32 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r7; - // EBPF_OP_MOV64_IMM pc=66 dst=r2 src=r0 offset=0 imm=0 -#line 32 "sample/sockops.c" + // EBPF_OP_STXDW pc=64 dst=r10 src=r7 offset=-72 imm=0 +#line 33 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r7; + // EBPF_OP_MOV64_IMM pc=65 dst=r2 src=r0 offset=0 imm=0 +#line 33 "sample/sockops.c" r2 = IMMEDIATE(0); - // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=66 dst=r10 src=r2 offset=-8 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-16 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=67 dst=r10 src=r2 offset=-16 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-24 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=68 dst=r10 src=r2 offset=-24 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint64_t)r2; - // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-32 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=69 dst=r10 src=r2 offset=-32 imm=0 +#line 48 "sample/sockops.c" *(uint64_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint64_t)r2; - // EBPF_OP_MOV64_REG pc=71 dst=r3 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=70 dst=r10 src=r2 offset=-40 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r2; + // EBPF_OP_STXDW pc=71 dst=r10 src=r2 offset=-48 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r2; + // EBPF_OP_MOV64_REG pc=72 dst=r3 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r3 = r1; - // EBPF_OP_ADD64_IMM pc=72 dst=r3 src=r0 offset=0 imm=28 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=73 dst=r3 src=r0 offset=0 imm=28 +#line 47 "sample/sockops.c" r3 += IMMEDIATE(28); - // EBPF_OP_STXDW pc=73 dst=r10 src=r1 offset=-80 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; - // EBPF_OP_MOV64_REG pc=74 dst=r0 src=r1 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=74 dst=r10 src=r1 offset=-96 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=75 dst=r0 src=r1 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r1; - // EBPF_OP_ADD64_IMM pc=75 dst=r0 src=r0 offset=0 imm=8 -#line 46 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=76 dst=r0 src=r0 offset=0 imm=8 +#line 47 "sample/sockops.c" r0 += IMMEDIATE(8); - // EBPF_OP_STXDW pc=76 dst=r10 src=r0 offset=-104 imm=0 -#line 46 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r0; - // EBPF_OP_JNE_IMM pc=77 dst=r4 src=r0 offset=1 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_STXDW pc=77 dst=r10 src=r0 offset=-120 imm=0 +#line 47 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)) = (uint64_t)r0; + // EBPF_OP_JNE_IMM pc=78 dst=r4 src=r0 offset=1 imm=0 +#line 47 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 46 "sample/sockops.c" +#line 47 "sample/sockops.c" goto label_8; - // EBPF_OP_MOV64_REG pc=78 dst=r0 src=r3 offset=0 imm=0 -#line 46 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=79 dst=r0 src=r3 offset=0 imm=0 +#line 47 "sample/sockops.c" r0 = r3; label_8: - // EBPF_OP_LDXB pc=79 dst=r2 src=r0 offset=13 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=80 dst=r2 src=r0 offset=13 imm=0 +#line 48 "sample/sockops.c" r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=80 dst=r2 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=81 dst=r2 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=81 dst=r1 src=r0 offset=12 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=82 dst=r1 src=r0 offset=12 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(12)); - // EBPF_OP_STXDW pc=82 dst=r10 src=r1 offset=-64 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=83 dst=r8 src=r0 offset=15 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=83 dst=r10 src=r1 offset=-80 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=84 dst=r8 src=r0 offset=15 imm=0 +#line 48 "sample/sockops.c" r8 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=84 dst=r8 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=85 dst=r8 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r8 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=85 dst=r5 src=r0 offset=14 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=86 dst=r5 src=r0 offset=14 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=86 dst=r8 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=87 dst=r8 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r8 |= r5; - // EBPF_OP_LDXB pc=87 dst=r6 src=r0 offset=9 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=88 dst=r6 src=r0 offset=9 imm=0 +#line 48 "sample/sockops.c" r6 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=88 dst=r6 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=89 dst=r6 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r6 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=89 dst=r1 src=r0 offset=8 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=90 dst=r1 src=r0 offset=8 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(8)); - // EBPF_OP_STXDW pc=90 dst=r10 src=r1 offset=-72 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_LDXB pc=91 dst=r9 src=r0 offset=11 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=91 dst=r10 src=r1 offset=-88 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_LDXB pc=92 dst=r9 src=r0 offset=11 imm=0 +#line 48 "sample/sockops.c" r9 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=92 dst=r9 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" + // EBPF_OP_LSH64_IMM pc=93 dst=r9 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" r9 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=93 dst=r5 src=r0 offset=10 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=94 dst=r5 src=r0 offset=10 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=94 dst=r9 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=95 dst=r9 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" r9 |= r5; - // EBPF_OP_LDXB pc=95 dst=r5 src=r0 offset=1 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=96 dst=r5 src=r0 offset=1 imm=0 +#line 48 "sample/sockops.c" r5 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(1)); - // EBPF_OP_LDXB pc=96 dst=r7 src=r0 offset=0 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=97 dst=r7 src=r0 offset=0 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(0)); - // EBPF_OP_STXDW pc=97 dst=r10 src=r7 offset=-88 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r7; - // EBPF_OP_LDXB pc=98 dst=r7 src=r0 offset=3 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_STXDW pc=98 dst=r10 src=r7 offset=-104 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)) = (uint64_t)r7; + // EBPF_OP_LDXB pc=99 dst=r7 src=r0 offset=3 imm=0 +#line 48 "sample/sockops.c" r7 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(3)); - // EBPF_OP_LDXB pc=99 dst=r1 src=r0 offset=2 imm=0 -#line 47 "sample/sockops.c" + // EBPF_OP_LDXB pc=100 dst=r1 src=r0 offset=2 imm=0 +#line 48 "sample/sockops.c" r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(2)); - // EBPF_OP_STXDW pc=100 dst=r10 src=r1 offset=-96 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=101 dst=r4 src=r0 offset=1 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_STXDW pc=101 dst=r10 src=r1 offset=-112 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=102 dst=r4 src=r0 offset=1 imm=0 +#line 49 "sample/sockops.c" if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" +#line 49 "sample/sockops.c" goto label_9; - // EBPF_OP_LDXDW pc=102 dst=r3 src=r10 offset=-104 imm=0 -#line 48 "sample/sockops.c" - r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_LDXDW pc=103 dst=r3 src=r10 offset=-120 imm=0 +#line 49 "sample/sockops.c" + r3 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-120)); label_9: - // EBPF_OP_LDXDW pc=103 dst=r1 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_OR64_REG pc=104 dst=r2 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=104 dst=r1 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_OR64_REG pc=105 dst=r2 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r2 |= r1; - // EBPF_OP_LDXDW pc=105 dst=r1 src=r10 offset=-72 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_OR64_REG pc=106 dst=r6 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r6 |= r1; - // EBPF_OP_LSH64_IMM pc=107 dst=r9 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r9 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=108 dst=r8 src=r0 offset=0 imm=16 -#line 48 "sample/sockops.c" - r8 <<= IMMEDIATE(16); - // EBPF_OP_LSH64_IMM pc=109 dst=r5 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LSH64_IMM pc=110 dst=r7 src=r0 offset=0 imm=8 -#line 48 "sample/sockops.c" - r7 <<= IMMEDIATE(8); - // EBPF_OP_MOV64_IMM pc=111 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=112 dst=r10 src=r1 offset=-72 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; - // EBPF_OP_MOV64_IMM pc=113 dst=r1 src=r0 offset=0 imm=24 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=114 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; - // EBPF_OP_JNE_IMM pc=115 dst=r4 src=r0 offset=2 imm=0 -#line 48 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 48 "sample/sockops.c" - goto label_10; - // EBPF_OP_MOV64_IMM pc=116 dst=r1 src=r0 offset=0 imm=44 -#line 48 "sample/sockops.c" - r1 = IMMEDIATE(44); - // EBPF_OP_STXDW pc=117 dst=r10 src=r1 offset=-64 imm=0 -#line 48 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r1; -label_10: - // EBPF_OP_OR64_REG pc=118 dst=r9 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r9 |= r6; - // EBPF_OP_OR64_REG pc=119 dst=r8 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r8 |= r2; - // EBPF_OP_LDXDW pc=120 dst=r1 src=r10 offset=-88 imm=0 -#line 48 "sample/sockops.c" + // EBPF_OP_LDXDW pc=106 dst=r1 src=r10 offset=-88 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); - // EBPF_OP_OR64_REG pc=121 dst=r5 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r5 |= r1; - // EBPF_OP_LDXDW pc=122 dst=r1 src=r10 offset=-96 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); - // EBPF_OP_OR64_REG pc=123 dst=r7 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r7 |= r1; - // EBPF_OP_JNE_IMM pc=124 dst=r4 src=r0 offset=2 imm=0 -#line 51 "sample/sockops.c" - if (r4 != IMMEDIATE(0)) -#line 51 "sample/sockops.c" - goto label_11; - // EBPF_OP_MOV64_IMM pc=125 dst=r1 src=r0 offset=0 imm=24 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=107 dst=r6 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r6 |= r1; + // EBPF_OP_LSH64_IMM pc=108 dst=r9 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r9 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=109 dst=r8 src=r0 offset=0 imm=16 +#line 49 "sample/sockops.c" + r8 <<= IMMEDIATE(16); + // EBPF_OP_LSH64_IMM pc=110 dst=r5 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LSH64_IMM pc=111 dst=r7 src=r0 offset=0 imm=8 +#line 49 "sample/sockops.c" + r7 <<= IMMEDIATE(8); + // EBPF_OP_MOV64_IMM pc=112 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=113 dst=r10 src=r1 offset=-88 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; + // EBPF_OP_MOV64_IMM pc=114 dst=r1 src=r0 offset=0 imm=24 +#line 49 "sample/sockops.c" r1 = IMMEDIATE(24); - // EBPF_OP_STXDW pc=126 dst=r10 src=r1 offset=-72 imm=0 -#line 51 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r1; -label_11: - // EBPF_OP_LDXDW pc=127 dst=r2 src=r10 offset=-56 imm=0 -#line 51 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_OR64_REG pc=128 dst=r2 src=r4 offset=0 imm=0 -#line 53 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_STXDW pc=129 dst=r10 src=r2 offset=-56 imm=0 -#line 53 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r2; - // EBPF_OP_LSH64_IMM pc=130 dst=r8 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r8 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=131 dst=r8 src=r9 offset=0 imm=0 -#line 47 "sample/sockops.c" - r8 |= r9; - // EBPF_OP_STXDW pc=132 dst=r10 src=r8 offset=-40 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint64_t)r8; - // EBPF_OP_LSH64_IMM pc=133 dst=r7 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r7 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=134 dst=r7 src=r5 offset=0 imm=0 -#line 47 "sample/sockops.c" - r7 |= r5; - // EBPF_OP_LDXB pc=135 dst=r1 src=r0 offset=5 imm=0 -#line 47 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=136 dst=r1 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=137 dst=r2 src=r0 offset=4 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=138 dst=r1 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=139 dst=r2 src=r0 offset=6 imm=0 -#line 47 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); - // EBPF_OP_LDXB pc=140 dst=r4 src=r0 offset=7 imm=0 -#line 47 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=141 dst=r4 src=r0 offset=0 imm=8 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=142 dst=r4 src=r2 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r2; - // EBPF_OP_LSH64_IMM pc=143 dst=r4 src=r0 offset=0 imm=16 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=144 dst=r4 src=r1 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LSH64_IMM pc=145 dst=r4 src=r0 offset=0 imm=32 -#line 47 "sample/sockops.c" - r4 <<= IMMEDIATE(32); - // EBPF_OP_OR64_REG pc=146 dst=r4 src=r7 offset=0 imm=0 -#line 47 "sample/sockops.c" - r4 |= r7; - // EBPF_OP_STXDW pc=147 dst=r10 src=r4 offset=-48 imm=0 -#line 47 "sample/sockops.c" - *(uint64_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint64_t)r4; - // EBPF_OP_LDXDW pc=148 dst=r6 src=r10 offset=-80 imm=0 -#line 47 "sample/sockops.c" - r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); - // EBPF_OP_MOV64_REG pc=149 dst=r1 src=r6 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=150 dst=r2 src=r10 offset=-64 imm=0 -#line 48 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)); - // EBPF_OP_ADD64_REG pc=151 dst=r1 src=r2 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 += r2; - // EBPF_OP_LDXW pc=152 dst=r1 src=r1 offset=0 imm=0 -#line 48 "sample/sockops.c" - r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=153 dst=r10 src=r1 offset=-32 imm=0 -#line 48 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=154 dst=r4 src=r3 offset=13 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); - // EBPF_OP_LSH64_IMM pc=155 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=156 dst=r1 src=r3 offset=12 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); - // EBPF_OP_OR64_REG pc=157 dst=r4 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r1; - // EBPF_OP_LDXB pc=158 dst=r2 src=r3 offset=15 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); - // EBPF_OP_LSH64_IMM pc=159 dst=r2 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=160 dst=r1 src=r3 offset=14 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); - // EBPF_OP_OR64_REG pc=161 dst=r2 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r1; - // EBPF_OP_LDXB pc=162 dst=r5 src=r3 offset=1 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); - // EBPF_OP_LSH64_IMM pc=163 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=164 dst=r1 src=r3 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); - // EBPF_OP_OR64_REG pc=165 dst=r5 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" + // EBPF_OP_STXDW pc=115 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; + // EBPF_OP_JNE_IMM pc=116 dst=r4 src=r0 offset=2 imm=0 +#line 49 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 49 "sample/sockops.c" + goto label_10; + // EBPF_OP_MOV64_IMM pc=117 dst=r1 src=r0 offset=0 imm=44 +#line 49 "sample/sockops.c" + r1 = IMMEDIATE(44); + // EBPF_OP_STXDW pc=118 dst=r10 src=r1 offset=-80 imm=0 +#line 49 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)) = (uint64_t)r1; +label_10: + // EBPF_OP_OR64_REG pc=119 dst=r9 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r9 |= r6; + // EBPF_OP_OR64_REG pc=120 dst=r8 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" + r8 |= r2; + // EBPF_OP_LDXDW pc=121 dst=r1 src=r10 offset=-104 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-104)); + // EBPF_OP_OR64_REG pc=122 dst=r5 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r5 |= r1; - // EBPF_OP_LDXB pc=166 dst=r1 src=r3 offset=3 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); - // EBPF_OP_LSH64_IMM pc=167 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=168 dst=r0 src=r3 offset=2 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); - // EBPF_OP_OR64_REG pc=169 dst=r1 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r0; - // EBPF_OP_LSH64_IMM pc=170 dst=r1 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=171 dst=r1 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r5; - // EBPF_OP_LSH64_IMM pc=172 dst=r2 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r2 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=173 dst=r2 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r2 |= r4; - // EBPF_OP_LDXB pc=174 dst=r4 src=r3 offset=9 imm=0 -#line 50 "sample/sockops.c" - r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); - // EBPF_OP_LSH64_IMM pc=175 dst=r4 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r4 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=176 dst=r5 src=r3 offset=8 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); - // EBPF_OP_OR64_REG pc=177 dst=r4 src=r5 offset=0 imm=0 -#line 50 "sample/sockops.c" - r4 |= r5; - // EBPF_OP_LDXB pc=178 dst=r5 src=r3 offset=11 imm=0 -#line 50 "sample/sockops.c" - r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); - // EBPF_OP_LSH64_IMM pc=179 dst=r5 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=180 dst=r0 src=r3 offset=10 imm=0 -#line 50 "sample/sockops.c" - r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); - // EBPF_OP_OR64_REG pc=181 dst=r5 src=r0 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r0; - // EBPF_OP_LSH64_IMM pc=182 dst=r5 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r5 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=183 dst=r5 src=r4 offset=0 imm=0 -#line 50 "sample/sockops.c" - r5 |= r4; - // EBPF_OP_STXW pc=184 dst=r10 src=r5 offset=-20 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-20)) = (uint32_t)r5; - // EBPF_OP_STXW pc=185 dst=r10 src=r2 offset=-16 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint32_t)r2; - // EBPF_OP_STXW pc=186 dst=r10 src=r1 offset=-28 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint32_t)r1; - // EBPF_OP_LDXB pc=187 dst=r1 src=r3 offset=5 imm=0 -#line 50 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); - // EBPF_OP_LSH64_IMM pc=188 dst=r1 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r1 <<= IMMEDIATE(8); - // EBPF_OP_LDXB pc=189 dst=r2 src=r3 offset=4 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); - // EBPF_OP_OR64_REG pc=190 dst=r1 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r1 |= r2; - // EBPF_OP_LDXB pc=191 dst=r2 src=r3 offset=6 imm=0 -#line 50 "sample/sockops.c" - r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); - // EBPF_OP_LDXB pc=192 dst=r3 src=r3 offset=7 imm=0 -#line 50 "sample/sockops.c" - r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); - // EBPF_OP_LSH64_IMM pc=193 dst=r3 src=r0 offset=0 imm=8 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(8); - // EBPF_OP_OR64_REG pc=194 dst=r3 src=r2 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r2; - // EBPF_OP_LSH64_IMM pc=195 dst=r3 src=r0 offset=0 imm=16 -#line 50 "sample/sockops.c" - r3 <<= IMMEDIATE(16); - // EBPF_OP_OR64_REG pc=196 dst=r3 src=r1 offset=0 imm=0 -#line 50 "sample/sockops.c" - r3 |= r1; - // EBPF_OP_STXW pc=197 dst=r10 src=r3 offset=-24 imm=0 -#line 50 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r3; - // EBPF_OP_MOV64_REG pc=198 dst=r1 src=r6 offset=0 imm=0 -#line 51 "sample/sockops.c" - r1 = r6; - // EBPF_OP_LDXDW pc=199 dst=r2 src=r10 offset=-72 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXDW pc=123 dst=r1 src=r10 offset=-112 imm=0 +#line 49 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-112)); + // EBPF_OP_OR64_REG pc=124 dst=r7 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" + r7 |= r1; + // EBPF_OP_JNE_IMM pc=125 dst=r4 src=r0 offset=2 imm=0 +#line 52 "sample/sockops.c" + if (r4 != IMMEDIATE(0)) +#line 52 "sample/sockops.c" + goto label_11; + // EBPF_OP_MOV64_IMM pc=126 dst=r1 src=r0 offset=0 imm=24 +#line 52 "sample/sockops.c" + r1 = IMMEDIATE(24); + // EBPF_OP_STXDW pc=127 dst=r10 src=r1 offset=-88 imm=0 +#line 52 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)) = (uint64_t)r1; +label_11: + // EBPF_OP_LDXDW pc=128 dst=r2 src=r10 offset=-72 imm=0 +#line 52 "sample/sockops.c" r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); - // EBPF_OP_ADD64_REG pc=200 dst=r1 src=r2 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_OR64_REG pc=129 dst=r2 src=r4 offset=0 imm=0 +#line 55 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_STXDW pc=130 dst=r10 src=r2 offset=-72 imm=0 +#line 55 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)) = (uint64_t)r2; + // EBPF_OP_LSH64_IMM pc=131 dst=r8 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r8 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=132 dst=r8 src=r9 offset=0 imm=0 +#line 48 "sample/sockops.c" + r8 |= r9; + // EBPF_OP_STXDW pc=133 dst=r10 src=r8 offset=-56 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)) = (uint64_t)r8; + // EBPF_OP_LSH64_IMM pc=134 dst=r7 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r7 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=135 dst=r7 src=r5 offset=0 imm=0 +#line 48 "sample/sockops.c" + r7 |= r5; + // EBPF_OP_LDXB pc=136 dst=r1 src=r0 offset=5 imm=0 +#line 48 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=137 dst=r1 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=138 dst=r2 src=r0 offset=4 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=139 dst=r1 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=140 dst=r2 src=r0 offset=6 imm=0 +#line 48 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(6)); + // EBPF_OP_LDXB pc=141 dst=r4 src=r0 offset=7 imm=0 +#line 48 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r0 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=142 dst=r4 src=r0 offset=0 imm=8 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=143 dst=r4 src=r2 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r2; + // EBPF_OP_LSH64_IMM pc=144 dst=r4 src=r0 offset=0 imm=16 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=145 dst=r4 src=r1 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LSH64_IMM pc=146 dst=r4 src=r0 offset=0 imm=32 +#line 48 "sample/sockops.c" + r4 <<= IMMEDIATE(32); + // EBPF_OP_OR64_REG pc=147 dst=r4 src=r7 offset=0 imm=0 +#line 48 "sample/sockops.c" + r4 |= r7; + // EBPF_OP_STXDW pc=148 dst=r10 src=r4 offset=-64 imm=0 +#line 48 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-64)) = (uint64_t)r4; + // EBPF_OP_LDXDW pc=149 dst=r6 src=r10 offset=-96 imm=0 +#line 48 "sample/sockops.c" + r6 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-96)); + // EBPF_OP_MOV64_REG pc=150 dst=r1 src=r6 offset=0 imm=0 +#line 49 "sample/sockops.c" + r1 = r6; + // EBPF_OP_LDXDW pc=151 dst=r2 src=r10 offset=-80 imm=0 +#line 49 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-80)); + // EBPF_OP_ADD64_REG pc=152 dst=r1 src=r2 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 += r2; - // EBPF_OP_LDXW pc=201 dst=r1 src=r1 offset=0 imm=0 -#line 51 "sample/sockops.c" + // EBPF_OP_LDXW pc=153 dst=r1 src=r1 offset=0 imm=0 +#line 49 "sample/sockops.c" r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); - // EBPF_OP_STXH pc=202 dst=r10 src=r1 offset=-12 imm=0 + // EBPF_OP_STXH pc=154 dst=r10 src=r1 offset=-48 imm=0 +#line 49 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-48)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=155 dst=r4 src=r3 offset=13 imm=0 #line 51 "sample/sockops.c" - *(uint16_t*)(uintptr_t)(r10 + OFFSET(-12)) = (uint16_t)r1; - // EBPF_OP_LDXB pc=203 dst=r1 src=r6 offset=48 imm=0 + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(13)); + // EBPF_OP_LSH64_IMM pc=156 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=157 dst=r1 src=r3 offset=12 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(12)); + // EBPF_OP_OR64_REG pc=158 dst=r4 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r1; + // EBPF_OP_LDXB pc=159 dst=r2 src=r3 offset=15 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(15)); + // EBPF_OP_LSH64_IMM pc=160 dst=r2 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=161 dst=r1 src=r3 offset=14 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(14)); + // EBPF_OP_OR64_REG pc=162 dst=r2 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r1; + // EBPF_OP_LDXB pc=163 dst=r5 src=r3 offset=1 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(1)); + // EBPF_OP_LSH64_IMM pc=164 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=165 dst=r1 src=r3 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(0)); + // EBPF_OP_OR64_REG pc=166 dst=r5 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r1; + // EBPF_OP_LDXB pc=167 dst=r1 src=r3 offset=3 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(3)); + // EBPF_OP_LSH64_IMM pc=168 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=169 dst=r0 src=r3 offset=2 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(2)); + // EBPF_OP_OR64_REG pc=170 dst=r1 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r0; + // EBPF_OP_LSH64_IMM pc=171 dst=r1 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=172 dst=r1 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r5; + // EBPF_OP_LSH64_IMM pc=173 dst=r2 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r2 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=174 dst=r2 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r2 |= r4; + // EBPF_OP_LDXB pc=175 dst=r4 src=r3 offset=9 imm=0 +#line 51 "sample/sockops.c" + r4 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(9)); + // EBPF_OP_LSH64_IMM pc=176 dst=r4 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r4 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=177 dst=r5 src=r3 offset=8 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(8)); + // EBPF_OP_OR64_REG pc=178 dst=r4 src=r5 offset=0 imm=0 +#line 51 "sample/sockops.c" + r4 |= r5; + // EBPF_OP_LDXB pc=179 dst=r5 src=r3 offset=11 imm=0 +#line 51 "sample/sockops.c" + r5 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(11)); + // EBPF_OP_LSH64_IMM pc=180 dst=r5 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=181 dst=r0 src=r3 offset=10 imm=0 +#line 51 "sample/sockops.c" + r0 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(10)); + // EBPF_OP_OR64_REG pc=182 dst=r5 src=r0 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r0; + // EBPF_OP_LSH64_IMM pc=183 dst=r5 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r5 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=184 dst=r5 src=r4 offset=0 imm=0 +#line 51 "sample/sockops.c" + r5 |= r4; + // EBPF_OP_STXW pc=185 dst=r10 src=r5 offset=-36 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-36)) = (uint32_t)r5; + // EBPF_OP_STXW pc=186 dst=r10 src=r2 offset=-32 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-32)) = (uint32_t)r2; + // EBPF_OP_STXW pc=187 dst=r10 src=r1 offset=-44 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-44)) = (uint32_t)r1; + // EBPF_OP_LDXB pc=188 dst=r1 src=r3 offset=5 imm=0 +#line 51 "sample/sockops.c" + r1 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(5)); + // EBPF_OP_LSH64_IMM pc=189 dst=r1 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r1 <<= IMMEDIATE(8); + // EBPF_OP_LDXB pc=190 dst=r2 src=r3 offset=4 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(4)); + // EBPF_OP_OR64_REG pc=191 dst=r1 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r1 |= r2; + // EBPF_OP_LDXB pc=192 dst=r2 src=r3 offset=6 imm=0 +#line 51 "sample/sockops.c" + r2 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(6)); + // EBPF_OP_LDXB pc=193 dst=r3 src=r3 offset=7 imm=0 +#line 51 "sample/sockops.c" + r3 = *(uint8_t*)(uintptr_t)(r3 + OFFSET(7)); + // EBPF_OP_LSH64_IMM pc=194 dst=r3 src=r0 offset=0 imm=8 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(8); + // EBPF_OP_OR64_REG pc=195 dst=r3 src=r2 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r2; + // EBPF_OP_LSH64_IMM pc=196 dst=r3 src=r0 offset=0 imm=16 +#line 51 "sample/sockops.c" + r3 <<= IMMEDIATE(16); + // EBPF_OP_OR64_REG pc=197 dst=r3 src=r1 offset=0 imm=0 +#line 51 "sample/sockops.c" + r3 |= r1; + // EBPF_OP_STXW pc=198 dst=r10 src=r3 offset=-40 imm=0 +#line 51 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-40)) = (uint32_t)r3; + // EBPF_OP_MOV64_REG pc=199 dst=r1 src=r6 offset=0 imm=0 #line 52 "sample/sockops.c" - r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); - // EBPF_OP_LDXDW pc=204 dst=r2 src=r10 offset=-56 imm=0 -#line 54 "sample/sockops.c" - r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-56)); - // EBPF_OP_STXB pc=205 dst=r10 src=r2 offset=-4 imm=0 -#line 54 "sample/sockops.c" - *(uint8_t*)(uintptr_t)(r10 + OFFSET(-4)) = (uint8_t)r2; - // EBPF_OP_STXW pc=206 dst=r10 src=r1 offset=-8 imm=0 + r1 = r6; + // EBPF_OP_LDXDW pc=200 dst=r2 src=r10 offset=-88 imm=0 #line 52 "sample/sockops.c" - *(uint32_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint32_t)r1; - // EBPF_OP_MOV64_REG pc=207 dst=r2 src=r10 offset=0 imm=0 + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-88)); + // EBPF_OP_ADD64_REG pc=201 dst=r1 src=r2 offset=0 imm=0 #line 52 "sample/sockops.c" - r2 = r10; - // EBPF_OP_ADD64_IMM pc=208 dst=r2 src=r0 offset=0 imm=-48 + r1 += r2; + // EBPF_OP_LDXW pc=202 dst=r1 src=r1 offset=0 imm=0 +#line 52 "sample/sockops.c" + r1 = *(uint32_t*)(uintptr_t)(r1 + OFFSET(0)); + // EBPF_OP_STXH pc=203 dst=r10 src=r1 offset=-28 imm=0 +#line 52 "sample/sockops.c" + *(uint16_t*)(uintptr_t)(r10 + OFFSET(-28)) = (uint16_t)r1; + // EBPF_OP_LDXB pc=204 dst=r1 src=r6 offset=48 imm=0 #line 53 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=209 dst=r1 src=r0 offset=0 imm=0 + r1 = *(uint8_t*)(uintptr_t)(r6 + OFFSET(48)); + // EBPF_OP_STXW pc=205 dst=r10 src=r1 offset=-24 imm=0 +#line 53 "sample/sockops.c" + *(uint32_t*)(uintptr_t)(r10 + OFFSET(-24)) = (uint32_t)r1; + // EBPF_OP_LDXDW pc=206 dst=r1 src=r6 offset=56 imm=0 +#line 54 "sample/sockops.c" + r1 = *(uint64_t*)(uintptr_t)(r6 + OFFSET(56)); + // EBPF_OP_LDXDW pc=207 dst=r2 src=r10 offset=-72 imm=0 #line 56 "sample/sockops.c" + r2 = *(uint64_t*)(uintptr_t)(r10 + OFFSET(-72)); + // EBPF_OP_STXB pc=208 dst=r10 src=r2 offset=-8 imm=0 +#line 56 "sample/sockops.c" + *(uint8_t*)(uintptr_t)(r10 + OFFSET(-8)) = (uint8_t)r2; + // EBPF_OP_STXDW pc=209 dst=r10 src=r1 offset=-16 imm=0 +#line 54 "sample/sockops.c" + *(uint64_t*)(uintptr_t)(r10 + OFFSET(-16)) = (uint64_t)r1; + // EBPF_OP_MOV64_REG pc=210 dst=r2 src=r10 offset=0 imm=0 +#line 54 "sample/sockops.c" + r2 = r10; + // EBPF_OP_ADD64_IMM pc=211 dst=r2 src=r0 offset=0 imm=-64 +#line 55 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=212 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[0].address); - // EBPF_OP_CALL pc=211 dst=r0 src=r0 offset=0 imm=1 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=214 dst=r0 src=r0 offset=0 imm=1 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[0].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[0].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_IMM pc=212 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=215 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = IMMEDIATE(0); - // EBPF_OP_JEQ_IMM pc=213 dst=r0 src=r0 offset=8 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_JEQ_IMM pc=216 dst=r0 src=r0 offset=8 imm=0 +#line 58 "sample/sockops.c" if (r0 == IMMEDIATE(0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" goto label_13; label_12: - // EBPF_OP_MOV64_REG pc=214 dst=r2 src=r10 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=217 dst=r2 src=r10 offset=0 imm=0 +#line 58 "sample/sockops.c" r2 = r10; - // EBPF_OP_ADD64_IMM pc=215 dst=r2 src=r0 offset=0 imm=-48 -#line 56 "sample/sockops.c" - r2 += IMMEDIATE(-48); - // EBPF_OP_LDDW pc=216 dst=r1 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_ADD64_IMM pc=218 dst=r2 src=r0 offset=0 imm=-64 +#line 58 "sample/sockops.c" + r2 += IMMEDIATE(-64); + // EBPF_OP_LDDW pc=219 dst=r1 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r1 = POINTER(_maps[1].address); - // EBPF_OP_MOV64_IMM pc=218 dst=r3 src=r0 offset=0 imm=48 -#line 56 "sample/sockops.c" - r3 = IMMEDIATE(48); - // EBPF_OP_MOV64_IMM pc=219 dst=r4 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_IMM pc=221 dst=r3 src=r0 offset=0 imm=64 +#line 58 "sample/sockops.c" + r3 = IMMEDIATE(64); + // EBPF_OP_MOV64_IMM pc=222 dst=r4 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r4 = IMMEDIATE(0); - // EBPF_OP_CALL pc=220 dst=r0 src=r0 offset=0 imm=11 -#line 56 "sample/sockops.c" + // EBPF_OP_CALL pc=223 dst=r0 src=r0 offset=0 imm=11 +#line 58 "sample/sockops.c" r0 = connection_monitor_helpers[1].address -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" (r1, r2, r3, r4, r5); -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" if ((connection_monitor_helpers[1].tail_call) && (r0 == 0)) -#line 56 "sample/sockops.c" +#line 58 "sample/sockops.c" return 0; - // EBPF_OP_MOV64_REG pc=221 dst=r6 src=r0 offset=0 imm=0 -#line 56 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=224 dst=r6 src=r0 offset=0 imm=0 +#line 58 "sample/sockops.c" r6 = r0; label_13: - // EBPF_OP_MOV64_REG pc=222 dst=r0 src=r6 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_MOV64_REG pc=225 dst=r0 src=r6 offset=0 imm=0 +#line 91 "sample/sockops.c" r0 = r6; - // EBPF_OP_EXIT pc=223 dst=r0 src=r0 offset=0 imm=0 -#line 89 "sample/sockops.c" + // EBPF_OP_EXIT pc=226 dst=r0 src=r0 offset=0 imm=0 +#line 91 "sample/sockops.c" return r0; -#line 89 "sample/sockops.c" +#line 91 "sample/sockops.c" } #pragma code_seg(pop) #line __LINE__ __FILE__ @@ -1002,7 +1011,7 @@ static program_entry_t _programs[] = { 2, connection_monitor_helpers, 2, - 224, + 227, &connection_monitor_program_type_guid, &connection_monitor_attach_type_guid, }, diff --git a/tests/end_to_end/netsh_test.cpp b/tests/end_to_end/netsh_test.cpp index 1867d7dd4..736f1bd35 100644 --- a/tests/end_to_end/netsh_test.cpp +++ b/tests/end_to_end/netsh_test.cpp @@ -213,16 +213,16 @@ TEST_CASE("show sections cgroup_sock_addr.sys", "[netsh][sections]") " Size\n" " Section Type (bytes)\n" "==================== ========= =======\n" - " cgroup/connect4 sock_addr 594\n" - " cgroup/connect6 sock_addr 728\n" - " cgroup/recv_accept4 sock_addr 594\n" - " cgroup/recv_accept6 sock_addr 728\n" + " cgroup/connect4 sock_addr 598\n" + " cgroup/connect6 sock_addr 770\n" + " cgroup/recv_accept4 sock_addr 598\n" + " cgroup/recv_accept6 sock_addr 770\n" "\n" " Key Value Max\n" " Map Type Size Size Entries Name\n" "================== ==== ===== ======= ========\n" - " Hash 44 4 1 ingress_connection_policy_map\n" - " Hash 44 4 1 egress_connection_policy_map\n"); + " Hash 56 4 1 ingress_connection_policy_map\n" + " Hash 56 4 1 egress_connection_policy_map\n"); } TEST_CASE("show verification nosuchfile.o", "[netsh][verification]") diff --git a/tests/sample/cgroup_sock_addr.c b/tests/sample/cgroup_sock_addr.c index c46109eea..7b8a3cc43 100644 --- a/tests/sample/cgroup_sock_addr.c +++ b/tests/sample/cgroup_sock_addr.c @@ -39,6 +39,7 @@ authorize_v4(bpf_sock_addr_t* ctx, struct bpf_map_def* connection_policy_map) tuple_key.dst_ip.ipv4 = ctx->user_ip4; tuple_key.dst_port = ctx->user_port; tuple_key.protocol = ctx->protocol; + tuple_key.interface_luid = ctx->interface_luid; verdict = bpf_map_lookup_elem(connection_policy_map, &tuple_key); @@ -55,6 +56,7 @@ authorize_v6(bpf_sock_addr_t* ctx, struct bpf_map_def* connection_policy_map) __builtin_memcpy(tuple_key.dst_ip.ipv6, ctx->user_ip6, sizeof(ctx->user_ip6)); tuple_key.dst_port = ctx->user_port; tuple_key.protocol = ctx->protocol; + tuple_key.interface_luid = ctx->interface_luid; verdict = bpf_map_lookup_elem(connection_policy_map, &tuple_key); diff --git a/tests/sample/sockops.c b/tests/sample/sockops.c index 6438b6df7..f8d6e9022 100644 --- a/tests/sample/sockops.c +++ b/tests/sample/sockops.c @@ -26,6 +26,7 @@ handle_v4(bpf_sock_ops_t* ctx, bool outbound, bool connected) audit_entry.tuple.dst_ip.ipv4 = (outbound) ? ctx->remote_ip4 : ctx->local_ip4; audit_entry.tuple.dst_port = (outbound) ? ctx->remote_port : ctx->local_port; audit_entry.tuple.protocol = ctx->protocol; + audit_entry.tuple.interface_luid = ctx->interface_luid; audit_entry.outbound = outbound; audit_entry.connected = connected; @@ -50,6 +51,7 @@ handle_v6(bpf_sock_ops_t* ctx, bool outbound, bool connected) __builtin_memcpy(audit_entry.tuple.dst_ip.ipv6, ip6, sizeof(uint32_t) * 4); audit_entry.tuple.dst_port = (outbound) ? ctx->remote_port : ctx->local_port; audit_entry.tuple.protocol = ctx->protocol; + audit_entry.tuple.interface_luid = ctx->interface_luid; audit_entry.outbound = outbound; audit_entry.connected = connected; diff --git a/tests/socket/socket_tests.cpp b/tests/socket/socket_tests.cpp index 74924b48d..3bcd51c7a 100644 --- a/tests/socket/socket_tests.cpp +++ b/tests/socket/socket_tests.cpp @@ -26,8 +26,8 @@ using namespace std::chrono_literals; void connection_test( ADDRESS_FAMILY address_family, - sender_socket_t& sender_socket, - receiver_socket_t& receiver_socket, + _In_ sender_socket_t& sender_socket, + _In_ receiver_socket_t& receiver_socket, uint32_t protocol) { struct bpf_object* object; @@ -60,6 +60,9 @@ connection_test( tuple.src_port = INETADDR_PORT(local_address); tuple.dst_port = htons(SOCKET_TEST_PORT); tuple.protocol = protocol; + NET_LUID net_luid = {}; + net_luid.Info.IfType = IF_TYPE_SOFTWARE_LOOPBACK; + tuple.interface_luid = net_luid.Value; bpf_map* ingress_connection_policy_map = bpf_object__find_map_by_name(object, "ingress_connection_policy_map"); REQUIRE(ingress_connection_policy_map != nullptr); @@ -196,8 +199,8 @@ TEST_CASE("attach_sock_addr_programs", "[sock_addr_tests]") void connection_monitor_test( ADDRESS_FAMILY address_family, - sender_socket_t& sender_socket, - receiver_socket_t& receiver_socket, + _In_ sender_socket_t& sender_socket, + _In_ receiver_socket_t& receiver_socket, uint32_t protocol, bool disconnect) { @@ -229,6 +232,9 @@ connection_monitor_test( tuple.src_port = INETADDR_PORT(local_address); tuple.dst_port = htons(SOCKET_TEST_PORT); tuple.protocol = protocol; + NET_LUID net_luid = {}; + net_luid.Info.IfType = IF_TYPE_SOFTWARE_LOOPBACK; + tuple.interface_luid = net_luid.Value; std::vector> audit_entry_list; audit_entry_t audit_entries[3] = {0}; @@ -405,4 +411,4 @@ main(int argc, char* argv[]) WSACleanup(); return result; -} \ No newline at end of file +} diff --git a/tests/socket/socket_tests_common.h b/tests/socket/socket_tests_common.h index 310812c13..6604d22ba 100644 --- a/tests/socket/socket_tests_common.h +++ b/tests/socket/socket_tests_common.h @@ -24,6 +24,7 @@ typedef struct _connection_tuple ip_address_t dst_ip; uint16_t dst_port; uint32_t protocol; + uint64_t interface_luid; } connection_tuple_t; typedef struct _audit_entry