grpc 1.37.0 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +501 -260
- data/etc/roots.pem +335 -326
- data/include/grpc/byte_buffer.h +1 -1
- data/include/grpc/byte_buffer_reader.h +1 -1
- data/include/grpc/event_engine/README.md +38 -0
- data/include/grpc/event_engine/endpoint_config.h +43 -0
- data/include/grpc/event_engine/event_engine.h +399 -0
- data/include/grpc/event_engine/internal/memory_allocator_impl.h +68 -0
- data/include/grpc/event_engine/memory_allocator.h +226 -0
- data/include/grpc/event_engine/memory_request.h +57 -0
- data/include/grpc/event_engine/port.h +39 -0
- data/include/grpc/fork.h +1 -1
- data/include/grpc/grpc.h +65 -22
- data/include/grpc/grpc_posix.h +22 -18
- data/include/grpc/grpc_security.h +358 -191
- data/include/grpc/grpc_security_constants.h +17 -14
- data/include/grpc/impl/codegen/atm.h +5 -3
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +2 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +2 -0
- data/include/grpc/impl/codegen/atm_windows.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer.h +2 -0
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -0
- data/include/grpc/impl/codegen/compression_types.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +2 -0
- data/include/grpc/impl/codegen/fork.h +2 -0
- data/include/grpc/impl/codegen/gpr_slice.h +2 -0
- data/include/grpc/impl/codegen/gpr_types.h +2 -0
- data/include/grpc/impl/codegen/grpc_types.h +61 -28
- data/include/grpc/impl/codegen/log.h +2 -0
- data/include/grpc/impl/codegen/port_platform.h +83 -22
- data/include/grpc/impl/codegen/propagation_bits.h +2 -0
- data/include/grpc/impl/codegen/slice.h +6 -1
- data/include/grpc/impl/codegen/status.h +2 -0
- data/include/grpc/impl/codegen/sync.h +8 -5
- data/include/grpc/impl/codegen/sync_abseil.h +2 -0
- data/include/grpc/impl/codegen/sync_custom.h +2 -0
- data/include/grpc/impl/codegen/sync_generic.h +3 -0
- data/include/grpc/impl/codegen/sync_posix.h +4 -2
- data/include/grpc/impl/codegen/sync_windows.h +2 -0
- data/include/grpc/module.modulemap +14 -14
- data/include/grpc/slice.h +1 -12
- data/include/grpc/status.h +1 -1
- data/include/grpc/support/atm.h +1 -1
- data/include/grpc/support/atm_gcc_atomic.h +1 -1
- data/include/grpc/support/atm_gcc_sync.h +1 -1
- data/include/grpc/support/atm_windows.h +1 -1
- data/include/grpc/support/log.h +1 -1
- data/include/grpc/support/port_platform.h +1 -1
- data/include/grpc/support/sync.h +1 -1
- data/include/grpc/support/sync_abseil.h +1 -1
- data/include/grpc/support/sync_custom.h +1 -1
- data/include/grpc/support/sync_generic.h +1 -1
- data/include/grpc/support/sync_posix.h +1 -1
- data/include/grpc/support/sync_windows.h +1 -1
- data/include/grpc/support/time.h +2 -2
- data/src/core/ext/filters/census/grpc_context.cc +1 -0
- data/src/core/ext/filters/client_channel/backend_metric.cc +24 -27
- data/src/core/ext/filters/client_channel/backend_metric.h +4 -3
- data/src/core/ext/filters/client_channel/backup_poller.cc +17 -12
- data/src/core/ext/filters/client_channel/backup_poller.h +1 -0
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +158 -202
- data/src/core/ext/filters/client_channel/client_channel.cc +1231 -3574
- data/src/core/ext/filters/client_channel/client_channel.h +563 -56
- data/src/core/ext/filters/client_channel/client_channel_channelz.cc +6 -5
- data/src/core/ext/filters/client_channel/client_channel_channelz.h +2 -2
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +2 -1
- data/src/core/ext/filters/client_channel/client_channel_factory.h +17 -19
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +19 -22
- data/src/core/ext/filters/client_channel/config_selector.cc +2 -1
- data/src/core/ext/filters/client_channel/config_selector.h +22 -10
- data/src/core/ext/filters/client_channel/connector.h +20 -20
- data/src/core/ext/filters/client_channel/dynamic_filters.cc +15 -17
- data/src/core/ext/filters/client_channel/dynamic_filters.h +5 -5
- data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +2 -22
- data/src/core/ext/filters/client_channel/global_subchannel_pool.h +3 -16
- data/src/core/ext/filters/client_channel/health/health_check_client.cc +72 -68
- data/src/core/ext/filters/client_channel/health/health_check_client.h +38 -36
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +54 -55
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +10 -2
- data/src/core/ext/filters/client_channel/http_proxy.cc +16 -1
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.cc +4 -3
- data/src/core/ext/filters/client_channel/lb_policy/address_filtering.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/child_policy_handler.cc +6 -2
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +12 -24
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +300 -201
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +3 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.cc +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_balancer_addresses.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.cc +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +6 -5
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +17 -18
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +4 -4
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +86 -61
- data/src/core/ext/filters/client_channel/lb_policy/priority/priority.cc +73 -68
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +785 -0
- data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +10 -0
- data/src/core/ext/filters/client_channel/lb_policy/rls/rls.cc +2551 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +77 -78
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +19 -14
- data/src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc +37 -34
- data/src/core/ext/filters/client_channel/lb_policy/xds/cds.cc +112 -167
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_channel_args.h +1 -1
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +188 -111
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +46 -65
- data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +198 -312
- data/src/core/ext/filters/client_channel/lb_policy.cc +17 -30
- data/src/core/ext/filters/client_channel/lb_policy.h +170 -137
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +2 -1
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +8 -11
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -1
- data/src/core/ext/filters/client_channel/resolver/binder/binder_resolver.cc +133 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +292 -149
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +23 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_event_engine.cc +31 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +24 -19
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +51 -69
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +168 -281
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +39 -26
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_event_engine.cc +28 -0
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_windows.cc +2 -2
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +138 -120
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +42 -47
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -6
- data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +102 -79
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +41 -40
- data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +547 -468
- data/src/core/ext/filters/client_channel/resolver_result_parsing.cc +42 -253
- data/src/core/ext/filters/client_channel/resolver_result_parsing.h +34 -57
- data/src/core/ext/filters/client_channel/retry_filter.cc +2640 -0
- data/src/core/ext/filters/{workarounds/workaround_cronet_compression_filter.h → client_channel/retry_filter.h} +9 -6
- data/src/core/ext/filters/client_channel/retry_service_config.cc +314 -0
- data/src/core/ext/filters/client_channel/retry_service_config.h +102 -0
- data/src/core/ext/filters/client_channel/retry_throttle.cc +14 -59
- data/src/core/ext/filters/client_channel/retry_throttle.h +11 -5
- data/src/core/ext/filters/client_channel/service_config_channel_arg_filter.cc +56 -41
- data/src/core/ext/filters/client_channel/subchannel.cc +143 -207
- data/src/core/ext/filters/client_channel/subchannel.h +43 -62
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +22 -7
- data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +11 -2
- data/src/core/ext/filters/client_idle/client_idle_filter.cc +109 -348
- data/src/core/ext/filters/client_idle/idle_filter_state.cc +96 -0
- data/src/core/ext/filters/client_idle/idle_filter_state.h +66 -0
- data/src/core/ext/filters/deadline/deadline_filter.cc +41 -43
- data/src/core/ext/filters/deadline/deadline_filter.h +3 -2
- data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +105 -102
- data/src/core/ext/filters/fault_injection/service_config_parser.cc +21 -31
- data/src/core/ext/filters/fault_injection/service_config_parser.h +11 -5
- data/src/core/ext/filters/http/client/http_client_filter.cc +108 -183
- data/src/core/ext/filters/http/client_authority_filter.cc +36 -95
- data/src/core/ext/filters/http/client_authority_filter.h +23 -5
- data/src/core/ext/filters/http/http_filters_plugin.cc +52 -73
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +67 -157
- data/src/core/ext/filters/http/message_compress/message_decompress_filter.cc +43 -56
- data/src/core/ext/filters/http/server/http_server_filter.cc +115 -207
- data/src/core/ext/filters/max_age/max_age_filter.cc +75 -69
- data/src/core/ext/filters/message_size/message_size_filter.cc +63 -69
- data/src/core/ext/filters/message_size/message_size_filter.h +11 -4
- data/src/core/ext/filters/rbac/rbac_filter.cc +162 -0
- data/src/core/ext/filters/rbac/rbac_filter.h +76 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.cc +606 -0
- data/src/core/ext/filters/rbac/rbac_service_config_parser.h +75 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.cc +67 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector.h +71 -0
- data/src/core/ext/filters/server_config_selector/server_config_selector_filter.cc +271 -0
- data/src/core/{lib/transport/authority_override.h → ext/filters/server_config_selector/server_config_selector_filter.h} +8 -13
- data/src/core/ext/transport/chttp2/alpn/alpn.cc +2 -1
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +251 -19
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +7 -7
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +339 -138
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +2 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +4 -2
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -1
- data/src/core/ext/transport/chttp2/transport/bin_encoder.cc +1 -0
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +386 -463
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -4
- data/src/core/ext/transport/chttp2/transport/context_list.cc +4 -6
- data/src/core/ext/transport/chttp2/transport/context_list.h +4 -6
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +66 -47
- data/src/core/ext/transport/chttp2/transport/flow_control.h +27 -21
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_data.h +11 -10
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +21 -20
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +17 -17
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +8 -6
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +17 -15
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +49 -17
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +7 -6
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +16 -13
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -6
- data/src/core/ext/transport/chttp2/transport/hpack_constants.h +41 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +520 -749
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +183 -71
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.cc +86 -0
- data/src/core/ext/transport/chttp2/transport/hpack_encoder_table.h +71 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +811 -1193
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +101 -83
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.cc +239 -0
- data/src/core/ext/transport/chttp2/transport/hpack_parser_table.h +115 -0
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -74
- data/src/core/ext/transport/chttp2/transport/parsing.cc +157 -293
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -2
- data/src/core/ext/transport/chttp2/transport/varint.cc +13 -7
- data/src/core/ext/transport/chttp2/transport/varint.h +39 -28
- data/src/core/ext/transport/chttp2/transport/writing.cc +113 -164
- data/src/core/ext/transport/inproc/inproc_plugin.cc +0 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +186 -215
- data/src/core/ext/transport/inproc/inproc_transport.h +1 -4
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.c +114 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/certs.upb.h +402 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.c +119 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/clusters.upb.h +453 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +244 -210
- data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +932 -575
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.c +56 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/init_dump.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/listeners.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.c +46 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/memory.upb.h +106 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/metrics.upb.h +93 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.c +43 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/mutex_stats.upb.h +88 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.c +103 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/server_info.upb.h +466 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/admin/v3/tap.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c +44 -1
- data/src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h +20 -1
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.c +31 -5
- data/src/core/ext/upb-generated/envoy/annotations/resource.upb.h +40 -19
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c +144 -117
- data/src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h +513 -317
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +241 -188
- data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +954 -530
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c +44 -29
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h +137 -81
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c +328 -250
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.h +1266 -657
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/filter.upb.h +41 -23
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.c +41 -28
- data/src/core/ext/upb-generated/envoy/config/cluster/v3/outlier_detection.upb.h +136 -80
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.c +290 -0
- data/src/core/ext/upb-generated/envoy/config/common/matcher/v3/matcher.upb.h +1122 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.c +73 -54
- data/src/core/ext/upb-generated/envoy/config/core/v3/address.upb.h +265 -159
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/config/core/v3/backoff.upb.h +41 -23
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.c +238 -153
- data/src/core/ext/upb-generated/envoy/config/core/v3/base.upb.h +894 -471
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.c +63 -46
- data/src/core/ext/upb-generated/envoy/config/core/v3/config_source.upb.h +210 -130
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/core/v3/event_service_config.upb.h +33 -19
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/config/core/v3/extension.upb.h +88 -53
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.c +58 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_method_list.upb.h +138 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.c +144 -118
- data/src/core/ext/upb-generated/envoy/config/core/v3/grpc_service.upb.h +529 -329
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.c +112 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/health_check.upb.h +425 -259
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/config/core/v3/http_uri.upb.h +44 -26
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +212 -91
- data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +932 -266
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.c +18 -5
- data/src/core/ext/upb-generated/envoy/config/core/v3/proxy_protocol.upb.h +33 -17
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.c +60 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/resolver.upb.h +152 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.c +23 -10
- data/src/core/ext/upb-generated/envoy/config/core/v3/socket_option.upb.h +47 -25
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.c +28 -14
- data/src/core/ext/upb-generated/envoy/config/core/v3/substitution_format_string.upb.h +53 -35
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/config/core/v3/udp_socket_config.upb.h +108 -0
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.c +52 -36
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint.upb.h +133 -85
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.c +91 -39
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/endpoint_components.upb.h +325 -107
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.c +71 -54
- data/src/core/ext/upb-generated/envoy/config/endpoint/v3/load_report.upb.h +244 -144
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/config/listener/v3/api_listener.upb.h +36 -20
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.c +97 -69
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener.upb.h +400 -226
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.c +99 -78
- data/src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h +340 -213
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.c +61 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/quic_config.upb.h +199 -0
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c +27 -11
- data/src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h +86 -49
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.c +53 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/metrics_service.upb.h +120 -0
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +82 -62
- data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +294 -185
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +93 -60
- data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +349 -181
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c +127 -100
- data/src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h +307 -185
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c +59 -27
- data/src/core/ext/upb-generated/envoy/config/route/v3/route.upb.h +195 -88
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +648 -559
- data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +2460 -1505
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.c +39 -20
- data/src/core/ext/upb-generated/envoy/config/route/v3/scoped_route.upb.h +127 -64
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.c +216 -0
- data/src/core/ext/upb-generated/envoy/config/tap/v3/common.upb.h +870 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.c +44 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/datadog.upb.h +82 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.c +49 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/dynamic_ot.upb.h +95 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.c +28 -14
- data/src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h +69 -40
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.c +52 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/lightstep.upb.h +119 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/opencensus.upb.h +203 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.c +47 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/service.upb.h +89 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.c +69 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/skywalking.upb.h +184 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.c +32 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/trace.upb.h +42 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.c +71 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/xray.upb.h +192 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.c +54 -0
- data/src/core/ext/upb-generated/envoy/config/trace/v3/zipkin.upb.h +126 -0
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c +18 -5
- data/src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h +37 -23
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +46 -29
- data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +156 -92
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +52 -36
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +175 -107
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.c +63 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/rbac/v3/rbac.upb.h +165 -0
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +69 -41
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +272 -200
- data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +1095 -552
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c +10 -1
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.h +7 -4
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.c +108 -52
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/common.upb.h +448 -171
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.c +42 -27
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/secret.upb.h +115 -71
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.c +103 -83
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls.upb.h +341 -213
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.c +62 -0
- data/src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upb.h +146 -0
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.c +16 -3
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/ads.upb.h +29 -15
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.c +92 -73
- data/src/core/ext/upb-generated/envoy/service/discovery/v3/discovery.upb.h +335 -218
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/service/load_stats/v3/lrs.upb.h +87 -54
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +85 -40
- data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +303 -104
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.c +48 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/cookie.upb.h +101 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.c +76 -0
- data/src/core/ext/upb-generated/envoy/type/http/v3/path_transformation.upb.h +228 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.c +74 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/http_inputs.upb.h +202 -0
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c +29 -14
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h +81 -46
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +22 -9
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +42 -26
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c +21 -8
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h +33 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.h +33 -19
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.c +37 -21
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h +105 -61
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c +32 -18
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h +79 -52
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +27 -13
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +70 -43
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c +38 -23
- data/src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h +94 -58
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c +51 -32
- data/src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.h +206 -124
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.c +54 -37
- data/src/core/ext/upb-generated/envoy/type/tracing/v3/custom_tag.upb.h +191 -115
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.c +66 -0
- data/src/core/ext/upb-generated/envoy/type/v3/hash_policy.upb.h +183 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.c +10 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http.upb.h +4 -1
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.c +42 -0
- data/src/core/ext/upb-generated/envoy/type/v3/http_status.upb.h +136 -0
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.c +24 -10
- data/src/core/ext/upb-generated/envoy/type/v3/percent.upb.h +65 -34
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.c +31 -16
- data/src/core/ext/upb-generated/envoy/type/v3/range.upb.h +100 -52
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.c +26 -0
- data/src/core/ext/upb-generated/envoy/type/v3/ratelimit_unit.upb.h +41 -0
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.c +20 -7
- data/src/core/ext/upb-generated/envoy/type/v3/semantic_version.upb.h +39 -19
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.c +51 -0
- data/src/core/ext/upb-generated/envoy/type/v3/token_bucket.upb.h +114 -0
- data/src/core/ext/upb-generated/google/api/annotations.upb.c +23 -1
- data/src/core/ext/upb-generated/google/api/annotations.upb.h +9 -1
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.c +151 -126
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/checked.upb.h +439 -281
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.c +153 -127
- data/src/core/ext/upb-generated/google/api/expr/v1alpha1/syntax.upb.h +483 -298
- data/src/core/ext/upb-generated/google/api/http.upb.c +44 -29
- data/src/core/ext/upb-generated/google/api/http.upb.h +137 -89
- data/src/core/ext/upb-generated/google/api/httpbody.upb.c +46 -0
- data/src/core/ext/upb-generated/google/api/httpbody.upb.h +99 -0
- data/src/core/ext/upb-generated/google/protobuf/any.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/any.upb.h +40 -22
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c +367 -277
- data/src/core/ext/upb-generated/google/protobuf/descriptor.upb.h +1252 -764
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/duration.upb.h +36 -18
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.c +16 -3
- data/src/core/ext/upb-generated/google/protobuf/empty.upb.h +29 -15
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.c +48 -32
- data/src/core/ext/upb-generated/google/protobuf/struct.upb.h +100 -64
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.c +19 -6
- data/src/core/ext/upb-generated/google/protobuf/timestamp.upb.h +36 -18
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.c +58 -37
- data/src/core/ext/upb-generated/google/protobuf/wrappers.upb.h +269 -149
- data/src/core/ext/upb-generated/google/rpc/status.upb.c +22 -9
- data/src/core/ext/upb-generated/google/rpc/status.upb.h +44 -26
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.c +84 -0
- data/src/core/ext/upb-generated/opencensus/proto/trace/v1/trace_config.upb.h +276 -0
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.c +33 -19
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/altscontext.upb.h +68 -42
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.c +132 -108
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/handshaker.upb.h +458 -285
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.c +27 -13
- data/src/core/ext/upb-generated/src/proto/grpc/gcp/transport_security_common.upb.h +72 -39
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.c +23 -9
- data/src/core/ext/upb-generated/src/proto/grpc/health/v1/health.upb.h +64 -35
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.c +82 -62
- data/src/core/ext/upb-generated/src/proto/grpc/lb/v1/load_balancer.upb.h +321 -197
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.c +70 -0
- data/src/core/ext/upb-generated/src/proto/grpc/lookup/v1/rls.upb.h +175 -0
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.c +76 -14
- data/src/core/ext/upb-generated/udpa/annotations/migrate.upb.h +132 -63
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.c +32 -8
- data/src/core/ext/upb-generated/udpa/annotations/security.upb.h +41 -18
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.c +22 -1
- data/src/core/ext/upb-generated/udpa/annotations/sensitive.upb.h +9 -1
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.c +32 -6
- data/src/core/ext/upb-generated/udpa/annotations/status.upb.h +41 -18
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.c +31 -5
- data/src/core/ext/upb-generated/udpa/annotations/versioning.upb.h +40 -19
- data/src/core/ext/upb-generated/validate/validate.upb.c +396 -295
- data/src/core/ext/upb-generated/validate/validate.upb.h +1395 -768
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.c +110 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/migrate.upb.h +191 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.c +55 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/security.upb.h +87 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.c +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/sensitive.upb.h +38 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.c +105 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/status.upb.h +230 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.c +53 -0
- data/src/core/ext/upb-generated/xds/annotations/v3/versioning.upb.h +81 -0
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.c +19 -6
- data/src/core/ext/upb-generated/xds/core/v3/authority.upb.h +35 -19
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.c +32 -18
- data/src/core/ext/upb-generated/xds/core/v3/collection_entry.upb.h +77 -46
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.c +27 -13
- data/src/core/ext/upb-generated/xds/core/v3/context_params.upb.h +39 -25
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/core/v3/extension.upb.h +95 -0
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.c +24 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource.upb.h +47 -27
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.c +35 -21
- data/src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h +87 -54
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c +24 -11
- data/src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h +51 -29
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.c +73 -0
- data/src/core/ext/upb-generated/xds/data/orca/v3/orca_load_report.upb.h +144 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.c +203 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/matcher.upb.h +726 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.c +52 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/regex.upb.h +132 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.c +65 -0
- data/src/core/ext/upb-generated/xds/type/matcher/v3/string.upb.h +173 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.c +46 -0
- data/src/core/ext/upb-generated/xds/type/v3/typed_struct.upb.h +95 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.c +84 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/certs.upbdefs.h +55 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.c +127 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/clusters.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +16 -61
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +67 -67
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.c +43 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/init_dump.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/listeners.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/memory.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/metrics.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/mutex_stats.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.c +142 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/server_info.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.c +51 -0
- data/src/core/ext/upbdefs-generated/envoy/admin/v3/tap.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c +22 -12
- data/src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c +10 -13
- data/src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c +69 -98
- data/src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h +46 -46
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +349 -339
- data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +57 -52
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c +488 -484
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.h +80 -70
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/filter.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.c +18 -20
- data/src/core/ext/upbdefs-generated/envoy/config/cluster/v3/outlier_detection.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.c +206 -0
- data/src/core/ext/upbdefs-generated/envoy/config/common/matcher/v3/matcher.upbdefs.h +105 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.c +17 -32
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/address.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/backoff.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.c +224 -229
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/base.upbdefs.h +79 -64
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.c +23 -33
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/config_source.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/event_service_config.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/extension.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_method_list.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.c +23 -51
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/grpc_service.upbdefs.h +43 -43
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.c +76 -89
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/health_check.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.c +16 -19
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/http_uri.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +267 -200
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +59 -34
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.c +14 -16
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/proxy_protocol.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.c +55 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/resolver.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/socket_option.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.c +40 -38
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/substitution_format_string.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.c +49 -0
- data/src/core/ext/upbdefs-generated/envoy/config/core/v3/udp_socket_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.c +20 -28
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.c +98 -83
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/endpoint_components.upbdefs.h +23 -13
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.c +20 -30
- data/src/core/ext/upbdefs-generated/envoy/config/endpoint/v3/load_report.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/api_listener.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.c +157 -155
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener.upbdefs.h +21 -16
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.c +147 -153
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.c +88 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/quic_config.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c +40 -36
- data/src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.c +69 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/metrics_service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +19 -35
- data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +25 -25
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +40 -47
- data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +30 -25
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.c +190 -0
- data/src/core/ext/upbdefs-generated/envoy/config/rbac/v3/rbac.upbdefs.h +70 -0
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c +79 -71
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h +12 -7
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +717 -773
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +162 -157
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.c +54 -48
- data/src/core/ext/upbdefs-generated/envoy/config/route/v3/scoped_route.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.c +188 -0
- data/src/core/ext/upbdefs-generated/envoy/config/tap/v3/common.upbdefs.h +85 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.c +54 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/datadog.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/dynamic_ot.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.c +72 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/lightstep.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.c +99 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/opencensus.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/service.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.c +71 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/skywalking.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/trace.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.c +75 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/xray.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.c +77 -0
- data/src/core/ext/upbdefs-generated/envoy/config/trace/v3/zipkin.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c +17 -18
- data/src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +19 -29
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +27 -30
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.c +59 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/rbac/v3/rbac.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +26 -24
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +455 -429
- data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h +62 -52
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c +17 -13
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.c +178 -138
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/common.upbdefs.h +26 -16
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.c +21 -27
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/secret.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.c +194 -200
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls.upbdefs.h +19 -19
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.c +58 -0
- data/src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.c +16 -18
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/ads.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.c +19 -33
- data/src/core/ext/upbdefs-generated/envoy/service/discovery/v3/discovery.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.c +18 -22
- data/src/core/ext/upbdefs-generated/envoy/service/load_stats/v3/lrs.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +120 -97
- data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +18 -13
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.c +46 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/cookie.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.c +56 -0
- data/src/core/ext/upbdefs-generated/envoy/type/http/v3/path_transformation.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/http_inputs.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c +24 -27
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c +17 -19
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.c +45 -48
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c +17 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +16 -21
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c +18 -24
- data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c +15 -29
- data/src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.h +22 -22
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.c +16 -26
- data/src/core/ext/upbdefs-generated/envoy/type/tracing/v3/custom_tag.upbdefs.h +16 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.c +53 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/hash_policy.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.c +12 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.c +94 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/http_status.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.c +14 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/percent.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.c +13 -19
- data/src/core/ext/upbdefs-generated/envoy/type/v3/range.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.c +38 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/ratelimit_unit.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.c +13 -16
- data/src/core/ext/upbdefs-generated/envoy/type/v3/semantic_version.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.c +57 -0
- data/src/core/ext/upbdefs-generated/envoy/type/v3/token_bucket.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.c +7 -7
- data/src/core/ext/upbdefs-generated/google/api/annotations.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.c +154 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/checked.upbdefs.h +95 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.c +153 -0
- data/src/core/ext/upbdefs-generated/google/api/expr/v1alpha1/syntax.upbdefs.h +100 -0
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.c +5 -14
- data/src/core/ext/upbdefs-generated/google/api/http.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.c +39 -0
- data/src/core/ext/upbdefs-generated/google/api/httpbody.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/any.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c +107 -164
- data/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.h +82 -82
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/duration.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/empty.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.c +5 -16
- data/src/core/ext/upbdefs-generated/google/protobuf/struct.upbdefs.h +13 -13
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.c +5 -10
- data/src/core/ext/upbdefs-generated/google/protobuf/timestamp.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.c +5 -26
- data/src/core/ext/upbdefs-generated/google/protobuf/wrappers.upbdefs.h +28 -28
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.c +9 -14
- data/src/core/ext/upbdefs-generated/google/rpc/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.c +67 -0
- data/src/core/ext/upbdefs-generated/opencensus/proto/trace/v1/trace_config.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.c +10 -18
- data/src/core/ext/upbdefs-generated/udpa/annotations/migrate.upbdefs.h +10 -10
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.c +24 -33
- data/src/core/ext/upbdefs-generated/udpa/annotations/security.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.c +9 -8
- data/src/core/ext/upbdefs-generated/udpa/annotations/sensitive.upbdefs.h +1 -1
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.c +10 -13
- data/src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c +10 -14
- data/src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.c +189 -216
- data/src/core/ext/upbdefs-generated/validate/validate.upbdefs.h +70 -70
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.c +63 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/migrate.upbdefs.h +45 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.c +47 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/security.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.c +35 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/sensitive.upbdefs.h +30 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.c +64 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/status.upbdefs.h +50 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/annotations/v3/versioning.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c +18 -22
- data/src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.c +32 -38
- data/src/core/ext/upbdefs-generated/xds/core/v3/collection_entry.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.c +20 -26
- data/src/core/ext/upbdefs-generated/xds/core/v3/context_params.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.c +41 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/extension.upbdefs.h +35 -0
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.c +23 -27
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.c +39 -45
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_locator.upbdefs.h +7 -7
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.c +25 -29
- data/src/core/ext/upbdefs-generated/xds/core/v3/resource_name.upbdefs.h +4 -4
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.c +126 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/matcher.upbdefs.h +80 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/regex.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.c +52 -0
- data/src/core/ext/upbdefs-generated/xds/type/matcher/v3/string.upbdefs.h +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.c +40 -0
- data/src/core/ext/upbdefs-generated/xds/type/v3/typed_struct.upbdefs.h +35 -0
- data/src/core/ext/xds/certificate_provider_factory.h +1 -1
- data/src/core/ext/xds/certificate_provider_registry.cc +3 -3
- data/src/core/ext/xds/certificate_provider_store.h +4 -4
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.cc +7 -7
- data/src/core/ext/xds/file_watcher_certificate_provider_factory.h +4 -4
- data/src/core/ext/xds/upb_utils.h +67 -0
- data/src/core/ext/xds/xds_api.cc +232 -3313
- data/src/core/ext/xds/xds_api.h +70 -550
- data/src/core/ext/xds/xds_bootstrap.cc +315 -300
- data/src/core/ext/xds/xds_bootstrap.h +54 -33
- data/src/core/ext/xds/xds_certificate_provider.cc +7 -7
- data/src/core/ext/xds/xds_certificate_provider.h +6 -6
- data/src/core/ext/xds/xds_channel_args.h +5 -2
- data/src/core/ext/xds/xds_channel_stack_modifier.cc +109 -0
- data/src/core/ext/xds/xds_channel_stack_modifier.h +53 -0
- data/src/core/ext/xds/xds_client.cc +1093 -957
- data/src/core/ext/xds/xds_client.h +143 -168
- data/src/core/ext/xds/xds_client_stats.cc +31 -30
- data/src/core/ext/xds/xds_client_stats.h +15 -13
- data/src/core/ext/xds/xds_cluster.cc +453 -0
- data/src/core/ext/xds/xds_cluster.h +108 -0
- data/src/core/ext/xds/xds_common_types.cc +388 -0
- data/src/core/ext/xds/xds_common_types.h +95 -0
- data/src/core/ext/xds/xds_endpoint.cc +364 -0
- data/src/core/ext/xds/xds_endpoint.h +135 -0
- data/src/core/ext/xds/xds_http_fault_filter.cc +10 -9
- data/src/core/ext/xds/xds_http_fault_filter.h +6 -5
- data/src/core/ext/xds/xds_http_filters.cc +15 -7
- data/src/core/ext/xds/xds_http_filters.h +7 -4
- data/src/core/ext/xds/xds_http_rbac_filter.cc +563 -0
- data/src/core/ext/xds/xds_http_rbac_filter.h +54 -0
- data/src/core/ext/xds/xds_listener.cc +1039 -0
- data/src/core/ext/xds/xds_listener.h +220 -0
- data/src/core/{lib/transport/authority_override.cc → ext/xds/xds_resource_type.cc} +10 -17
- data/src/core/ext/xds/xds_resource_type.h +98 -0
- data/src/core/ext/xds/xds_resource_type_impl.h +87 -0
- data/src/core/ext/xds/xds_route_config.cc +985 -0
- data/src/core/ext/xds/xds_route_config.h +215 -0
- data/src/core/ext/xds/xds_routing.cc +250 -0
- data/src/core/ext/xds/xds_routing.h +101 -0
- data/src/core/ext/xds/xds_server_config_fetcher.cc +1083 -296
- data/src/core/lib/{iomgr → address_utils}/parse_address.cc +43 -25
- data/src/core/lib/{iomgr → address_utils}/parse_address.h +12 -7
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.cc +34 -41
- data/src/core/lib/{iomgr → address_utils}/sockaddr_utils.h +5 -15
- data/src/core/lib/avl/avl.h +389 -88
- data/src/core/lib/backoff/backoff.cc +9 -38
- data/src/core/lib/backoff/backoff.h +11 -11
- data/src/core/lib/channel/call_finalization.h +86 -0
- data/src/core/lib/channel/call_tracer.h +85 -0
- data/src/core/lib/channel/channel_args.cc +87 -9
- data/src/core/lib/channel/channel_args.h +13 -1
- data/src/core/lib/channel/channel_args_preconditioning.cc +48 -0
- data/src/core/lib/channel/channel_args_preconditioning.h +62 -0
- data/src/core/lib/channel/channel_stack.cc +25 -15
- data/src/core/lib/channel/channel_stack.h +53 -16
- data/src/core/lib/channel/channel_stack_builder.cc +68 -262
- data/src/core/lib/channel/channel_stack_builder.h +95 -155
- data/src/core/lib/channel/channel_trace.cc +8 -10
- data/src/core/lib/channel/channel_trace.h +2 -1
- data/src/core/lib/channel/channelz.cc +65 -52
- data/src/core/lib/channel/channelz.h +32 -29
- data/src/core/lib/channel/channelz_registry.cc +8 -7
- data/src/core/lib/channel/channelz_registry.h +1 -1
- data/src/core/lib/channel/connected_channel.cc +14 -10
- data/src/core/lib/channel/connected_channel.h +1 -2
- data/src/core/lib/channel/context.h +14 -0
- data/src/core/lib/channel/handshaker.cc +10 -8
- data/src/core/lib/channel/handshaker.h +7 -8
- data/src/core/lib/channel/handshaker_factory.h +10 -2
- data/src/core/lib/channel/handshaker_registry.cc +15 -70
- data/src/core/lib/channel/handshaker_registry.h +29 -12
- data/src/core/lib/channel/promise_based_filter.cc +669 -0
- data/src/core/lib/channel/promise_based_filter.h +423 -0
- data/src/core/lib/channel/status_util.h +6 -2
- data/src/core/lib/compression/compression.cc +22 -114
- data/src/core/lib/compression/compression_internal.cc +145 -207
- data/src/core/lib/compression/compression_internal.h +64 -69
- data/src/core/lib/compression/message_compress.cc +13 -13
- data/src/core/lib/compression/message_compress.h +2 -2
- data/src/core/lib/config/core_configuration.cc +104 -0
- data/src/core/lib/config/core_configuration.h +196 -0
- data/src/core/lib/debug/stats.cc +1 -1
- data/src/core/lib/debug/stats.h +2 -1
- data/src/core/lib/debug/stats_data.cc +15 -14
- data/src/core/lib/debug/stats_data.h +1 -0
- data/src/core/lib/debug/trace.cc +1 -0
- data/src/core/lib/debug/trace.h +4 -3
- data/src/core/lib/event_engine/channel_args_endpoint_config.cc +46 -0
- data/src/core/lib/event_engine/channel_args_endpoint_config.h +42 -0
- data/src/core/lib/event_engine/default_event_engine_factory.cc +27 -0
- data/src/core/lib/event_engine/event_engine.cc +52 -0
- data/src/core/lib/event_engine/event_engine_factory.h +36 -0
- data/src/core/lib/event_engine/memory_allocator.cc +66 -0
- data/src/core/lib/event_engine/resolved_address.cc +39 -0
- data/src/core/lib/event_engine/sockaddr.cc +40 -0
- data/src/core/lib/event_engine/sockaddr.h +44 -0
- data/src/core/lib/gpr/alloc.cc +4 -3
- data/src/core/lib/gpr/atm.cc +1 -1
- data/src/core/lib/gpr/cpu_posix.cc +1 -1
- data/src/core/lib/gpr/env_linux.cc +1 -2
- data/src/core/lib/gpr/env_posix.cc +2 -3
- data/src/core/lib/gpr/log.cc +3 -3
- data/src/core/lib/gpr/log_android.cc +3 -2
- data/src/core/lib/gpr/log_linux.cc +7 -4
- data/src/core/lib/gpr/log_posix.cc +6 -3
- data/src/core/lib/gpr/murmur_hash.cc +4 -2
- data/src/core/lib/gpr/string.cc +2 -2
- data/src/core/lib/gpr/string.h +2 -2
- data/src/core/lib/gpr/sync.cc +2 -2
- data/src/core/lib/gpr/sync_abseil.cc +7 -6
- data/src/core/lib/gpr/sync_posix.cc +4 -3
- data/src/core/lib/gpr/time.cc +5 -3
- data/src/core/lib/gpr/time_windows.cc +3 -2
- data/src/core/lib/gpr/tls.h +125 -40
- data/src/core/lib/gpr/tmpfile_posix.cc +1 -2
- data/src/core/lib/gpr/useful.h +97 -32
- data/src/core/lib/gpr/wrap_memcpy.cc +2 -1
- data/src/core/lib/gprpp/atomic_utils.h +47 -0
- data/src/core/lib/gprpp/bitset.h +195 -0
- data/src/core/lib/gprpp/capture.h +76 -0
- data/src/core/lib/gprpp/chunked_vector.h +253 -0
- data/src/core/lib/gprpp/construct_destruct.h +39 -0
- data/src/core/lib/gprpp/cpp_impl_of.h +45 -0
- data/src/core/lib/gprpp/debug_location.h +2 -0
- data/src/core/lib/gprpp/dual_ref_counted.h +25 -26
- data/src/core/lib/gprpp/fork.cc +14 -12
- data/src/core/lib/gprpp/fork.h +4 -4
- data/src/core/lib/gprpp/global_config.h +1 -2
- data/src/core/lib/gprpp/global_config_env.cc +14 -14
- data/src/core/lib/gprpp/global_config_env.h +2 -2
- data/src/core/lib/gprpp/global_config_generic.h +2 -2
- data/src/core/lib/gprpp/manual_constructor.h +11 -9
- data/src/core/lib/gprpp/memory.h +9 -3
- data/src/core/lib/gprpp/mpscq.cc +7 -7
- data/src/core/lib/gprpp/mpscq.h +6 -5
- data/src/core/lib/gprpp/orphanable.h +7 -7
- data/src/core/lib/gprpp/ref_counted.h +47 -33
- data/src/core/lib/gprpp/ref_counted_ptr.h +2 -4
- data/src/core/lib/gprpp/status_helper.cc +419 -0
- data/src/core/lib/gprpp/status_helper.h +181 -0
- data/src/core/lib/gprpp/sync.h +5 -31
- data/src/core/lib/gprpp/table.h +434 -0
- data/src/core/lib/gprpp/thd_posix.cc +5 -5
- data/src/core/lib/gprpp/thd_windows.cc +4 -11
- data/src/core/lib/gprpp/time.cc +186 -0
- data/src/core/lib/gprpp/time.h +292 -0
- data/src/core/lib/gprpp/time_util.cc +2 -2
- data/src/core/lib/gprpp/time_util.h +2 -2
- data/src/core/lib/http/format_request.cc +28 -23
- data/src/core/lib/http/format_request.h +8 -6
- data/src/core/lib/http/httpcli.cc +299 -209
- data/src/core/lib/http/httpcli.h +183 -85
- data/src/core/lib/http/httpcli_security_connector.cc +71 -81
- data/src/core/lib/http/httpcli_ssl_credentials.h +37 -0
- data/src/core/lib/http/parser.cc +18 -18
- data/src/core/lib/http/parser.h +6 -5
- data/src/core/lib/iomgr/buffer_list.cc +16 -17
- data/src/core/lib/iomgr/buffer_list.h +22 -24
- data/src/core/lib/iomgr/call_combiner.cc +55 -23
- data/src/core/lib/iomgr/call_combiner.h +12 -14
- data/src/core/lib/iomgr/cfstream_handle.cc +4 -4
- data/src/core/lib/iomgr/cfstream_handle.h +1 -1
- data/src/core/lib/iomgr/closure.h +33 -12
- data/src/core/lib/iomgr/combiner.cc +46 -36
- data/src/core/lib/iomgr/combiner.h +3 -2
- data/src/core/lib/iomgr/dualstack_socket_posix.cc +1 -0
- data/src/core/lib/iomgr/endpoint.cc +1 -5
- data/src/core/lib/iomgr/endpoint.h +3 -6
- data/src/core/lib/iomgr/endpoint_cfstream.cc +25 -54
- data/src/core/lib/iomgr/endpoint_cfstream.h +4 -4
- data/src/core/lib/iomgr/endpoint_pair.h +1 -0
- data/src/core/lib/iomgr/endpoint_pair_event_engine.cc +32 -0
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +11 -9
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +5 -6
- data/src/core/lib/iomgr/error.cc +270 -99
- data/src/core/lib/iomgr/error.h +277 -113
- data/src/core/lib/iomgr/error_cfstream.cc +10 -4
- data/src/core/lib/iomgr/error_cfstream.h +2 -2
- data/src/core/lib/iomgr/error_internal.h +6 -1
- data/src/core/lib/iomgr/ev_apple.cc +10 -9
- data/src/core/lib/iomgr/ev_apple.h +1 -1
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +42 -48
- data/src/core/lib/iomgr/ev_epollex_linux.cc +80 -81
- data/src/core/lib/iomgr/ev_poll_posix.cc +73 -73
- data/src/core/lib/iomgr/ev_posix.cc +12 -12
- data/src/core/lib/iomgr/ev_posix.h +9 -9
- data/src/core/lib/iomgr/event_engine/closure.cc +77 -0
- data/src/core/lib/iomgr/event_engine/closure.h +42 -0
- data/src/core/lib/iomgr/event_engine/endpoint.cc +172 -0
- data/src/core/lib/iomgr/event_engine/endpoint.h +52 -0
- data/src/core/lib/iomgr/event_engine/iomgr.cc +85 -0
- data/src/core/lib/iomgr/event_engine/pollset.cc +87 -0
- data/src/core/lib/iomgr/event_engine/pollset.h +25 -0
- data/src/core/lib/iomgr/event_engine/promise.h +51 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.cc +47 -0
- data/src/core/lib/iomgr/event_engine/resolved_address_internal.h +37 -0
- data/src/core/lib/iomgr/event_engine/resolver.cc +133 -0
- data/src/core/lib/iomgr/event_engine/resolver.h +56 -0
- data/src/core/lib/iomgr/event_engine/tcp.cc +296 -0
- data/src/core/lib/iomgr/event_engine/timer.cc +62 -0
- data/src/core/lib/iomgr/exec_ctx.cc +29 -102
- data/src/core/lib/iomgr/exec_ctx.h +32 -57
- data/src/core/lib/iomgr/executor/mpmcqueue.cc +15 -16
- data/src/core/lib/iomgr/executor/mpmcqueue.h +7 -11
- data/src/core/lib/iomgr/executor/threadpool.cc +4 -5
- data/src/core/lib/iomgr/executor/threadpool.h +4 -3
- data/src/core/lib/iomgr/executor.cc +37 -46
- data/src/core/lib/iomgr/executor.h +3 -3
- data/src/core/lib/iomgr/fork_posix.cc +3 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_posix.cc +2 -2
- data/src/core/lib/iomgr/grpc_if_nametoindex_unsupported.cc +2 -2
- data/src/core/lib/iomgr/internal_errqueue.cc +3 -2
- data/src/core/lib/iomgr/iocp_windows.cc +10 -9
- data/src/core/lib/iomgr/iocp_windows.h +1 -1
- data/src/core/lib/iomgr/iomgr.cc +5 -3
- data/src/core/lib/iomgr/iomgr.h +3 -3
- data/src/core/lib/iomgr/iomgr_internal.cc +8 -12
- data/src/core/lib/iomgr/iomgr_internal.h +6 -5
- data/src/core/lib/iomgr/iomgr_posix.cc +5 -3
- data/src/core/lib/iomgr/iomgr_posix_cfstream.cc +44 -14
- data/src/core/lib/iomgr/iomgr_windows.cc +4 -5
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +4 -4
- data/src/core/lib/iomgr/load_file.cc +6 -6
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/lockfree_event.cc +23 -5
- data/src/core/lib/iomgr/lockfree_event.h +1 -1
- data/src/core/lib/iomgr/polling_entity.cc +2 -2
- data/src/core/lib/iomgr/polling_entity.h +6 -0
- data/src/core/lib/iomgr/pollset.cc +5 -5
- data/src/core/lib/iomgr/pollset.h +9 -9
- data/src/core/lib/iomgr/pollset_set_windows.cc +1 -0
- data/src/core/lib/iomgr/pollset_windows.cc +6 -6
- data/src/core/lib/iomgr/port.h +8 -14
- data/src/core/lib/iomgr/python_util.h +3 -2
- data/src/core/lib/iomgr/resolve_address.cc +10 -24
- data/src/core/lib/iomgr/resolve_address.h +48 -43
- data/src/core/lib/iomgr/resolve_address_impl.h +59 -0
- data/src/core/lib/iomgr/resolve_address_posix.cc +91 -79
- data/src/core/lib/iomgr/resolve_address_posix.h +47 -0
- data/src/core/lib/iomgr/resolve_address_windows.cc +102 -85
- data/src/core/lib/iomgr/resolve_address_windows.h +47 -0
- data/src/core/lib/iomgr/resolved_address.h +39 -0
- data/src/core/lib/iomgr/sockaddr.h +2 -1
- data/src/core/lib/iomgr/{socket_utils_uv.cc → sockaddr_utils_posix.cc} +21 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +5 -5
- data/src/core/lib/iomgr/socket_factory_posix.h +1 -0
- data/src/core/lib/iomgr/socket_mutator.cc +17 -4
- data/src/core/lib/iomgr/socket_mutator.h +27 -3
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +28 -44
- data/src/core/lib/iomgr/socket_utils_linux.cc +4 -4
- data/src/core/lib/iomgr/socket_utils_posix.cc +2 -2
- data/src/core/lib/iomgr/socket_utils_posix.h +22 -22
- data/src/core/lib/iomgr/socket_utils_windows.cc +2 -2
- data/src/core/lib/iomgr/tcp_client.cc +1 -1
- data/src/core/lib/iomgr/tcp_client.h +5 -2
- data/src/core/lib/iomgr/tcp_client_cfstream.cc +12 -28
- data/src/core/lib/iomgr/tcp_client_posix.cc +38 -45
- data/src/core/lib/iomgr/tcp_client_posix.h +7 -6
- data/src/core/lib/iomgr/tcp_client_windows.cc +15 -15
- data/src/core/lib/iomgr/tcp_posix.cc +129 -159
- data/src/core/lib/iomgr/tcp_posix.h +17 -12
- data/src/core/lib/iomgr/tcp_server.cc +6 -6
- data/src/core/lib/iomgr/tcp_server.h +16 -14
- data/src/core/lib/iomgr/tcp_server_posix.cc +44 -34
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +34 -29
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +23 -20
- data/src/core/lib/iomgr/tcp_server_utils_posix_ifaddrs.cc +12 -12
- data/src/core/lib/iomgr/tcp_server_utils_posix_noifaddrs.cc +4 -4
- data/src/core/lib/iomgr/tcp_server_windows.cc +32 -35
- data/src/core/lib/iomgr/tcp_windows.cc +35 -52
- data/src/core/lib/iomgr/tcp_windows.h +3 -3
- data/src/core/lib/iomgr/timer.cc +3 -2
- data/src/core/lib/iomgr/timer.h +17 -8
- data/src/core/lib/iomgr/timer_generic.cc +116 -127
- data/src/core/lib/iomgr/timer_generic.h +1 -0
- data/src/core/lib/iomgr/timer_heap.cc +2 -3
- data/src/core/lib/iomgr/timer_manager.cc +16 -15
- data/src/core/lib/iomgr/unix_sockets_posix.cc +25 -39
- data/src/core/lib/iomgr/unix_sockets_posix.h +6 -10
- data/src/core/lib/iomgr/unix_sockets_posix_noop.cc +12 -18
- data/src/core/lib/iomgr/wakeup_fd_eventfd.cc +3 -3
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.cc +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.cc +4 -3
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -6
- data/src/core/lib/iomgr/work_serializer.cc +120 -44
- data/src/core/lib/iomgr/work_serializer.h +33 -5
- data/src/core/lib/json/json.h +1 -1
- data/src/core/lib/json/json_reader.cc +97 -58
- data/src/core/lib/json/json_util.cc +71 -3
- data/src/core/lib/json/json_util.h +66 -116
- data/src/core/lib/json/json_writer.cc +0 -3
- data/src/core/lib/matchers/matchers.cc +47 -59
- data/src/core/lib/matchers/matchers.h +30 -30
- data/src/core/lib/profiling/basic_timers.cc +8 -6
- data/src/core/lib/profiling/stap_timers.cc +2 -2
- data/src/core/lib/promise/activity.cc +121 -0
- data/src/core/lib/promise/activity.h +540 -0
- data/src/core/lib/promise/arena_promise.h +188 -0
- data/src/core/lib/promise/context.h +86 -0
- data/src/core/lib/promise/detail/basic_seq.h +496 -0
- data/src/core/lib/promise/detail/promise_factory.h +189 -0
- data/src/core/lib/promise/detail/promise_like.h +85 -0
- data/src/core/lib/promise/detail/status.h +49 -0
- data/src/core/lib/promise/detail/switch.h +1455 -0
- data/src/core/lib/promise/exec_ctx_wakeup_scheduler.h +48 -0
- data/src/core/lib/promise/loop.h +134 -0
- data/src/core/lib/promise/map.h +88 -0
- data/src/core/lib/promise/poll.h +66 -0
- data/src/core/lib/promise/promise.h +95 -0
- data/src/core/lib/promise/race.h +84 -0
- data/src/core/lib/promise/seq.h +89 -0
- data/src/core/lib/promise/sleep.cc +74 -0
- data/src/core/lib/promise/sleep.h +66 -0
- data/src/core/lib/promise/try_seq.h +157 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.cc +17 -25
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver.h +43 -44
- data/src/core/{ext/filters/client_channel → lib/resolver}/resolver_factory.h +32 -29
- data/src/core/lib/resolver/resolver_registry.cc +156 -0
- data/src/core/lib/resolver/resolver_registry.h +113 -0
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.cc +2 -2
- data/src/core/{ext/filters/client_channel → lib/resolver}/server_address.h +5 -5
- data/src/core/lib/resource_quota/api.cc +108 -0
- data/src/core/lib/resource_quota/api.h +40 -0
- data/src/core/lib/{gprpp → resource_quota}/arena.cc +18 -14
- data/src/core/lib/{gprpp → resource_quota}/arena.h +37 -16
- data/src/core/lib/resource_quota/memory_quota.cc +478 -0
- data/src/core/lib/resource_quota/memory_quota.h +457 -0
- data/src/core/lib/resource_quota/resource_quota.cc +33 -0
- data/src/core/lib/resource_quota/resource_quota.h +58 -0
- data/src/core/lib/resource_quota/thread_quota.cc +43 -0
- data/src/core/lib/resource_quota/thread_quota.h +57 -0
- data/src/core/lib/resource_quota/trace.cc +19 -0
- data/src/core/lib/resource_quota/trace.h +24 -0
- data/src/core/lib/security/authorization/authorization_engine.h +44 -0
- data/src/core/lib/security/authorization/authorization_policy_provider.h +33 -0
- data/src/core/lib/security/authorization/authorization_policy_provider_vtable.cc +46 -0
- data/src/core/lib/security/authorization/evaluate_args.cc +212 -0
- data/src/core/lib/security/authorization/evaluate_args.h +92 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.cc +60 -0
- data/src/core/lib/security/authorization/grpc_authorization_engine.h +62 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.cc +109 -0
- data/src/core/lib/security/authorization/grpc_server_authz_filter.h +51 -0
- data/src/core/lib/security/authorization/matchers.cc +227 -0
- data/src/core/lib/security/authorization/matchers.h +211 -0
- data/src/core/lib/security/authorization/rbac_policy.cc +442 -0
- data/src/core/lib/security/authorization/rbac_policy.h +171 -0
- data/src/core/lib/security/context/security_context.cc +15 -10
- data/src/core/lib/security/context/security_context.h +1 -1
- data/src/core/lib/security/credentials/alts/alts_credentials.h +6 -0
- data/src/core/lib/security/credentials/alts/check_gcp_environment_linux.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_no_op.cc +2 -2
- data/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc +2 -2
- data/src/core/lib/security/credentials/call_creds_util.cc +87 -0
- data/src/core/lib/security/credentials/call_creds_util.h +42 -0
- data/src/core/lib/security/credentials/channel_creds_registry.h +97 -0
- data/src/core/lib/security/credentials/channel_creds_registry_init.cc +70 -0
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +21 -84
- data/src/core/lib/security/credentials/composite/composite_credentials.h +21 -9
- data/src/core/lib/security/credentials/credentials.cc +11 -10
- data/src/core/lib/security/credentials/credentials.h +75 -59
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.cc +78 -72
- data/src/core/lib/security/credentials/external/aws_external_account_credentials.h +15 -13
- data/src/core/lib/security/credentials/external/aws_request_signer.cc +5 -4
- data/src/core/lib/security/credentials/external/aws_request_signer.h +1 -1
- data/src/core/lib/security/credentials/external/external_account_credentials.cc +127 -80
- data/src/core/lib/security/credentials/external/external_account_credentials.h +15 -17
- data/src/core/lib/security/credentials/external/file_external_account_credentials.cc +5 -5
- data/src/core/lib/security/credentials/external/file_external_account_credentials.h +4 -3
- data/src/core/lib/security/credentials/external/url_external_account_credentials.cc +43 -26
- data/src/core/lib/security/credentials/external/url_external_account_credentials.h +10 -7
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +18 -18
- data/src/core/lib/security/credentials/fake/fake_credentials.h +14 -16
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +1 -2
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +85 -30
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +6 -0
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +21 -28
- data/src/core/lib/security/credentials/iam/iam_credentials.h +11 -9
- data/src/core/lib/security/credentials/insecure/insecure_credentials.cc +13 -7
- data/src/core/lib/security/credentials/jwt/json_token.cc +7 -9
- data/src/core/lib/security/credentials/jwt/json_token.h +2 -1
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +52 -51
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +23 -15
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +66 -59
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +4 -4
- data/src/core/lib/security/credentials/local/local_credentials.h +6 -0
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +166 -193
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +54 -34
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +97 -157
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +54 -27
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +5 -14
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +6 -4
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.cc +11 -9
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_distributor.h +19 -15
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.cc +80 -25
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_provider.h +20 -12
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.cc +201 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_certificate_verifier.h +106 -0
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.cc +35 -85
- data/src/core/lib/security/credentials/tls/grpc_tls_credentials_options.h +38 -85
- data/src/core/lib/security/credentials/tls/tls_credentials.cc +21 -10
- data/src/core/lib/security/credentials/tls/tls_credentials.h +6 -0
- data/src/core/lib/security/credentials/tls/tls_utils.cc +32 -0
- data/src/core/lib/security/credentials/tls/tls_utils.h +13 -0
- data/src/core/lib/security/credentials/xds/xds_credentials.cc +31 -36
- data/src/core/lib/security/credentials/xds/xds_credentials.h +6 -1
- data/src/core/lib/security/security_connector/alts/alts_security_connector.cc +22 -18
- data/src/core/lib/security/security_connector/alts/alts_security_connector.h +3 -3
- data/src/core/lib/security/security_connector/fake/fake_security_connector.cc +24 -25
- data/src/core/lib/security/security_connector/fake/fake_security_connector.h +0 -2
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.cc +8 -18
- data/src/core/lib/security/security_connector/insecure/insecure_security_connector.h +21 -16
- data/src/core/lib/security/security_connector/load_system_roots_fallback.cc +1 -0
- data/src/core/lib/security/security_connector/load_system_roots_linux.cc +5 -6
- data/src/core/lib/security/security_connector/local/local_security_connector.cc +32 -24
- data/src/core/lib/security/security_connector/security_connector.cc +8 -15
- data/src/core/lib/security/security_connector/security_connector.h +24 -24
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.cc +24 -22
- data/src/core/lib/security/security_connector/ssl/ssl_security_connector.h +1 -2
- data/src/core/lib/security/security_connector/ssl_utils.cc +67 -39
- data/src/core/lib/security/security_connector/ssl_utils.h +17 -21
- data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +409 -272
- data/src/core/lib/security/security_connector/tls/tls_security_connector.h +118 -79
- data/src/core/lib/security/transport/auth_filters.h +38 -4
- data/src/core/lib/security/transport/client_auth_filter.cc +88 -353
- data/src/core/lib/security/transport/secure_endpoint.cc +8 -18
- data/src/core/lib/security/transport/secure_endpoint.h +1 -0
- data/src/core/lib/security/transport/security_handshaker.cc +138 -90
- data/src/core/lib/security/transport/security_handshaker.h +2 -1
- data/src/core/lib/security/transport/server_auth_filter.cc +58 -48
- data/src/core/lib/security/transport/tsi_error.cc +5 -6
- data/src/core/lib/security/transport/tsi_error.h +2 -1
- data/src/core/lib/security/util/json_util.cc +8 -10
- data/src/core/lib/security/util/json_util.h +1 -1
- data/src/core/lib/service_config/service_config.h +82 -0
- data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_call_data.h +17 -31
- data/src/core/{ext/filters/client_channel/service_config.cc → lib/service_config/service_config_impl.cc} +31 -27
- data/src/core/{ext/filters/client_channel/service_config.h → lib/service_config/service_config_impl.h} +22 -23
- data/src/core/{ext/filters/client_channel → lib/service_config}/service_config_parser.cc +35 -31
- data/src/core/lib/service_config/service_config_parser.h +106 -0
- data/src/core/lib/slice/percent_encoding.cc +84 -97
- data/src/core/lib/slice/percent_encoding.h +23 -28
- data/src/core/lib/slice/slice.cc +81 -191
- data/src/core/lib/slice/slice.h +384 -0
- data/src/core/lib/{gpr/tls_pthread.cc → slice/slice_api.cc} +15 -6
- data/src/core/lib/slice/slice_buffer.cc +10 -7
- data/src/core/lib/slice/slice_internal.h +15 -276
- data/src/core/lib/slice/slice_refcount.cc +35 -0
- data/src/core/lib/slice/slice_refcount.h +46 -0
- data/src/core/lib/slice/slice_refcount_base.h +61 -0
- data/src/core/lib/slice/slice_split.cc +100 -0
- data/src/core/lib/slice/slice_split.h +40 -0
- data/src/core/lib/slice/slice_string_helpers.cc +0 -83
- data/src/core/lib/slice/slice_string_helpers.h +0 -11
- data/src/core/lib/surface/api_trace.cc +2 -1
- data/src/core/lib/surface/api_trace.h +1 -0
- data/src/core/lib/surface/builtins.cc +49 -0
- data/src/core/lib/surface/builtins.h +26 -0
- data/src/core/lib/surface/byte_buffer_reader.cc +1 -1
- data/src/core/lib/surface/call.cc +316 -521
- data/src/core/lib/surface/call.h +14 -9
- data/src/core/lib/surface/call_details.cc +2 -2
- data/src/core/lib/surface/call_log_batch.cc +2 -2
- data/src/core/lib/surface/channel.cc +75 -107
- data/src/core/lib/surface/channel.h +17 -24
- data/src/core/lib/surface/channel_init.cc +23 -76
- data/src/core/lib/surface/channel_init.h +52 -44
- data/src/core/lib/surface/channel_ping.cc +2 -3
- data/src/core/lib/surface/channel_stack_type.cc +2 -1
- data/src/core/lib/surface/completion_queue.cc +136 -145
- data/src/core/lib/surface/completion_queue.h +3 -2
- data/src/core/lib/surface/completion_queue_factory.cc +3 -3
- data/src/core/lib/surface/completion_queue_factory.h +1 -0
- data/src/core/lib/surface/event_string.cc +1 -0
- data/src/core/lib/surface/init.cc +82 -60
- data/src/core/lib/surface/init.h +10 -4
- data/src/core/lib/surface/lame_client.cc +50 -35
- data/src/core/lib/surface/lame_client.h +1 -1
- data/src/core/lib/surface/metadata_array.cc +2 -2
- data/src/core/lib/surface/server.cc +100 -128
- data/src/core/lib/surface/server.h +58 -53
- data/src/core/lib/surface/validate_metadata.cc +55 -24
- data/src/core/lib/surface/validate_metadata.h +3 -2
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +11 -12
- data/src/core/lib/transport/bdp_estimator.h +2 -2
- data/src/core/lib/transport/byte_stream.cc +9 -5
- data/src/core/lib/transport/byte_stream.h +9 -8
- data/src/core/lib/transport/connectivity_state.cc +9 -6
- data/src/core/lib/transport/connectivity_state.h +2 -2
- data/src/core/lib/transport/error_utils.cc +68 -29
- data/src/core/lib/transport/error_utils.h +13 -6
- data/src/core/lib/transport/metadata_batch.h +1348 -163
- data/src/core/lib/transport/parsed_metadata.cc +37 -0
- data/src/core/lib/transport/parsed_metadata.h +401 -0
- data/src/core/lib/transport/pid_controller.cc +4 -4
- data/src/core/lib/transport/status_conversion.cc +2 -2
- data/src/core/lib/transport/status_conversion.h +1 -1
- data/src/core/lib/transport/timeout_encoding.cc +204 -67
- data/src/core/lib/transport/timeout_encoding.h +40 -10
- data/src/core/lib/transport/transport.cc +15 -35
- data/src/core/lib/transport/transport.h +94 -8
- data/src/core/lib/transport/transport_impl.h +13 -0
- data/src/core/lib/transport/transport_op_string.cc +13 -35
- data/src/core/lib/uri/uri_parser.cc +237 -63
- data/src/core/lib/uri/uri_parser.h +39 -23
- data/src/core/plugin_registry/grpc_plugin_registry.cc +75 -102
- data/src/core/plugin_registry/grpc_plugin_registry_extra.cc +85 -0
- data/src/core/tsi/alts/crypt/aes_gcm.cc +6 -3
- data/src/core/tsi/alts/crypt/gsec.h +5 -0
- data/src/core/tsi/alts/frame_protector/alts_frame_protector.cc +13 -12
- data/src/core/tsi/alts/frame_protector/frame_handler.cc +10 -11
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +36 -31
- data/src/core/tsi/alts/handshaker/alts_handshaker_client.h +2 -3
- data/src/core/tsi/alts/handshaker/alts_shared_resource.cc +9 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.cc +38 -19
- data/src/core/tsi/alts/handshaker/alts_tsi_handshaker_private.h +2 -1
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.cc +2 -2
- data/src/core/tsi/alts/handshaker/alts_tsi_utils.h +1 -1
- data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +2 -2
- data/src/core/tsi/alts/handshaker/transport_security_common_api.h +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_integrity_only_record_protocol.cc +2 -2
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_grpc_record_protocol_common.cc +1 -1
- data/src/core/tsi/alts/zero_copy_frame_protector/alts_zero_copy_grpc_protector.cc +2 -2
- data/src/core/tsi/fake_transport_security.cc +15 -7
- data/src/core/tsi/local_transport_security.cc +42 -87
- data/src/core/tsi/local_transport_security.h +1 -4
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.cc +141 -0
- data/src/core/tsi/ssl/key_logging/ssl_key_logging.h +81 -0
- data/src/core/tsi/ssl/session_cache/ssl_session.h +2 -4
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.cc +20 -53
- data/src/core/tsi/ssl/session_cache/ssl_session_cache.h +6 -7
- data/src/core/tsi/ssl/session_cache/ssl_session_openssl.cc +2 -2
- data/src/core/tsi/ssl_transport_security.cc +186 -38
- data/src/core/tsi/ssl_transport_security.h +45 -11
- data/src/core/tsi/transport_security.cc +15 -3
- data/src/core/tsi/transport_security.h +16 -1
- data/src/core/tsi/transport_security_grpc.h +1 -0
- data/src/core/tsi/transport_security_interface.h +26 -0
- data/src/ruby/bin/math_services_pb.rb +1 -1
- data/src/ruby/ext/grpc/extconf.rb +22 -10
- data/src/ruby/ext/grpc/rb_byte_buffer.c +2 -1
- data/src/ruby/ext/grpc/rb_call.c +5 -5
- data/src/ruby/ext/grpc/rb_call_credentials.c +5 -5
- data/src/ruby/ext/grpc/rb_channel.c +15 -10
- data/src/ruby/ext/grpc/rb_channel_args.c +2 -2
- data/src/ruby/ext/grpc/rb_channel_credentials.c +4 -4
- data/src/ruby/ext/grpc/rb_channel_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -2
- data/src/ruby/ext/grpc/rb_compression_options.c +5 -4
- data/src/ruby/ext/grpc/rb_event_thread.c +4 -4
- data/src/ruby/ext/grpc/rb_grpc.c +5 -4
- data/src/ruby/ext/grpc/rb_grpc.h +1 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -34
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +56 -53
- data/src/ruby/ext/grpc/rb_server.c +13 -9
- data/src/ruby/ext/grpc/rb_server_credentials.c +3 -3
- data/src/ruby/ext/grpc/rb_server_credentials.h +1 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +3 -1
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +6 -5
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +3 -1
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +1 -1
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +1 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +6 -6
- data/src/ruby/spec/client_server_spec.rb +1 -1
- data/third_party/abseil-cpp/absl/algorithm/container.h +104 -94
- data/third_party/abseil-cpp/absl/base/attributes.h +88 -35
- data/third_party/abseil-cpp/absl/base/call_once.h +2 -9
- data/third_party/abseil-cpp/absl/base/config.h +102 -44
- data/third_party/abseil-cpp/absl/base/dynamic_annotations.h +25 -36
- data/third_party/abseil-cpp/absl/base/internal/direct_mmap.h +4 -1
- data/third_party/abseil-cpp/absl/base/internal/endian.h +61 -0
- data/third_party/abseil-cpp/absl/base/internal/fast_type_id.h +48 -0
- data/third_party/abseil-cpp/absl/base/internal/low_level_scheduling.h +2 -3
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.cc +34 -32
- data/third_party/abseil-cpp/absl/base/internal/raw_logging.h +16 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock.cc +11 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock.h +17 -6
- data/third_party/abseil-cpp/absl/base/internal/spinlock_akaros.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_linux.inc +3 -3
- data/third_party/abseil-cpp/absl/base/internal/spinlock_posix.inc +2 -2
- data/third_party/abseil-cpp/absl/base/internal/spinlock_wait.h +13 -11
- data/third_party/abseil-cpp/absl/base/internal/spinlock_win32.inc +5 -5
- data/third_party/abseil-cpp/absl/base/internal/sysinfo.cc +70 -1
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.cc +9 -6
- data/third_party/abseil-cpp/absl/base/internal/thread_identity.h +58 -52
- data/third_party/abseil-cpp/absl/base/internal/throw_delegate.cc +111 -7
- data/third_party/abseil-cpp/absl/base/internal/unaligned_access.h +0 -76
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc +17 -3
- data/third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h +4 -4
- data/third_party/abseil-cpp/absl/base/log_severity.h +4 -4
- data/third_party/abseil-cpp/absl/base/macros.h +11 -0
- data/third_party/abseil-cpp/absl/base/optimization.h +10 -7
- data/third_party/abseil-cpp/absl/base/options.h +1 -1
- data/third_party/abseil-cpp/absl/base/port.h +0 -1
- data/third_party/abseil-cpp/absl/base/thread_annotations.h +1 -1
- data/third_party/abseil-cpp/absl/container/fixed_array.h +2 -7
- data/third_party/abseil-cpp/absl/container/inlined_vector.h +110 -100
- data/third_party/abseil-cpp/absl/container/internal/compressed_tuple.h +1 -1
- data/third_party/abseil-cpp/absl/container/internal/hash_function_defaults.h +17 -15
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.cc +23 -103
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler.h +39 -79
- data/third_party/abseil-cpp/absl/container/internal/hashtablez_sampler_force_weak_definition.cc +2 -1
- data/third_party/abseil-cpp/absl/container/internal/inlined_vector.h +469 -429
- data/third_party/abseil-cpp/absl/container/internal/layout.h +4 -4
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_map.h +3 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.cc +21 -2
- data/third_party/abseil-cpp/absl/container/internal/raw_hash_set.h +374 -243
- data/third_party/abseil-cpp/absl/debugging/internal/demangle.cc +27 -13
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc +12 -11
- data/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.h +6 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc +5 -2
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h +15 -17
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_emscripten-inl.inc +110 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_powerpc-inl.inc +6 -1
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_riscv-inl.inc +234 -0
- data/third_party/abseil-cpp/absl/debugging/internal/stacktrace_x86-inl.inc +25 -7
- data/third_party/abseil-cpp/absl/debugging/internal/symbolize.h +11 -7
- data/third_party/abseil-cpp/absl/debugging/internal/vdso_support.cc +21 -3
- data/third_party/abseil-cpp/absl/debugging/stacktrace.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize.cc +2 -0
- data/third_party/abseil-cpp/absl/debugging/symbolize_darwin.inc +2 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_elf.inc +16 -2
- data/third_party/abseil-cpp/absl/debugging/symbolize_emscripten.inc +72 -0
- data/third_party/abseil-cpp/absl/functional/function_ref.h +4 -1
- data/third_party/abseil-cpp/absl/hash/hash.h +22 -0
- data/third_party/abseil-cpp/absl/hash/internal/city.cc +15 -12
- data/third_party/abseil-cpp/absl/hash/internal/city.h +1 -19
- data/third_party/abseil-cpp/absl/hash/internal/hash.cc +27 -13
- data/third_party/abseil-cpp/absl/hash/internal/hash.h +145 -45
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.cc +123 -0
- data/third_party/abseil-cpp/absl/hash/internal/low_level_hash.h +50 -0
- data/third_party/abseil-cpp/absl/memory/memory.h +1 -1
- data/third_party/abseil-cpp/absl/meta/type_traits.h +47 -3
- data/third_party/abseil-cpp/absl/numeric/bits.h +177 -0
- data/third_party/abseil-cpp/absl/numeric/int128.cc +6 -13
- data/third_party/abseil-cpp/absl/numeric/int128.h +146 -73
- data/third_party/abseil-cpp/absl/numeric/int128_have_intrinsic.inc +19 -25
- data/third_party/abseil-cpp/absl/numeric/int128_no_intrinsic.inc +73 -70
- data/third_party/abseil-cpp/absl/numeric/internal/bits.h +358 -0
- data/third_party/abseil-cpp/absl/numeric/internal/representation.h +55 -0
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.cc +4 -4
- data/third_party/abseil-cpp/absl/{base → profiling}/internal/exponential_biased.h +6 -6
- data/third_party/abseil-cpp/absl/profiling/internal/sample_recorder.h +230 -0
- data/third_party/abseil-cpp/absl/random/bernoulli_distribution.h +200 -0
- data/third_party/abseil-cpp/absl/random/beta_distribution.h +427 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.cc +98 -0
- data/third_party/abseil-cpp/absl/random/discrete_distribution.h +247 -0
- data/third_party/abseil-cpp/absl/random/distributions.h +452 -0
- data/third_party/abseil-cpp/absl/random/exponential_distribution.h +165 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.cc +104 -0
- data/third_party/abseil-cpp/absl/random/gaussian_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/internal/distribution_caller.h +92 -0
- data/third_party/abseil-cpp/absl/random/internal/fast_uniform_bits.h +268 -0
- data/third_party/abseil-cpp/absl/random/internal/fastmath.h +57 -0
- data/third_party/abseil-cpp/absl/random/internal/generate_real.h +144 -0
- data/third_party/abseil-cpp/absl/random/internal/iostream_state_saver.h +245 -0
- data/third_party/abseil-cpp/absl/random/internal/nonsecure_base.h +150 -0
- data/third_party/abseil-cpp/absl/random/internal/pcg_engine.h +308 -0
- data/third_party/abseil-cpp/absl/random/internal/platform.h +171 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.cc +253 -0
- data/third_party/abseil-cpp/absl/random/internal/pool_urbg.h +131 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.cc +91 -0
- data/third_party/abseil-cpp/absl/random/internal/randen.h +102 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.cc +221 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_detect.h +33 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_engine.h +239 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.cc +526 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_hwaes.h +50 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_round_keys.cc +462 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.cc +471 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_slow.h +40 -0
- data/third_party/abseil-cpp/absl/random/internal/randen_traits.h +88 -0
- data/third_party/abseil-cpp/absl/random/internal/salted_seed_seq.h +167 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.cc +267 -0
- data/third_party/abseil-cpp/absl/random/internal/seed_material.h +104 -0
- data/third_party/abseil-cpp/absl/random/internal/traits.h +101 -0
- data/third_party/abseil-cpp/absl/random/internal/uniform_helper.h +244 -0
- data/third_party/abseil-cpp/absl/random/internal/wide_multiply.h +111 -0
- data/third_party/abseil-cpp/absl/random/log_uniform_int_distribution.h +257 -0
- data/third_party/abseil-cpp/absl/random/poisson_distribution.h +258 -0
- data/third_party/abseil-cpp/absl/random/random.h +189 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.cc +46 -0
- data/third_party/abseil-cpp/absl/random/seed_gen_exception.h +55 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.cc +29 -0
- data/third_party/abseil-cpp/absl/random/seed_sequences.h +110 -0
- data/third_party/abseil-cpp/absl/random/uniform_int_distribution.h +275 -0
- data/third_party/abseil-cpp/absl/random/uniform_real_distribution.h +202 -0
- data/third_party/abseil-cpp/absl/random/zipf_distribution.h +271 -0
- data/third_party/abseil-cpp/absl/status/internal/status_internal.h +18 -0
- data/third_party/abseil-cpp/absl/status/internal/statusor_internal.h +4 -7
- data/third_party/abseil-cpp/absl/status/status.cc +27 -28
- data/third_party/abseil-cpp/absl/status/status.h +98 -33
- data/third_party/abseil-cpp/absl/status/statusor.cc +34 -2
- data/third_party/abseil-cpp/absl/status/statusor.h +34 -24
- data/third_party/abseil-cpp/absl/strings/charconv.cc +8 -8
- data/third_party/abseil-cpp/absl/strings/charconv.h +3 -2
- data/third_party/abseil-cpp/absl/strings/cord.cc +619 -570
- data/third_party/abseil-cpp/absl/strings/cord.h +346 -101
- data/third_party/abseil-cpp/absl/strings/escaping.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/internal/charconv_parse.cc +7 -7
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.cc +89 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_internal.h +478 -31
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.cc +1128 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree.h +939 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.cc +185 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_navigator.h +265 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.cc +68 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_btree_reader.h +211 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.cc +129 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_consume.h +50 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_flat.h +146 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.cc +771 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring.h +607 -0
- data/third_party/abseil-cpp/absl/strings/internal/cord_rep_ring_reader.h +118 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.cc +96 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_functions.h +85 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.cc +139 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_handle.h +131 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.cc +445 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_info.h +298 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_statistics.h +87 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_scope.h +71 -0
- data/third_party/abseil-cpp/absl/strings/internal/cordz_update_tracker.h +121 -0
- data/third_party/abseil-cpp/absl/strings/internal/resize_uninitialized.h +48 -2
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.cc +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/arg.h +22 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.cc +18 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/bind.h +20 -5
- data/third_party/abseil-cpp/absl/strings/internal/str_format/checker.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.cc +6 -6
- data/third_party/abseil-cpp/absl/strings/internal/str_format/extension.h +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.cc +36 -18
- data/third_party/abseil-cpp/absl/strings/internal/str_format/float_conversion.h +14 -0
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.cc +76 -73
- data/third_party/abseil-cpp/absl/strings/internal/str_format/parser.h +38 -16
- data/third_party/abseil-cpp/absl/strings/internal/str_split_internal.h +49 -74
- data/third_party/abseil-cpp/absl/strings/internal/string_constant.h +64 -0
- data/third_party/abseil-cpp/absl/strings/match.cc +6 -3
- data/third_party/abseil-cpp/absl/strings/match.h +16 -6
- data/third_party/abseil-cpp/absl/strings/numbers.cc +133 -5
- data/third_party/abseil-cpp/absl/strings/numbers.h +44 -10
- data/third_party/abseil-cpp/absl/strings/str_cat.cc +4 -4
- data/third_party/abseil-cpp/absl/strings/str_format.h +1 -2
- data/third_party/abseil-cpp/absl/strings/str_join.h +1 -1
- data/third_party/abseil-cpp/absl/strings/str_split.h +38 -4
- data/third_party/abseil-cpp/absl/strings/string_view.cc +16 -21
- data/third_party/abseil-cpp/absl/strings/string_view.h +120 -39
- data/third_party/abseil-cpp/absl/strings/substitute.cc +2 -1
- data/third_party/abseil-cpp/absl/strings/substitute.h +99 -74
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.cc +25 -15
- data/third_party/abseil-cpp/absl/synchronization/blocking_counter.h +5 -3
- data/third_party/abseil-cpp/absl/synchronization/internal/futex.h +154 -0
- data/third_party/abseil-cpp/absl/synchronization/internal/kernel_timeout.h +2 -1
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc +2 -2
- data/third_party/abseil-cpp/absl/synchronization/internal/per_thread_sem.h +4 -4
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.cc +2 -66
- data/third_party/abseil-cpp/absl/synchronization/internal/waiter.h +2 -6
- data/third_party/abseil-cpp/absl/synchronization/mutex.cc +71 -59
- data/third_party/abseil-cpp/absl/synchronization/mutex.h +82 -65
- data/third_party/abseil-cpp/absl/time/civil_time.cc +1 -3
- data/third_party/abseil-cpp/absl/time/clock.cc +146 -130
- data/third_party/abseil-cpp/absl/time/clock.h +2 -2
- data/third_party/abseil-cpp/absl/time/duration.cc +3 -2
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/civil_time_detail.h +7 -11
- data/third_party/abseil-cpp/absl/time/internal/cctz/include/cctz/time_zone.h +93 -20
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_fixed.cc +1 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_if.h +2 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_info.cc +83 -21
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_libc.cc +7 -1
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/time_zone_lookup.cc +49 -0
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/tzfile.h +5 -5
- data/third_party/abseil-cpp/absl/time/internal/cctz/src/zone_info_source.cc +2 -3
- data/third_party/abseil-cpp/absl/time/time.cc +4 -3
- data/third_party/abseil-cpp/absl/time/time.h +93 -60
- data/third_party/abseil-cpp/absl/types/bad_optional_access.h +1 -1
- data/third_party/abseil-cpp/absl/types/bad_variant_access.h +2 -2
- data/third_party/abseil-cpp/absl/types/internal/variant.h +1 -1
- data/third_party/abseil-cpp/absl/types/span.h +3 -3
- data/third_party/abseil-cpp/absl/types/variant.h +9 -4
- data/third_party/address_sorting/address_sorting_posix.c +1 -0
- data/third_party/boringssl-with-bazel/err_data.c +696 -662
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bitstr.c +67 -54
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_bool.c +22 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_d2i_fp.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_gentm.c +6 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_mbstr.c +16 -23
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_object.c +64 -44
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_print.c +19 -29
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/a_strex.c +269 -272
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_strnid.c +106 -153
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_time.c +4 -4
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_type.c +19 -9
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utctm.c +1 -40
- data/third_party/boringssl-with-bazel/src/crypto/asn1/a_utf8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_lib.c +60 -49
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn1_par.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/asn_pack.c +24 -28
- data/third_party/boringssl-with-bazel/src/crypto/{x509 → asn1}/charmap.h +0 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_int.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/asn1/{asn1_locl.h → internal.h} +91 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_dec.c +57 -281
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_enc.c +292 -200
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_fre.c +10 -10
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_new.c +10 -14
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_typ.c +8 -6
- data/third_party/boringssl-with-bazel/src/crypto/asn1/tasn_utl.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/asn1/time_support.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/base64/base64.c +24 -8
- data/third_party/boringssl-with-bazel/src/crypto/bio/bio_mem.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/connect.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/bio/fd.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/bio/file.c +1 -7
- data/third_party/boringssl-with-bazel/src/crypto/bio/pair.c +1 -6
- data/third_party/boringssl-with-bazel/src/crypto/bio/socket.c +3 -17
- data/third_party/boringssl-with-bazel/src/crypto/blake2/blake2.c +4 -6
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/ber.c +3 -1
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbb.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/bytestring/cbs.c +8 -0
- data/third_party/boringssl-with-bazel/src/crypto/chacha/chacha.c +38 -47
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/cipher_extra.c +49 -65
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/e_tls.c +1 -88
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/internal.h +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/cipher_extra/tls_cbc.c +119 -273
- data/third_party/boringssl-with-bazel/src/crypto/conf/conf.c +14 -3
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/curve25519.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/curve25519/internal.h +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/digest_extra/digest_extra.c +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/dsa/dsa.c +21 -0
- data/third_party/boringssl-with-bazel/src/crypto/err/err.c +87 -80
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/evp/evp_asn1.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/evp/scrypt.c +32 -34
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bcm.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/div.c +26 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/gcd_extra.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/internal.h +6 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/prime.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/bn/sqrt.c +5 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +23 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/e_aes.c +35 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/des.c +10 -11
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/des/internal.h +1 -3
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digest.c +9 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/digests.c +10 -2
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/digest/md32_common.h +87 -160
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/ec_key.c +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ec/internal.h +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/ecdsa.c +105 -95
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/ecdsa/internal.h +39 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md4/md4.c +56 -72
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/md5/md5.c +56 -73
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cbc.c +33 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/cfb.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ctr.c +9 -8
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm.c +17 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/gcm_nohw.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/internal.h +1 -22
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/modes/ofb.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/internal.h +6 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +2 -15
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/urandom.c +30 -13
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa.c +50 -33
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rsa/rsa_impl.c +14 -9
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/fips.c +79 -0
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/self_check/self_check.c +21 -16
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha1.c +93 -107
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha256.c +91 -113
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/sha/sha512.c +50 -86
- data/third_party/boringssl-with-bazel/src/crypto/hpke/hpke.c +397 -311
- data/third_party/boringssl-with-bazel/src/crypto/hrss/hrss.c +219 -121
- data/third_party/boringssl-with-bazel/src/crypto/hrss/internal.h +9 -2
- data/third_party/boringssl-with-bazel/src/crypto/internal.h +125 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/internal.h +253 -0
- data/third_party/boringssl-with-bazel/src/crypto/lhash/lhash.c +28 -23
- data/third_party/boringssl-with-bazel/src/crypto/mem.c +46 -9
- data/third_party/boringssl-with-bazel/src/crypto/obj/obj.c +10 -6
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_all.c +0 -9
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_info.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_lib.c +0 -8
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pk8.c +0 -2
- data/third_party/boringssl-with-bazel/src/crypto/pem/pem_pkey.c +0 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/internal.h +16 -7
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7.c +38 -4
- data/third_party/boringssl-with-bazel/src/crypto/pkcs7/pkcs7_x509.c +156 -15
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/internal.h +0 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pkcs8/pkcs8_x509.c +96 -49
- data/third_party/boringssl-with-bazel/src/crypto/poly1305/poly1305.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/internal.h +5 -1
- data/third_party/boringssl-with-bazel/src/crypto/pool/pool.c +59 -22
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/deterministic.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/fuchsia.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/passive.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/rand_extra.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/rand_extra/windows.c +4 -0
- data/third_party/boringssl-with-bazel/src/crypto/rsa_extra/rsa_asn1.c +1 -2
- data/third_party/boringssl-with-bazel/src/crypto/siphash/siphash.c +6 -6
- data/third_party/boringssl-with-bazel/src/crypto/thread_pthread.c +0 -28
- data/third_party/boringssl-with-bazel/src/crypto/x509/a_verify.c +15 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/algorithm.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509/asn1_gen.c +2 -18
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_dir.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/by_file.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/internal.h +351 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509/name_print.c +246 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/rsa_pss.c +15 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_crl.c +10 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_req.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509.c +0 -179
- data/third_party/boringssl-with-bazel/src/crypto/x509/t_x509a.c +7 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_att.c +24 -47
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +3 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_ext.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_lu.c +1 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_obj.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_req.c +42 -89
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_set.c +9 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_trs.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_v3.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vfy.c +25 -69
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509_vpm.c +54 -74
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509cset.c +32 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509name.c +2 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509/x509rset.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_algor.c +21 -19
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_all.c +3 -16
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +7 -25
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_crl.c +14 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_exten.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_name.c +23 -21
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_pubkey.c +25 -22
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_req.c +5 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_sig.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_val.c +2 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +12 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509a.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/internal.h +239 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_cache.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_data.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_lib.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_map.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_node.c +1 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_tree.c +5 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_akey.c +24 -5
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_alt.c +18 -8
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_bitst.c +3 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_conf.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_cpols.c +8 -11
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_crld.c +4 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_enum.c +5 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_lib.c +23 -4
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_ncons.c +112 -55
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_pci.c +2 -1
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_prn.c +14 -13
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_purp.c +2 -2
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_skey.c +1 -0
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/v3_utl.c +80 -38
- data/third_party/boringssl-with-bazel/src/include/openssl/aead.h +1 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/arm_arch.h +66 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1.h +1517 -495
- data/third_party/boringssl-with-bazel/src/include/openssl/asn1t.h +5 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/base.h +57 -13
- data/third_party/boringssl-with-bazel/src/include/openssl/base64.h +8 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/bio.h +3 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/bn.h +3 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/bytestring.h +10 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/chacha.h +1 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +21 -11
- data/third_party/boringssl-with-bazel/src/include/openssl/conf.h +8 -5
- data/third_party/boringssl-with-bazel/src/include/openssl/crypto.h +24 -4
- data/third_party/boringssl-with-bazel/src/include/openssl/dh.h +4 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/digest.h +9 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/dsa.h +27 -41
- data/third_party/boringssl-with-bazel/src/include/openssl/ec.h +5 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/ec_key.h +12 -27
- data/third_party/boringssl-with-bazel/src/include/openssl/ecdsa.h +41 -10
- data/third_party/boringssl-with-bazel/src/include/openssl/err.h +3 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/evp.h +55 -104
- data/third_party/boringssl-with-bazel/src/{crypto/x509/x509_r2x.c → include/openssl/evp_errors.h} +41 -58
- data/third_party/boringssl-with-bazel/src/include/openssl/hkdf.h +4 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hpke.h +350 -0
- data/third_party/boringssl-with-bazel/src/include/openssl/hrss.h +14 -12
- data/third_party/boringssl-with-bazel/src/include/openssl/lhash.h +4 -205
- data/third_party/boringssl-with-bazel/src/include/openssl/mem.h +12 -3
- data/third_party/boringssl-with-bazel/src/include/openssl/obj.h +26 -6
- data/third_party/boringssl-with-bazel/src/include/openssl/pem.h +0 -20
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs7.h +42 -18
- data/third_party/boringssl-with-bazel/src/include/openssl/pkcs8.h +15 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/pool.h +7 -1
- data/third_party/boringssl-with-bazel/src/include/openssl/rand.h +2 -2
- data/third_party/boringssl-with-bazel/src/include/openssl/rsa.h +128 -91
- data/third_party/boringssl-with-bazel/src/include/openssl/span.h +37 -15
- data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +386 -104
- data/third_party/boringssl-with-bazel/src/include/openssl/tls1.h +41 -48
- data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +1160 -331
- data/third_party/boringssl-with-bazel/src/include/openssl/x509_vfy.h +16 -679
- data/third_party/boringssl-with-bazel/src/include/openssl/x509v3.h +54 -17
- data/third_party/boringssl-with-bazel/src/ssl/d1_both.cc +16 -18
- data/third_party/boringssl-with-bazel/src/ssl/d1_srtp.cc +1 -1
- data/third_party/boringssl-with-bazel/src/ssl/encrypted_client_hello.cc +1084 -0
- data/third_party/boringssl-with-bazel/src/ssl/{t1_lib.cc → extensions.cc} +660 -747
- data/third_party/boringssl-with-bazel/src/ssl/handoff.cc +298 -22
- data/third_party/boringssl-with-bazel/src/ssl/handshake.cc +90 -43
- data/third_party/boringssl-with-bazel/src/ssl/handshake_client.cc +307 -201
- data/third_party/boringssl-with-bazel/src/ssl/handshake_server.cc +173 -36
- data/third_party/boringssl-with-bazel/src/ssl/internal.h +474 -156
- data/third_party/boringssl-with-bazel/src/ssl/s3_both.cc +9 -3
- data/third_party/boringssl-with-bazel/src/ssl/s3_lib.cc +0 -1
- data/third_party/boringssl-with-bazel/src/ssl/s3_pkt.cc +14 -19
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cert.cc +4 -6
- data/third_party/boringssl-with-bazel/src/ssl/ssl_cipher.cc +2 -2
- data/third_party/boringssl-with-bazel/src/ssl/ssl_key_share.cc +34 -31
- data/third_party/boringssl-with-bazel/src/ssl/ssl_lib.cc +56 -110
- data/third_party/boringssl-with-bazel/src/ssl/ssl_privkey.cc +2 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_session.cc +129 -96
- data/third_party/boringssl-with-bazel/src/ssl/ssl_stat.cc +3 -0
- data/third_party/boringssl-with-bazel/src/ssl/ssl_transcript.cc +10 -15
- data/third_party/boringssl-with-bazel/src/ssl/ssl_versions.cc +11 -3
- data/third_party/boringssl-with-bazel/src/ssl/ssl_x509.cc +28 -23
- data/third_party/boringssl-with-bazel/src/ssl/tls13_both.cc +79 -34
- data/third_party/boringssl-with-bazel/src/ssl/tls13_client.cc +235 -178
- data/third_party/boringssl-with-bazel/src/ssl/tls13_enc.cc +146 -110
- data/third_party/boringssl-with-bazel/src/ssl/tls13_server.cc +241 -132
- data/third_party/boringssl-with-bazel/src/ssl/tls_method.cc +4 -2
- data/third_party/cares/cares/{ares.h → include/ares.h} +73 -1
- data/third_party/cares/cares/{ares_dns.h → include/ares_dns.h} +9 -0
- data/third_party/cares/cares/{ares_rules.h → include/ares_rules.h} +0 -0
- data/third_party/cares/cares/{ares_version.h → include/ares_version.h} +3 -3
- data/third_party/cares/cares/{ares__close_sockets.c → src/lib/ares__close_sockets.c} +2 -2
- data/third_party/cares/cares/{ares__get_hostent.c → src/lib/ares__get_hostent.c} +1 -2
- data/third_party/cares/cares/src/lib/ares__parse_into_addrinfo.c +260 -0
- data/third_party/cares/cares/{ares__read_line.c → src/lib/ares__read_line.c} +0 -0
- data/third_party/cares/cares/src/lib/ares__readaddrinfo.c +264 -0
- data/third_party/cares/cares/src/lib/ares__sortaddrinfo.c +499 -0
- data/third_party/cares/cares/{ares__timeval.c → src/lib/ares__timeval.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_android.c +444 -0
- data/third_party/cares/cares/src/lib/ares_android.h +27 -0
- data/third_party/cares/cares/{ares_cancel.c → src/lib/ares_cancel.c} +0 -0
- data/third_party/cares/cares/{ares_create_query.c → src/lib/ares_create_query.c} +8 -17
- data/third_party/cares/cares/{ares_data.c → src/lib/ares_data.c} +18 -0
- data/third_party/cares/cares/{ares_data.h → src/lib/ares_data.h} +2 -0
- data/third_party/cares/cares/{ares_destroy.c → src/lib/ares_destroy.c} +0 -0
- data/third_party/cares/cares/{ares_expand_name.c → src/lib/ares_expand_name.c} +114 -23
- data/third_party/cares/cares/{ares_expand_string.c → src/lib/ares_expand_string.c} +2 -5
- data/third_party/cares/cares/{ares_fds.c → src/lib/ares_fds.c} +0 -0
- data/third_party/cares/cares/{ares_free_hostent.c → src/lib/ares_free_hostent.c} +6 -4
- data/third_party/cares/cares/{ares_free_string.c → src/lib/ares_free_string.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_freeaddrinfo.c +59 -0
- data/third_party/cares/cares/src/lib/ares_getaddrinfo.c +772 -0
- data/third_party/cares/cares/{ares_getenv.c → src/lib/ares_getenv.c} +0 -2
- data/third_party/cares/cares/{ares_getenv.h → src/lib/ares_getenv.h} +0 -0
- data/third_party/cares/cares/{ares_gethostbyaddr.c → src/lib/ares_gethostbyaddr.c} +2 -9
- data/third_party/cares/cares/{ares_gethostbyname.c → src/lib/ares_gethostbyname.c} +25 -20
- data/third_party/cares/cares/{ares_getnameinfo.c → src/lib/ares_getnameinfo.c} +4 -10
- data/third_party/cares/cares/{ares_getsock.c → src/lib/ares_getsock.c} +0 -0
- data/third_party/cares/cares/{ares_inet_net_pton.h → src/lib/ares_inet_net_pton.h} +0 -0
- data/third_party/cares/cares/{ares_init.c → src/lib/ares_init.c} +79 -40
- data/third_party/cares/cares/{ares_iphlpapi.h → src/lib/ares_iphlpapi.h} +0 -0
- data/third_party/cares/cares/{ares_ipv6.h → src/lib/ares_ipv6.h} +7 -0
- data/third_party/cares/cares/{ares_library_init.c → src/lib/ares_library_init.c} +7 -2
- data/third_party/cares/cares/{ares_library_init.h → src/lib/ares_library_init.h} +1 -1
- data/third_party/cares/cares/{ares_llist.c → src/lib/ares_llist.c} +0 -0
- data/third_party/cares/cares/{ares_llist.h → src/lib/ares_llist.h} +0 -0
- data/third_party/cares/cares/{ares_mkquery.c → src/lib/ares_mkquery.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_nameser.h +482 -0
- data/third_party/cares/cares/{ares_nowarn.c → src/lib/ares_nowarn.c} +0 -0
- data/third_party/cares/cares/{ares_nowarn.h → src/lib/ares_nowarn.h} +0 -0
- data/third_party/cares/cares/{ares_options.c → src/lib/ares_options.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_parse_a_reply.c +209 -0
- data/third_party/cares/cares/src/lib/ares_parse_aaaa_reply.c +212 -0
- data/third_party/cares/cares/src/lib/ares_parse_caa_reply.c +199 -0
- data/third_party/cares/cares/{ares_parse_mx_reply.c → src/lib/ares_parse_mx_reply.c} +2 -8
- data/third_party/cares/cares/{ares_parse_naptr_reply.c → src/lib/ares_parse_naptr_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_ns_reply.c → src/lib/ares_parse_ns_reply.c} +5 -11
- data/third_party/cares/cares/{ares_parse_ptr_reply.c → src/lib/ares_parse_ptr_reply.c} +53 -46
- data/third_party/cares/cares/src/lib/ares_parse_soa_reply.c +179 -0
- data/third_party/cares/cares/{ares_parse_srv_reply.c → src/lib/ares_parse_srv_reply.c} +2 -13
- data/third_party/cares/cares/{ares_parse_txt_reply.c → src/lib/ares_parse_txt_reply.c} +3 -9
- data/third_party/cares/cares/{ares_platform.c → src/lib/ares_platform.c} +0 -0
- data/third_party/cares/cares/{ares_platform.h → src/lib/ares_platform.h} +0 -0
- data/third_party/cares/cares/{ares_private.h → src/lib/ares_private.h} +52 -11
- data/third_party/cares/cares/{ares_process.c → src/lib/ares_process.c} +127 -52
- data/third_party/cares/cares/{ares_query.c → src/lib/ares_query.c} +3 -9
- data/third_party/cares/cares/{ares_search.c → src/lib/ares_search.c} +5 -7
- data/third_party/cares/cares/{ares_send.c → src/lib/ares_send.c} +2 -8
- data/third_party/cares/cares/{ares_setup.h → src/lib/ares_setup.h} +4 -1
- data/third_party/cares/cares/{ares_strcasecmp.c → src/lib/ares_strcasecmp.c} +0 -0
- data/third_party/cares/cares/{ares_strcasecmp.h → src/lib/ares_strcasecmp.h} +0 -0
- data/third_party/cares/cares/{ares_strdup.c → src/lib/ares_strdup.c} +0 -0
- data/third_party/cares/cares/{ares_strdup.h → src/lib/ares_strdup.h} +0 -0
- data/third_party/cares/cares/{ares_strerror.c → src/lib/ares_strerror.c} +0 -0
- data/third_party/cares/cares/{ares_strsplit.c → src/lib/ares_strsplit.c} +4 -0
- data/third_party/cares/cares/{ares_strsplit.h → src/lib/ares_strsplit.h} +0 -0
- data/third_party/cares/cares/{ares_timeout.c → src/lib/ares_timeout.c} +0 -0
- data/third_party/cares/cares/{ares_version.c → src/lib/ares_version.c} +0 -0
- data/third_party/cares/cares/{ares_writev.c → src/lib/ares_writev.c} +0 -0
- data/third_party/cares/cares/src/lib/ares_writev.h +36 -0
- data/third_party/cares/cares/{bitncmp.c → src/lib/bitncmp.c} +0 -0
- data/third_party/cares/cares/{bitncmp.h → src/lib/bitncmp.h} +0 -0
- data/third_party/cares/cares/src/lib/config-dos.h +115 -0
- data/third_party/cares/cares/{config-win32.h → src/lib/config-win32.h} +0 -0
- data/third_party/cares/cares/{inet_net_pton.c → src/lib/inet_net_pton.c} +2 -8
- data/third_party/cares/cares/{inet_ntop.c → src/lib/inet_ntop.c} +2 -8
- data/third_party/cares/cares/{setup_once.h → src/lib/setup_once.h} +0 -0
- data/third_party/cares/cares/{windows_port.c → src/lib/windows_port.c} +0 -0
- data/third_party/re2/re2/compile.cc +91 -109
- data/third_party/re2/re2/dfa.cc +27 -39
- data/third_party/re2/re2/filtered_re2.cc +18 -2
- data/third_party/re2/re2/filtered_re2.h +10 -5
- data/third_party/re2/re2/nfa.cc +1 -1
- data/third_party/re2/re2/parse.cc +42 -23
- data/third_party/re2/re2/perl_groups.cc +34 -34
- data/third_party/re2/re2/prefilter.cc +3 -2
- data/third_party/re2/re2/prog.cc +182 -4
- data/third_party/re2/re2/prog.h +28 -9
- data/third_party/re2/re2/re2.cc +87 -118
- data/third_party/re2/re2/re2.h +156 -141
- data/third_party/re2/re2/regexp.cc +12 -5
- data/third_party/re2/re2/regexp.h +8 -2
- data/third_party/re2/re2/set.cc +31 -9
- data/third_party/re2/re2/set.h +9 -4
- data/third_party/re2/re2/simplify.cc +11 -3
- data/third_party/re2/re2/tostring.cc +1 -1
- data/third_party/re2/re2/walker-inl.h +1 -1
- data/third_party/re2/util/mutex.h +2 -2
- data/third_party/re2/util/pcre.h +3 -3
- data/third_party/upb/third_party/utf8_range/naive.c +92 -0
- data/third_party/upb/third_party/utf8_range/range2-neon.c +157 -0
- data/third_party/upb/third_party/utf8_range/range2-sse.c +170 -0
- data/third_party/upb/third_party/utf8_range/utf8_range.h +9 -0
- data/third_party/upb/upb/decode.c +758 -351
- data/third_party/upb/upb/decode.h +66 -12
- data/third_party/upb/upb/decode_fast.c +596 -581
- data/third_party/upb/upb/decode_fast.h +40 -13
- data/third_party/upb/upb/decode_internal.h +211 -0
- data/third_party/upb/upb/def.c +2089 -1069
- data/third_party/upb/upb/def.h +341 -256
- data/third_party/upb/upb/def.hpp +160 -161
- data/third_party/upb/upb/encode.c +285 -165
- data/third_party/upb/upb/encode.h +38 -13
- data/third_party/upb/upb/msg.c +276 -102
- data/third_party/upb/upb/msg.h +84 -582
- data/third_party/upb/upb/msg_internal.h +818 -0
- data/third_party/upb/upb/port_def.inc +85 -24
- data/third_party/upb/upb/port_undef.inc +38 -1
- data/third_party/upb/upb/reflection.c +312 -240
- data/third_party/upb/upb/reflection.h +119 -67
- data/third_party/upb/upb/reflection.hpp +37 -0
- data/third_party/upb/upb/table.c +398 -193
- data/third_party/upb/upb/table_internal.h +383 -0
- data/third_party/upb/upb/text_encode.c +141 -90
- data/third_party/upb/upb/text_encode.h +31 -5
- data/third_party/upb/upb/upb.c +164 -66
- data/third_party/upb/upb/upb.h +145 -139
- data/third_party/upb/upb/upb.hpp +50 -23
- data/third_party/upb/upb/upb_internal.h +68 -0
- data/third_party/xxhash/xxhash.h +679 -542
- metadata +597 -254
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +0 -44
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +0 -84
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_libuv.cc +0 -179
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_libuv.cc +0 -38
- data/src/core/ext/filters/client_channel/resolver_registry.cc +0 -197
- data/src/core/ext/filters/client_channel/resolver_registry.h +0 -89
- data/src/core/ext/filters/client_channel/service_config_parser.h +0 -92
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +0 -210
- data/src/core/ext/filters/workarounds/workaround_utils.cc +0 -53
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -39
- data/src/core/ext/transport/chttp2/client/authority.cc +0 -42
- data/src/core/ext/transport/chttp2/client/authority.h +0 -36
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +0 -125
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +0 -90
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +0 -213
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +0 -55
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +0 -76
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +0 -130
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +0 -37
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +0 -242
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +0 -148
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +0 -66
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +0 -58
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/cluster/v3/cds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/endpoint/v3/eds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/listener/v3/lds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h +0 -56
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c +0 -27
- data/src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h +0 -56
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c +0 -58
- data/src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h +0 -124
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +0 -33
- data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +0 -77
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/cluster/v3/cds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.c +0 -73
- data/src/core/ext/upbdefs-generated/envoy/service/endpoint/v3/eds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.c +0 -72
- data/src/core/ext/upbdefs-generated/envoy/service/listener/v3/lds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.c +0 -80
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c +0 -74
- data/src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h +0 -35
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +0 -44
- data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +0 -35
- data/src/core/lib/avl/avl.cc +0 -306
- data/src/core/lib/compression/algorithm_metadata.h +0 -61
- data/src/core/lib/compression/compression_args.cc +0 -135
- data/src/core/lib/compression/compression_args.h +0 -56
- data/src/core/lib/compression/stream_compression.cc +0 -80
- data/src/core/lib/compression/stream_compression.h +0 -116
- data/src/core/lib/compression/stream_compression_gzip.cc +0 -230
- data/src/core/lib/compression/stream_compression_gzip.h +0 -28
- data/src/core/lib/compression/stream_compression_identity.cc +0 -90
- data/src/core/lib/compression/stream_compression_identity.h +0 -29
- data/src/core/lib/gpr/arena.h +0 -47
- data/src/core/lib/gpr/tls_gcc.h +0 -52
- data/src/core/lib/gpr/tls_msvc.h +0 -54
- data/src/core/lib/gpr/tls_pthread.h +0 -56
- data/src/core/lib/gpr/tls_stdcpp.h +0 -48
- data/src/core/lib/gprpp/atomic.h +0 -104
- data/src/core/lib/iomgr/endpoint_pair_uv.cc +0 -40
- data/src/core/lib/iomgr/iomgr_custom.cc +0 -79
- data/src/core/lib/iomgr/iomgr_custom.h +0 -49
- data/src/core/lib/iomgr/iomgr_uv.cc +0 -43
- data/src/core/lib/iomgr/poller/eventmanager_libuv.cc +0 -88
- data/src/core/lib/iomgr/poller/eventmanager_libuv.h +0 -88
- data/src/core/lib/iomgr/pollset_custom.cc +0 -106
- data/src/core/lib/iomgr/pollset_custom.h +0 -35
- data/src/core/lib/iomgr/pollset_set_custom.cc +0 -48
- data/src/core/lib/iomgr/pollset_set_custom.h +0 -26
- data/src/core/lib/iomgr/pollset_uv.cc +0 -93
- data/src/core/lib/iomgr/pollset_uv.h +0 -32
- data/src/core/lib/iomgr/resolve_address_custom.cc +0 -168
- data/src/core/lib/iomgr/resolve_address_custom.h +0 -45
- data/src/core/lib/iomgr/resource_quota.cc +0 -1016
- data/src/core/lib/iomgr/resource_quota.h +0 -177
- data/src/core/lib/iomgr/sockaddr_custom.h +0 -54
- data/src/core/lib/iomgr/tcp_client_custom.cc +0 -161
- data/src/core/lib/iomgr/tcp_custom.cc +0 -391
- data/src/core/lib/iomgr/tcp_custom.h +0 -84
- data/src/core/lib/iomgr/tcp_server_custom.cc +0 -483
- data/src/core/lib/iomgr/tcp_uv.cc +0 -419
- data/src/core/lib/iomgr/timer_custom.cc +0 -95
- data/src/core/lib/iomgr/timer_custom.h +0 -43
- data/src/core/lib/iomgr/timer_uv.cc +0 -66
- data/src/core/lib/iomgr/udp_server.cc +0 -747
- data/src/core/lib/iomgr/udp_server.h +0 -103
- data/src/core/lib/security/credentials/credentials_metadata.cc +0 -62
- data/src/core/lib/slice/slice_intern.cc +0 -373
- data/src/core/lib/slice/slice_utils.h +0 -200
- data/src/core/lib/surface/init_secure.cc +0 -81
- data/src/core/lib/transport/metadata.cc +0 -693
- data/src/core/lib/transport/metadata.h +0 -446
- data/src/core/lib/transport/metadata_batch.cc +0 -419
- data/src/core/lib/transport/static_metadata.cc +0 -1249
- data/src/core/lib/transport/static_metadata.h +0 -604
- data/src/core/lib/transport/status_metadata.cc +0 -62
- data/src/core/lib/transport/status_metadata.h +0 -48
- data/third_party/abseil-cpp/absl/base/internal/bits.h +0 -219
- data/third_party/abseil-cpp/absl/synchronization/internal/mutex_nonprod.inc +0 -249
- data/third_party/boringssl-with-bazel/src/crypto/asn1/f_enum.c +0 -93
- data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/is_fips.c +0 -29
- data/third_party/boringssl-with-bazel/src/crypto/hpke/internal.h +0 -246
- data/third_party/boringssl-with-bazel/src/crypto/x509/vpm_int.h +0 -71
- data/third_party/boringssl-with-bazel/src/crypto/x509v3/pcy_int.h +0 -217
- data/third_party/cares/cares/ares_getopt.c +0 -122
- data/third_party/cares/cares/ares_getopt.h +0 -53
- data/third_party/cares/cares/ares_parse_a_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_aaaa_reply.c +0 -264
- data/third_party/cares/cares/ares_parse_soa_reply.c +0 -133
- data/third_party/upb/third_party/wyhash/wyhash.h +0 -145
- data/third_party/upb/upb/decode.int.h +0 -163
- data/third_party/upb/upb/table.int.h +0 -475
- data/third_party/upb/upb/upb.int.h +0 -29
data/third_party/xxhash/xxhash.h
CHANGED
@@ -121,29 +121,80 @@ extern "C" {
|
|
121
121
|
|
122
122
|
/*
|
123
123
|
* This part deals with the special case where a unit wants to inline xxHash,
|
124
|
-
* but "xxhash.h" has previously been included without XXH_INLINE_ALL,
|
125
|
-
* as part of some previously included *.h header file.
|
124
|
+
* but "xxhash.h" has previously been included without XXH_INLINE_ALL,
|
125
|
+
* such as part of some previously included *.h header file.
|
126
126
|
* Without further action, the new include would just be ignored,
|
127
127
|
* and functions would effectively _not_ be inlined (silent failure).
|
128
128
|
* The following macros solve this situation by prefixing all inlined names,
|
129
129
|
* avoiding naming collision with previous inclusions.
|
130
130
|
*/
|
131
|
-
#
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
#
|
131
|
+
/* Before that, we unconditionally #undef all symbols,
|
132
|
+
* in case they were already defined with XXH_NAMESPACE.
|
133
|
+
* They will then be redefined for XXH_INLINE_ALL
|
134
|
+
*/
|
135
|
+
# undef XXH_versionNumber
|
136
|
+
/* XXH32 */
|
137
|
+
# undef XXH32
|
138
|
+
# undef XXH32_createState
|
139
|
+
# undef XXH32_freeState
|
140
|
+
# undef XXH32_reset
|
141
|
+
# undef XXH32_update
|
142
|
+
# undef XXH32_digest
|
143
|
+
# undef XXH32_copyState
|
144
|
+
# undef XXH32_canonicalFromHash
|
145
|
+
# undef XXH32_hashFromCanonical
|
146
|
+
/* XXH64 */
|
147
|
+
# undef XXH64
|
148
|
+
# undef XXH64_createState
|
149
|
+
# undef XXH64_freeState
|
150
|
+
# undef XXH64_reset
|
151
|
+
# undef XXH64_update
|
152
|
+
# undef XXH64_digest
|
153
|
+
# undef XXH64_copyState
|
154
|
+
# undef XXH64_canonicalFromHash
|
155
|
+
# undef XXH64_hashFromCanonical
|
156
|
+
/* XXH3_64bits */
|
157
|
+
# undef XXH3_64bits
|
158
|
+
# undef XXH3_64bits_withSecret
|
159
|
+
# undef XXH3_64bits_withSeed
|
160
|
+
# undef XXH3_64bits_withSecretandSeed
|
161
|
+
# undef XXH3_createState
|
162
|
+
# undef XXH3_freeState
|
163
|
+
# undef XXH3_copyState
|
164
|
+
# undef XXH3_64bits_reset
|
165
|
+
# undef XXH3_64bits_reset_withSeed
|
166
|
+
# undef XXH3_64bits_reset_withSecret
|
167
|
+
# undef XXH3_64bits_update
|
168
|
+
# undef XXH3_64bits_digest
|
169
|
+
# undef XXH3_generateSecret
|
170
|
+
/* XXH3_128bits */
|
171
|
+
# undef XXH128
|
172
|
+
# undef XXH3_128bits
|
173
|
+
# undef XXH3_128bits_withSeed
|
174
|
+
# undef XXH3_128bits_withSecret
|
175
|
+
# undef XXH3_128bits_reset
|
176
|
+
# undef XXH3_128bits_reset_withSeed
|
177
|
+
# undef XXH3_128bits_reset_withSecret
|
178
|
+
# undef XXH3_128bits_reset_withSecretandSeed
|
179
|
+
# undef XXH3_128bits_update
|
180
|
+
# undef XXH3_128bits_digest
|
181
|
+
# undef XXH128_isEqual
|
182
|
+
# undef XXH128_cmp
|
183
|
+
# undef XXH128_canonicalFromHash
|
184
|
+
# undef XXH128_hashFromCanonical
|
185
|
+
/* Finally, free the namespace itself */
|
186
|
+
# undef XXH_NAMESPACE
|
187
|
+
|
188
|
+
/* employ the namespace for XXH_INLINE_ALL */
|
138
189
|
# define XXH_NAMESPACE XXH_INLINE_
|
139
190
|
/*
|
140
|
-
* Some identifiers (enums, type names) are not symbols,
|
141
|
-
*
|
191
|
+
* Some identifiers (enums, type names) are not symbols,
|
192
|
+
* but they must nonetheless be renamed to avoid redeclaration.
|
142
193
|
* Alternative solution: do not redeclare them.
|
143
|
-
* However, this requires some #ifdefs, and
|
144
|
-
* Meanwhile, renaming can be achieved in a single
|
194
|
+
* However, this requires some #ifdefs, and has a more dispersed impact.
|
195
|
+
* Meanwhile, renaming can be achieved in a single place.
|
145
196
|
*/
|
146
|
-
# define XXH_IPREF(Id)
|
197
|
+
# define XXH_IPREF(Id) XXH_NAMESPACE ## Id
|
147
198
|
# define XXH_OK XXH_IPREF(XXH_OK)
|
148
199
|
# define XXH_ERROR XXH_IPREF(XXH_ERROR)
|
149
200
|
# define XXH_errorcode XXH_IPREF(XXH_errorcode)
|
@@ -235,23 +286,28 @@ extern "C" {
|
|
235
286
|
# define XXH3_64bits XXH_NAME2(XXH_NAMESPACE, XXH3_64bits)
|
236
287
|
# define XXH3_64bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecret)
|
237
288
|
# define XXH3_64bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSeed)
|
289
|
+
# define XXH3_64bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_withSecretandSeed)
|
238
290
|
# define XXH3_createState XXH_NAME2(XXH_NAMESPACE, XXH3_createState)
|
239
291
|
# define XXH3_freeState XXH_NAME2(XXH_NAMESPACE, XXH3_freeState)
|
240
292
|
# define XXH3_copyState XXH_NAME2(XXH_NAMESPACE, XXH3_copyState)
|
241
293
|
# define XXH3_64bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset)
|
242
294
|
# define XXH3_64bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSeed)
|
243
295
|
# define XXH3_64bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecret)
|
296
|
+
# define XXH3_64bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_reset_withSecretandSeed)
|
244
297
|
# define XXH3_64bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_update)
|
245
298
|
# define XXH3_64bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_64bits_digest)
|
246
299
|
# define XXH3_generateSecret XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret)
|
300
|
+
# define XXH3_generateSecret_fromSeed XXH_NAME2(XXH_NAMESPACE, XXH3_generateSecret_fromSeed)
|
247
301
|
/* XXH3_128bits */
|
248
302
|
# define XXH128 XXH_NAME2(XXH_NAMESPACE, XXH128)
|
249
303
|
# define XXH3_128bits XXH_NAME2(XXH_NAMESPACE, XXH3_128bits)
|
250
304
|
# define XXH3_128bits_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSeed)
|
251
305
|
# define XXH3_128bits_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecret)
|
306
|
+
# define XXH3_128bits_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_withSecretandSeed)
|
252
307
|
# define XXH3_128bits_reset XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset)
|
253
308
|
# define XXH3_128bits_reset_withSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSeed)
|
254
309
|
# define XXH3_128bits_reset_withSecret XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecret)
|
310
|
+
# define XXH3_128bits_reset_withSecretandSeed XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_reset_withSecretandSeed)
|
255
311
|
# define XXH3_128bits_update XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_update)
|
256
312
|
# define XXH3_128bits_digest XXH_NAME2(XXH_NAMESPACE, XXH3_128bits_digest)
|
257
313
|
# define XXH128_isEqual XXH_NAME2(XXH_NAMESPACE, XXH128_isEqual)
|
@@ -266,22 +322,22 @@ extern "C" {
|
|
266
322
|
***************************************/
|
267
323
|
#define XXH_VERSION_MAJOR 0
|
268
324
|
#define XXH_VERSION_MINOR 8
|
269
|
-
#define XXH_VERSION_RELEASE
|
325
|
+
#define XXH_VERSION_RELEASE 1
|
270
326
|
#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
|
271
327
|
|
272
328
|
/*!
|
273
329
|
* @brief Obtains the xxHash version.
|
274
330
|
*
|
275
|
-
* This is
|
276
|
-
*
|
331
|
+
* This is mostly useful when xxHash is compiled as a shared library,
|
332
|
+
* since the returned value comes from the library, as opposed to header file.
|
277
333
|
*
|
278
|
-
* @return `XXH_VERSION_NUMBER`
|
334
|
+
* @return `XXH_VERSION_NUMBER` of the invoked library.
|
279
335
|
*/
|
280
336
|
XXH_PUBLIC_API unsigned XXH_versionNumber (void);
|
281
337
|
|
282
338
|
|
283
339
|
/* ****************************
|
284
|
-
*
|
340
|
+
* Common basic types
|
285
341
|
******************************/
|
286
342
|
#include <stddef.h> /* size_t */
|
287
343
|
typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
|
@@ -297,11 +353,13 @@ typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
|
|
297
353
|
* Not necessarily defined to `uint32_t` but functionally equivalent.
|
298
354
|
*/
|
299
355
|
typedef uint32_t XXH32_hash_t;
|
356
|
+
|
300
357
|
#elif !defined (__VMS) \
|
301
358
|
&& (defined (__cplusplus) \
|
302
359
|
|| (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
|
303
360
|
# include <stdint.h>
|
304
361
|
typedef uint32_t XXH32_hash_t;
|
362
|
+
|
305
363
|
#else
|
306
364
|
# include <limits.h>
|
307
365
|
# if UINT_MAX == 0xFFFFFFFFUL
|
@@ -323,10 +381,9 @@ typedef uint32_t XXH32_hash_t;
|
|
323
381
|
* Contains functions used in the classic 32-bit xxHash algorithm.
|
324
382
|
*
|
325
383
|
* @note
|
326
|
-
* XXH32 is
|
327
|
-
*
|
328
|
-
* systems, and offers true 64/128 bit hash results.
|
329
|
-
* level of dispersion, and greatly reduces the risks of collisions.
|
384
|
+
* XXH32 is useful for older platforms, with no or poor 64-bit performance.
|
385
|
+
* Note that @ref xxh3_family provides competitive speed
|
386
|
+
* for both 32-bit and 64-bit systems, and offers true 64/128 bit hash results.
|
330
387
|
*
|
331
388
|
* @see @ref xxh64_family, @ref xxh3_family : Other xxHash families
|
332
389
|
* @see @ref xxh32_impl for implementation details
|
@@ -543,6 +600,41 @@ XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t
|
|
543
600
|
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src);
|
544
601
|
|
545
602
|
|
603
|
+
#ifdef __has_attribute
|
604
|
+
# define XXH_HAS_ATTRIBUTE(x) __has_attribute(x)
|
605
|
+
#else
|
606
|
+
# define XXH_HAS_ATTRIBUTE(x) 0
|
607
|
+
#endif
|
608
|
+
|
609
|
+
/* C-language Attributes are added in C23. */
|
610
|
+
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201710L) && defined(__has_c_attribute)
|
611
|
+
# define XXH_HAS_C_ATTRIBUTE(x) __has_c_attribute(x)
|
612
|
+
#else
|
613
|
+
# define XXH_HAS_C_ATTRIBUTE(x) 0
|
614
|
+
#endif
|
615
|
+
|
616
|
+
#if defined(__cplusplus) && defined(__has_cpp_attribute)
|
617
|
+
# define XXH_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x)
|
618
|
+
#else
|
619
|
+
# define XXH_HAS_CPP_ATTRIBUTE(x) 0
|
620
|
+
#endif
|
621
|
+
|
622
|
+
/*
|
623
|
+
Define XXH_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute
|
624
|
+
introduced in CPP17 and C23.
|
625
|
+
CPP17 : https://en.cppreference.com/w/cpp/language/attributes/fallthrough
|
626
|
+
C23 : https://en.cppreference.com/w/c/language/attributes/fallthrough
|
627
|
+
*/
|
628
|
+
#if XXH_HAS_C_ATTRIBUTE(x)
|
629
|
+
# define XXH_FALLTHROUGH [[fallthrough]]
|
630
|
+
#elif XXH_HAS_CPP_ATTRIBUTE(x)
|
631
|
+
# define XXH_FALLTHROUGH [[fallthrough]]
|
632
|
+
#elif XXH_HAS_ATTRIBUTE(__fallthrough__)
|
633
|
+
# define XXH_FALLTHROUGH __attribute__ ((fallthrough))
|
634
|
+
#else
|
635
|
+
# define XXH_FALLTHROUGH
|
636
|
+
#endif
|
637
|
+
|
546
638
|
/*!
|
547
639
|
* @}
|
548
640
|
* @ingroup public
|
@@ -586,8 +678,8 @@ typedef uint64_t XXH64_hash_t;
|
|
586
678
|
*
|
587
679
|
* @note
|
588
680
|
* XXH3 provides competitive speed for both 32-bit and 64-bit systems,
|
589
|
-
* and offers true 64/128 bit hash results.
|
590
|
-
*
|
681
|
+
* and offers true 64/128 bit hash results.
|
682
|
+
* It provides better speed for systems with vector processing capabilities.
|
591
683
|
*/
|
592
684
|
|
593
685
|
|
@@ -713,13 +805,17 @@ XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSeed(const void* data, size_t len, X
|
|
713
805
|
* It's possible to provide any blob of bytes as a "secret" to generate the hash.
|
714
806
|
* This makes it more difficult for an external actor to prepare an intentional collision.
|
715
807
|
* The main condition is that secretSize *must* be large enough (>= XXH3_SECRET_SIZE_MIN).
|
716
|
-
* However, the quality of
|
717
|
-
*
|
808
|
+
* However, the quality of the secret impacts the dispersion of the hash algorithm.
|
809
|
+
* Therefore, the secret _must_ look like a bunch of random bytes.
|
718
810
|
* Avoid "trivial" or structured data such as repeated sequences or a text document.
|
719
|
-
* Whenever
|
720
|
-
* consider
|
721
|
-
*
|
722
|
-
*
|
811
|
+
* Whenever in doubt about the "randomness" of the blob of bytes,
|
812
|
+
* consider employing "XXH3_generateSecret()" instead (see below).
|
813
|
+
* It will generate a proper high entropy secret derived from the blob of bytes.
|
814
|
+
* Another advantage of using XXH3_generateSecret() is that
|
815
|
+
* it guarantees that all bits within the initial blob of bytes
|
816
|
+
* will impact every bit of the output.
|
817
|
+
* This is not necessarily the case when using the blob of bytes directly
|
818
|
+
* because, when hashing _small_ inputs, only a portion of the secret is employed.
|
723
819
|
*/
|
724
820
|
XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSecret(const void* data, size_t len, const void* secret, size_t secretSize);
|
725
821
|
|
@@ -879,10 +975,7 @@ XXH_PUBLIC_API XXH128_hash_t XXH128_hashFromCanonical(const XXH128_canonical_t*
|
|
879
975
|
struct XXH32_state_s {
|
880
976
|
XXH32_hash_t total_len_32; /*!< Total length hashed, modulo 2^32 */
|
881
977
|
XXH32_hash_t large_len; /*!< Whether the hash is >= 16 (handles @ref total_len_32 overflow) */
|
882
|
-
XXH32_hash_t
|
883
|
-
XXH32_hash_t v2; /*!< Second accumulator lane */
|
884
|
-
XXH32_hash_t v3; /*!< Third accumulator lane */
|
885
|
-
XXH32_hash_t v4; /*!< Fourth accumulator lane */
|
978
|
+
XXH32_hash_t v[4]; /*!< Accumulator lanes */
|
886
979
|
XXH32_hash_t mem32[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[16]. */
|
887
980
|
XXH32_hash_t memsize; /*!< Amount of data in @ref mem32 */
|
888
981
|
XXH32_hash_t reserved; /*!< Reserved field. Do not read or write to it, it may be removed. */
|
@@ -905,19 +998,19 @@ struct XXH32_state_s {
|
|
905
998
|
*/
|
906
999
|
struct XXH64_state_s {
|
907
1000
|
XXH64_hash_t total_len; /*!< Total length hashed. This is always 64-bit. */
|
908
|
-
XXH64_hash_t
|
909
|
-
XXH64_hash_t v2; /*!< Second accumulator lane */
|
910
|
-
XXH64_hash_t v3; /*!< Third accumulator lane */
|
911
|
-
XXH64_hash_t v4; /*!< Fourth accumulator lane */
|
1001
|
+
XXH64_hash_t v[4]; /*!< Accumulator lanes */
|
912
1002
|
XXH64_hash_t mem64[4]; /*!< Internal buffer for partial reads. Treated as unsigned char[32]. */
|
913
1003
|
XXH32_hash_t memsize; /*!< Amount of data in @ref mem64 */
|
914
1004
|
XXH32_hash_t reserved32; /*!< Reserved field, needed for padding anyways*/
|
915
1005
|
XXH64_hash_t reserved64; /*!< Reserved field. Do not read or write to it, it may be removed. */
|
916
1006
|
}; /* typedef'd to XXH64_state_t */
|
917
1007
|
|
918
|
-
#if defined
|
1008
|
+
#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* >= C11 */
|
919
1009
|
# include <stdalign.h>
|
920
1010
|
# define XXH_ALIGN(n) alignas(n)
|
1011
|
+
#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */
|
1012
|
+
/* In C++ alignas() is a keyword */
|
1013
|
+
# define XXH_ALIGN(n) alignas(n)
|
921
1014
|
#elif defined(__GNUC__)
|
922
1015
|
# define XXH_ALIGN(n) __attribute__ ((aligned(n)))
|
923
1016
|
#elif defined(_MSC_VER)
|
@@ -928,6 +1021,7 @@ struct XXH64_state_s {
|
|
928
1021
|
|
929
1022
|
/* Old GCC versions only accept the attribute after the type in structures. */
|
930
1023
|
#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) /* C11+ */ \
|
1024
|
+
&& ! (defined(__cplusplus) && (__cplusplus >= 201103L)) /* >= C++11 */ \
|
931
1025
|
&& defined(__GNUC__)
|
932
1026
|
# define XXH_ALIGN_MEMBER(align, type) type XXH_ALIGN(align)
|
933
1027
|
#else
|
@@ -957,16 +1051,18 @@ struct XXH64_state_s {
|
|
957
1051
|
* @brief Structure for XXH3 streaming API.
|
958
1052
|
*
|
959
1053
|
* @note This is only defined when @ref XXH_STATIC_LINKING_ONLY,
|
960
|
-
* @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined.
|
961
|
-
* an opaque type.
|
1054
|
+
* @ref XXH_INLINE_ALL, or @ref XXH_IMPLEMENTATION is defined.
|
1055
|
+
* Otherwise it is an opaque type.
|
1056
|
+
* Never use this definition in combination with dynamic library.
|
1057
|
+
* This allows fields to safely be changed in the future.
|
962
1058
|
*
|
963
|
-
* @note **This structure has a strict alignment requirement of 64 bytes
|
964
|
-
* not allocate this with `malloc()` or `new`,
|
965
|
-
*
|
966
|
-
* allocation.
|
1059
|
+
* @note ** This structure has a strict alignment requirement of 64 bytes!! **
|
1060
|
+
* Do not allocate this with `malloc()` or `new`,
|
1061
|
+
* it will not be sufficiently aligned.
|
1062
|
+
* Use @ref XXH3_createState() and @ref XXH3_freeState(), or stack allocation.
|
967
1063
|
*
|
968
1064
|
* Typedef'd to @ref XXH3_state_t.
|
969
|
-
* Do
|
1065
|
+
* Do never access the members of this struct directly.
|
970
1066
|
*
|
971
1067
|
* @see XXH3_INITSTATE() for stack initialization.
|
972
1068
|
* @see XXH3_createState(), XXH3_freeState().
|
@@ -981,7 +1077,7 @@ struct XXH3_state_s {
|
|
981
1077
|
/*!< The internal buffer. @see XXH32_state_s::mem32 */
|
982
1078
|
XXH32_hash_t bufferedSize;
|
983
1079
|
/*!< The amount of memory in @ref buffer, @see XXH32_state_s::memsize */
|
984
|
-
XXH32_hash_t
|
1080
|
+
XXH32_hash_t useSeed;
|
985
1081
|
/*!< Reserved field. Needed for padding on 64-bit. */
|
986
1082
|
size_t nbStripesSoFar;
|
987
1083
|
/*!< Number or stripes processed. */
|
@@ -1017,6 +1113,12 @@ struct XXH3_state_s {
|
|
1017
1113
|
#define XXH3_INITSTATE(XXH3_state_ptr) { (XXH3_state_ptr)->seed = 0; }
|
1018
1114
|
|
1019
1115
|
|
1116
|
+
/* XXH128() :
|
1117
|
+
* simple alias to pre-selected XXH3_128bits variant
|
1118
|
+
*/
|
1119
|
+
XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t seed);
|
1120
|
+
|
1121
|
+
|
1020
1122
|
/* === Experimental API === */
|
1021
1123
|
/* Symbols defined below must be considered tied to a specific library version. */
|
1022
1124
|
|
@@ -1029,31 +1131,89 @@ struct XXH3_state_s {
|
|
1029
1131
|
* as it becomes much more difficult for an external actor to guess how to impact the calculation logic.
|
1030
1132
|
*
|
1031
1133
|
* The function accepts as input a custom seed of any length and any content,
|
1032
|
-
* and derives from it a high-entropy secret of length
|
1033
|
-
* into an already allocated buffer secretBuffer.
|
1034
|
-
*
|
1134
|
+
* and derives from it a high-entropy secret of length @secretSize
|
1135
|
+
* into an already allocated buffer @secretBuffer.
|
1136
|
+
* @secretSize must be >= XXH3_SECRET_SIZE_MIN
|
1035
1137
|
*
|
1036
1138
|
* The generated secret can then be used with any `*_withSecret()` variant.
|
1037
1139
|
* Functions `XXH3_128bits_withSecret()`, `XXH3_64bits_withSecret()`,
|
1038
1140
|
* `XXH3_128bits_reset_withSecret()` and `XXH3_64bits_reset_withSecret()`
|
1039
1141
|
* are part of this list. They all accept a `secret` parameter
|
1040
|
-
* which must be
|
1142
|
+
* which must be large enough for implementation reasons (>= XXH3_SECRET_SIZE_MIN)
|
1041
1143
|
* _and_ feature very high entropy (consist of random-looking bytes).
|
1042
1144
|
* These conditions can be a high bar to meet, so
|
1043
|
-
*
|
1145
|
+
* XXH3_generateSecret() can be employed to ensure proper quality.
|
1044
1146
|
*
|
1045
1147
|
* customSeed can be anything. It can have any size, even small ones,
|
1046
|
-
* and its content can be anything, even
|
1047
|
-
* The resulting `secret` will nonetheless provide all
|
1148
|
+
* and its content can be anything, even "poor entropy" sources such as a bunch of zeroes.
|
1149
|
+
* The resulting `secret` will nonetheless provide all required qualities.
|
1048
1150
|
*
|
1049
|
-
* Supplying NULL as the customSeed copies the default secret into `secretBuffer`.
|
1050
1151
|
* When customSeedSize > 0, supplying NULL as customSeed is undefined behavior.
|
1051
1152
|
*/
|
1052
|
-
XXH_PUBLIC_API
|
1153
|
+
XXH_PUBLIC_API XXH_errorcode XXH3_generateSecret(void* secretBuffer, size_t secretSize, const void* customSeed, size_t customSeedSize);
|
1053
1154
|
|
1054
1155
|
|
1055
|
-
/*
|
1056
|
-
|
1156
|
+
/*
|
1157
|
+
* XXH3_generateSecret_fromSeed():
|
1158
|
+
*
|
1159
|
+
* Generate the same secret as the _withSeed() variants.
|
1160
|
+
*
|
1161
|
+
* The resulting secret has a length of XXH3_SECRET_DEFAULT_SIZE (necessarily).
|
1162
|
+
* @secretBuffer must be already allocated, of size at least XXH3_SECRET_DEFAULT_SIZE bytes.
|
1163
|
+
*
|
1164
|
+
* The generated secret can be used in combination with
|
1165
|
+
*`*_withSecret()` and `_withSecretandSeed()` variants.
|
1166
|
+
* This generator is notably useful in combination with `_withSecretandSeed()`,
|
1167
|
+
* as a way to emulate a faster `_withSeed()` variant.
|
1168
|
+
*/
|
1169
|
+
XXH_PUBLIC_API void XXH3_generateSecret_fromSeed(void* secretBuffer, XXH64_hash_t seed);
|
1170
|
+
|
1171
|
+
/*
|
1172
|
+
* *_withSecretandSeed() :
|
1173
|
+
* These variants generate hash values using either
|
1174
|
+
* @seed for "short" keys (< XXH3_MIDSIZE_MAX = 240 bytes)
|
1175
|
+
* or @secret for "large" keys (>= XXH3_MIDSIZE_MAX).
|
1176
|
+
*
|
1177
|
+
* This generally benefits speed, compared to `_withSeed()` or `_withSecret()`.
|
1178
|
+
* `_withSeed()` has to generate the secret on the fly for "large" keys.
|
1179
|
+
* It's fast, but can be perceptible for "not so large" keys (< 1 KB).
|
1180
|
+
* `_withSecret()` has to generate the masks on the fly for "small" keys,
|
1181
|
+
* which requires more instructions than _withSeed() variants.
|
1182
|
+
* Therefore, _withSecretandSeed variant combines the best of both worlds.
|
1183
|
+
*
|
1184
|
+
* When @secret has been generated by XXH3_generateSecret_fromSeed(),
|
1185
|
+
* this variant produces *exactly* the same results as `_withSeed()` variant,
|
1186
|
+
* hence offering only a pure speed benefit on "large" input,
|
1187
|
+
* by skipping the need to regenerate the secret for every large input.
|
1188
|
+
*
|
1189
|
+
* Another usage scenario is to hash the secret to a 64-bit hash value,
|
1190
|
+
* for example with XXH3_64bits(), which then becomes the seed,
|
1191
|
+
* and then employ both the seed and the secret in _withSecretandSeed().
|
1192
|
+
* On top of speed, an added benefit is that each bit in the secret
|
1193
|
+
* has a 50% chance to swap each bit in the output,
|
1194
|
+
* via its impact to the seed.
|
1195
|
+
* This is not guaranteed when using the secret directly in "small data" scenarios,
|
1196
|
+
* because only portions of the secret are employed for small data.
|
1197
|
+
*/
|
1198
|
+
XXH_PUBLIC_API XXH64_hash_t
|
1199
|
+
XXH3_64bits_withSecretandSeed(const void* data, size_t len,
|
1200
|
+
const void* secret, size_t secretSize,
|
1201
|
+
XXH64_hash_t seed);
|
1202
|
+
|
1203
|
+
XXH_PUBLIC_API XXH128_hash_t
|
1204
|
+
XXH3_128bits_withSecretandSeed(const void* data, size_t len,
|
1205
|
+
const void* secret, size_t secretSize,
|
1206
|
+
XXH64_hash_t seed64);
|
1207
|
+
|
1208
|
+
XXH_PUBLIC_API XXH_errorcode
|
1209
|
+
XXH3_64bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
|
1210
|
+
const void* secret, size_t secretSize,
|
1211
|
+
XXH64_hash_t seed64);
|
1212
|
+
|
1213
|
+
XXH_PUBLIC_API XXH_errorcode
|
1214
|
+
XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr,
|
1215
|
+
const void* secret, size_t secretSize,
|
1216
|
+
XXH64_hash_t seed64);
|
1057
1217
|
|
1058
1218
|
|
1059
1219
|
#endif /* XXH_NO_LONG_LONG */
|
@@ -1159,22 +1319,12 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s
|
|
1159
1319
|
* care, as what works on one compiler/platform/optimization level may cause
|
1160
1320
|
* another to read garbage data or even crash.
|
1161
1321
|
*
|
1162
|
-
* See
|
1322
|
+
* See http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html for details.
|
1163
1323
|
*
|
1164
1324
|
* Prefer these methods in priority order (0 > 3 > 1 > 2)
|
1165
1325
|
*/
|
1166
1326
|
# define XXH_FORCE_MEMORY_ACCESS 0
|
1167
|
-
|
1168
|
-
* @def XXH_ACCEPT_NULL_INPUT_POINTER
|
1169
|
-
* @brief Whether to add explicit `NULL` checks.
|
1170
|
-
*
|
1171
|
-
* If the input pointer is `NULL` and the length is non-zero, xxHash's default
|
1172
|
-
* behavior is to dereference it, triggering a segfault.
|
1173
|
-
*
|
1174
|
-
* When this macro is enabled, xxHash actively checks the input for a null pointer.
|
1175
|
-
* If it is, the result for null input pointers is the same as a zero-length input.
|
1176
|
-
*/
|
1177
|
-
# define XXH_ACCEPT_NULL_INPUT_POINTER 0
|
1327
|
+
|
1178
1328
|
/*!
|
1179
1329
|
* @def XXH_FORCE_ALIGN_CHECK
|
1180
1330
|
* @brief If defined to non-zero, adds a special path for aligned inputs (XXH32()
|
@@ -1226,18 +1376,16 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s
|
|
1226
1376
|
# define XXH_NO_INLINE_HINTS 0
|
1227
1377
|
|
1228
1378
|
/*!
|
1229
|
-
* @def
|
1230
|
-
* @brief Whether to
|
1231
|
-
*
|
1232
|
-
* For performance, `XXH32_finalize` and `XXH64_finalize` use an unrolled loop
|
1233
|
-
* in the form of a switch statement.
|
1379
|
+
* @def XXH32_ENDJMP
|
1380
|
+
* @brief Whether to use a jump for `XXH32_finalize`.
|
1234
1381
|
*
|
1235
|
-
*
|
1236
|
-
*
|
1382
|
+
* For performance, `XXH32_finalize` uses multiple branches in the finalizer.
|
1383
|
+
* This is generally preferable for performance,
|
1384
|
+
* but depending on exact architecture, a jmp may be preferable.
|
1237
1385
|
*
|
1238
|
-
* This is
|
1386
|
+
* This setting is only possibly making a difference for very small inputs.
|
1239
1387
|
*/
|
1240
|
-
# define
|
1388
|
+
# define XXH32_ENDJMP 0
|
1241
1389
|
|
1242
1390
|
/*!
|
1243
1391
|
* @internal
|
@@ -1254,18 +1402,25 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s
|
|
1254
1402
|
*/
|
1255
1403
|
|
1256
1404
|
#ifndef XXH_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */
|
1257
|
-
/* prefer __packed__ structures (method 1) for gcc on armv7 and
|
1258
|
-
# if !defined(__clang__) &&
|
1405
|
+
/* prefer __packed__ structures (method 1) for gcc on armv7+ and mips */
|
1406
|
+
# if !defined(__clang__) && \
|
1407
|
+
( \
|
1259
1408
|
(defined(__INTEL_COMPILER) && !defined(_WIN32)) || \
|
1260
|
-
(
|
1409
|
+
( \
|
1410
|
+
defined(__GNUC__) && ( \
|
1411
|
+
(defined(__ARM_ARCH) && __ARM_ARCH >= 7) || \
|
1412
|
+
( \
|
1413
|
+
defined(__mips__) && \
|
1414
|
+
(__mips <= 5 || __mips_isa_rev < 6) && \
|
1415
|
+
(!defined(__mips16) || defined(__mips_mips16e2)) \
|
1416
|
+
) \
|
1417
|
+
) \
|
1418
|
+
) \
|
1419
|
+
)
|
1261
1420
|
# define XXH_FORCE_MEMORY_ACCESS 1
|
1262
1421
|
# endif
|
1263
1422
|
#endif
|
1264
1423
|
|
1265
|
-
#ifndef XXH_ACCEPT_NULL_INPUT_POINTER /* can be defined externally */
|
1266
|
-
# define XXH_ACCEPT_NULL_INPUT_POINTER 0
|
1267
|
-
#endif
|
1268
|
-
|
1269
1424
|
#ifndef XXH_FORCE_ALIGN_CHECK /* can be defined externally */
|
1270
1425
|
# if defined(__i386) || defined(__x86_64__) || defined(__aarch64__) \
|
1271
1426
|
|| defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM64) /* visual */
|
@@ -1284,12 +1439,9 @@ XXH_PUBLIC_API XXH128_hash_t XXH128(const void* data, size_t len, XXH64_hash_t s
|
|
1284
1439
|
# endif
|
1285
1440
|
#endif
|
1286
1441
|
|
1287
|
-
#ifndef
|
1288
|
-
|
1289
|
-
#
|
1290
|
-
# else
|
1291
|
-
# define XXH_REROLL 0
|
1292
|
-
# endif
|
1442
|
+
#ifndef XXH32_ENDJMP
|
1443
|
+
/* generally preferable for performance */
|
1444
|
+
# define XXH32_ENDJMP 0
|
1293
1445
|
#endif
|
1294
1446
|
|
1295
1447
|
/*!
|
@@ -1341,19 +1493,19 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
|
|
1341
1493
|
#endif
|
1342
1494
|
|
1343
1495
|
#if XXH_NO_INLINE_HINTS /* disable inlining hints */
|
1344
|
-
# if defined(__GNUC__)
|
1496
|
+
# if defined(__GNUC__) || defined(__clang__)
|
1345
1497
|
# define XXH_FORCE_INLINE static __attribute__((unused))
|
1346
1498
|
# else
|
1347
1499
|
# define XXH_FORCE_INLINE static
|
1348
1500
|
# endif
|
1349
1501
|
# define XXH_NO_INLINE static
|
1350
1502
|
/* enable inlining hints */
|
1503
|
+
#elif defined(__GNUC__) || defined(__clang__)
|
1504
|
+
# define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused))
|
1505
|
+
# define XXH_NO_INLINE static __attribute__((noinline))
|
1351
1506
|
#elif defined(_MSC_VER) /* Visual Studio */
|
1352
1507
|
# define XXH_FORCE_INLINE static __forceinline
|
1353
1508
|
# define XXH_NO_INLINE static __declspec(noinline)
|
1354
|
-
#elif defined(__GNUC__)
|
1355
|
-
# define XXH_FORCE_INLINE static __inline__ __attribute__((always_inline, unused))
|
1356
|
-
# define XXH_NO_INLINE static __attribute__((noinline))
|
1357
1509
|
#elif defined (__cplusplus) \
|
1358
1510
|
|| (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) /* C99 */
|
1359
1511
|
# define XXH_FORCE_INLINE static inline
|
@@ -1392,8 +1544,39 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
|
|
1392
1544
|
#endif
|
1393
1545
|
|
1394
1546
|
/* note: use after variable declarations */
|
1395
|
-
#
|
1547
|
+
#ifndef XXH_STATIC_ASSERT
|
1548
|
+
# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) /* C11 */
|
1549
|
+
# include <assert.h>
|
1550
|
+
# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
|
1551
|
+
# elif defined(__cplusplus) && (__cplusplus >= 201103L) /* C++11 */
|
1552
|
+
# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { static_assert((c),m); } while(0)
|
1553
|
+
# else
|
1554
|
+
# define XXH_STATIC_ASSERT_WITH_MESSAGE(c,m) do { struct xxh_sa { char x[(c) ? 1 : -1]; }; } while(0)
|
1555
|
+
# endif
|
1556
|
+
# define XXH_STATIC_ASSERT(c) XXH_STATIC_ASSERT_WITH_MESSAGE((c),#c)
|
1557
|
+
#endif
|
1396
1558
|
|
1559
|
+
/*!
|
1560
|
+
* @internal
|
1561
|
+
* @def XXH_COMPILER_GUARD(var)
|
1562
|
+
* @brief Used to prevent unwanted optimizations for @p var.
|
1563
|
+
*
|
1564
|
+
* It uses an empty GCC inline assembly statement with a register constraint
|
1565
|
+
* which forces @p var into a general purpose register (eg eax, ebx, ecx
|
1566
|
+
* on x86) and marks it as modified.
|
1567
|
+
*
|
1568
|
+
* This is used in a few places to avoid unwanted autovectorization (e.g.
|
1569
|
+
* XXH32_round()). All vectorization we want is explicit via intrinsics,
|
1570
|
+
* and _usually_ isn't wanted elsewhere.
|
1571
|
+
*
|
1572
|
+
* We also use it to prevent unwanted constant folding for AArch64 in
|
1573
|
+
* XXH3_initCustomSecret_scalar().
|
1574
|
+
*/
|
1575
|
+
#if defined(__GNUC__) || defined(__clang__)
|
1576
|
+
# define XXH_COMPILER_GUARD(var) __asm__ __volatile__("" : "+r" (var))
|
1577
|
+
#else
|
1578
|
+
# define XXH_COMPILER_GUARD(var) ((void)0)
|
1579
|
+
#endif
|
1397
1580
|
|
1398
1581
|
/* *************************************
|
1399
1582
|
* Basic Types
|
@@ -1500,12 +1683,12 @@ static xxh_u32 XXH_read32(const void* ptr)
|
|
1500
1683
|
|
1501
1684
|
/*
|
1502
1685
|
* Portable and safe solution. Generally efficient.
|
1503
|
-
* see:
|
1686
|
+
* see: http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html
|
1504
1687
|
*/
|
1505
1688
|
static xxh_u32 XXH_read32(const void* memPtr)
|
1506
1689
|
{
|
1507
1690
|
xxh_u32 val;
|
1508
|
-
|
1691
|
+
XXH_memcpy(&val, memPtr, sizeof(val));
|
1509
1692
|
return val;
|
1510
1693
|
}
|
1511
1694
|
|
@@ -1513,7 +1696,6 @@ static xxh_u32 XXH_read32(const void* memPtr)
|
|
1513
1696
|
|
1514
1697
|
|
1515
1698
|
/* *** Endianness *** */
|
1516
|
-
typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess;
|
1517
1699
|
|
1518
1700
|
/*!
|
1519
1701
|
* @ingroup tuning
|
@@ -1523,8 +1705,8 @@ typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess;
|
|
1523
1705
|
* Defined to 1 if the target is little endian, or 0 if it is big endian.
|
1524
1706
|
* It can be defined externally, for example on the compiler command line.
|
1525
1707
|
*
|
1526
|
-
* If it is not defined,
|
1527
|
-
* is used instead.
|
1708
|
+
* If it is not defined,
|
1709
|
+
* a runtime check (which is usually constant folded) is used instead.
|
1528
1710
|
*
|
1529
1711
|
* @note
|
1530
1712
|
* This is not necessarily defined to an integer constant.
|
@@ -1703,11 +1885,12 @@ XXH_PUBLIC_API unsigned XXH_versionNumber (void) { return XXH_VERSION_NUMBER; }
|
|
1703
1885
|
* @ingroup impl
|
1704
1886
|
* @{
|
1705
1887
|
*/
|
1706
|
-
static const
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1888
|
+
/* #define instead of static const, to be used as initializers */
|
1889
|
+
#define XXH_PRIME32_1 0x9E3779B1U /*!< 0b10011110001101110111100110110001 */
|
1890
|
+
#define XXH_PRIME32_2 0x85EBCA77U /*!< 0b10000101111010111100101001110111 */
|
1891
|
+
#define XXH_PRIME32_3 0xC2B2AE3DU /*!< 0b11000010101100101010111000111101 */
|
1892
|
+
#define XXH_PRIME32_4 0x27D4EB2FU /*!< 0b00100111110101001110101100101111 */
|
1893
|
+
#define XXH_PRIME32_5 0x165667B1U /*!< 0b00010110010101100110011110110001 */
|
1711
1894
|
|
1712
1895
|
#ifdef XXH_OLD_NAMES
|
1713
1896
|
# define PRIME32_1 XXH_PRIME32_1
|
@@ -1733,13 +1916,12 @@ static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input)
|
|
1733
1916
|
acc += input * XXH_PRIME32_2;
|
1734
1917
|
acc = XXH_rotl32(acc, 13);
|
1735
1918
|
acc *= XXH_PRIME32_1;
|
1736
|
-
#if defined(
|
1919
|
+
#if (defined(__SSE4_1__) || defined(__aarch64__)) && !defined(XXH_ENABLE_AUTOVECTORIZE)
|
1737
1920
|
/*
|
1738
1921
|
* UGLY HACK:
|
1739
|
-
*
|
1740
|
-
*
|
1741
|
-
*
|
1742
|
-
* disabling SSE4.1.
|
1922
|
+
* A compiler fence is the only thing that prevents GCC and Clang from
|
1923
|
+
* autovectorizing the XXH32 loop (pragmas and attributes don't work for some
|
1924
|
+
* reason) without globally disabling SSE4.1.
|
1743
1925
|
*
|
1744
1926
|
* The reason we want to avoid vectorization is because despite working on
|
1745
1927
|
* 4 integers at a time, there are multiple factors slowing XXH32 down on
|
@@ -1764,22 +1946,11 @@ static xxh_u32 XXH32_round(xxh_u32 acc, xxh_u32 input)
|
|
1764
1946
|
* can load data, while v3 can multiply. SSE forces them to operate
|
1765
1947
|
* together.
|
1766
1948
|
*
|
1767
|
-
*
|
1768
|
-
*
|
1769
|
-
*
|
1770
|
-
* "+r" // constrain a read/write operand (+) as a general purpose register (r).
|
1771
|
-
* (acc) // and set acc as the operand
|
1772
|
-
* );
|
1773
|
-
*
|
1774
|
-
* Because of the 'r', the compiler has promised that seed will be in a
|
1775
|
-
* general purpose register and the '+' says that it will be 'read/write',
|
1776
|
-
* so it has to assume it has changed. It is like volatile without all the
|
1777
|
-
* loads and stores.
|
1778
|
-
*
|
1779
|
-
* Since the argument has to be in a normal register (not an SSE register),
|
1780
|
-
* each time XXH32_round is called, it is impossible to vectorize.
|
1949
|
+
* This is also enabled on AArch64, as Clang autovectorizes it incorrectly
|
1950
|
+
* and it is pointless writing a NEON implementation that is basically the
|
1951
|
+
* same speed as scalar for XXH32.
|
1781
1952
|
*/
|
1782
|
-
|
1953
|
+
XXH_COMPILER_GUARD(acc);
|
1783
1954
|
#endif
|
1784
1955
|
return acc;
|
1785
1956
|
}
|
@@ -1834,8 +2005,10 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align)
|
|
1834
2005
|
h32 = XXH_rotl32(h32, 17) * XXH_PRIME32_4; \
|
1835
2006
|
} while (0)
|
1836
2007
|
|
1837
|
-
|
1838
|
-
|
2008
|
+
if (ptr==NULL) XXH_ASSERT(len == 0);
|
2009
|
+
|
2010
|
+
/* Compact rerolled version; generally faster */
|
2011
|
+
if (!XXH32_ENDJMP) {
|
1839
2012
|
len &= 15;
|
1840
2013
|
while (len >= 4) {
|
1841
2014
|
XXH_PROCESS4;
|
@@ -1849,41 +2022,41 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align)
|
|
1849
2022
|
} else {
|
1850
2023
|
switch(len&15) /* or switch(bEnd - p) */ {
|
1851
2024
|
case 12: XXH_PROCESS4;
|
1852
|
-
|
2025
|
+
XXH_FALLTHROUGH;
|
1853
2026
|
case 8: XXH_PROCESS4;
|
1854
|
-
|
2027
|
+
XXH_FALLTHROUGH;
|
1855
2028
|
case 4: XXH_PROCESS4;
|
1856
2029
|
return XXH32_avalanche(h32);
|
1857
2030
|
|
1858
2031
|
case 13: XXH_PROCESS4;
|
1859
|
-
|
2032
|
+
XXH_FALLTHROUGH;
|
1860
2033
|
case 9: XXH_PROCESS4;
|
1861
|
-
|
2034
|
+
XXH_FALLTHROUGH;
|
1862
2035
|
case 5: XXH_PROCESS4;
|
1863
2036
|
XXH_PROCESS1;
|
1864
2037
|
return XXH32_avalanche(h32);
|
1865
2038
|
|
1866
2039
|
case 14: XXH_PROCESS4;
|
1867
|
-
|
2040
|
+
XXH_FALLTHROUGH;
|
1868
2041
|
case 10: XXH_PROCESS4;
|
1869
|
-
|
2042
|
+
XXH_FALLTHROUGH;
|
1870
2043
|
case 6: XXH_PROCESS4;
|
1871
2044
|
XXH_PROCESS1;
|
1872
2045
|
XXH_PROCESS1;
|
1873
2046
|
return XXH32_avalanche(h32);
|
1874
2047
|
|
1875
2048
|
case 15: XXH_PROCESS4;
|
1876
|
-
|
2049
|
+
XXH_FALLTHROUGH;
|
1877
2050
|
case 11: XXH_PROCESS4;
|
1878
|
-
|
2051
|
+
XXH_FALLTHROUGH;
|
1879
2052
|
case 7: XXH_PROCESS4;
|
1880
|
-
|
2053
|
+
XXH_FALLTHROUGH;
|
1881
2054
|
case 3: XXH_PROCESS1;
|
1882
|
-
|
2055
|
+
XXH_FALLTHROUGH;
|
1883
2056
|
case 2: XXH_PROCESS1;
|
1884
|
-
|
2057
|
+
XXH_FALLTHROUGH;
|
1885
2058
|
case 1: XXH_PROCESS1;
|
1886
|
-
|
2059
|
+
XXH_FALLTHROUGH;
|
1887
2060
|
case 0: return XXH32_avalanche(h32);
|
1888
2061
|
}
|
1889
2062
|
XXH_ASSERT(0);
|
@@ -1903,24 +2076,19 @@ XXH32_finalize(xxh_u32 h32, const xxh_u8* ptr, size_t len, XXH_alignment align)
|
|
1903
2076
|
* @internal
|
1904
2077
|
* @brief The implementation for @ref XXH32().
|
1905
2078
|
*
|
1906
|
-
* @param input, len, seed Directly passed from @ref XXH32().
|
2079
|
+
* @param input , len , seed Directly passed from @ref XXH32().
|
1907
2080
|
* @param align Whether @p input is aligned.
|
1908
2081
|
* @return The calculated hash.
|
1909
2082
|
*/
|
1910
2083
|
XXH_FORCE_INLINE xxh_u32
|
1911
2084
|
XXH32_endian_align(const xxh_u8* input, size_t len, xxh_u32 seed, XXH_alignment align)
|
1912
2085
|
{
|
1913
|
-
const xxh_u8* bEnd = input + len;
|
1914
2086
|
xxh_u32 h32;
|
1915
2087
|
|
1916
|
-
|
1917
|
-
if (input==NULL) {
|
1918
|
-
len=0;
|
1919
|
-
bEnd=input=(const xxh_u8*)(size_t)16;
|
1920
|
-
}
|
1921
|
-
#endif
|
2088
|
+
if (input==NULL) XXH_ASSERT(len == 0);
|
1922
2089
|
|
1923
2090
|
if (len>=16) {
|
2091
|
+
const xxh_u8* const bEnd = input + len;
|
1924
2092
|
const xxh_u8* const limit = bEnd - 15;
|
1925
2093
|
xxh_u32 v1 = seed + XXH_PRIME32_1 + XXH_PRIME32_2;
|
1926
2094
|
xxh_u32 v2 = seed + XXH_PRIME32_2;
|
@@ -1984,7 +2152,7 @@ XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
|
|
1984
2152
|
/*! @ingroup xxh32_family */
|
1985
2153
|
XXH_PUBLIC_API void XXH32_copyState(XXH32_state_t* dstState, const XXH32_state_t* srcState)
|
1986
2154
|
{
|
1987
|
-
|
2155
|
+
XXH_memcpy(dstState, srcState, sizeof(*dstState));
|
1988
2156
|
}
|
1989
2157
|
|
1990
2158
|
/*! @ingroup xxh32_family */
|
@@ -1992,12 +2160,12 @@ XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t s
|
|
1992
2160
|
{
|
1993
2161
|
XXH32_state_t state; /* using a local state to memcpy() in order to avoid strict-aliasing warnings */
|
1994
2162
|
memset(&state, 0, sizeof(state));
|
1995
|
-
state.
|
1996
|
-
state.
|
1997
|
-
state.
|
1998
|
-
state.
|
2163
|
+
state.v[0] = seed + XXH_PRIME32_1 + XXH_PRIME32_2;
|
2164
|
+
state.v[1] = seed + XXH_PRIME32_2;
|
2165
|
+
state.v[2] = seed + 0;
|
2166
|
+
state.v[3] = seed - XXH_PRIME32_1;
|
1999
2167
|
/* do not write into reserved, planned to be removed in a future version */
|
2000
|
-
|
2168
|
+
XXH_memcpy(statePtr, &state, sizeof(state) - sizeof(state.reserved));
|
2001
2169
|
return XXH_OK;
|
2002
2170
|
}
|
2003
2171
|
|
@@ -2006,12 +2174,10 @@ XXH_PUBLIC_API XXH_errorcode XXH32_reset(XXH32_state_t* statePtr, XXH32_hash_t s
|
|
2006
2174
|
XXH_PUBLIC_API XXH_errorcode
|
2007
2175
|
XXH32_update(XXH32_state_t* state, const void* input, size_t len)
|
2008
2176
|
{
|
2009
|
-
if (input==NULL)
|
2010
|
-
|
2177
|
+
if (input==NULL) {
|
2178
|
+
XXH_ASSERT(len == 0);
|
2011
2179
|
return XXH_OK;
|
2012
|
-
|
2013
|
-
return XXH_ERROR;
|
2014
|
-
#endif
|
2180
|
+
}
|
2015
2181
|
|
2016
2182
|
{ const xxh_u8* p = (const xxh_u8*)input;
|
2017
2183
|
const xxh_u8* const bEnd = p + len;
|
@@ -2028,10 +2194,10 @@ XXH32_update(XXH32_state_t* state, const void* input, size_t len)
|
|
2028
2194
|
if (state->memsize) { /* some data left from previous update */
|
2029
2195
|
XXH_memcpy((xxh_u8*)(state->mem32) + state->memsize, input, 16-state->memsize);
|
2030
2196
|
{ const xxh_u32* p32 = state->mem32;
|
2031
|
-
state->
|
2032
|
-
state->
|
2033
|
-
state->
|
2034
|
-
state->
|
2197
|
+
state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p32)); p32++;
|
2198
|
+
state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p32)); p32++;
|
2199
|
+
state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p32)); p32++;
|
2200
|
+
state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p32));
|
2035
2201
|
}
|
2036
2202
|
p += 16-state->memsize;
|
2037
2203
|
state->memsize = 0;
|
@@ -2039,22 +2205,14 @@ XXH32_update(XXH32_state_t* state, const void* input, size_t len)
|
|
2039
2205
|
|
2040
2206
|
if (p <= bEnd-16) {
|
2041
2207
|
const xxh_u8* const limit = bEnd - 16;
|
2042
|
-
xxh_u32 v1 = state->v1;
|
2043
|
-
xxh_u32 v2 = state->v2;
|
2044
|
-
xxh_u32 v3 = state->v3;
|
2045
|
-
xxh_u32 v4 = state->v4;
|
2046
2208
|
|
2047
2209
|
do {
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
|
2210
|
+
state->v[0] = XXH32_round(state->v[0], XXH_readLE32(p)); p+=4;
|
2211
|
+
state->v[1] = XXH32_round(state->v[1], XXH_readLE32(p)); p+=4;
|
2212
|
+
state->v[2] = XXH32_round(state->v[2], XXH_readLE32(p)); p+=4;
|
2213
|
+
state->v[3] = XXH32_round(state->v[3], XXH_readLE32(p)); p+=4;
|
2052
2214
|
} while (p<=limit);
|
2053
2215
|
|
2054
|
-
state->v1 = v1;
|
2055
|
-
state->v2 = v2;
|
2056
|
-
state->v3 = v3;
|
2057
|
-
state->v4 = v4;
|
2058
2216
|
}
|
2059
2217
|
|
2060
2218
|
if (p < bEnd) {
|
@@ -2073,12 +2231,12 @@ XXH_PUBLIC_API XXH32_hash_t XXH32_digest(const XXH32_state_t* state)
|
|
2073
2231
|
xxh_u32 h32;
|
2074
2232
|
|
2075
2233
|
if (state->large_len) {
|
2076
|
-
h32 = XXH_rotl32(state->
|
2077
|
-
+ XXH_rotl32(state->
|
2078
|
-
+ XXH_rotl32(state->
|
2079
|
-
+ XXH_rotl32(state->
|
2234
|
+
h32 = XXH_rotl32(state->v[0], 1)
|
2235
|
+
+ XXH_rotl32(state->v[1], 7)
|
2236
|
+
+ XXH_rotl32(state->v[2], 12)
|
2237
|
+
+ XXH_rotl32(state->v[3], 18);
|
2080
2238
|
} else {
|
2081
|
-
h32 = state->
|
2239
|
+
h32 = state->v[2] /* == seed */ + XXH_PRIME32_5;
|
2082
2240
|
}
|
2083
2241
|
|
2084
2242
|
h32 += state->total_len_32;
|
@@ -2107,7 +2265,7 @@ XXH_PUBLIC_API void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t
|
|
2107
2265
|
{
|
2108
2266
|
XXH_STATIC_ASSERT(sizeof(XXH32_canonical_t) == sizeof(XXH32_hash_t));
|
2109
2267
|
if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap32(hash);
|
2110
|
-
|
2268
|
+
XXH_memcpy(dst, &hash, sizeof(*dst));
|
2111
2269
|
}
|
2112
2270
|
/*! @ingroup xxh32_family */
|
2113
2271
|
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src)
|
@@ -2134,35 +2292,6 @@ typedef XXH64_hash_t xxh_u64;
|
|
2134
2292
|
# define U64 xxh_u64
|
2135
2293
|
#endif
|
2136
2294
|
|
2137
|
-
/*!
|
2138
|
-
* XXH_REROLL_XXH64:
|
2139
|
-
* Whether to reroll the XXH64_finalize() loop.
|
2140
|
-
*
|
2141
|
-
* Just like XXH32, we can unroll the XXH64_finalize() loop. This can be a
|
2142
|
-
* performance gain on 64-bit hosts, as only one jump is required.
|
2143
|
-
*
|
2144
|
-
* However, on 32-bit hosts, because arithmetic needs to be done with two 32-bit
|
2145
|
-
* registers, and 64-bit arithmetic needs to be simulated, it isn't beneficial
|
2146
|
-
* to unroll. The code becomes ridiculously large (the largest function in the
|
2147
|
-
* binary on i386!), and rerolling it saves anywhere from 3kB to 20kB. It is
|
2148
|
-
* also slightly faster because it fits into cache better and is more likely
|
2149
|
-
* to be inlined by the compiler.
|
2150
|
-
*
|
2151
|
-
* If XXH_REROLL is defined, this is ignored and the loop is always rerolled.
|
2152
|
-
*/
|
2153
|
-
#ifndef XXH_REROLL_XXH64
|
2154
|
-
# if (defined(__ILP32__) || defined(_ILP32)) /* ILP32 is often defined on 32-bit GCC family */ \
|
2155
|
-
|| !(defined(__x86_64__) || defined(_M_X64) || defined(_M_AMD64) /* x86-64 */ \
|
2156
|
-
|| defined(_M_ARM64) || defined(__aarch64__) || defined(__arm64__) /* aarch64 */ \
|
2157
|
-
|| defined(__PPC64__) || defined(__PPC64LE__) || defined(__ppc64__) || defined(__powerpc64__) /* ppc64 */ \
|
2158
|
-
|| defined(__mips64__) || defined(__mips64)) /* mips64 */ \
|
2159
|
-
|| (!defined(SIZE_MAX) || SIZE_MAX < ULLONG_MAX) /* check limits */
|
2160
|
-
# define XXH_REROLL_XXH64 1
|
2161
|
-
# else
|
2162
|
-
# define XXH_REROLL_XXH64 0
|
2163
|
-
# endif
|
2164
|
-
#endif /* !defined(XXH_REROLL_XXH64) */
|
2165
|
-
|
2166
2295
|
#if (defined(XXH_FORCE_MEMORY_ACCESS) && (XXH_FORCE_MEMORY_ACCESS==3))
|
2167
2296
|
/*
|
2168
2297
|
* Manual byteshift. Best for old compilers which don't inline memcpy.
|
@@ -2197,12 +2326,12 @@ static xxh_u64 XXH_read64(const void* ptr)
|
|
2197
2326
|
|
2198
2327
|
/*
|
2199
2328
|
* Portable and safe solution. Generally efficient.
|
2200
|
-
* see:
|
2329
|
+
* see: http://fastcompression.blogspot.com/2015/08/accessing-unaligned-memory.html
|
2201
2330
|
*/
|
2202
2331
|
static xxh_u64 XXH_read64(const void* memPtr)
|
2203
2332
|
{
|
2204
2333
|
xxh_u64 val;
|
2205
|
-
|
2334
|
+
XXH_memcpy(&val, memPtr, sizeof(val));
|
2206
2335
|
return val;
|
2207
2336
|
}
|
2208
2337
|
|
@@ -2285,11 +2414,12 @@ XXH_readLE64_align(const void* ptr, XXH_alignment align)
|
|
2285
2414
|
* @ingroup impl
|
2286
2415
|
* @{
|
2287
2416
|
*/
|
2288
|
-
static const
|
2289
|
-
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2417
|
+
/* #define rather that static const, to be used as initializers */
|
2418
|
+
#define XXH_PRIME64_1 0x9E3779B185EBCA87ULL /*!< 0b1001111000110111011110011011000110000101111010111100101010000111 */
|
2419
|
+
#define XXH_PRIME64_2 0xC2B2AE3D27D4EB4FULL /*!< 0b1100001010110010101011100011110100100111110101001110101101001111 */
|
2420
|
+
#define XXH_PRIME64_3 0x165667B19E3779F9ULL /*!< 0b0001011001010110011001111011000110011110001101110111100111111001 */
|
2421
|
+
#define XXH_PRIME64_4 0x85EBCA77C2B2AE63ULL /*!< 0b1000010111101011110010100111011111000010101100101010111001100011 */
|
2422
|
+
#define XXH_PRIME64_5 0x27D4EB2F165667C5ULL /*!< 0b0010011111010100111010110010111100010110010101100110011111000101 */
|
2293
2423
|
|
2294
2424
|
#ifdef XXH_OLD_NAMES
|
2295
2425
|
# define PRIME64_1 XXH_PRIME64_1
|
@@ -2331,126 +2461,27 @@ static xxh_u64 XXH64_avalanche(xxh_u64 h64)
|
|
2331
2461
|
static xxh_u64
|
2332
2462
|
XXH64_finalize(xxh_u64 h64, const xxh_u8* ptr, size_t len, XXH_alignment align)
|
2333
2463
|
{
|
2334
|
-
|
2335
|
-
|
2336
|
-
|
2337
|
-
|
2338
|
-
|
2339
|
-
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2345
|
-
|
2346
|
-
|
2347
|
-
|
2348
|
-
h64 ^= k1; \
|
2349
|
-
h64 = XXH_rotl64(h64,27) * XXH_PRIME64_1 + XXH_PRIME64_4; \
|
2350
|
-
} while (0)
|
2351
|
-
|
2352
|
-
/* Rerolled version for 32-bit targets is faster and much smaller. */
|
2353
|
-
if (XXH_REROLL || XXH_REROLL_XXH64) {
|
2354
|
-
len &= 31;
|
2355
|
-
while (len >= 8) {
|
2356
|
-
XXH_PROCESS8_64;
|
2357
|
-
len -= 8;
|
2358
|
-
}
|
2359
|
-
if (len >= 4) {
|
2360
|
-
XXH_PROCESS4_64;
|
2361
|
-
len -= 4;
|
2362
|
-
}
|
2363
|
-
while (len > 0) {
|
2364
|
-
XXH_PROCESS1_64;
|
2365
|
-
--len;
|
2366
|
-
}
|
2367
|
-
return XXH64_avalanche(h64);
|
2368
|
-
} else {
|
2369
|
-
switch(len & 31) {
|
2370
|
-
case 24: XXH_PROCESS8_64;
|
2371
|
-
/* fallthrough */
|
2372
|
-
case 16: XXH_PROCESS8_64;
|
2373
|
-
/* fallthrough */
|
2374
|
-
case 8: XXH_PROCESS8_64;
|
2375
|
-
return XXH64_avalanche(h64);
|
2376
|
-
|
2377
|
-
case 28: XXH_PROCESS8_64;
|
2378
|
-
/* fallthrough */
|
2379
|
-
case 20: XXH_PROCESS8_64;
|
2380
|
-
/* fallthrough */
|
2381
|
-
case 12: XXH_PROCESS8_64;
|
2382
|
-
/* fallthrough */
|
2383
|
-
case 4: XXH_PROCESS4_64;
|
2384
|
-
return XXH64_avalanche(h64);
|
2385
|
-
|
2386
|
-
case 25: XXH_PROCESS8_64;
|
2387
|
-
/* fallthrough */
|
2388
|
-
case 17: XXH_PROCESS8_64;
|
2389
|
-
/* fallthrough */
|
2390
|
-
case 9: XXH_PROCESS8_64;
|
2391
|
-
XXH_PROCESS1_64;
|
2392
|
-
return XXH64_avalanche(h64);
|
2393
|
-
|
2394
|
-
case 29: XXH_PROCESS8_64;
|
2395
|
-
/* fallthrough */
|
2396
|
-
case 21: XXH_PROCESS8_64;
|
2397
|
-
/* fallthrough */
|
2398
|
-
case 13: XXH_PROCESS8_64;
|
2399
|
-
/* fallthrough */
|
2400
|
-
case 5: XXH_PROCESS4_64;
|
2401
|
-
XXH_PROCESS1_64;
|
2402
|
-
return XXH64_avalanche(h64);
|
2403
|
-
|
2404
|
-
case 26: XXH_PROCESS8_64;
|
2405
|
-
/* fallthrough */
|
2406
|
-
case 18: XXH_PROCESS8_64;
|
2407
|
-
/* fallthrough */
|
2408
|
-
case 10: XXH_PROCESS8_64;
|
2409
|
-
XXH_PROCESS1_64;
|
2410
|
-
XXH_PROCESS1_64;
|
2411
|
-
return XXH64_avalanche(h64);
|
2412
|
-
|
2413
|
-
case 30: XXH_PROCESS8_64;
|
2414
|
-
/* fallthrough */
|
2415
|
-
case 22: XXH_PROCESS8_64;
|
2416
|
-
/* fallthrough */
|
2417
|
-
case 14: XXH_PROCESS8_64;
|
2418
|
-
/* fallthrough */
|
2419
|
-
case 6: XXH_PROCESS4_64;
|
2420
|
-
XXH_PROCESS1_64;
|
2421
|
-
XXH_PROCESS1_64;
|
2422
|
-
return XXH64_avalanche(h64);
|
2423
|
-
|
2424
|
-
case 27: XXH_PROCESS8_64;
|
2425
|
-
/* fallthrough */
|
2426
|
-
case 19: XXH_PROCESS8_64;
|
2427
|
-
/* fallthrough */
|
2428
|
-
case 11: XXH_PROCESS8_64;
|
2429
|
-
XXH_PROCESS1_64;
|
2430
|
-
XXH_PROCESS1_64;
|
2431
|
-
XXH_PROCESS1_64;
|
2432
|
-
return XXH64_avalanche(h64);
|
2433
|
-
|
2434
|
-
case 31: XXH_PROCESS8_64;
|
2435
|
-
/* fallthrough */
|
2436
|
-
case 23: XXH_PROCESS8_64;
|
2437
|
-
/* fallthrough */
|
2438
|
-
case 15: XXH_PROCESS8_64;
|
2439
|
-
/* fallthrough */
|
2440
|
-
case 7: XXH_PROCESS4_64;
|
2441
|
-
/* fallthrough */
|
2442
|
-
case 3: XXH_PROCESS1_64;
|
2443
|
-
/* fallthrough */
|
2444
|
-
case 2: XXH_PROCESS1_64;
|
2445
|
-
/* fallthrough */
|
2446
|
-
case 1: XXH_PROCESS1_64;
|
2447
|
-
/* fallthrough */
|
2448
|
-
case 0: return XXH64_avalanche(h64);
|
2449
|
-
}
|
2464
|
+
if (ptr==NULL) XXH_ASSERT(len == 0);
|
2465
|
+
len &= 31;
|
2466
|
+
while (len >= 8) {
|
2467
|
+
xxh_u64 const k1 = XXH64_round(0, XXH_get64bits(ptr));
|
2468
|
+
ptr += 8;
|
2469
|
+
h64 ^= k1;
|
2470
|
+
h64 = XXH_rotl64(h64,27) * XXH_PRIME64_1 + XXH_PRIME64_4;
|
2471
|
+
len -= 8;
|
2472
|
+
}
|
2473
|
+
if (len >= 4) {
|
2474
|
+
h64 ^= (xxh_u64)(XXH_get32bits(ptr)) * XXH_PRIME64_1;
|
2475
|
+
ptr += 4;
|
2476
|
+
h64 = XXH_rotl64(h64, 23) * XXH_PRIME64_2 + XXH_PRIME64_3;
|
2477
|
+
len -= 4;
|
2450
2478
|
}
|
2451
|
-
|
2452
|
-
|
2453
|
-
|
2479
|
+
while (len > 0) {
|
2480
|
+
h64 ^= (*ptr++) * XXH_PRIME64_5;
|
2481
|
+
h64 = XXH_rotl64(h64, 11) * XXH_PRIME64_1;
|
2482
|
+
--len;
|
2483
|
+
}
|
2484
|
+
return XXH64_avalanche(h64);
|
2454
2485
|
}
|
2455
2486
|
|
2456
2487
|
#ifdef XXH_OLD_NAMES
|
@@ -2466,18 +2497,12 @@ XXH64_finalize(xxh_u64 h64, const xxh_u8* ptr, size_t len, XXH_alignment align)
|
|
2466
2497
|
XXH_FORCE_INLINE xxh_u64
|
2467
2498
|
XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment align)
|
2468
2499
|
{
|
2469
|
-
const xxh_u8* bEnd = input + len;
|
2470
2500
|
xxh_u64 h64;
|
2471
|
-
|
2472
|
-
#if defined(XXH_ACCEPT_NULL_INPUT_POINTER) && (XXH_ACCEPT_NULL_INPUT_POINTER>=1)
|
2473
|
-
if (input==NULL) {
|
2474
|
-
len=0;
|
2475
|
-
bEnd=input=(const xxh_u8*)(size_t)32;
|
2476
|
-
}
|
2477
|
-
#endif
|
2501
|
+
if (input==NULL) XXH_ASSERT(len == 0);
|
2478
2502
|
|
2479
2503
|
if (len>=32) {
|
2480
|
-
const xxh_u8* const
|
2504
|
+
const xxh_u8* const bEnd = input + len;
|
2505
|
+
const xxh_u8* const limit = bEnd - 31;
|
2481
2506
|
xxh_u64 v1 = seed + XXH_PRIME64_1 + XXH_PRIME64_2;
|
2482
2507
|
xxh_u64 v2 = seed + XXH_PRIME64_2;
|
2483
2508
|
xxh_u64 v3 = seed + 0;
|
@@ -2488,7 +2513,7 @@ XXH64_endian_align(const xxh_u8* input, size_t len, xxh_u64 seed, XXH_alignment
|
|
2488
2513
|
v2 = XXH64_round(v2, XXH_get64bits(input)); input+=8;
|
2489
2514
|
v3 = XXH64_round(v3, XXH_get64bits(input)); input+=8;
|
2490
2515
|
v4 = XXH64_round(v4, XXH_get64bits(input)); input+=8;
|
2491
|
-
} while (input
|
2516
|
+
} while (input<limit);
|
2492
2517
|
|
2493
2518
|
h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18);
|
2494
2519
|
h64 = XXH64_mergeRound(h64, v1);
|
@@ -2543,7 +2568,7 @@ XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr)
|
|
2543
2568
|
/*! @ingroup xxh64_family */
|
2544
2569
|
XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* dstState, const XXH64_state_t* srcState)
|
2545
2570
|
{
|
2546
|
-
|
2571
|
+
XXH_memcpy(dstState, srcState, sizeof(*dstState));
|
2547
2572
|
}
|
2548
2573
|
|
2549
2574
|
/*! @ingroup xxh64_family */
|
@@ -2551,12 +2576,12 @@ XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, XXH64_hash_t s
|
|
2551
2576
|
{
|
2552
2577
|
XXH64_state_t state; /* use a local state to memcpy() in order to avoid strict-aliasing warnings */
|
2553
2578
|
memset(&state, 0, sizeof(state));
|
2554
|
-
state.
|
2555
|
-
state.
|
2556
|
-
state.
|
2557
|
-
state.
|
2579
|
+
state.v[0] = seed + XXH_PRIME64_1 + XXH_PRIME64_2;
|
2580
|
+
state.v[1] = seed + XXH_PRIME64_2;
|
2581
|
+
state.v[2] = seed + 0;
|
2582
|
+
state.v[3] = seed - XXH_PRIME64_1;
|
2558
2583
|
/* do not write into reserved64, might be removed in a future version */
|
2559
|
-
|
2584
|
+
XXH_memcpy(statePtr, &state, sizeof(state) - sizeof(state.reserved64));
|
2560
2585
|
return XXH_OK;
|
2561
2586
|
}
|
2562
2587
|
|
@@ -2564,12 +2589,10 @@ XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, XXH64_hash_t s
|
|
2564
2589
|
XXH_PUBLIC_API XXH_errorcode
|
2565
2590
|
XXH64_update (XXH64_state_t* state, const void* input, size_t len)
|
2566
2591
|
{
|
2567
|
-
if (input==NULL)
|
2568
|
-
|
2592
|
+
if (input==NULL) {
|
2593
|
+
XXH_ASSERT(len == 0);
|
2569
2594
|
return XXH_OK;
|
2570
|
-
|
2571
|
-
return XXH_ERROR;
|
2572
|
-
#endif
|
2595
|
+
}
|
2573
2596
|
|
2574
2597
|
{ const xxh_u8* p = (const xxh_u8*)input;
|
2575
2598
|
const xxh_u8* const bEnd = p + len;
|
@@ -2584,32 +2607,24 @@ XXH64_update (XXH64_state_t* state, const void* input, size_t len)
|
|
2584
2607
|
|
2585
2608
|
if (state->memsize) { /* tmp buffer is full */
|
2586
2609
|
XXH_memcpy(((xxh_u8*)state->mem64) + state->memsize, input, 32-state->memsize);
|
2587
|
-
state->
|
2588
|
-
state->
|
2589
|
-
state->
|
2590
|
-
state->
|
2610
|
+
state->v[0] = XXH64_round(state->v[0], XXH_readLE64(state->mem64+0));
|
2611
|
+
state->v[1] = XXH64_round(state->v[1], XXH_readLE64(state->mem64+1));
|
2612
|
+
state->v[2] = XXH64_round(state->v[2], XXH_readLE64(state->mem64+2));
|
2613
|
+
state->v[3] = XXH64_round(state->v[3], XXH_readLE64(state->mem64+3));
|
2591
2614
|
p += 32 - state->memsize;
|
2592
2615
|
state->memsize = 0;
|
2593
2616
|
}
|
2594
2617
|
|
2595
2618
|
if (p+32 <= bEnd) {
|
2596
2619
|
const xxh_u8* const limit = bEnd - 32;
|
2597
|
-
xxh_u64 v1 = state->v1;
|
2598
|
-
xxh_u64 v2 = state->v2;
|
2599
|
-
xxh_u64 v3 = state->v3;
|
2600
|
-
xxh_u64 v4 = state->v4;
|
2601
2620
|
|
2602
2621
|
do {
|
2603
|
-
|
2604
|
-
|
2605
|
-
|
2606
|
-
|
2622
|
+
state->v[0] = XXH64_round(state->v[0], XXH_readLE64(p)); p+=8;
|
2623
|
+
state->v[1] = XXH64_round(state->v[1], XXH_readLE64(p)); p+=8;
|
2624
|
+
state->v[2] = XXH64_round(state->v[2], XXH_readLE64(p)); p+=8;
|
2625
|
+
state->v[3] = XXH64_round(state->v[3], XXH_readLE64(p)); p+=8;
|
2607
2626
|
} while (p<=limit);
|
2608
2627
|
|
2609
|
-
state->v1 = v1;
|
2610
|
-
state->v2 = v2;
|
2611
|
-
state->v3 = v3;
|
2612
|
-
state->v4 = v4;
|
2613
2628
|
}
|
2614
2629
|
|
2615
2630
|
if (p < bEnd) {
|
@@ -2628,18 +2643,13 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_digest(const XXH64_state_t* state)
|
|
2628
2643
|
xxh_u64 h64;
|
2629
2644
|
|
2630
2645
|
if (state->total_len >= 32) {
|
2631
|
-
|
2632
|
-
|
2633
|
-
|
2634
|
-
|
2635
|
-
|
2636
|
-
h64 = XXH_rotl64(v1, 1) + XXH_rotl64(v2, 7) + XXH_rotl64(v3, 12) + XXH_rotl64(v4, 18);
|
2637
|
-
h64 = XXH64_mergeRound(h64, v1);
|
2638
|
-
h64 = XXH64_mergeRound(h64, v2);
|
2639
|
-
h64 = XXH64_mergeRound(h64, v3);
|
2640
|
-
h64 = XXH64_mergeRound(h64, v4);
|
2646
|
+
h64 = XXH_rotl64(state->v[0], 1) + XXH_rotl64(state->v[1], 7) + XXH_rotl64(state->v[2], 12) + XXH_rotl64(state->v[3], 18);
|
2647
|
+
h64 = XXH64_mergeRound(h64, state->v[0]);
|
2648
|
+
h64 = XXH64_mergeRound(h64, state->v[1]);
|
2649
|
+
h64 = XXH64_mergeRound(h64, state->v[2]);
|
2650
|
+
h64 = XXH64_mergeRound(h64, state->v[3]);
|
2641
2651
|
} else {
|
2642
|
-
h64 = state->
|
2652
|
+
h64 = state->v[2] /*seed*/ + XXH_PRIME64_5;
|
2643
2653
|
}
|
2644
2654
|
|
2645
2655
|
h64 += (xxh_u64) state->total_len;
|
@@ -2655,7 +2665,7 @@ XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t
|
|
2655
2665
|
{
|
2656
2666
|
XXH_STATIC_ASSERT(sizeof(XXH64_canonical_t) == sizeof(XXH64_hash_t));
|
2657
2667
|
if (XXH_CPU_LITTLE_ENDIAN) hash = XXH_swap64(hash);
|
2658
|
-
|
2668
|
+
XXH_memcpy(dst, &hash, sizeof(*dst));
|
2659
2669
|
}
|
2660
2670
|
|
2661
2671
|
/*! @ingroup xxh64_family */
|
@@ -2664,7 +2674,7 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src
|
|
2664
2674
|
return XXH_readBE64(src);
|
2665
2675
|
}
|
2666
2676
|
|
2667
|
-
|
2677
|
+
#ifndef XXH_NO_XXH3
|
2668
2678
|
|
2669
2679
|
/* *********************************************************************
|
2670
2680
|
* XXH3
|
@@ -2679,7 +2689,9 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src
|
|
2679
2689
|
|
2680
2690
|
/* === Compiler specifics === */
|
2681
2691
|
|
2682
|
-
#if defined (
|
2692
|
+
#if ((defined(sun) || defined(__sun)) && __cplusplus) /* Solaris includes __STDC_VERSION__ with C++. Tested with GCC 5.5 */
|
2693
|
+
# define XXH_RESTRICT /* disable */
|
2694
|
+
#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* >= C99 */
|
2683
2695
|
# define XXH_RESTRICT restrict
|
2684
2696
|
#else
|
2685
2697
|
/* Note: it might be useful to define __restrict or __restrict__ for some C++ compilers */
|
@@ -2850,10 +2862,13 @@ enum XXH_VECTOR_TYPE /* fake enum */ {
|
|
2850
2862
|
# define XXH_VECTOR XXH_AVX2
|
2851
2863
|
# elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2))
|
2852
2864
|
# define XXH_VECTOR XXH_SSE2
|
2853
|
-
# elif
|
2854
|
-
|
2855
|
-
|
2856
|
-
|
2865
|
+
# elif ( \
|
2866
|
+
defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \
|
2867
|
+
|| defined(_M_ARM64) || defined(_M_ARM_ARMV7VE) /* msvc */ \
|
2868
|
+
) && ( \
|
2869
|
+
defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \
|
2870
|
+
|| (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \
|
2871
|
+
)
|
2857
2872
|
# define XXH_VECTOR XXH_NEON
|
2858
2873
|
# elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \
|
2859
2874
|
|| (defined(__s390x__) && defined(__VEC__)) \
|
@@ -3005,7 +3020,7 @@ enum XXH_VECTOR_TYPE /* fake enum */ {
|
|
3005
3020
|
*/
|
3006
3021
|
# if !defined(XXH_NO_VZIP_HACK) /* define to disable */ \
|
3007
3022
|
&& defined(__GNUC__) \
|
3008
|
-
&& !defined(__aarch64__) && !defined(__arm64__)
|
3023
|
+
&& !defined(__aarch64__) && !defined(__arm64__) && !defined(_M_ARM64)
|
3009
3024
|
# define XXH_SPLIT_IN_PLACE(in, outLo, outHi) \
|
3010
3025
|
do { \
|
3011
3026
|
/* Undocumented GCC/Clang operand modifier: %e0 = lower D half, %f0 = upper D half */ \
|
@@ -3088,7 +3103,7 @@ XXH_FORCE_INLINE xxh_u64x2 XXH_vec_revb(xxh_u64x2 val)
|
|
3088
3103
|
XXH_FORCE_INLINE xxh_u64x2 XXH_vec_loadu(const void *ptr)
|
3089
3104
|
{
|
3090
3105
|
xxh_u64x2 ret;
|
3091
|
-
|
3106
|
+
XXH_memcpy(&ret, ptr, sizeof(xxh_u64x2));
|
3092
3107
|
# if XXH_VSX_BE
|
3093
3108
|
ret = XXH_vec_revb(ret);
|
3094
3109
|
# endif
|
@@ -3217,7 +3232,7 @@ XXH_mult32to64(xxh_u64 x, xxh_u64 y)
|
|
3217
3232
|
* Uses `__uint128_t` and `_umul128` if available, otherwise uses a scalar
|
3218
3233
|
* version.
|
3219
3234
|
*
|
3220
|
-
* @param lhs, rhs The 64-bit integers to be multiplied
|
3235
|
+
* @param lhs , rhs The 64-bit integers to be multiplied
|
3221
3236
|
* @return The 128-bit result represented in an @ref XXH128_hash_t.
|
3222
3237
|
*/
|
3223
3238
|
static XXH128_hash_t
|
@@ -3267,6 +3282,21 @@ XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs)
|
|
3267
3282
|
r128.high64 = product_high;
|
3268
3283
|
return r128;
|
3269
3284
|
|
3285
|
+
/*
|
3286
|
+
* MSVC for ARM64's __umulh method.
|
3287
|
+
*
|
3288
|
+
* This compiles to the same MUL + UMULH as GCC/Clang's __uint128_t method.
|
3289
|
+
*/
|
3290
|
+
#elif defined(_M_ARM64)
|
3291
|
+
|
3292
|
+
#ifndef _MSC_VER
|
3293
|
+
# pragma intrinsic(__umulh)
|
3294
|
+
#endif
|
3295
|
+
XXH128_hash_t r128;
|
3296
|
+
r128.low64 = lhs * rhs;
|
3297
|
+
r128.high64 = __umulh(lhs, rhs);
|
3298
|
+
return r128;
|
3299
|
+
|
3270
3300
|
#else
|
3271
3301
|
/*
|
3272
3302
|
* Portable scalar method. Optimized for 32-bit and 64-bit ALUs.
|
@@ -3335,7 +3365,7 @@ XXH_mult64to128(xxh_u64 lhs, xxh_u64 rhs)
|
|
3335
3365
|
* The reason for the separate function is to prevent passing too many structs
|
3336
3366
|
* around by value. This will hopefully inline the multiply, but we don't force it.
|
3337
3367
|
*
|
3338
|
-
* @param lhs, rhs The 64-bit integers to multiply
|
3368
|
+
* @param lhs , rhs The 64-bit integers to multiply
|
3339
3369
|
* @return The low 64 bits of the product XOR'd by the high 64 bits.
|
3340
3370
|
* @see XXH_mult64to128()
|
3341
3371
|
*/
|
@@ -3441,7 +3471,7 @@ XXH3_len_4to8_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_h
|
|
3441
3471
|
{
|
3442
3472
|
XXH_ASSERT(input != NULL);
|
3443
3473
|
XXH_ASSERT(secret != NULL);
|
3444
|
-
XXH_ASSERT(4 <= len && len
|
3474
|
+
XXH_ASSERT(4 <= len && len <= 8);
|
3445
3475
|
seed ^= (xxh_u64)XXH_swap32((xxh_u32)seed) << 32;
|
3446
3476
|
{ xxh_u32 const input1 = XXH_readLE32(input);
|
3447
3477
|
xxh_u32 const input2 = XXH_readLE32(input + len - 4);
|
@@ -3457,7 +3487,7 @@ XXH3_len_9to16_64b(const xxh_u8* input, size_t len, const xxh_u8* secret, XXH64_
|
|
3457
3487
|
{
|
3458
3488
|
XXH_ASSERT(input != NULL);
|
3459
3489
|
XXH_ASSERT(secret != NULL);
|
3460
|
-
XXH_ASSERT(
|
3490
|
+
XXH_ASSERT(9 <= len && len <= 16);
|
3461
3491
|
{ xxh_u64 const bitflip1 = (XXH_readLE64(secret+24) ^ XXH_readLE64(secret+32)) + seed;
|
3462
3492
|
xxh_u64 const bitflip2 = (XXH_readLE64(secret+40) ^ XXH_readLE64(secret+48)) - seed;
|
3463
3493
|
xxh_u64 const input_lo = XXH_readLE64(input) ^ bitflip1;
|
@@ -3527,7 +3557,7 @@ XXH_FORCE_INLINE xxh_u64 XXH3_mix16B(const xxh_u8* XXH_RESTRICT input,
|
|
3527
3557
|
* GCC generates much better scalar code than Clang for the rest of XXH3,
|
3528
3558
|
* which is why finding a more optimal codepath is an interest.
|
3529
3559
|
*/
|
3530
|
-
|
3560
|
+
XXH_COMPILER_GUARD(seed64);
|
3531
3561
|
#endif
|
3532
3562
|
{ xxh_u64 const input_lo = XXH_readLE64(input);
|
3533
3563
|
xxh_u64 const input_hi = XXH_readLE64(input+8);
|
@@ -3637,7 +3667,7 @@ XXH3_len_129to240_64b(const xxh_u8* XXH_RESTRICT input, size_t len,
|
|
3637
3667
|
XXH_FORCE_INLINE void XXH_writeLE64(void* dst, xxh_u64 v64)
|
3638
3668
|
{
|
3639
3669
|
if (!XXH_CPU_LITTLE_ENDIAN) v64 = XXH_swap64(v64);
|
3640
|
-
|
3670
|
+
XXH_memcpy(dst, &v64, sizeof(v64));
|
3641
3671
|
}
|
3642
3672
|
|
3643
3673
|
/* Several intrinsic functions below are supposed to accept __int64 as argument,
|
@@ -3689,7 +3719,7 @@ XXH3_accumulate_512_avx512(void* XXH_RESTRICT acc,
|
|
3689
3719
|
const void* XXH_RESTRICT input,
|
3690
3720
|
const void* XXH_RESTRICT secret)
|
3691
3721
|
{
|
3692
|
-
|
3722
|
+
__m512i* const xacc = (__m512i *) acc;
|
3693
3723
|
XXH_ASSERT((((size_t)acc) & 63) == 0);
|
3694
3724
|
XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i));
|
3695
3725
|
|
@@ -3738,7 +3768,7 @@ XXH3_scrambleAcc_avx512(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
|
|
3738
3768
|
{
|
3739
3769
|
XXH_ASSERT((((size_t)acc) & 63) == 0);
|
3740
3770
|
XXH_STATIC_ASSERT(XXH_STRIPE_LEN == sizeof(__m512i));
|
3741
|
-
{
|
3771
|
+
{ __m512i* const xacc = (__m512i*) acc;
|
3742
3772
|
const __m512i prime32 = _mm512_set1_epi32((int)XXH_PRIME32_1);
|
3743
3773
|
|
3744
3774
|
/* xacc[0] ^= (xacc[0] >> 47) */
|
@@ -3765,17 +3795,19 @@ XXH3_initCustomSecret_avx512(void* XXH_RESTRICT customSecret, xxh_u64 seed64)
|
|
3765
3795
|
XXH_ASSERT(((size_t)customSecret & 63) == 0);
|
3766
3796
|
(void)(&XXH_writeLE64);
|
3767
3797
|
{ int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m512i);
|
3768
|
-
__m512i const seed = _mm512_mask_set1_epi64(_mm512_set1_epi64((xxh_i64)seed64), 0xAA,
|
3798
|
+
__m512i const seed = _mm512_mask_set1_epi64(_mm512_set1_epi64((xxh_i64)seed64), 0xAA, (xxh_i64)(0U - seed64));
|
3769
3799
|
|
3770
|
-
|
3771
|
-
|
3800
|
+
const __m512i* const src = (const __m512i*) ((const void*) XXH3_kSecret);
|
3801
|
+
__m512i* const dest = ( __m512i*) customSecret;
|
3772
3802
|
int i;
|
3803
|
+
XXH_ASSERT(((size_t)src & 63) == 0); /* control alignment */
|
3804
|
+
XXH_ASSERT(((size_t)dest & 63) == 0);
|
3773
3805
|
for (i=0; i < nbRounds; ++i) {
|
3774
3806
|
/* GCC has a bug, _mm512_stream_load_si512 accepts 'void*', not 'void const*',
|
3775
|
-
* this will warn "discards
|
3807
|
+
* this will warn "discards 'const' qualifier". */
|
3776
3808
|
union {
|
3777
|
-
|
3778
|
-
|
3809
|
+
const __m512i* cp;
|
3810
|
+
void* p;
|
3779
3811
|
} remote_const_void;
|
3780
3812
|
remote_const_void.cp = src + i;
|
3781
3813
|
dest[i] = _mm512_add_epi64(_mm512_stream_load_si512(remote_const_void.p), seed);
|
@@ -3797,7 +3829,7 @@ XXH3_accumulate_512_avx2( void* XXH_RESTRICT acc,
|
|
3797
3829
|
const void* XXH_RESTRICT secret)
|
3798
3830
|
{
|
3799
3831
|
XXH_ASSERT((((size_t)acc) & 31) == 0);
|
3800
|
-
{
|
3832
|
+
{ __m256i* const xacc = (__m256i *) acc;
|
3801
3833
|
/* Unaligned. This is mainly for pointer arithmetic, and because
|
3802
3834
|
* _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */
|
3803
3835
|
const __m256i* const xinput = (const __m256i *) input;
|
@@ -3829,7 +3861,7 @@ XXH_FORCE_INLINE XXH_TARGET_AVX2 void
|
|
3829
3861
|
XXH3_scrambleAcc_avx2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
|
3830
3862
|
{
|
3831
3863
|
XXH_ASSERT((((size_t)acc) & 31) == 0);
|
3832
|
-
{
|
3864
|
+
{ __m256i* const xacc = (__m256i*) acc;
|
3833
3865
|
/* Unaligned. This is mainly for pointer arithmetic, and because
|
3834
3866
|
* _mm256_loadu_si256 requires a const __m256i * pointer for some reason. */
|
3835
3867
|
const __m256i* const xsecret = (const __m256i *) secret;
|
@@ -3861,23 +3893,21 @@ XXH_FORCE_INLINE XXH_TARGET_AVX2 void XXH3_initCustomSecret_avx2(void* XXH_RESTR
|
|
3861
3893
|
XXH_STATIC_ASSERT(XXH_SEC_ALIGN <= 64);
|
3862
3894
|
(void)(&XXH_writeLE64);
|
3863
3895
|
XXH_PREFETCH(customSecret);
|
3864
|
-
{ __m256i const seed = _mm256_set_epi64x(
|
3896
|
+
{ __m256i const seed = _mm256_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64, (xxh_i64)(0U - seed64), (xxh_i64)seed64);
|
3865
3897
|
|
3866
|
-
|
3867
|
-
|
3898
|
+
const __m256i* const src = (const __m256i*) ((const void*) XXH3_kSecret);
|
3899
|
+
__m256i* dest = ( __m256i*) customSecret;
|
3868
3900
|
|
3869
3901
|
# if defined(__GNUC__) || defined(__clang__)
|
3870
3902
|
/*
|
3871
3903
|
* On GCC & Clang, marking 'dest' as modified will cause the compiler:
|
3872
3904
|
* - do not extract the secret from sse registers in the internal loop
|
3873
3905
|
* - use less common registers, and avoid pushing these reg into stack
|
3874
|
-
* The asm hack causes Clang to assume that XXH3_kSecretPtr aliases with
|
3875
|
-
* customSecret, and on aarch64, this prevented LDP from merging two
|
3876
|
-
* loads together for free. Putting the loads together before the stores
|
3877
|
-
* properly generates LDP.
|
3878
3906
|
*/
|
3879
|
-
|
3907
|
+
XXH_COMPILER_GUARD(dest);
|
3880
3908
|
# endif
|
3909
|
+
XXH_ASSERT(((size_t)src & 31) == 0); /* control alignment */
|
3910
|
+
XXH_ASSERT(((size_t)dest & 31) == 0);
|
3881
3911
|
|
3882
3912
|
/* GCC -O2 need unroll loop manually */
|
3883
3913
|
dest[0] = _mm256_add_epi64(_mm256_stream_load_si256(src+0), seed);
|
@@ -3905,7 +3935,7 @@ XXH3_accumulate_512_sse2( void* XXH_RESTRICT acc,
|
|
3905
3935
|
{
|
3906
3936
|
/* SSE2 is just a half-scale version of the AVX2 version. */
|
3907
3937
|
XXH_ASSERT((((size_t)acc) & 15) == 0);
|
3908
|
-
{
|
3938
|
+
{ __m128i* const xacc = (__m128i *) acc;
|
3909
3939
|
/* Unaligned. This is mainly for pointer arithmetic, and because
|
3910
3940
|
* _mm_loadu_si128 requires a const __m128i * pointer for some reason. */
|
3911
3941
|
const __m128i* const xinput = (const __m128i *) input;
|
@@ -3937,7 +3967,7 @@ XXH_FORCE_INLINE XXH_TARGET_SSE2 void
|
|
3937
3967
|
XXH3_scrambleAcc_sse2(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
|
3938
3968
|
{
|
3939
3969
|
XXH_ASSERT((((size_t)acc) & 15) == 0);
|
3940
|
-
{
|
3970
|
+
{ __m128i* const xacc = (__m128i*) acc;
|
3941
3971
|
/* Unaligned. This is mainly for pointer arithmetic, and because
|
3942
3972
|
* _mm_loadu_si128 requires a const __m128i * pointer for some reason. */
|
3943
3973
|
const __m128i* const xsecret = (const __m128i *) secret;
|
@@ -3969,27 +3999,29 @@ XXH_FORCE_INLINE XXH_TARGET_SSE2 void XXH3_initCustomSecret_sse2(void* XXH_RESTR
|
|
3969
3999
|
{ int const nbRounds = XXH_SECRET_DEFAULT_SIZE / sizeof(__m128i);
|
3970
4000
|
|
3971
4001
|
# if defined(_MSC_VER) && defined(_M_IX86) && _MSC_VER < 1900
|
3972
|
-
|
3973
|
-
XXH_ALIGN(16) const xxh_i64 seed64x2[2] = { (xxh_i64)seed64,
|
4002
|
+
/* MSVC 32bit mode does not support _mm_set_epi64x before 2015 */
|
4003
|
+
XXH_ALIGN(16) const xxh_i64 seed64x2[2] = { (xxh_i64)seed64, (xxh_i64)(0U - seed64) };
|
3974
4004
|
__m128i const seed = _mm_load_si128((__m128i const*)seed64x2);
|
3975
4005
|
# else
|
3976
|
-
__m128i const seed = _mm_set_epi64x(
|
4006
|
+
__m128i const seed = _mm_set_epi64x((xxh_i64)(0U - seed64), (xxh_i64)seed64);
|
3977
4007
|
# endif
|
3978
4008
|
int i;
|
3979
4009
|
|
3980
|
-
|
3981
|
-
|
4010
|
+
const void* const src16 = XXH3_kSecret;
|
4011
|
+
__m128i* dst16 = (__m128i*) customSecret;
|
3982
4012
|
# if defined(__GNUC__) || defined(__clang__)
|
3983
4013
|
/*
|
3984
4014
|
* On GCC & Clang, marking 'dest' as modified will cause the compiler:
|
3985
4015
|
* - do not extract the secret from sse registers in the internal loop
|
3986
4016
|
* - use less common registers, and avoid pushing these reg into stack
|
3987
4017
|
*/
|
3988
|
-
|
4018
|
+
XXH_COMPILER_GUARD(dst16);
|
3989
4019
|
# endif
|
4020
|
+
XXH_ASSERT(((size_t)src16 & 15) == 0); /* control alignment */
|
4021
|
+
XXH_ASSERT(((size_t)dst16 & 15) == 0);
|
3990
4022
|
|
3991
4023
|
for (i=0; i < nbRounds; ++i) {
|
3992
|
-
|
4024
|
+
dst16[i] = _mm_add_epi64(_mm_load_si128((const __m128i *)src16+i), seed);
|
3993
4025
|
} }
|
3994
4026
|
}
|
3995
4027
|
|
@@ -4004,7 +4036,7 @@ XXH3_accumulate_512_neon( void* XXH_RESTRICT acc,
|
|
4004
4036
|
{
|
4005
4037
|
XXH_ASSERT((((size_t)acc) & 15) == 0);
|
4006
4038
|
{
|
4007
|
-
|
4039
|
+
uint64x2_t* const xacc = (uint64x2_t *) acc;
|
4008
4040
|
/* We don't use a uint32x4_t pointer because it causes bus errors on ARMv7. */
|
4009
4041
|
uint8_t const* const xinput = (const uint8_t *) input;
|
4010
4042
|
uint8_t const* const xsecret = (const uint8_t *) secret;
|
@@ -4051,8 +4083,8 @@ XXH3_scrambleAcc_neon(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
|
|
4051
4083
|
uint64x2_t data_vec = veorq_u64 (acc_vec, shifted);
|
4052
4084
|
|
4053
4085
|
/* xacc[i] ^= xsecret[i]; */
|
4054
|
-
uint8x16_t key_vec = vld1q_u8(xsecret + (i * 16));
|
4055
|
-
uint64x2_t data_key = veorq_u64(data_vec, vreinterpretq_u64_u8(key_vec));
|
4086
|
+
uint8x16_t key_vec = vld1q_u8 (xsecret + (i * 16));
|
4087
|
+
uint64x2_t data_key = veorq_u64 (data_vec, vreinterpretq_u64_u8(key_vec));
|
4056
4088
|
|
4057
4089
|
/* xacc[i] *= XXH_PRIME32_1 */
|
4058
4090
|
uint32x2_t data_key_lo, data_key_hi;
|
@@ -4096,7 +4128,8 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
|
|
4096
4128
|
const void* XXH_RESTRICT input,
|
4097
4129
|
const void* XXH_RESTRICT secret)
|
4098
4130
|
{
|
4099
|
-
|
4131
|
+
/* presumed aligned */
|
4132
|
+
unsigned long long* const xacc = (unsigned long long*) acc;
|
4100
4133
|
xxh_u64x2 const* const xinput = (xxh_u64x2 const*) input; /* no alignment restriction */
|
4101
4134
|
xxh_u64x2 const* const xsecret = (xxh_u64x2 const*) secret; /* no alignment restriction */
|
4102
4135
|
xxh_u64x2 const v32 = { 32, 32 };
|
@@ -4111,14 +4144,18 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
|
|
4111
4144
|
xxh_u32x4 const shuffled = (xxh_u32x4)vec_rl(data_key, v32);
|
4112
4145
|
/* product = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)shuffled & 0xFFFFFFFF); */
|
4113
4146
|
xxh_u64x2 const product = XXH_vec_mulo((xxh_u32x4)data_key, shuffled);
|
4114
|
-
xacc[i]
|
4147
|
+
/* acc_vec = xacc[i]; */
|
4148
|
+
xxh_u64x2 acc_vec = vec_xl(0, xacc + 2 * i);
|
4149
|
+
acc_vec += product;
|
4115
4150
|
|
4116
4151
|
/* swap high and low halves */
|
4117
4152
|
#ifdef __s390x__
|
4118
|
-
|
4153
|
+
acc_vec += vec_permi(data_vec, data_vec, 2);
|
4119
4154
|
#else
|
4120
|
-
|
4155
|
+
acc_vec += vec_xxpermdi(data_vec, data_vec, 2);
|
4121
4156
|
#endif
|
4157
|
+
/* xacc[i] = acc_vec; */
|
4158
|
+
vec_xst(acc_vec, 0, xacc + 2 * i);
|
4122
4159
|
}
|
4123
4160
|
}
|
4124
4161
|
|
@@ -4161,7 +4198,7 @@ XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc,
|
|
4161
4198
|
const void* XXH_RESTRICT input,
|
4162
4199
|
const void* XXH_RESTRICT secret)
|
4163
4200
|
{
|
4164
|
-
|
4201
|
+
xxh_u64* const xacc = (xxh_u64*) acc; /* presumed aligned */
|
4165
4202
|
const xxh_u8* const xinput = (const xxh_u8*) input; /* no alignment restriction */
|
4166
4203
|
const xxh_u8* const xsecret = (const xxh_u8*) secret; /* no alignment restriction */
|
4167
4204
|
size_t i;
|
@@ -4177,7 +4214,7 @@ XXH3_accumulate_512_scalar(void* XXH_RESTRICT acc,
|
|
4177
4214
|
XXH_FORCE_INLINE void
|
4178
4215
|
XXH3_scrambleAcc_scalar(void* XXH_RESTRICT acc, const void* XXH_RESTRICT secret)
|
4179
4216
|
{
|
4180
|
-
|
4217
|
+
xxh_u64* const xacc = (xxh_u64*) acc; /* presumed aligned */
|
4181
4218
|
const xxh_u8* const xsecret = (const xxh_u8*) secret; /* no alignment restriction */
|
4182
4219
|
size_t i;
|
4183
4220
|
XXH_ASSERT((((size_t)acc) & (XXH_ACC_ALIGN-1)) == 0);
|
@@ -4231,7 +4268,7 @@ XXH3_initCustomSecret_scalar(void* XXH_RESTRICT customSecret, xxh_u64 seed64)
|
|
4231
4268
|
* without hack: 2654.4 MB/s
|
4232
4269
|
* with hack: 3202.9 MB/s
|
4233
4270
|
*/
|
4234
|
-
|
4271
|
+
XXH_COMPILER_GUARD(kSecretPtr);
|
4235
4272
|
#endif
|
4236
4273
|
/*
|
4237
4274
|
* Note: in debug mode, this overrides the asm optimization
|
@@ -4396,7 +4433,7 @@ XXH3_mergeAccs(const xxh_u64* XXH_RESTRICT acc, const xxh_u8* XXH_RESTRICT secre
|
|
4396
4433
|
* without hack: 2063.7 MB/s
|
4397
4434
|
* with hack: 2560.7 MB/s
|
4398
4435
|
*/
|
4399
|
-
|
4436
|
+
XXH_COMPILER_GUARD(result64);
|
4400
4437
|
#endif
|
4401
4438
|
}
|
4402
4439
|
|
@@ -4425,9 +4462,11 @@ XXH3_hashLong_64b_internal(const void* XXH_RESTRICT input, size_t len,
|
|
4425
4462
|
}
|
4426
4463
|
|
4427
4464
|
/*
|
4428
|
-
* It's important for performance
|
4465
|
+
* It's important for performance to transmit secret's size (when it's static)
|
4466
|
+
* so that the compiler can properly optimize the vectorized loop.
|
4467
|
+
* This makes a big performance difference for "medium" keys (<1 KB) when using AVX instruction set.
|
4429
4468
|
*/
|
4430
|
-
|
4469
|
+
XXH_FORCE_INLINE XXH64_hash_t
|
4431
4470
|
XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len,
|
4432
4471
|
XXH64_hash_t seed64, const xxh_u8* XXH_RESTRICT secret, size_t secretLen)
|
4433
4472
|
{
|
@@ -4436,11 +4475,10 @@ XXH3_hashLong_64b_withSecret(const void* XXH_RESTRICT input, size_t len,
|
|
4436
4475
|
}
|
4437
4476
|
|
4438
4477
|
/*
|
4439
|
-
* It's
|
4440
|
-
*
|
4441
|
-
*
|
4442
|
-
*
|
4443
|
-
* and uses this opportunity to streamline the generated code for better performance.
|
4478
|
+
* It's preferable for performance that XXH3_hashLong is not inlined,
|
4479
|
+
* as it results in a smaller function for small data, easier to the instruction cache.
|
4480
|
+
* Note that inside this no_inline function, we do inline the internal loop,
|
4481
|
+
* and provide a statically defined secret size to allow optimization of vector loop.
|
4444
4482
|
*/
|
4445
4483
|
XXH_NO_INLINE XXH64_hash_t
|
4446
4484
|
XXH3_hashLong_64b_default(const void* XXH_RESTRICT input, size_t len,
|
@@ -4540,6 +4578,14 @@ XXH3_64bits_withSeed(const void* input, size_t len, XXH64_hash_t seed)
|
|
4540
4578
|
return XXH3_64bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), XXH3_hashLong_64b_withSeed);
|
4541
4579
|
}
|
4542
4580
|
|
4581
|
+
XXH_PUBLIC_API XXH64_hash_t
|
4582
|
+
XXH3_64bits_withSecretandSeed(const void* input, size_t len, const void* secret, size_t secretSize, XXH64_hash_t seed)
|
4583
|
+
{
|
4584
|
+
if (len <= XXH3_MIDSIZE_MAX)
|
4585
|
+
return XXH3_64bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL);
|
4586
|
+
return XXH3_hashLong_64b_withSecret(input, len, seed, (const xxh_u8*)secret, secretSize);
|
4587
|
+
}
|
4588
|
+
|
4543
4589
|
|
4544
4590
|
/* === XXH3 streaming === */
|
4545
4591
|
|
@@ -4628,13 +4674,13 @@ XXH_PUBLIC_API XXH_errorcode XXH3_freeState(XXH3_state_t* statePtr)
|
|
4628
4674
|
XXH_PUBLIC_API void
|
4629
4675
|
XXH3_copyState(XXH3_state_t* dst_state, const XXH3_state_t* src_state)
|
4630
4676
|
{
|
4631
|
-
|
4677
|
+
XXH_memcpy(dst_state, src_state, sizeof(*dst_state));
|
4632
4678
|
}
|
4633
4679
|
|
4634
4680
|
static void
|
4635
4681
|
XXH3_reset_internal(XXH3_state_t* statePtr,
|
4636
|
-
|
4637
|
-
|
4682
|
+
XXH64_hash_t seed,
|
4683
|
+
const void* secret, size_t secretSize)
|
4638
4684
|
{
|
4639
4685
|
size_t const initStart = offsetof(XXH3_state_t, bufferedSize);
|
4640
4686
|
size_t const initLength = offsetof(XXH3_state_t, nbStripesPerBlock) - initStart;
|
@@ -4651,6 +4697,7 @@ XXH3_reset_internal(XXH3_state_t* statePtr,
|
|
4651
4697
|
statePtr->acc[6] = XXH_PRIME64_5;
|
4652
4698
|
statePtr->acc[7] = XXH_PRIME32_1;
|
4653
4699
|
statePtr->seed = seed;
|
4700
|
+
statePtr->useSeed = (seed != 0);
|
4654
4701
|
statePtr->extSecret = (const unsigned char*)secret;
|
4655
4702
|
XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN);
|
4656
4703
|
statePtr->secretLimit = secretSize - XXH_STRIPE_LEN;
|
@@ -4683,11 +4730,24 @@ XXH3_64bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed)
|
|
4683
4730
|
{
|
4684
4731
|
if (statePtr == NULL) return XXH_ERROR;
|
4685
4732
|
if (seed==0) return XXH3_64bits_reset(statePtr);
|
4686
|
-
if (seed != statePtr->seed)
|
4733
|
+
if ((seed != statePtr->seed) || (statePtr->extSecret != NULL))
|
4734
|
+
XXH3_initCustomSecret(statePtr->customSecret, seed);
|
4687
4735
|
XXH3_reset_internal(statePtr, seed, NULL, XXH_SECRET_DEFAULT_SIZE);
|
4688
4736
|
return XXH_OK;
|
4689
4737
|
}
|
4690
4738
|
|
4739
|
+
/*! @ingroup xxh3_family */
|
4740
|
+
XXH_PUBLIC_API XXH_errorcode
|
4741
|
+
XXH3_64bits_reset_withSecretandSeed(XXH3_state_t* statePtr, const void* secret, size_t secretSize, XXH64_hash_t seed64)
|
4742
|
+
{
|
4743
|
+
if (statePtr == NULL) return XXH_ERROR;
|
4744
|
+
if (secret == NULL) return XXH_ERROR;
|
4745
|
+
if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
|
4746
|
+
XXH3_reset_internal(statePtr, seed64, secret, secretSize);
|
4747
|
+
statePtr->useSeed = 1; /* always, even if seed64==0 */
|
4748
|
+
return XXH_OK;
|
4749
|
+
}
|
4750
|
+
|
4691
4751
|
/* Note : when XXH3_consumeStripes() is invoked,
|
4692
4752
|
* there must be a guarantee that at least one more byte must be consumed from input
|
4693
4753
|
* so that the function can blindly consume all stripes using the "normal" secret segment */
|
@@ -4715,35 +4775,48 @@ XXH3_consumeStripes(xxh_u64* XXH_RESTRICT acc,
|
|
4715
4775
|
}
|
4716
4776
|
}
|
4717
4777
|
|
4778
|
+
#ifndef XXH3_STREAM_USE_STACK
|
4779
|
+
# ifndef __clang__ /* clang doesn't need additional stack space */
|
4780
|
+
# define XXH3_STREAM_USE_STACK 1
|
4781
|
+
# endif
|
4782
|
+
#endif
|
4718
4783
|
/*
|
4719
4784
|
* Both XXH3_64bits_update and XXH3_128bits_update use this routine.
|
4720
4785
|
*/
|
4721
4786
|
XXH_FORCE_INLINE XXH_errorcode
|
4722
|
-
XXH3_update(XXH3_state_t* state,
|
4723
|
-
const xxh_u8* input, size_t len,
|
4787
|
+
XXH3_update(XXH3_state_t* XXH_RESTRICT const state,
|
4788
|
+
const xxh_u8* XXH_RESTRICT input, size_t len,
|
4724
4789
|
XXH3_f_accumulate_512 f_acc512,
|
4725
4790
|
XXH3_f_scrambleAcc f_scramble)
|
4726
4791
|
{
|
4727
|
-
if (input==NULL)
|
4728
|
-
|
4792
|
+
if (input==NULL) {
|
4793
|
+
XXH_ASSERT(len == 0);
|
4729
4794
|
return XXH_OK;
|
4730
|
-
|
4731
|
-
return XXH_ERROR;
|
4732
|
-
#endif
|
4795
|
+
}
|
4733
4796
|
|
4797
|
+
XXH_ASSERT(state != NULL);
|
4734
4798
|
{ const xxh_u8* const bEnd = input + len;
|
4735
4799
|
const unsigned char* const secret = (state->extSecret == NULL) ? state->customSecret : state->extSecret;
|
4736
|
-
|
4800
|
+
#if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1
|
4801
|
+
/* For some reason, gcc and MSVC seem to suffer greatly
|
4802
|
+
* when operating accumulators directly into state.
|
4803
|
+
* Operating into stack space seems to enable proper optimization.
|
4804
|
+
* clang, on the other hand, doesn't seem to need this trick */
|
4805
|
+
XXH_ALIGN(XXH_ACC_ALIGN) xxh_u64 acc[8]; memcpy(acc, state->acc, sizeof(acc));
|
4806
|
+
#else
|
4807
|
+
xxh_u64* XXH_RESTRICT const acc = state->acc;
|
4808
|
+
#endif
|
4737
4809
|
state->totalLen += len;
|
4738
4810
|
XXH_ASSERT(state->bufferedSize <= XXH3_INTERNALBUFFER_SIZE);
|
4739
4811
|
|
4740
|
-
|
4812
|
+
/* small input : just fill in tmp buffer */
|
4813
|
+
if (state->bufferedSize + len <= XXH3_INTERNALBUFFER_SIZE) {
|
4741
4814
|
XXH_memcpy(state->buffer + state->bufferedSize, input, len);
|
4742
4815
|
state->bufferedSize += (XXH32_hash_t)len;
|
4743
4816
|
return XXH_OK;
|
4744
4817
|
}
|
4745
|
-
/* total input is now > XXH3_INTERNALBUFFER_SIZE */
|
4746
4818
|
|
4819
|
+
/* total input is now > XXH3_INTERNALBUFFER_SIZE */
|
4747
4820
|
#define XXH3_INTERNALBUFFER_STRIPES (XXH3_INTERNALBUFFER_SIZE / XXH_STRIPE_LEN)
|
4748
4821
|
XXH_STATIC_ASSERT(XXH3_INTERNALBUFFER_SIZE % XXH_STRIPE_LEN == 0); /* clean multiple */
|
4749
4822
|
|
@@ -4755,7 +4828,7 @@ XXH3_update(XXH3_state_t* state,
|
|
4755
4828
|
size_t const loadSize = XXH3_INTERNALBUFFER_SIZE - state->bufferedSize;
|
4756
4829
|
XXH_memcpy(state->buffer + state->bufferedSize, input, loadSize);
|
4757
4830
|
input += loadSize;
|
4758
|
-
XXH3_consumeStripes(
|
4831
|
+
XXH3_consumeStripes(acc,
|
4759
4832
|
&state->nbStripesSoFar, state->nbStripesPerBlock,
|
4760
4833
|
state->buffer, XXH3_INTERNALBUFFER_STRIPES,
|
4761
4834
|
secret, state->secretLimit,
|
@@ -4764,25 +4837,62 @@ XXH3_update(XXH3_state_t* state,
|
|
4764
4837
|
}
|
4765
4838
|
XXH_ASSERT(input < bEnd);
|
4766
4839
|
|
4767
|
-
/*
|
4768
|
-
if (input
|
4769
|
-
|
4770
|
-
|
4771
|
-
|
4772
|
-
|
4773
|
-
|
4774
|
-
|
4775
|
-
|
4776
|
-
|
4777
|
-
|
4778
|
-
|
4779
|
-
|
4840
|
+
/* large input to consume : ingest per full block */
|
4841
|
+
if ((size_t)(bEnd - input) > state->nbStripesPerBlock * XXH_STRIPE_LEN) {
|
4842
|
+
size_t nbStripes = (size_t)(bEnd - 1 - input) / XXH_STRIPE_LEN;
|
4843
|
+
XXH_ASSERT(state->nbStripesPerBlock >= state->nbStripesSoFar);
|
4844
|
+
/* join to current block's end */
|
4845
|
+
{ size_t const nbStripesToEnd = state->nbStripesPerBlock - state->nbStripesSoFar;
|
4846
|
+
XXH_ASSERT(nbStripes <= nbStripes);
|
4847
|
+
XXH3_accumulate(acc, input, secret + state->nbStripesSoFar * XXH_SECRET_CONSUME_RATE, nbStripesToEnd, f_acc512);
|
4848
|
+
f_scramble(acc, secret + state->secretLimit);
|
4849
|
+
state->nbStripesSoFar = 0;
|
4850
|
+
input += nbStripesToEnd * XXH_STRIPE_LEN;
|
4851
|
+
nbStripes -= nbStripesToEnd;
|
4852
|
+
}
|
4853
|
+
/* consume per entire blocks */
|
4854
|
+
while(nbStripes >= state->nbStripesPerBlock) {
|
4855
|
+
XXH3_accumulate(acc, input, secret, state->nbStripesPerBlock, f_acc512);
|
4856
|
+
f_scramble(acc, secret + state->secretLimit);
|
4857
|
+
input += state->nbStripesPerBlock * XXH_STRIPE_LEN;
|
4858
|
+
nbStripes -= state->nbStripesPerBlock;
|
4859
|
+
}
|
4860
|
+
/* consume last partial block */
|
4861
|
+
XXH3_accumulate(acc, input, secret, nbStripes, f_acc512);
|
4862
|
+
input += nbStripes * XXH_STRIPE_LEN;
|
4863
|
+
XXH_ASSERT(input < bEnd); /* at least some bytes left */
|
4864
|
+
state->nbStripesSoFar = nbStripes;
|
4865
|
+
/* buffer predecessor of last partial stripe */
|
4866
|
+
XXH_memcpy(state->buffer + sizeof(state->buffer) - XXH_STRIPE_LEN, input - XXH_STRIPE_LEN, XXH_STRIPE_LEN);
|
4867
|
+
XXH_ASSERT(bEnd - input <= XXH_STRIPE_LEN);
|
4868
|
+
} else {
|
4869
|
+
/* content to consume <= block size */
|
4870
|
+
/* Consume input by a multiple of internal buffer size */
|
4871
|
+
if (bEnd - input > XXH3_INTERNALBUFFER_SIZE) {
|
4872
|
+
const xxh_u8* const limit = bEnd - XXH3_INTERNALBUFFER_SIZE;
|
4873
|
+
do {
|
4874
|
+
XXH3_consumeStripes(acc,
|
4875
|
+
&state->nbStripesSoFar, state->nbStripesPerBlock,
|
4876
|
+
input, XXH3_INTERNALBUFFER_STRIPES,
|
4877
|
+
secret, state->secretLimit,
|
4878
|
+
f_acc512, f_scramble);
|
4879
|
+
input += XXH3_INTERNALBUFFER_SIZE;
|
4880
|
+
} while (input<limit);
|
4881
|
+
/* buffer predecessor of last partial stripe */
|
4882
|
+
XXH_memcpy(state->buffer + sizeof(state->buffer) - XXH_STRIPE_LEN, input - XXH_STRIPE_LEN, XXH_STRIPE_LEN);
|
4883
|
+
}
|
4780
4884
|
}
|
4781
|
-
XXH_ASSERT(input < bEnd);
|
4782
4885
|
|
4783
4886
|
/* Some remaining input (always) : buffer it */
|
4887
|
+
XXH_ASSERT(input < bEnd);
|
4888
|
+
XXH_ASSERT(bEnd - input <= XXH3_INTERNALBUFFER_SIZE);
|
4889
|
+
XXH_ASSERT(state->bufferedSize == 0);
|
4784
4890
|
XXH_memcpy(state->buffer, input, (size_t)(bEnd-input));
|
4785
4891
|
state->bufferedSize = (XXH32_hash_t)(bEnd-input);
|
4892
|
+
#if defined(XXH3_STREAM_USE_STACK) && XXH3_STREAM_USE_STACK >= 1
|
4893
|
+
/* save stack accumulators into state */
|
4894
|
+
memcpy(state->acc, acc, sizeof(acc));
|
4895
|
+
#endif
|
4786
4896
|
}
|
4787
4897
|
|
4788
4898
|
return XXH_OK;
|
@@ -4806,7 +4916,7 @@ XXH3_digest_long (XXH64_hash_t* acc,
|
|
4806
4916
|
* Digest on a local copy. This way, the state remains unaltered, and it can
|
4807
4917
|
* continue ingesting more input afterwards.
|
4808
4918
|
*/
|
4809
|
-
|
4919
|
+
XXH_memcpy(acc, state->acc, sizeof(state->acc));
|
4810
4920
|
if (state->bufferedSize >= XXH_STRIPE_LEN) {
|
4811
4921
|
size_t const nbStripes = (state->bufferedSize - 1) / XXH_STRIPE_LEN;
|
4812
4922
|
size_t nbStripesSoFar = state->nbStripesSoFar;
|
@@ -4823,8 +4933,8 @@ XXH3_digest_long (XXH64_hash_t* acc,
|
|
4823
4933
|
xxh_u8 lastStripe[XXH_STRIPE_LEN];
|
4824
4934
|
size_t const catchupSize = XXH_STRIPE_LEN - state->bufferedSize;
|
4825
4935
|
XXH_ASSERT(state->bufferedSize > 0); /* there is always some input buffered */
|
4826
|
-
|
4827
|
-
|
4936
|
+
XXH_memcpy(lastStripe, state->buffer + sizeof(state->buffer) - catchupSize, catchupSize);
|
4937
|
+
XXH_memcpy(lastStripe + catchupSize, state->buffer, state->bufferedSize);
|
4828
4938
|
XXH3_accumulate_512(acc,
|
4829
4939
|
lastStripe,
|
4830
4940
|
secret + state->secretLimit - XXH_SECRET_LASTACC_START);
|
@@ -4843,58 +4953,13 @@ XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (const XXH3_state_t* state)
|
|
4843
4953
|
(xxh_u64)state->totalLen * XXH_PRIME64_1);
|
4844
4954
|
}
|
4845
4955
|
/* totalLen <= XXH3_MIDSIZE_MAX: digesting a short input */
|
4846
|
-
if (state->
|
4956
|
+
if (state->useSeed)
|
4847
4957
|
return XXH3_64bits_withSeed(state->buffer, (size_t)state->totalLen, state->seed);
|
4848
4958
|
return XXH3_64bits_withSecret(state->buffer, (size_t)(state->totalLen),
|
4849
4959
|
secret, state->secretLimit + XXH_STRIPE_LEN);
|
4850
4960
|
}
|
4851
4961
|
|
4852
4962
|
|
4853
|
-
#define XXH_MIN(x, y) (((x) > (y)) ? (y) : (x))
|
4854
|
-
|
4855
|
-
/*! @ingroup xxh3_family */
|
4856
|
-
XXH_PUBLIC_API void
|
4857
|
-
XXH3_generateSecret(void* secretBuffer, const void* customSeed, size_t customSeedSize)
|
4858
|
-
{
|
4859
|
-
XXH_ASSERT(secretBuffer != NULL);
|
4860
|
-
if (customSeedSize == 0) {
|
4861
|
-
memcpy(secretBuffer, XXH3_kSecret, XXH_SECRET_DEFAULT_SIZE);
|
4862
|
-
return;
|
4863
|
-
}
|
4864
|
-
XXH_ASSERT(customSeed != NULL);
|
4865
|
-
|
4866
|
-
{ size_t const segmentSize = sizeof(XXH128_hash_t);
|
4867
|
-
size_t const nbSegments = XXH_SECRET_DEFAULT_SIZE / segmentSize;
|
4868
|
-
XXH128_canonical_t scrambler;
|
4869
|
-
XXH64_hash_t seeds[12];
|
4870
|
-
size_t segnb;
|
4871
|
-
XXH_ASSERT(nbSegments == 12);
|
4872
|
-
XXH_ASSERT(segmentSize * nbSegments == XXH_SECRET_DEFAULT_SIZE); /* exact multiple */
|
4873
|
-
XXH128_canonicalFromHash(&scrambler, XXH128(customSeed, customSeedSize, 0));
|
4874
|
-
|
4875
|
-
/*
|
4876
|
-
* Copy customSeed to seeds[], truncating or repeating as necessary.
|
4877
|
-
*/
|
4878
|
-
{ size_t toFill = XXH_MIN(customSeedSize, sizeof(seeds));
|
4879
|
-
size_t filled = toFill;
|
4880
|
-
memcpy(seeds, customSeed, toFill);
|
4881
|
-
while (filled < sizeof(seeds)) {
|
4882
|
-
toFill = XXH_MIN(filled, sizeof(seeds) - filled);
|
4883
|
-
memcpy((char*)seeds + filled, seeds, toFill);
|
4884
|
-
filled += toFill;
|
4885
|
-
} }
|
4886
|
-
|
4887
|
-
/* generate secret */
|
4888
|
-
memcpy(secretBuffer, &scrambler, sizeof(scrambler));
|
4889
|
-
for (segnb=1; segnb < nbSegments; segnb++) {
|
4890
|
-
size_t const segmentStart = segnb * segmentSize;
|
4891
|
-
XXH128_canonical_t segment;
|
4892
|
-
XXH128_canonicalFromHash(&segment,
|
4893
|
-
XXH128(&scrambler, sizeof(scrambler), XXH_readLE64(seeds + segnb) + segnb) );
|
4894
|
-
memcpy((char*)secretBuffer + segmentStart, &segment, sizeof(segment));
|
4895
|
-
} }
|
4896
|
-
}
|
4897
|
-
|
4898
4963
|
|
4899
4964
|
/* ==========================================
|
4900
4965
|
* XXH3 128 bits (a.k.a XXH128)
|
@@ -5196,9 +5261,10 @@ XXH3_hashLong_128b_default(const void* XXH_RESTRICT input, size_t len,
|
|
5196
5261
|
}
|
5197
5262
|
|
5198
5263
|
/*
|
5199
|
-
* It's important for performance
|
5264
|
+
* It's important for performance to pass @secretLen (when it's static)
|
5265
|
+
* to the compiler, so that it can properly optimize the vectorized loop.
|
5200
5266
|
*/
|
5201
|
-
|
5267
|
+
XXH_FORCE_INLINE XXH128_hash_t
|
5202
5268
|
XXH3_hashLong_128b_withSecret(const void* XXH_RESTRICT input, size_t len,
|
5203
5269
|
XXH64_hash_t seed64,
|
5204
5270
|
const void* XXH_RESTRICT secret, size_t secretLen)
|
@@ -5291,6 +5357,15 @@ XXH3_128bits_withSeed(const void* input, size_t len, XXH64_hash_t seed)
|
|
5291
5357
|
XXH3_hashLong_128b_withSeed);
|
5292
5358
|
}
|
5293
5359
|
|
5360
|
+
/*! @ingroup xxh3_family */
|
5361
|
+
XXH_PUBLIC_API XXH128_hash_t
|
5362
|
+
XXH3_128bits_withSecretandSeed(const void* input, size_t len, const void* secret, size_t secretSize, XXH64_hash_t seed)
|
5363
|
+
{
|
5364
|
+
if (len <= XXH3_MIDSIZE_MAX)
|
5365
|
+
return XXH3_128bits_internal(input, len, seed, XXH3_kSecret, sizeof(XXH3_kSecret), NULL);
|
5366
|
+
return XXH3_hashLong_128b_withSecret(input, len, seed, secret, secretSize);
|
5367
|
+
}
|
5368
|
+
|
5294
5369
|
/*! @ingroup xxh3_family */
|
5295
5370
|
XXH_PUBLIC_API XXH128_hash_t
|
5296
5371
|
XXH128(const void* input, size_t len, XXH64_hash_t seed)
|
@@ -5302,7 +5377,7 @@ XXH128(const void* input, size_t len, XXH64_hash_t seed)
|
|
5302
5377
|
/* === XXH3 128-bit streaming === */
|
5303
5378
|
|
5304
5379
|
/*
|
5305
|
-
* All
|
5380
|
+
* All initialization and update functions are identical to 64-bit streaming variant.
|
5306
5381
|
* The only difference is the finalization routine.
|
5307
5382
|
*/
|
5308
5383
|
|
@@ -5310,31 +5385,28 @@ XXH128(const void* input, size_t len, XXH64_hash_t seed)
|
|
5310
5385
|
XXH_PUBLIC_API XXH_errorcode
|
5311
5386
|
XXH3_128bits_reset(XXH3_state_t* statePtr)
|
5312
5387
|
{
|
5313
|
-
|
5314
|
-
XXH3_reset_internal(statePtr, 0, XXH3_kSecret, XXH_SECRET_DEFAULT_SIZE);
|
5315
|
-
return XXH_OK;
|
5388
|
+
return XXH3_64bits_reset(statePtr);
|
5316
5389
|
}
|
5317
5390
|
|
5318
5391
|
/*! @ingroup xxh3_family */
|
5319
5392
|
XXH_PUBLIC_API XXH_errorcode
|
5320
5393
|
XXH3_128bits_reset_withSecret(XXH3_state_t* statePtr, const void* secret, size_t secretSize)
|
5321
5394
|
{
|
5322
|
-
|
5323
|
-
XXH3_reset_internal(statePtr, 0, secret, secretSize);
|
5324
|
-
if (secret == NULL) return XXH_ERROR;
|
5325
|
-
if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
|
5326
|
-
return XXH_OK;
|
5395
|
+
return XXH3_64bits_reset_withSecret(statePtr, secret, secretSize);
|
5327
5396
|
}
|
5328
5397
|
|
5329
5398
|
/*! @ingroup xxh3_family */
|
5330
5399
|
XXH_PUBLIC_API XXH_errorcode
|
5331
5400
|
XXH3_128bits_reset_withSeed(XXH3_state_t* statePtr, XXH64_hash_t seed)
|
5332
5401
|
{
|
5333
|
-
|
5334
|
-
|
5335
|
-
|
5336
|
-
|
5337
|
-
|
5402
|
+
return XXH3_64bits_reset_withSeed(statePtr, seed);
|
5403
|
+
}
|
5404
|
+
|
5405
|
+
/*! @ingroup xxh3_family */
|
5406
|
+
XXH_PUBLIC_API XXH_errorcode
|
5407
|
+
XXH3_128bits_reset_withSecretandSeed(XXH3_state_t* statePtr, const void* secret, size_t secretSize, XXH64_hash_t seed)
|
5408
|
+
{
|
5409
|
+
return XXH3_64bits_reset_withSecretandSeed(statePtr, secret, secretSize, seed);
|
5338
5410
|
}
|
5339
5411
|
|
5340
5412
|
/*! @ingroup xxh3_family */
|
@@ -5409,8 +5481,8 @@ XXH128_canonicalFromHash(XXH128_canonical_t* dst, XXH128_hash_t hash)
|
|
5409
5481
|
hash.high64 = XXH_swap64(hash.high64);
|
5410
5482
|
hash.low64 = XXH_swap64(hash.low64);
|
5411
5483
|
}
|
5412
|
-
|
5413
|
-
|
5484
|
+
XXH_memcpy(dst, &hash.high64, sizeof(hash.high64));
|
5485
|
+
XXH_memcpy((char*)dst + sizeof(hash.high64), &hash.low64, sizeof(hash.low64));
|
5414
5486
|
}
|
5415
5487
|
|
5416
5488
|
/*! @ingroup xxh3_family */
|
@@ -5423,6 +5495,69 @@ XXH128_hashFromCanonical(const XXH128_canonical_t* src)
|
|
5423
5495
|
return h;
|
5424
5496
|
}
|
5425
5497
|
|
5498
|
+
|
5499
|
+
|
5500
|
+
/* ==========================================
|
5501
|
+
* Secret generators
|
5502
|
+
* ==========================================
|
5503
|
+
*/
|
5504
|
+
#define XXH_MIN(x, y) (((x) > (y)) ? (y) : (x))
|
5505
|
+
|
5506
|
+
static void XXH3_combine16(void* dst, XXH128_hash_t h128)
|
5507
|
+
{
|
5508
|
+
XXH_writeLE64( dst, XXH_readLE64(dst) ^ h128.low64 );
|
5509
|
+
XXH_writeLE64( (char*)dst+8, XXH_readLE64((char*)dst+8) ^ h128.high64 );
|
5510
|
+
}
|
5511
|
+
|
5512
|
+
/*! @ingroup xxh3_family */
|
5513
|
+
XXH_PUBLIC_API XXH_errorcode
|
5514
|
+
XXH3_generateSecret(void* secretBuffer, size_t secretSize, const void* customSeed, size_t customSeedSize)
|
5515
|
+
{
|
5516
|
+
XXH_ASSERT(secretBuffer != NULL);
|
5517
|
+
if (secretBuffer == NULL) return XXH_ERROR;
|
5518
|
+
XXH_ASSERT(secretSize >= XXH3_SECRET_SIZE_MIN);
|
5519
|
+
if (secretSize < XXH3_SECRET_SIZE_MIN) return XXH_ERROR;
|
5520
|
+
if (customSeedSize == 0) {
|
5521
|
+
customSeed = XXH3_kSecret;
|
5522
|
+
customSeedSize = XXH_SECRET_DEFAULT_SIZE;
|
5523
|
+
}
|
5524
|
+
XXH_ASSERT(customSeed != NULL);
|
5525
|
+
if (customSeed == NULL) return XXH_ERROR;
|
5526
|
+
|
5527
|
+
/* Fill secretBuffer with a copy of customSeed - repeat as needed */
|
5528
|
+
{ size_t pos = 0;
|
5529
|
+
while (pos < secretSize) {
|
5530
|
+
size_t const toCopy = XXH_MIN((secretSize - pos), customSeedSize);
|
5531
|
+
memcpy((char*)secretBuffer + pos, customSeed, toCopy);
|
5532
|
+
pos += toCopy;
|
5533
|
+
} }
|
5534
|
+
|
5535
|
+
{ size_t const nbSeg16 = secretSize / 16;
|
5536
|
+
size_t n;
|
5537
|
+
XXH128_canonical_t scrambler;
|
5538
|
+
XXH128_canonicalFromHash(&scrambler, XXH128(customSeed, customSeedSize, 0));
|
5539
|
+
for (n=0; n<nbSeg16; n++) {
|
5540
|
+
XXH128_hash_t const h128 = XXH128(&scrambler, sizeof(scrambler), n);
|
5541
|
+
XXH3_combine16((char*)secretBuffer + n*16, h128);
|
5542
|
+
}
|
5543
|
+
/* last segment */
|
5544
|
+
XXH3_combine16((char*)secretBuffer + secretSize - 16, XXH128_hashFromCanonical(&scrambler));
|
5545
|
+
}
|
5546
|
+
return XXH_OK;
|
5547
|
+
}
|
5548
|
+
|
5549
|
+
/*! @ingroup xxh3_family */
|
5550
|
+
XXH_PUBLIC_API void
|
5551
|
+
XXH3_generateSecret_fromSeed(void* secretBuffer, XXH64_hash_t seed)
|
5552
|
+
{
|
5553
|
+
XXH_ALIGN(XXH_SEC_ALIGN) xxh_u8 secret[XXH_SECRET_DEFAULT_SIZE];
|
5554
|
+
XXH3_initCustomSecret(secret, seed);
|
5555
|
+
XXH_ASSERT(secretBuffer != NULL);
|
5556
|
+
memcpy(secretBuffer, secret, XXH_SECRET_DEFAULT_SIZE);
|
5557
|
+
}
|
5558
|
+
|
5559
|
+
|
5560
|
+
|
5426
5561
|
/* Pop our optimization override from above */
|
5427
5562
|
#if XXH_VECTOR == XXH_AVX2 /* AVX2 */ \
|
5428
5563
|
&& defined(__GNUC__) && !defined(__clang__) /* GCC, not Clang */ \
|
@@ -5432,6 +5567,8 @@ XXH128_hashFromCanonical(const XXH128_canonical_t* src)
|
|
5432
5567
|
|
5433
5568
|
#endif /* XXH_NO_LONG_LONG */
|
5434
5569
|
|
5570
|
+
#endif /* XXH_NO_XXH3 */
|
5571
|
+
|
5435
5572
|
/*!
|
5436
5573
|
* @}
|
5437
5574
|
*/
|