aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/lib')
-rw-r--r--src/core/lib/backoff/backoff.cc23
-rw-r--r--src/core/lib/backoff/backoff.h16
-rw-r--r--src/core/lib/channel/channel_args.cc2
-rw-r--r--src/core/lib/channel/channel_stack.h2
-rw-r--r--src/core/lib/channel/connected_channel.cc2
-rw-r--r--src/core/lib/debug/stats.cc2
-rw-r--r--src/core/lib/debug/trace.cc2
-rw-r--r--src/core/lib/gpr/README.md8
-rw-r--r--src/core/lib/gpr/alloc.cc (renamed from src/core/lib/support/alloc.cc)0
-rw-r--r--src/core/lib/gpr/arena.cc (renamed from src/core/lib/support/arena.cc)2
-rw-r--r--src/core/lib/gpr/arena.h (renamed from src/core/lib/support/arena.h)6
-rw-r--r--src/core/lib/gpr/atm.cc (renamed from src/core/lib/support/atm.cc)0
-rw-r--r--src/core/lib/gpr/avl.cc (renamed from src/core/lib/support/avl.cc)0
-rw-r--r--src/core/lib/gpr/cmdline.cc (renamed from src/core/lib/support/cmdline.cc)2
-rw-r--r--src/core/lib/gpr/cpu_iphone.cc (renamed from src/core/lib/support/cpu_iphone.cc)0
-rw-r--r--src/core/lib/gpr/cpu_linux.cc (renamed from src/core/lib/support/cpu_linux.cc)0
-rw-r--r--src/core/lib/gpr/cpu_posix.cc (renamed from src/core/lib/support/cpu_posix.cc)0
-rw-r--r--src/core/lib/gpr/cpu_windows.cc (renamed from src/core/lib/support/cpu_windows.cc)0
-rw-r--r--src/core/lib/gpr/env.h (renamed from src/core/lib/support/env.h)6
-rw-r--r--src/core/lib/gpr/env_linux.cc (renamed from src/core/lib/support/env_linux.cc)4
-rw-r--r--src/core/lib/gpr/env_posix.cc (renamed from src/core/lib/support/env_posix.cc)4
-rw-r--r--src/core/lib/gpr/env_windows.cc (renamed from src/core/lib/support/env_windows.cc)6
-rw-r--r--src/core/lib/gpr/fork.cc (renamed from src/core/lib/support/fork.cc)4
-rw-r--r--src/core/lib/gpr/fork.h (renamed from src/core/lib/support/fork.h)6
-rw-r--r--src/core/lib/gpr/host_port.cc (renamed from src/core/lib/support/host_port.cc)2
-rw-r--r--src/core/lib/gpr/log.cc (renamed from src/core/lib/support/log.cc)4
-rw-r--r--src/core/lib/gpr/log_android.cc (renamed from src/core/lib/support/log_android.cc)0
-rw-r--r--src/core/lib/gpr/log_linux.cc (renamed from src/core/lib/support/log_linux.cc)0
-rw-r--r--src/core/lib/gpr/log_posix.cc (renamed from src/core/lib/support/log_posix.cc)0
-rw-r--r--src/core/lib/gpr/log_windows.cc (renamed from src/core/lib/support/log_windows.cc)4
-rw-r--r--src/core/lib/gpr/mpscq.cc (renamed from src/core/lib/support/mpscq.cc)2
-rw-r--r--src/core/lib/gpr/mpscq.h (renamed from src/core/lib/support/mpscq.h)6
-rw-r--r--src/core/lib/gpr/murmur_hash.cc (renamed from src/core/lib/support/murmur_hash.cc)2
-rw-r--r--src/core/lib/gpr/murmur_hash.h (renamed from src/core/lib/support/murmur_hash.h)6
-rw-r--r--src/core/lib/gpr/spinlock.h (renamed from src/core/lib/support/spinlock.h)6
-rw-r--r--src/core/lib/gpr/string.cc (renamed from src/core/lib/support/string.cc)2
-rw-r--r--src/core/lib/gpr/string.h (renamed from src/core/lib/support/string.h)6
-rw-r--r--src/core/lib/gpr/string_posix.cc (renamed from src/core/lib/support/string_posix.cc)0
-rw-r--r--src/core/lib/gpr/string_util_windows.cc (renamed from src/core/lib/support/string_util_windows.cc)4
-rw-r--r--src/core/lib/gpr/string_windows.cc (renamed from src/core/lib/support/string_windows.cc)2
-rw-r--r--src/core/lib/gpr/string_windows.h (renamed from src/core/lib/support/string_windows.h)6
-rw-r--r--src/core/lib/gpr/subprocess_posix.cc (renamed from src/core/lib/support/subprocess_posix.cc)0
-rw-r--r--src/core/lib/gpr/subprocess_windows.cc (renamed from src/core/lib/support/subprocess_windows.cc)4
-rw-r--r--src/core/lib/gpr/sync.cc (renamed from src/core/lib/support/sync.cc)0
-rw-r--r--src/core/lib/gpr/sync_posix.cc (renamed from src/core/lib/support/sync_posix.cc)0
-rw-r--r--src/core/lib/gpr/sync_windows.cc (renamed from src/core/lib/support/sync_windows.cc)0
-rw-r--r--src/core/lib/gpr/thd.cc (renamed from src/core/lib/support/thd.cc)0
-rw-r--r--src/core/lib/gpr/thd_internal.h (renamed from src/core/lib/support/thd_internal.h)6
-rw-r--r--src/core/lib/gpr/thd_posix.cc (renamed from src/core/lib/support/thd_posix.cc)2
-rw-r--r--src/core/lib/gpr/thd_windows.cc (renamed from src/core/lib/support/thd_windows.cc)0
-rw-r--r--src/core/lib/gpr/time.cc (renamed from src/core/lib/support/time.cc)0
-rw-r--r--src/core/lib/gpr/time_posix.cc (renamed from src/core/lib/support/time_posix.cc)2
-rw-r--r--src/core/lib/gpr/time_precise.cc (renamed from src/core/lib/support/time_precise.cc)2
-rw-r--r--src/core/lib/gpr/time_precise.h (renamed from src/core/lib/support/time_precise.h)6
-rw-r--r--src/core/lib/gpr/time_windows.cc (renamed from src/core/lib/support/time_windows.cc)2
-rw-r--r--src/core/lib/gpr/tls_pthread.cc (renamed from src/core/lib/support/tls_pthread.cc)0
-rw-r--r--src/core/lib/gpr/tmpfile.h (renamed from src/core/lib/support/tmpfile.h)6
-rw-r--r--src/core/lib/gpr/tmpfile_msys.cc (renamed from src/core/lib/support/tmpfile_msys.cc)4
-rw-r--r--src/core/lib/gpr/tmpfile_posix.cc (renamed from src/core/lib/support/tmpfile_posix.cc)4
-rw-r--r--src/core/lib/gpr/tmpfile_windows.cc (renamed from src/core/lib/support/tmpfile_windows.cc)4
-rw-r--r--src/core/lib/gpr/wrap_memcpy.cc (renamed from src/core/lib/support/wrap_memcpy.cc)0
-rw-r--r--src/core/lib/gprpp/README.md16
-rw-r--r--src/core/lib/gprpp/abstract.h (renamed from src/core/lib/support/abstract.h)6
-rw-r--r--src/core/lib/gprpp/atomic.h (renamed from src/core/lib/support/atomic.h)10
-rw-r--r--src/core/lib/gprpp/atomic_with_atm.h (renamed from src/core/lib/support/atomic_with_atm.h)6
-rw-r--r--src/core/lib/gprpp/atomic_with_std.h (renamed from src/core/lib/support/atomic_with_std.h)6
-rw-r--r--src/core/lib/gprpp/debug_location.h (renamed from src/core/lib/support/debug_location.h)6
-rw-r--r--src/core/lib/gprpp/inlined_vector.h (renamed from src/core/lib/support/vector.h)8
-rw-r--r--src/core/lib/gprpp/manual_constructor.h (renamed from src/core/lib/support/manual_constructor.h)4
-rw-r--r--src/core/lib/gprpp/memory.h (renamed from src/core/lib/support/memory.h)6
-rw-r--r--src/core/lib/gprpp/orphanable.h (renamed from src/core/lib/support/orphanable.h)12
-rw-r--r--src/core/lib/gprpp/ref_counted.h (renamed from src/core/lib/support/ref_counted.h)12
-rw-r--r--src/core/lib/gprpp/ref_counted_ptr.h (renamed from src/core/lib/support/ref_counted_ptr.h)8
-rw-r--r--src/core/lib/http/format_request.cc2
-rw-r--r--src/core/lib/http/httpcli.cc2
-rw-r--r--src/core/lib/http/httpcli_security_connector.cc2
-rw-r--r--src/core/lib/iomgr/call_combiner.h2
-rw-r--r--src/core/lib/iomgr/closure.h2
-rw-r--r--src/core/lib/iomgr/combiner.h2
-rw-r--r--src/core/lib/iomgr/endpoint_pair_posix.cc2
-rw-r--r--src/core/lib/iomgr/ev_epoll1_linux.cc4
-rw-r--r--src/core/lib/iomgr/ev_epollex_linux.cc4
-rw-r--r--src/core/lib/iomgr/ev_epollsig_linux.cc2
-rw-r--r--src/core/lib/iomgr/ev_poll_posix.cc2
-rw-r--r--src/core/lib/iomgr/ev_posix.cc2
-rw-r--r--src/core/lib/iomgr/exec_ctx.h4
-rw-r--r--src/core/lib/iomgr/executor.cc2
-rw-r--r--src/core/lib/iomgr/fork_posix.cc6
-rw-r--r--src/core/lib/iomgr/iomgr.cc4
-rw-r--r--src/core/lib/iomgr/load_file.cc2
-rw-r--r--src/core/lib/iomgr/resolve_address_posix.cc2
-rw-r--r--src/core/lib/iomgr/resolve_address_windows.cc2
-rw-r--r--src/core/lib/iomgr/sockaddr_utils.cc2
-rw-r--r--src/core/lib/iomgr/socket_utils_common_posix.cc2
-rw-r--r--src/core/lib/iomgr/tcp_client_posix.cc2
-rw-r--r--src/core/lib/iomgr/tcp_posix.cc2
-rw-r--r--src/core/lib/iomgr/tcp_server_posix.cc2
-rw-r--r--src/core/lib/iomgr/tcp_uv.cc2
-rw-r--r--src/core/lib/iomgr/timer_generic.cc2
-rw-r--r--src/core/lib/iomgr/udp_server.cc2
-rw-r--r--src/core/lib/profiling/basic_timers.cc2
-rw-r--r--src/core/lib/security/context/security_context.cc2
-rw-r--r--src/core/lib/security/credentials/credentials.cc2
-rw-r--r--src/core/lib/security/credentials/fake/fake_credentials.cc2
-rw-r--r--src/core/lib/security/credentials/google_default/credentials_generic.cc4
-rw-r--r--src/core/lib/security/credentials/google_default/google_default_credentials.cc4
-rw-r--r--src/core/lib/security/credentials/jwt/json_token.cc2
-rw-r--r--src/core/lib/security/credentials/jwt/jwt_verifier.cc2
-rw-r--r--src/core/lib/security/transport/client_auth_filter.cc2
-rw-r--r--src/core/lib/security/transport/secure_endpoint.cc2
-rw-r--r--src/core/lib/security/transport/security_connector.cc4
-rw-r--r--src/core/lib/slice/slice_intern.cc2
-rw-r--r--src/core/lib/slice/slice_string_helpers.cc2
-rw-r--r--src/core/lib/slice/slice_string_helpers.h2
-rw-r--r--src/core/lib/surface/call.cc4
-rw-r--r--src/core/lib/surface/call_log_batch.cc2
-rw-r--r--src/core/lib/surface/channel.cc2
-rw-r--r--src/core/lib/surface/completion_queue.cc4
-rw-r--r--src/core/lib/surface/event_string.cc2
-rw-r--r--src/core/lib/surface/init.cc4
-rw-r--r--src/core/lib/surface/lame_client.cc4
-rw-r--r--src/core/lib/surface/server.cc6
-rw-r--r--src/core/lib/surface/version.cc2
-rw-r--r--src/core/lib/transport/metadata.cc4
-rw-r--r--src/core/lib/transport/service_config.cc2
-rw-r--r--src/core/lib/transport/timeout_encoding.cc2
-rw-r--r--src/core/lib/transport/timeout_encoding.h2
-rw-r--r--src/core/lib/transport/transport.cc2
-rw-r--r--src/core/lib/transport/transport.h2
-rw-r--r--src/core/lib/transport/transport_op_string.cc2
130 files changed, 230 insertions, 207 deletions
diff --git a/src/core/lib/backoff/backoff.cc b/src/core/lib/backoff/backoff.cc
index 41f625a636..d561fc7460 100644
--- a/src/core/lib/backoff/backoff.cc
+++ b/src/core/lib/backoff/backoff.cc
@@ -41,18 +41,20 @@ double generate_uniform_random_number_between(uint32_t* rng_state, double a,
const double range = b - a;
return a + generate_uniform_random_number(rng_state) * range;
}
-} // namespace
-BackOff::BackOff(const Options& options) : options_(options) {
- rng_state_ = static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec);
-}
+} // namespace
-grpc_millis BackOff::Begin() {
- current_backoff_ = options_.initial_backoff();
- return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
+BackOff::BackOff(const Options& options)
+ : options_(options),
+ rng_state_(static_cast<uint32_t>(gpr_now(GPR_CLOCK_REALTIME).tv_nsec)) {
+ Reset();
}
-grpc_millis BackOff::Step() {
+grpc_millis BackOff::NextAttemptTime() {
+ if (initial_) {
+ initial_ = false;
+ return current_backoff_ + grpc_core::ExecCtx::Get()->Now();
+ }
current_backoff_ =
(grpc_millis)(std::min(current_backoff_ * options_.multiplier(),
(double)options_.max_backoff()));
@@ -63,7 +65,10 @@ grpc_millis BackOff::Step() {
return next_timeout + grpc_core::ExecCtx::Get()->Now();
}
-void BackOff::Reset() { current_backoff_ = options_.initial_backoff(); }
+void BackOff::Reset() {
+ current_backoff_ = options_.initial_backoff();
+ initial_ = true;
+}
void BackOff::SetRandomSeed(uint32_t seed) { rng_state_ = seed; }
diff --git a/src/core/lib/backoff/backoff.h b/src/core/lib/backoff/backoff.h
index 84ef9b82e4..de30e5268b 100644
--- a/src/core/lib/backoff/backoff.h
+++ b/src/core/lib/backoff/backoff.h
@@ -32,14 +32,11 @@ class BackOff {
/// Initialize backoff machinery - does not need to be destroyed
explicit BackOff(const Options& options);
- /// Begin retry loop: returns the deadline to be used for the next attempt,
- /// following the backoff strategy.
- grpc_millis Begin();
- /// Step a retry loop: returns the deadline to be used for the next attempt,
- /// following the backoff strategy.
- grpc_millis Step();
- /// Reset the backoff, so the next grpc_backoff_step will be a
- /// grpc_backoff_begin.
+ /// Returns the time at which the next attempt should start.
+ grpc_millis NextAttemptTime();
+
+ /// Reset the backoff, so the next value returned by NextAttemptTime()
+ /// will be the time of the second attempt (rather than the Nth).
void Reset();
void SetRandomSeed(unsigned int seed);
@@ -80,9 +77,10 @@ class BackOff {
private:
const Options options_;
+ uint32_t rng_state_;
+ bool initial_;
/// current delay before retries
grpc_millis current_backoff_;
- uint32_t rng_state_;
};
} // namespace grpc_core
diff --git a/src/core/lib/channel/channel_args.cc b/src/core/lib/channel/channel_args.cc
index 578475b248..634286d403 100644
--- a/src/core/lib/channel/channel_args.cc
+++ b/src/core/lib/channel/channel_args.cc
@@ -29,7 +29,7 @@
#include <grpc/support/useful.h>
#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
static grpc_arg copy_arg(const grpc_arg* src) {
grpc_arg dst;
diff --git a/src/core/lib/channel/channel_stack.h b/src/core/lib/channel/channel_stack.h
index 716866be26..b9f9748001 100644
--- a/src/core/lib/channel/channel_stack.h
+++ b/src/core/lib/channel/channel_stack.h
@@ -40,9 +40,9 @@
#include <grpc/support/time.h>
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/arena.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/polling_entity.h"
-#include "src/core/lib/support/arena.h"
#include "src/core/lib/transport/transport.h"
typedef struct grpc_channel_element grpc_channel_element;
diff --git a/src/core/lib/channel/connected_channel.cc b/src/core/lib/channel/connected_channel.cc
index 9d07cfff4e..fb26bdf586 100644
--- a/src/core/lib/channel/connected_channel.cc
+++ b/src/core/lib/channel/connected_channel.cc
@@ -26,8 +26,8 @@
#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/transport/transport.h"
#define MAX_BUFFER_LENGTH 8192
diff --git a/src/core/lib/debug/stats.cc b/src/core/lib/debug/stats.cc
index 0b39b2b1e7..465c76114d 100644
--- a/src/core/lib/debug/stats.cc
+++ b/src/core/lib/debug/stats.cc
@@ -25,7 +25,7 @@
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
grpc_stats_data* grpc_stats_per_cpu_storage = nullptr;
static size_t g_num_cores;
diff --git a/src/core/lib/debug/trace.cc b/src/core/lib/debug/trace.cc
index a76c1afb4c..d870bbc5e7 100644
--- a/src/core/lib/debug/trace.cc
+++ b/src/core/lib/debug/trace.cc
@@ -23,7 +23,7 @@
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
-#include "src/core/lib/support/env.h"
+#include "src/core/lib/gpr/env.h"
int grpc_tracer_set_enabled(const char* name, int enabled);
diff --git a/src/core/lib/gpr/README.md b/src/core/lib/gpr/README.md
new file mode 100644
index 0000000000..21fb0c796d
--- /dev/null
+++ b/src/core/lib/gpr/README.md
@@ -0,0 +1,8 @@
+# GPR - Google Portable Runtime for C
+
+The files in this directory contain basic utility code and platform
+abstractions for C code. None of this code is gRPC-specific; anything
+here may also be useful for other open source projects written in C.
+
+Note that this is one of the few places in src/core where we allow
+the use of portability macros.
diff --git a/src/core/lib/support/alloc.cc b/src/core/lib/gpr/alloc.cc
index 518bdb99f7..518bdb99f7 100644
--- a/src/core/lib/support/alloc.cc
+++ b/src/core/lib/gpr/alloc.cc
diff --git a/src/core/lib/support/arena.cc b/src/core/lib/gpr/arena.cc
index 5b9dd370d8..177c176732 100644
--- a/src/core/lib/support/arena.cc
+++ b/src/core/lib/gpr/arena.cc
@@ -16,7 +16,7 @@
*
*/
-#include "src/core/lib/support/arena.h"
+#include "src/core/lib/gpr/arena.h"
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/log.h>
diff --git a/src/core/lib/support/arena.h b/src/core/lib/gpr/arena.h
index cfe973a036..339771c0e3 100644
--- a/src/core/lib/support/arena.h
+++ b/src/core/lib/gpr/arena.h
@@ -22,8 +22,8 @@
// Tracks the total memory allocated against it, so that future arenas can
// pre-allocate the right amount of memory
-#ifndef GRPC_CORE_LIB_SUPPORT_ARENA_H
-#define GRPC_CORE_LIB_SUPPORT_ARENA_H
+#ifndef GRPC_CORE_LIB_GPR_ARENA_H
+#define GRPC_CORE_LIB_GPR_ARENA_H
#include <stddef.h>
@@ -36,4 +36,4 @@ void* gpr_arena_alloc(gpr_arena* arena, size_t size);
// Destroy an arena, returning the total number of bytes allocated
size_t gpr_arena_destroy(gpr_arena* arena);
-#endif /* GRPC_CORE_LIB_SUPPORT_ARENA_H */
+#endif /* GRPC_CORE_LIB_GPR_ARENA_H */
diff --git a/src/core/lib/support/atm.cc b/src/core/lib/gpr/atm.cc
index 15bfe52d64..15bfe52d64 100644
--- a/src/core/lib/support/atm.cc
+++ b/src/core/lib/gpr/atm.cc
diff --git a/src/core/lib/support/avl.cc b/src/core/lib/gpr/avl.cc
index 0b67a21f2f..0b67a21f2f 100644
--- a/src/core/lib/support/avl.cc
+++ b/src/core/lib/gpr/avl.cc
diff --git a/src/core/lib/support/cmdline.cc b/src/core/lib/gpr/cmdline.cc
index da9f10a496..4118f9a72a 100644
--- a/src/core/lib/support/cmdline.cc
+++ b/src/core/lib/gpr/cmdline.cc
@@ -25,7 +25,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
typedef enum { ARGTYPE_INT, ARGTYPE_BOOL, ARGTYPE_STRING } argtype;
diff --git a/src/core/lib/support/cpu_iphone.cc b/src/core/lib/gpr/cpu_iphone.cc
index 2847e03ba5..2847e03ba5 100644
--- a/src/core/lib/support/cpu_iphone.cc
+++ b/src/core/lib/gpr/cpu_iphone.cc
diff --git a/src/core/lib/support/cpu_linux.cc b/src/core/lib/gpr/cpu_linux.cc
index 21b1a71dc9..21b1a71dc9 100644
--- a/src/core/lib/support/cpu_linux.cc
+++ b/src/core/lib/gpr/cpu_linux.cc
diff --git a/src/core/lib/support/cpu_posix.cc b/src/core/lib/gpr/cpu_posix.cc
index bca14a0c12..bca14a0c12 100644
--- a/src/core/lib/support/cpu_posix.cc
+++ b/src/core/lib/gpr/cpu_posix.cc
diff --git a/src/core/lib/support/cpu_windows.cc b/src/core/lib/gpr/cpu_windows.cc
index 8d89453403..8d89453403 100644
--- a/src/core/lib/support/cpu_windows.cc
+++ b/src/core/lib/gpr/cpu_windows.cc
diff --git a/src/core/lib/support/env.h b/src/core/lib/gpr/env.h
index 2452fd330d..7f35104be3 100644
--- a/src/core/lib/support/env.h
+++ b/src/core/lib/gpr/env.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ENV_H
-#define GRPC_CORE_LIB_SUPPORT_ENV_H
+#ifndef GRPC_CORE_LIB_GPR_ENV_H
+#define GRPC_CORE_LIB_GPR_ENV_H
#include <stdio.h>
@@ -38,4 +38,4 @@ void gpr_setenv(const char* name, const char* value);
level of logging. So DO NOT USE THIS. */
const char* gpr_getenv_silent(const char* name, char** dst);
-#endif /* GRPC_CORE_LIB_SUPPORT_ENV_H */
+#endif /* GRPC_CORE_LIB_GPR_ENV_H */
diff --git a/src/core/lib/support/env_linux.cc b/src/core/lib/gpr/env_linux.cc
index 0af2de9f7e..17902c3d0b 100644
--- a/src/core/lib/support/env_linux.cc
+++ b/src/core/lib/gpr/env_linux.cc
@@ -25,7 +25,7 @@
#ifdef GPR_LINUX_ENV
-#include "src/core/lib/support/env.h"
+#include "src/core/lib/gpr/env.h"
#include <dlfcn.h>
#include <features.h>
@@ -36,7 +36,7 @@
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
const char* gpr_getenv_silent(const char* name, char** dst) {
const char* insecure_func_used = nullptr;
diff --git a/src/core/lib/support/env_posix.cc b/src/core/lib/gpr/env_posix.cc
index 8146330555..599f85aa72 100644
--- a/src/core/lib/support/env_posix.cc
+++ b/src/core/lib/gpr/env_posix.cc
@@ -20,14 +20,14 @@
#ifdef GPR_POSIX_ENV
-#include "src/core/lib/support/env.h"
+#include "src/core/lib/gpr/env.h"
#include <stdlib.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
const char* gpr_getenv_silent(const char* name, char** dst) {
*dst = gpr_getenv(name);
diff --git a/src/core/lib/support/env_windows.cc b/src/core/lib/gpr/env_windows.cc
index cdb1d58ccd..9ca1e02d03 100644
--- a/src/core/lib/support/env_windows.cc
+++ b/src/core/lib/gpr/env_windows.cc
@@ -22,9 +22,9 @@
#include <windows.h>
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/string_windows.h"
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gpr/string_windows.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
diff --git a/src/core/lib/support/fork.cc b/src/core/lib/gpr/fork.cc
index dc291c4080..c47e686378 100644
--- a/src/core/lib/support/fork.cc
+++ b/src/core/lib/gpr/fork.cc
@@ -16,14 +16,14 @@
*
*/
-#include "src/core/lib/support/fork.h"
+#include "src/core/lib/gpr/fork.h"
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/support/env.h"
+#include "src/core/lib/gpr/env.h"
/*
* NOTE: FORKING IS NOT GENERALLY SUPPORTED, THIS IS ONLY INTENDED TO WORK
diff --git a/src/core/lib/support/fork.h b/src/core/lib/gpr/fork.h
index 215d4214a6..94c61bb836 100644
--- a/src/core/lib/support/fork.h
+++ b/src/core/lib/gpr/fork.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_FORK_H
-#define GRPC_CORE_LIB_SUPPORT_FORK_H
+#ifndef GRPC_CORE_LIB_GPR_FORK_H
+#define GRPC_CORE_LIB_GPR_FORK_H
/*
* NOTE: FORKING IS NOT GENERALLY SUPPORTED, THIS IS ONLY INTENDED TO WORK
@@ -32,4 +32,4 @@ int grpc_fork_support_enabled(void);
// environment variables/compile flags
void grpc_enable_fork_support(int enable);
-#endif /* GRPC_CORE_LIB_SUPPORT_FORK_H */
+#endif /* GRPC_CORE_LIB_GPR_FORK_H */
diff --git a/src/core/lib/support/host_port.cc b/src/core/lib/gpr/host_port.cc
index cb8e3d4479..29178279d3 100644
--- a/src/core/lib/support/host_port.cc
+++ b/src/core/lib/gpr/host_port.cc
@@ -23,7 +23,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
int gpr_join_host_port(char** out, const char* host, int port) {
if (host[0] != '[' && strchr(host, ':') != nullptr) {
diff --git a/src/core/lib/support/log.cc b/src/core/lib/gpr/log.cc
index 2a40745e97..19c0f6c34d 100644
--- a/src/core/lib/support/log.cc
+++ b/src/core/lib/gpr/log.cc
@@ -21,8 +21,8 @@
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
#include <stdio.h>
#include <string.h>
diff --git a/src/core/lib/support/log_android.cc b/src/core/lib/gpr/log_android.cc
index 0d3ac0fe52..0d3ac0fe52 100644
--- a/src/core/lib/support/log_android.cc
+++ b/src/core/lib/gpr/log_android.cc
diff --git a/src/core/lib/support/log_linux.cc b/src/core/lib/gpr/log_linux.cc
index 6b1f1c71e4..6b1f1c71e4 100644
--- a/src/core/lib/support/log_linux.cc
+++ b/src/core/lib/gpr/log_linux.cc
diff --git a/src/core/lib/support/log_posix.cc b/src/core/lib/gpr/log_posix.cc
index 6f93cdefcd..6f93cdefcd 100644
--- a/src/core/lib/support/log_posix.cc
+++ b/src/core/lib/gpr/log_posix.cc
diff --git a/src/core/lib/support/log_windows.cc b/src/core/lib/gpr/log_windows.cc
index 0013bf448f..caaa973f5a 100644
--- a/src/core/lib/support/log_windows.cc
+++ b/src/core/lib/gpr/log_windows.cc
@@ -29,8 +29,8 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/string_windows.h"
+#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gpr/string_windows.h"
void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) {
diff --git a/src/core/lib/support/mpscq.cc b/src/core/lib/gpr/mpscq.cc
index 47e896d2df..34fc050a11 100644
--- a/src/core/lib/support/mpscq.cc
+++ b/src/core/lib/gpr/mpscq.cc
@@ -16,7 +16,7 @@
*
*/
-#include "src/core/lib/support/mpscq.h"
+#include "src/core/lib/gpr/mpscq.h"
#include <grpc/support/log.h>
diff --git a/src/core/lib/support/mpscq.h b/src/core/lib/gpr/mpscq.h
index 648ead1f5b..4409c5c9f5 100644
--- a/src/core/lib/support/mpscq.h
+++ b/src/core/lib/gpr/mpscq.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_MPSCQ_H
-#define GRPC_CORE_LIB_SUPPORT_MPSCQ_H
+#ifndef GRPC_CORE_LIB_GPR_MPSCQ_H
+#define GRPC_CORE_LIB_GPR_MPSCQ_H
#include <grpc/support/atm.h>
#include <grpc/support/sync.h>
@@ -81,4 +81,4 @@ gpr_mpscq_node* gpr_locked_mpscq_try_pop(gpr_locked_mpscq* q);
// calling this function
gpr_mpscq_node* gpr_locked_mpscq_pop(gpr_locked_mpscq* q);
-#endif /* GRPC_CORE_LIB_SUPPORT_MPSCQ_H */
+#endif /* GRPC_CORE_LIB_GPR_MPSCQ_H */
diff --git a/src/core/lib/support/murmur_hash.cc b/src/core/lib/gpr/murmur_hash.cc
index 2f0e71a53c..3f5e04d211 100644
--- a/src/core/lib/support/murmur_hash.cc
+++ b/src/core/lib/gpr/murmur_hash.cc
@@ -16,7 +16,7 @@
*
*/
-#include "src/core/lib/support/murmur_hash.h"
+#include "src/core/lib/gpr/murmur_hash.h"
#include <string.h>
diff --git a/src/core/lib/support/murmur_hash.h b/src/core/lib/gpr/murmur_hash.h
index 422770f103..8004889a9a 100644
--- a/src/core/lib/support/murmur_hash.h
+++ b/src/core/lib/gpr/murmur_hash.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_MURMUR_HASH_H
-#define GRPC_CORE_LIB_SUPPORT_MURMUR_HASH_H
+#ifndef GRPC_CORE_LIB_GPR_MURMUR_HASH_H
+#define GRPC_CORE_LIB_GPR_MURMUR_HASH_H
#include <grpc/support/port_platform.h>
@@ -26,4 +26,4 @@
/* compute the hash of key (length len) */
uint32_t gpr_murmur_hash3(const void* key, size_t len, uint32_t seed);
-#endif /* GRPC_CORE_LIB_SUPPORT_MURMUR_HASH_H */
+#endif /* GRPC_CORE_LIB_GPR_MURMUR_HASH_H */
diff --git a/src/core/lib/support/spinlock.h b/src/core/lib/gpr/spinlock.h
index 8b439642e9..f03be1d791 100644
--- a/src/core/lib/support/spinlock.h
+++ b/src/core/lib/gpr/spinlock.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_SPINLOCK_H
-#define GRPC_CORE_LIB_SUPPORT_SPINLOCK_H
+#ifndef GRPC_CORE_LIB_GPR_SPINLOCK_H
+#define GRPC_CORE_LIB_GPR_SPINLOCK_H
#include <grpc/support/atm.h>
@@ -41,4 +41,4 @@ typedef struct {
do { \
} while (!gpr_spinlock_trylock((lock)))
-#endif /* GRPC_CORE_LIB_SUPPORT_SPINLOCK_H */
+#endif /* GRPC_CORE_LIB_GPR_SPINLOCK_H */
diff --git a/src/core/lib/support/string.cc b/src/core/lib/gpr/string.cc
index e31ad72c68..919d957d1b 100644
--- a/src/core/lib/support/string.cc
+++ b/src/core/lib/gpr/string.cc
@@ -16,7 +16,7 @@
*
*/
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
#include <ctype.h>
#include <limits.h>
diff --git a/src/core/lib/support/string.h b/src/core/lib/gpr/string.h
index dd37f0b0e1..ef3a8c6086 100644
--- a/src/core/lib/support/string.h
+++ b/src/core/lib/gpr/string.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_STRING_H
-#define GRPC_CORE_LIB_SUPPORT_STRING_H
+#ifndef GRPC_CORE_LIB_GPR_STRING_H
+#define GRPC_CORE_LIB_GPR_STRING_H
#include <stdbool.h>
#include <stddef.h>
@@ -106,4 +106,4 @@ void* gpr_memrchr(const void* s, int c, size_t n);
/** Return true if lower(s) equals "true", "yes" or "1", otherwise false. */
bool gpr_is_true(const char* s);
-#endif /* GRPC_CORE_LIB_SUPPORT_STRING_H */
+#endif /* GRPC_CORE_LIB_GPR_STRING_H */
diff --git a/src/core/lib/support/string_posix.cc b/src/core/lib/gpr/string_posix.cc
index 8b818e39b9..8b818e39b9 100644
--- a/src/core/lib/support/string_posix.cc
+++ b/src/core/lib/gpr/string_posix.cc
diff --git a/src/core/lib/support/string_util_windows.cc b/src/core/lib/gpr/string_util_windows.cc
index e2b386be55..8c8c99cd21 100644
--- a/src/core/lib/support/string_util_windows.cc
+++ b/src/core/lib/gpr/string_util_windows.cc
@@ -36,8 +36,8 @@
#include <grpc/support/log_windows.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/string_windows.h"
+#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gpr/string_windows.h"
#if defined UNICODE || defined _UNICODE
LPTSTR
diff --git a/src/core/lib/support/string_windows.cc b/src/core/lib/gpr/string_windows.cc
index ceb78f0054..25bfd412e4 100644
--- a/src/core/lib/support/string_windows.cc
+++ b/src/core/lib/gpr/string_windows.cc
@@ -29,7 +29,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
int gpr_asprintf(char** strp, const char* format, ...) {
va_list args;
diff --git a/src/core/lib/support/string_windows.h b/src/core/lib/gpr/string_windows.h
index 7c7f31e7aa..e370f802cf 100644
--- a/src/core/lib/support/string_windows.h
+++ b/src/core/lib/gpr/string_windows.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_STRING_WINDOWS_H
-#define GRPC_CORE_LIB_SUPPORT_STRING_WINDOWS_H
+#ifndef GRPC_CORE_LIB_GPR_STRING_WINDOWS_H
+#define GRPC_CORE_LIB_GPR_STRING_WINDOWS_H
#include <grpc/support/port_platform.h>
@@ -29,4 +29,4 @@ LPSTR gpr_tchar_to_char(LPCTSTR input);
#endif /* GPR_WINDOWS */
-#endif /* GRPC_CORE_LIB_SUPPORT_STRING_WINDOWS_H */
+#endif /* GRPC_CORE_LIB_GPR_STRING_WINDOWS_H */
diff --git a/src/core/lib/support/subprocess_posix.cc b/src/core/lib/gpr/subprocess_posix.cc
index dc046b6499..dc046b6499 100644
--- a/src/core/lib/support/subprocess_posix.cc
+++ b/src/core/lib/gpr/subprocess_posix.cc
diff --git a/src/core/lib/support/subprocess_windows.cc b/src/core/lib/gpr/subprocess_windows.cc
index dcdafb5a63..1947d475e3 100644
--- a/src/core/lib/support/subprocess_windows.cc
+++ b/src/core/lib/gpr/subprocess_windows.cc
@@ -27,8 +27,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/subprocess.h>
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/string_windows.h"
+#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gpr/string_windows.h"
struct gpr_subprocess {
PROCESS_INFORMATION pi;
diff --git a/src/core/lib/support/sync.cc b/src/core/lib/gpr/sync.cc
index 347ffcd00e..347ffcd00e 100644
--- a/src/core/lib/support/sync.cc
+++ b/src/core/lib/gpr/sync.cc
diff --git a/src/core/lib/support/sync_posix.cc b/src/core/lib/gpr/sync_posix.cc
index c3f6b10463..c3f6b10463 100644
--- a/src/core/lib/support/sync_posix.cc
+++ b/src/core/lib/gpr/sync_posix.cc
diff --git a/src/core/lib/support/sync_windows.cc b/src/core/lib/gpr/sync_windows.cc
index 7cd41633d5..7cd41633d5 100644
--- a/src/core/lib/support/sync_windows.cc
+++ b/src/core/lib/gpr/sync_windows.cc
diff --git a/src/core/lib/support/thd.cc b/src/core/lib/gpr/thd.cc
index ca62615d65..ca62615d65 100644
--- a/src/core/lib/support/thd.cc
+++ b/src/core/lib/gpr/thd.cc
diff --git a/src/core/lib/support/thd_internal.h b/src/core/lib/gpr/thd_internal.h
index 38bffc847d..692c00c8e1 100644
--- a/src/core/lib/support/thd_internal.h
+++ b/src/core/lib/gpr/thd_internal.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_THD_INTERNAL_H
-#define GRPC_CORE_LIB_SUPPORT_THD_INTERNAL_H
+#ifndef GRPC_CORE_LIB_GPR_THD_INTERNAL_H
+#define GRPC_CORE_LIB_GPR_THD_INTERNAL_H
#include <grpc/support/time.h>
@@ -27,4 +27,4 @@ void gpr_thd_init();
/* Wait for all outstanding threads to finish, up to deadline */
int gpr_await_threads(gpr_timespec deadline);
-#endif /* GRPC_CORE_LIB_SUPPORT_THD_INTERNAL_H */
+#endif /* GRPC_CORE_LIB_GPR_THD_INTERNAL_H */
diff --git a/src/core/lib/support/thd_posix.cc b/src/core/lib/gpr/thd_posix.cc
index f0ed48dbfc..cfff0df6de 100644
--- a/src/core/lib/support/thd_posix.cc
+++ b/src/core/lib/gpr/thd_posix.cc
@@ -31,7 +31,7 @@
#include <stdlib.h>
#include <string.h>
-#include "src/core/lib/support/fork.h"
+#include "src/core/lib/gpr/fork.h"
static gpr_mu g_mu;
static gpr_cv g_cv;
diff --git a/src/core/lib/support/thd_windows.cc b/src/core/lib/gpr/thd_windows.cc
index f920770f32..f920770f32 100644
--- a/src/core/lib/support/thd_windows.cc
+++ b/src/core/lib/gpr/thd_windows.cc
diff --git a/src/core/lib/support/time.cc b/src/core/lib/gpr/time.cc
index 6903674d75..6903674d75 100644
--- a/src/core/lib/support/time.cc
+++ b/src/core/lib/gpr/time.cc
diff --git a/src/core/lib/support/time_posix.cc b/src/core/lib/gpr/time_posix.cc
index b2087c93cf..9c7e86b080 100644
--- a/src/core/lib/support/time_posix.cc
+++ b/src/core/lib/gpr/time_posix.cc
@@ -17,7 +17,7 @@
*/
#include <grpc/support/port_platform.h>
-#include "src/core/lib/support/time_precise.h"
+#include "src/core/lib/gpr/time_precise.h"
#ifdef GPR_POSIX_TIME
diff --git a/src/core/lib/support/time_precise.cc b/src/core/lib/gpr/time_precise.cc
index b7372df1b8..3c7aaabc40 100644
--- a/src/core/lib/support/time_precise.cc
+++ b/src/core/lib/gpr/time_precise.cc
@@ -20,7 +20,7 @@
#include <grpc/support/time.h>
#include <stdio.h>
-#include "src/core/lib/support/time_precise.h"
+#include "src/core/lib/gpr/time_precise.h"
#ifdef GRPC_TIMERS_RDTSC
#if defined(__i386__)
diff --git a/src/core/lib/support/time_precise.h b/src/core/lib/gpr/time_precise.h
index 35cd154dbd..acc4ee3d1b 100644
--- a/src/core/lib/support/time_precise.h
+++ b/src/core/lib/gpr/time_precise.h
@@ -16,12 +16,12 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_TIME_PRECISE_H
-#define GRPC_CORE_LIB_SUPPORT_TIME_PRECISE_H
+#ifndef GRPC_CORE_LIB_GPR_TIME_PRECISE_H
+#define GRPC_CORE_LIB_GPR_TIME_PRECISE_H
#include <grpc/support/time.h>
void gpr_precise_clock_init(void);
void gpr_precise_clock_now(gpr_timespec* clk);
-#endif /* GRPC_CORE_LIB_SUPPORT_TIME_PRECISE_H */
+#endif /* GRPC_CORE_LIB_GPR_TIME_PRECISE_H */
diff --git a/src/core/lib/support/time_windows.cc b/src/core/lib/gpr/time_windows.cc
index fb17e5c079..247cc16468 100644
--- a/src/core/lib/support/time_windows.cc
+++ b/src/core/lib/gpr/time_windows.cc
@@ -28,7 +28,7 @@
#include <process.h>
#include <sys/timeb.h>
-#include "src/core/lib/support/time_precise.h"
+#include "src/core/lib/gpr/time_precise.h"
static LARGE_INTEGER g_start_time;
static double g_time_scale;
diff --git a/src/core/lib/support/tls_pthread.cc b/src/core/lib/gpr/tls_pthread.cc
index ebeef2a8c2..ebeef2a8c2 100644
--- a/src/core/lib/support/tls_pthread.cc
+++ b/src/core/lib/gpr/tls_pthread.cc
diff --git a/src/core/lib/support/tmpfile.h b/src/core/lib/gpr/tmpfile.h
index c5ceda8675..f47ec7aa63 100644
--- a/src/core/lib/support/tmpfile.h
+++ b/src/core/lib/gpr/tmpfile.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_TMPFILE_H
-#define GRPC_CORE_LIB_SUPPORT_TMPFILE_H
+#ifndef GRPC_CORE_LIB_GPR_TMPFILE_H
+#define GRPC_CORE_LIB_GPR_TMPFILE_H
#include <stdio.h>
@@ -27,4 +27,4 @@
unless an error occurs in which case it will be set to NULL. */
FILE* gpr_tmpfile(const char* prefix, char** tmp_filename);
-#endif /* GRPC_CORE_LIB_SUPPORT_TMPFILE_H */
+#endif /* GRPC_CORE_LIB_GPR_TMPFILE_H */
diff --git a/src/core/lib/support/tmpfile_msys.cc b/src/core/lib/gpr/tmpfile_msys.cc
index 430e866629..76cd886f3a 100644
--- a/src/core/lib/support/tmpfile_msys.cc
+++ b/src/core/lib/gpr/tmpfile_msys.cc
@@ -29,8 +29,8 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string_windows.h"
-#include "src/core/lib/support/tmpfile.h"
+#include "src/core/lib/gpr/string_windows.h"
+#include "src/core/lib/gpr/tmpfile.h"
FILE* gpr_tmpfile(const char* prefix, char** tmp_filename_out) {
FILE* result = NULL;
diff --git a/src/core/lib/support/tmpfile_posix.cc b/src/core/lib/gpr/tmpfile_posix.cc
index 79c5c68874..ffdad335d6 100644
--- a/src/core/lib/support/tmpfile_posix.cc
+++ b/src/core/lib/gpr/tmpfile_posix.cc
@@ -20,7 +20,7 @@
#ifdef GPR_POSIX_TMPFILE
-#include "src/core/lib/support/tmpfile.h"
+#include "src/core/lib/gpr/tmpfile.h"
#include <errno.h>
#include <stdlib.h>
@@ -31,7 +31,7 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
FILE* gpr_tmpfile(const char* prefix, char** tmp_filename) {
FILE* result = nullptr;
diff --git a/src/core/lib/support/tmpfile_windows.cc b/src/core/lib/gpr/tmpfile_windows.cc
index 2b10bcde43..d486808418 100644
--- a/src/core/lib/support/tmpfile_windows.cc
+++ b/src/core/lib/gpr/tmpfile_windows.cc
@@ -29,8 +29,8 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string_windows.h"
-#include "src/core/lib/support/tmpfile.h"
+#include "src/core/lib/gpr/string_windows.h"
+#include "src/core/lib/gpr/tmpfile.h"
FILE* gpr_tmpfile(const char* prefix, char** tmp_filename_out) {
FILE* result = NULL;
diff --git a/src/core/lib/support/wrap_memcpy.cc b/src/core/lib/gpr/wrap_memcpy.cc
index 9b8608e056..9b8608e056 100644
--- a/src/core/lib/support/wrap_memcpy.cc
+++ b/src/core/lib/gpr/wrap_memcpy.cc
diff --git a/src/core/lib/gprpp/README.md b/src/core/lib/gprpp/README.md
new file mode 100644
index 0000000000..eab018bb31
--- /dev/null
+++ b/src/core/lib/gprpp/README.md
@@ -0,0 +1,16 @@
+# GPR++ - Google Portable Runtime for C++
+
+The files in this directory contain various utility code for C++ code.
+None of this code is gRPC-specific; anything here may also be useful
+for other open source projects written in C++.
+
+Note that this is one of the few places in src/core where we allow
+the use of portability macros.
+
+Note that this is the only place in src/core where we allow
+use of the C++ standard library (i.e., anything in the `std::`
+namespace). And for now, we require that any use of the
+standard library is build-time-only -- i.e., we do not allow
+run-time dependencies on libstdc++. For more details, see
+[gRFC L6](/grpc/proposal/blob/master/L6-allow-c%2B%2B-in-grpc-core.md) and
+[Moving gRPC core to C++](/grpc/grpc/blob/master/doc/core/moving-to-c%2B%2B.md).
diff --git a/src/core/lib/support/abstract.h b/src/core/lib/gprpp/abstract.h
index 1dffa30128..cc96edc49b 100644
--- a/src/core/lib/support/abstract.h
+++ b/src/core/lib/gprpp/abstract.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ABSTRACT_H
-#define GRPC_CORE_LIB_SUPPORT_ABSTRACT_H
+#ifndef GRPC_CORE_LIB_GPRPP_ABSTRACT_H
+#define GRPC_CORE_LIB_GPRPP_ABSTRACT_H
// This is needed to support abstract base classes in the c core. Since gRPC
// doesn't have a c++ runtime, it will hit a linker error on delete unless
@@ -31,4 +31,4 @@
#define GRPC_ABSTRACT \
{ GPR_ASSERT(false); }
-#endif /* GRPC_CORE_LIB_SUPPORT_ABSTRACT_H */
+#endif /* GRPC_CORE_LIB_GPRPP_ABSTRACT_H */
diff --git a/src/core/lib/support/atomic.h b/src/core/lib/gprpp/atomic.h
index 73c59ae3cd..8b08fc4e9c 100644
--- a/src/core/lib/support/atomic.h
+++ b/src/core/lib/gprpp/atomic.h
@@ -16,15 +16,15 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ATOMIC_H
-#define GRPC_CORE_LIB_SUPPORT_ATOMIC_H
+#ifndef GRPC_CORE_LIB_GPRPP_ATOMIC_H
+#define GRPC_CORE_LIB_GPRPP_ATOMIC_H
#include <grpc/support/port_platform.h>
#ifdef GPR_HAS_CXX11_ATOMIC
-#include "src/core/lib/support/atomic_with_std.h"
+#include "src/core/lib/gprpp/atomic_with_std.h"
#else
-#include "src/core/lib/support/atomic_with_atm.h"
+#include "src/core/lib/gprpp/atomic_with_atm.h"
#endif
-#endif /* GRPC_CORE_LIB_SUPPORT_ATOMIC_H */
+#endif /* GRPC_CORE_LIB_GPRPP_ATOMIC_H */
diff --git a/src/core/lib/support/atomic_with_atm.h b/src/core/lib/gprpp/atomic_with_atm.h
index fe00e9b5bc..6abf0bc38d 100644
--- a/src/core/lib/support/atomic_with_atm.h
+++ b/src/core/lib/gprpp/atomic_with_atm.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_ATM_H
-#define GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_ATM_H
+#ifndef GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_ATM_H
+#define GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_ATM_H
#include <grpc/support/atm.h>
@@ -52,4 +52,4 @@ class atomic<bool> {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_ATM_H */
+#endif /* GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_ATM_H */
diff --git a/src/core/lib/support/atomic_with_std.h b/src/core/lib/gprpp/atomic_with_std.h
index c7a92f7012..83322b81c1 100644
--- a/src/core/lib/support/atomic_with_std.h
+++ b/src/core/lib/gprpp/atomic_with_std.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_STD_H
-#define GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_STD_H
+#ifndef GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_STD_H
+#define GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_STD_H
#include <atomic>
@@ -30,4 +30,4 @@ typedef std::memory_order memory_order;
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_ATOMIC_WITH_STD_H */
+#endif /* GRPC_CORE_LIB_GPRPP_ATOMIC_WITH_STD_H */
diff --git a/src/core/lib/support/debug_location.h b/src/core/lib/gprpp/debug_location.h
index 9b3f9220fc..287761beaf 100644
--- a/src/core/lib/support/debug_location.h
+++ b/src/core/lib/gprpp/debug_location.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_DEBUG_LOCATION_H
-#define GRPC_CORE_LIB_SUPPORT_DEBUG_LOCATION_H
+#ifndef GRPC_CORE_LIB_GPRPP_DEBUG_LOCATION_H
+#define GRPC_CORE_LIB_GPRPP_DEBUG_LOCATION_H
namespace grpc_core {
@@ -49,4 +49,4 @@ class DebugLocation {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_DEBUG_LOCATION_H */
+#endif /* GRPC_CORE_LIB_GPRPP_DEBUG_LOCATION_H */
diff --git a/src/core/lib/support/vector.h b/src/core/lib/gprpp/inlined_vector.h
index 2f249a5b9e..b78f85b893 100644
--- a/src/core/lib/support/vector.h
+++ b/src/core/lib/gprpp/inlined_vector.h
@@ -16,12 +16,12 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_VECTOR_H
-#define GRPC_CORE_LIB_SUPPORT_VECTOR_H
+#ifndef GRPC_CORE_LIB_GPRPP_INLINED_VECTOR_H
+#define GRPC_CORE_LIB_GPRPP_INLINED_VECTOR_H
#include <cassert>
-#include "src/core/lib/support/memory.h"
+#include "src/core/lib/gprpp/memory.h"
namespace grpc_core {
@@ -109,4 +109,4 @@ class InlinedVector {
} // namespace grpc_core
-#endif
+#endif /* GRPC_CORE_LIB_GPRPP_INLINED_VECTOR_H */
diff --git a/src/core/lib/support/manual_constructor.h b/src/core/lib/gprpp/manual_constructor.h
index fda7653dbc..cee38abc1b 100644
--- a/src/core/lib/support/manual_constructor.h
+++ b/src/core/lib/gprpp/manual_constructor.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_MANUAL_CONSTRUCTOR_H
-#define GRPC_CORE_LIB_SUPPORT_MANUAL_CONSTRUCTOR_H
+#ifndef GRPC_CORE_LIB_GPRPP_MANUAL_CONSTRUCTOR_H
+#define GRPC_CORE_LIB_GPRPP_MANUAL_CONSTRUCTOR_H
// manually construct a region of memory with some type
diff --git a/src/core/lib/support/memory.h b/src/core/lib/gprpp/memory.h
index 695418e3e1..17f42f5983 100644
--- a/src/core/lib/support/memory.h
+++ b/src/core/lib/gprpp/memory.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_MEMORY_H
-#define GRPC_CORE_LIB_SUPPORT_MEMORY_H
+#ifndef GRPC_CORE_LIB_GPRPP_MEMORY_H
+#define GRPC_CORE_LIB_GPRPP_MEMORY_H
#include <grpc/support/alloc.h>
@@ -97,4 +97,4 @@ class Allocator {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_MEMORY_H */
+#endif /* GRPC_CORE_LIB_GPRPP_MEMORY_H */
diff --git a/src/core/lib/support/orphanable.h b/src/core/lib/gprpp/orphanable.h
index 2f537573fd..50199730c9 100644
--- a/src/core/lib/support/orphanable.h
+++ b/src/core/lib/gprpp/orphanable.h
@@ -16,8 +16,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_ORPHANABLE_H
-#define GRPC_CORE_LIB_SUPPORT_ORPHANABLE_H
+#ifndef GRPC_CORE_LIB_GPRPP_ORPHANABLE_H
+#define GRPC_CORE_LIB_GPRPP_ORPHANABLE_H
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
@@ -25,9 +25,9 @@
#include <memory>
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/support/abstract.h"
-#include "src/core/lib/support/debug_location.h"
-#include "src/core/lib/support/memory.h"
+#include "src/core/lib/gprpp/abstract.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/gprpp/memory.h"
namespace grpc_core {
@@ -168,4 +168,4 @@ class InternallyRefCountedWithTracing : public Orphanable {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_ORPHANABLE_H */
+#endif /* GRPC_CORE_LIB_GPRPP_ORPHANABLE_H */
diff --git a/src/core/lib/support/ref_counted.h b/src/core/lib/gprpp/ref_counted.h
index 48c11f7bbf..c68118a71a 100644
--- a/src/core/lib/support/ref_counted.h
+++ b/src/core/lib/gprpp/ref_counted.h
@@ -16,16 +16,16 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_REF_COUNTED_H
-#define GRPC_CORE_LIB_SUPPORT_REF_COUNTED_H
+#ifndef GRPC_CORE_LIB_GPRPP_REF_COUNTED_H
+#define GRPC_CORE_LIB_GPRPP_REF_COUNTED_H
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/support/abstract.h"
-#include "src/core/lib/support/debug_location.h"
-#include "src/core/lib/support/memory.h"
+#include "src/core/lib/gprpp/abstract.h"
+#include "src/core/lib/gprpp/debug_location.h"
+#include "src/core/lib/gprpp/memory.h"
namespace grpc_core {
@@ -130,4 +130,4 @@ class RefCountedWithTracing {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_REF_COUNTED_H */
+#endif /* GRPC_CORE_LIB_GPRPP_REF_COUNTED_H */
diff --git a/src/core/lib/support/ref_counted_ptr.h b/src/core/lib/gprpp/ref_counted_ptr.h
index 76ff0bba66..dda0f00d79 100644
--- a/src/core/lib/support/ref_counted_ptr.h
+++ b/src/core/lib/gprpp/ref_counted_ptr.h
@@ -16,12 +16,12 @@
*
*/
-#ifndef GRPC_CORE_LIB_SUPPORT_REF_COUNTED_PTR_H
-#define GRPC_CORE_LIB_SUPPORT_REF_COUNTED_PTR_H
+#ifndef GRPC_CORE_LIB_GPRPP_REF_COUNTED_PTR_H
+#define GRPC_CORE_LIB_GPRPP_REF_COUNTED_PTR_H
#include <utility>
-#include "src/core/lib/support/memory.h"
+#include "src/core/lib/gprpp/memory.h"
namespace grpc_core {
@@ -96,4 +96,4 @@ inline RefCountedPtr<T> MakeRefCounted(Args&&... args) {
} // namespace grpc_core
-#endif /* GRPC_CORE_LIB_SUPPORT_REF_COUNTED_PTR_H */
+#endif /* GRPC_CORE_LIB_GPRPP_REF_COUNTED_PTR_H */
diff --git a/src/core/lib/http/format_request.cc b/src/core/lib/http/format_request.cc
index f3f3cbda7b..473fa71790 100644
--- a/src/core/lib/http/format_request.cc
+++ b/src/core/lib/http/format_request.cc
@@ -26,7 +26,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
static void fill_common_header(const grpc_httpcli_request* request,
gpr_strvec* buf, bool connection_close) {
diff --git a/src/core/lib/http/httpcli.cc b/src/core/lib/http/httpcli.cc
index ed874c4265..c43c92b57d 100644
--- a/src/core/lib/http/httpcli.cc
+++ b/src/core/lib/http/httpcli.cc
@@ -26,6 +26,7 @@
#include <grpc/support/useful.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/http/format_request.h"
#include "src/core/lib/http/parser.h"
#include "src/core/lib/iomgr/endpoint.h"
@@ -34,7 +35,6 @@
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/tcp_client.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/string.h"
typedef struct {
grpc_slice request_text;
diff --git a/src/core/lib/http/httpcli_security_connector.cc b/src/core/lib/http/httpcli_security_connector.cc
index bfb536a921..8664418144 100644
--- a/src/core/lib/http/httpcli_security_connector.cc
+++ b/src/core/lib/http/httpcli_security_connector.cc
@@ -26,9 +26,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/handshaker_registry.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/security/transport/security_handshaker.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/string.h"
#include "src/core/tsi/ssl_transport_security.h"
#include "src/core/tsi/transport_security_adapter.h"
diff --git a/src/core/lib/iomgr/call_combiner.h b/src/core/lib/iomgr/call_combiner.h
index 9f7e6ce1c9..4814dbf8d2 100644
--- a/src/core/lib/iomgr/call_combiner.h
+++ b/src/core/lib/iomgr/call_combiner.h
@@ -23,9 +23,9 @@
#include <grpc/support/atm.h>
+#include "src/core/lib/gpr/mpscq.h"
#include "src/core/lib/iomgr/closure.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/support/mpscq.h"
// A simple, lock-free mechanism for serializing activity related to a
// single call. This is similar to a combiner but is more lightweight.
diff --git a/src/core/lib/iomgr/closure.h b/src/core/lib/iomgr/closure.h
index 4c58c0e4bf..249fca6cd6 100644
--- a/src/core/lib/iomgr/closure.h
+++ b/src/core/lib/iomgr/closure.h
@@ -25,9 +25,9 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <stdbool.h>
+#include "src/core/lib/gpr/mpscq.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/mpscq.h"
struct grpc_closure;
typedef struct grpc_closure grpc_closure;
diff --git a/src/core/lib/iomgr/combiner.h b/src/core/lib/iomgr/combiner.h
index 46b9ac58be..c62d21a051 100644
--- a/src/core/lib/iomgr/combiner.h
+++ b/src/core/lib/iomgr/combiner.h
@@ -23,8 +23,8 @@
#include <grpc/support/atm.h>
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/mpscq.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/support/mpscq.h"
// Provides serialized access to some resource.
// Each action queued on a combiner is executed serially in a borrowed thread.
diff --git a/src/core/lib/iomgr/endpoint_pair_posix.cc b/src/core/lib/iomgr/endpoint_pair_posix.cc
index 0b4aefd1b7..3ad6b47756 100644
--- a/src/core/lib/iomgr/endpoint_pair_posix.cc
+++ b/src/core/lib/iomgr/endpoint_pair_posix.cc
@@ -33,8 +33,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/tcp_posix.h"
-#include "src/core/lib/support/string.h"
static void create_sockets(int sv[2]) {
int flags;
diff --git a/src/core/lib/iomgr/ev_epoll1_linux.cc b/src/core/lib/iomgr/ev_epoll1_linux.cc
index aa14d5931a..42d7cdd348 100644
--- a/src/core/lib/iomgr/ev_epoll1_linux.cc
+++ b/src/core/lib/iomgr/ev_epoll1_linux.cc
@@ -43,14 +43,14 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/string.h"
+#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/lockfree_event.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/manual_constructor.h"
-#include "src/core/lib/support/string.h"
static grpc_wakeup_fd global_wakeup_fd;
diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
index e4a2d67e4b..416e8384b4 100644
--- a/src/core/lib/iomgr/ev_epollex_linux.cc
+++ b/src/core/lib/iomgr/ev_epollex_linux.cc
@@ -41,6 +41,8 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/spinlock.h"
+#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/is_epollexclusive_available.h"
@@ -49,8 +51,6 @@
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/manual_constructor.h"
-#include "src/core/lib/support/spinlock.h"
// debug aid: create workers on the heap (allows asan to spot
// use-after-destruction)
diff --git a/src/core/lib/iomgr/ev_epollsig_linux.cc b/src/core/lib/iomgr/ev_epollsig_linux.cc
index 3544d4f3a4..1518348992 100644
--- a/src/core/lib/iomgr/ev_epollsig_linux.cc
+++ b/src/core/lib/iomgr/ev_epollsig_linux.cc
@@ -43,6 +43,7 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
@@ -50,7 +51,6 @@
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/manual_constructor.h"
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
diff --git a/src/core/lib/iomgr/ev_poll_posix.cc b/src/core/lib/iomgr/ev_poll_posix.cc
index 08edff5159..3b79728055 100644
--- a/src/core/lib/iomgr/ev_poll_posix.cc
+++ b/src/core/lib/iomgr/ev_poll_posix.cc
@@ -38,12 +38,12 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/murmur_hash.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/wakeup_fd_cv.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/murmur_hash.h"
#define GRPC_POLLSET_KICK_BROADCAST ((grpc_pollset_worker*)1)
diff --git a/src/core/lib/iomgr/ev_posix.cc b/src/core/lib/iomgr/ev_posix.cc
index b516f93058..3a5714132d 100644
--- a/src/core/lib/iomgr/ev_posix.cc
+++ b/src/core/lib/iomgr/ev_posix.cc
@@ -30,11 +30,11 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/env.h"
#include "src/core/lib/iomgr/ev_epoll1_linux.h"
#include "src/core/lib/iomgr/ev_epollex_linux.h"
#include "src/core/lib/iomgr/ev_epollsig_linux.h"
#include "src/core/lib/iomgr/ev_poll_posix.h"
-#include "src/core/lib/support/env.h"
grpc_core::TraceFlag grpc_polling_trace(false,
"polling"); /* Disabled by default */
diff --git a/src/core/lib/iomgr/exec_ctx.h b/src/core/lib/iomgr/exec_ctx.h
index 5c6007c3c7..2e71482fb7 100644
--- a/src/core/lib/iomgr/exec_ctx.h
+++ b/src/core/lib/iomgr/exec_ctx.h
@@ -158,10 +158,6 @@ on outside context */
now_is_valid_ = true;
}
- /** Finish any pending work for a grpc_exec_ctx. Must be called before
- * the instance is destroyed, or work may be lost. */
- void Finish();
-
/** Global initialization for ExecCtx. Called by iomgr */
static void GlobalInit(void);
diff --git a/src/core/lib/iomgr/executor.cc b/src/core/lib/iomgr/executor.cc
index 67a0412dc3..835dc9d0f7 100644
--- a/src/core/lib/iomgr/executor.cc
+++ b/src/core/lib/iomgr/executor.cc
@@ -29,8 +29,8 @@
#include <grpc/support/useful.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/spinlock.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/support/spinlock.h"
#define MAX_DEPTH 2
diff --git a/src/core/lib/iomgr/fork_posix.cc b/src/core/lib/iomgr/fork_posix.cc
index cc131408af..9bfa79219a 100644
--- a/src/core/lib/iomgr/fork_posix.cc
+++ b/src/core/lib/iomgr/fork_posix.cc
@@ -27,13 +27,13 @@
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/fork.h"
+#include "src/core/lib/gpr/thd_internal.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/timer_manager.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/fork.h"
-#include "src/core/lib/support/thd_internal.h"
#include "src/core/lib/surface/init.h"
/*
diff --git a/src/core/lib/iomgr/iomgr.cc b/src/core/lib/iomgr/iomgr.cc
index 70807c479d..4cd0a4f1de 100644
--- a/src/core/lib/iomgr/iomgr.cc
+++ b/src/core/lib/iomgr/iomgr.cc
@@ -31,14 +31,14 @@
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/network_status_tracker.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/timer_manager.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
static gpr_mu g_mu;
static gpr_cv g_rcv;
diff --git a/src/core/lib/iomgr/load_file.cc b/src/core/lib/iomgr/load_file.cc
index 4a05de1410..b6586fbc73 100644
--- a/src/core/lib/iomgr/load_file.cc
+++ b/src/core/lib/iomgr/load_file.cc
@@ -25,8 +25,8 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/block_annotate.h"
-#include "src/core/lib/support/string.h"
grpc_error* grpc_load_file(const char* filename, int add_null_terminator,
grpc_slice* output) {
diff --git a/src/core/lib/iomgr/resolve_address_posix.cc b/src/core/lib/iomgr/resolve_address_posix.cc
index cc3d4fd7cf..176caee490 100644
--- a/src/core/lib/iomgr/resolve_address_posix.cc
+++ b/src/core/lib/iomgr/resolve_address_posix.cc
@@ -33,11 +33,11 @@
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
#include <grpc/support/useful.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
-#include "src/core/lib/support/string.h"
static grpc_error* blocking_resolve_address_impl(
const char* name, const char* default_port,
diff --git a/src/core/lib/iomgr/resolve_address_windows.cc b/src/core/lib/iomgr/resolve_address_windows.cc
index ccb1dae689..e44ab396b3 100644
--- a/src/core/lib/iomgr/resolve_address_windows.cc
+++ b/src/core/lib/iomgr/resolve_address_windows.cc
@@ -34,11 +34,11 @@
#include <grpc/support/string_util.h>
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/block_annotate.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
-#include "src/core/lib/support/string.h"
typedef struct {
char* name;
diff --git a/src/core/lib/iomgr/sockaddr_utils.cc b/src/core/lib/iomgr/sockaddr_utils.cc
index 0c0a2fe5b2..71e3e38624 100644
--- a/src/core/lib/iomgr/sockaddr_utils.cc
+++ b/src/core/lib/iomgr/sockaddr_utils.cc
@@ -28,10 +28,10 @@
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/iomgr/socket_utils.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
-#include "src/core/lib/support/string.h"
static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0xff, 0xff};
diff --git a/src/core/lib/iomgr/socket_utils_common_posix.cc b/src/core/lib/iomgr/socket_utils_common_posix.cc
index 2d4b8f0add..5068a8081d 100644
--- a/src/core/lib/iomgr/socket_utils_common_posix.cc
+++ b/src/core/lib/iomgr/socket_utils_common_posix.cc
@@ -40,8 +40,8 @@
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
-#include "src/core/lib/support/string.h"
/* set a socket to non blocking mode */
grpc_error* grpc_set_socket_nonblocking(int fd, int non_blocking) {
diff --git a/src/core/lib/iomgr/tcp_client_posix.cc b/src/core/lib/iomgr/tcp_client_posix.cc
index 8cd5f8d618..3dff624065 100644
--- a/src/core/lib/iomgr/tcp_client_posix.cc
+++ b/src/core/lib/iomgr/tcp_client_posix.cc
@@ -33,6 +33,7 @@
#include <grpc/support/time.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_posix.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
@@ -41,7 +42,6 @@
#include "src/core/lib/iomgr/tcp_posix.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
-#include "src/core/lib/support/string.h"
extern grpc_core::TraceFlag grpc_tcp_trace;
diff --git a/src/core/lib/iomgr/tcp_posix.cc b/src/core/lib/iomgr/tcp_posix.cc
index d47a077251..0ec5926227 100644
--- a/src/core/lib/iomgr/tcp_posix.cc
+++ b/src/core/lib/iomgr/tcp_posix.cc
@@ -42,12 +42,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/debug/stats.h"
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
#ifdef GRPC_HAVE_MSG_NOSIGNAL
#define SENDMSG_FLAGS MSG_NOSIGNAL
diff --git a/src/core/lib/iomgr/tcp_server_posix.cc b/src/core/lib/iomgr/tcp_server_posix.cc
index 99e1c6cd06..2fa00a81d2 100644
--- a/src/core/lib/iomgr/tcp_server_posix.cc
+++ b/src/core/lib/iomgr/tcp_server_posix.cc
@@ -45,6 +45,7 @@
#include <grpc/support/useful.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/sockaddr.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
@@ -52,7 +53,6 @@
#include "src/core/lib/iomgr/tcp_posix.h"
#include "src/core/lib/iomgr/tcp_server_utils_posix.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
-#include "src/core/lib/support/string.h"
static gpr_once check_init = GPR_ONCE_INIT;
static bool has_so_reuseport = false;
diff --git a/src/core/lib/iomgr/tcp_uv.cc b/src/core/lib/iomgr/tcp_uv.cc
index baa49d5cc5..b384623a5e 100644
--- a/src/core/lib/iomgr/tcp_uv.cc
+++ b/src/core/lib/iomgr/tcp_uv.cc
@@ -29,6 +29,7 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/iomgr_uv.h"
#include "src/core/lib/iomgr/network_status_tracker.h"
@@ -36,7 +37,6 @@
#include "src/core/lib/iomgr/tcp_uv.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
grpc_core::TraceFlag grpc_tcp_trace(false, "tcp");
diff --git a/src/core/lib/iomgr/timer_generic.cc b/src/core/lib/iomgr/timer_generic.cc
index 103144eb3b..177bdec8df 100644
--- a/src/core/lib/iomgr/timer_generic.cc
+++ b/src/core/lib/iomgr/timer_generic.cc
@@ -32,9 +32,9 @@
#include <grpc/support/tls.h>
#include <grpc/support/useful.h>
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/spinlock.h"
#include "src/core/lib/iomgr/time_averaged_stats.h"
#include "src/core/lib/iomgr/timer_heap.h"
-#include "src/core/lib/support/spinlock.h"
#define INVALID_HEAP_INDEX 0xffffffffu
diff --git a/src/core/lib/iomgr/udp_server.cc b/src/core/lib/iomgr/udp_server.cc
index 946846a8b8..27d32c59ae 100644
--- a/src/core/lib/iomgr/udp_server.cc
+++ b/src/core/lib/iomgr/udp_server.cc
@@ -49,6 +49,7 @@
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/error.h"
#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/executor.h"
@@ -58,7 +59,6 @@
#include "src/core/lib/iomgr/socket_factory_posix.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
-#include "src/core/lib/support/string.h"
/* one listening port */
typedef struct grpc_udp_listener grpc_udp_listener;
diff --git a/src/core/lib/profiling/basic_timers.cc b/src/core/lib/profiling/basic_timers.cc
index 87dd4ab120..d1c9fd7dec 100644
--- a/src/core/lib/profiling/basic_timers.cc
+++ b/src/core/lib/profiling/basic_timers.cc
@@ -30,7 +30,7 @@
#include <stdio.h>
#include <string.h>
-#include "src/core/lib/support/env.h"
+#include "src/core/lib/gpr/env.h"
typedef enum { BEGIN = '{', END = '}', MARK = '.' } marker_type;
diff --git a/src/core/lib/security/context/security_context.cc b/src/core/lib/security/context/security_context.cc
index 0371027994..63ec42cf86 100644
--- a/src/core/lib/security/context/security_context.cc
+++ b/src/core/lib/security/context/security_context.cc
@@ -19,8 +19,8 @@
#include <string.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/security/context/security_context.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
diff --git a/src/core/lib/security/credentials/credentials.cc b/src/core/lib/security/credentials/credentials.cc
index 48b459e1be..009a5ce4ec 100644
--- a/src/core/lib/security/credentials/credentials.cc
+++ b/src/core/lib/security/credentials/credentials.cc
@@ -22,11 +22,11 @@
#include <string.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/http/httpcli.h"
#include "src/core/lib/http/parser.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/json/json.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include <grpc/support/alloc.h>
diff --git a/src/core/lib/security/credentials/fake/fake_credentials.cc b/src/core/lib/security/credentials/fake/fake_credentials.cc
index 99b1214951..9065325cdd 100644
--- a/src/core/lib/security/credentials/fake/fake_credentials.cc
+++ b/src/core/lib/security/credentials/fake/fake_credentials.cc
@@ -25,8 +25,8 @@
#include <grpc/support/string_util.h>
#include "src/core/lib/channel/channel_args.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/executor.h"
-#include "src/core/lib/support/string.h"
/* -- Fake transport security credentials. -- */
diff --git a/src/core/lib/security/credentials/google_default/credentials_generic.cc b/src/core/lib/security/credentials/google_default/credentials_generic.cc
index af103f5dc5..15ae9d6428 100644
--- a/src/core/lib/security/credentials/google_default/credentials_generic.cc
+++ b/src/core/lib/security/credentials/google_default/credentials_generic.cc
@@ -22,8 +22,8 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
char* grpc_get_well_known_google_credentials_file_path_impl(void) {
char* result = nullptr;
diff --git a/src/core/lib/security/credentials/google_default/google_default_credentials.cc b/src/core/lib/security/credentials/google_default/google_default_credentials.cc
index 03d52850d9..dc19202033 100644
--- a/src/core/lib/security/credentials/google_default/google_default_credentials.cc
+++ b/src/core/lib/security/credentials/google_default/google_default_credentials.cc
@@ -24,6 +24,8 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/http/httpcli.h"
#include "src/core/lib/http/parser.h"
#include "src/core/lib/iomgr/load_file.h"
@@ -33,8 +35,6 @@
#include "src/core/lib/security/credentials/oauth2/oauth2_credentials.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
/* -- Constants. -- */
diff --git a/src/core/lib/security/credentials/jwt/json_token.cc b/src/core/lib/security/credentials/jwt/json_token.cc
index a152ddcaaf..078f04ed11 100644
--- a/src/core/lib/security/credentials/jwt/json_token.cc
+++ b/src/core/lib/security/credentials/jwt/json_token.cc
@@ -26,9 +26,9 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/security/util/json_util.h"
#include "src/core/lib/slice/b64.h"
-#include "src/core/lib/support/string.h"
extern "C" {
#include <openssl/bio.h>
diff --git a/src/core/lib/security/credentials/jwt/jwt_verifier.cc b/src/core/lib/security/credentials/jwt/jwt_verifier.cc
index 39339f07d7..860506df39 100644
--- a/src/core/lib/security/credentials/jwt/jwt_verifier.cc
+++ b/src/core/lib/security/credentials/jwt/jwt_verifier.cc
@@ -31,11 +31,11 @@ extern "C" {
#include <openssl/pem.h>
}
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/http/httpcli.h"
#include "src/core/lib/iomgr/polling_entity.h"
#include "src/core/lib/slice/b64.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/string.h"
#include "src/core/tsi/ssl_types.h"
/* --- Utils. --- */
diff --git a/src/core/lib/security/transport/client_auth_filter.cc b/src/core/lib/security/transport/client_auth_filter.cc
index 6d7f89873b..045cb3e239 100644
--- a/src/core/lib/security/transport/client_auth_filter.cc
+++ b/src/core/lib/security/transport/client_auth_filter.cc
@@ -25,13 +25,13 @@
#include <grpc/support/string_util.h>
#include "src/core/lib/channel/channel_stack.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/security/context/security_context.h"
#include "src/core/lib/security/credentials/credentials.h"
#include "src/core/lib/security/transport/security_connector.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/transport/static_metadata.h"
diff --git a/src/core/lib/security/transport/secure_endpoint.cc b/src/core/lib/security/transport/secure_endpoint.cc
index e5c089de9c..bd8a6cd76a 100644
--- a/src/core/lib/security/transport/secure_endpoint.cc
+++ b/src/core/lib/security/transport/secure_endpoint.cc
@@ -28,12 +28,12 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/security/transport/secure_endpoint.h"
#include "src/core/lib/security/transport/tsi_error.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
#include "src/core/tsi/transport_security_grpc.h"
#define STAGING_BUFFER_SIZE 8192
diff --git a/src/core/lib/security/transport/security_connector.cc b/src/core/lib/security/transport/security_connector.cc
index fd139714da..1d962f94b2 100644
--- a/src/core/lib/security/transport/security_connector.cc
+++ b/src/core/lib/security/transport/security_connector.cc
@@ -30,6 +30,8 @@
#include "src/core/ext/transport/chttp2/alpn/alpn.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/handshaker.h"
+#include "src/core/lib/gpr/env.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/load_file.h"
#include "src/core/lib/security/context/security_context.h"
#include "src/core/lib/security/credentials/credentials.h"
@@ -38,8 +40,6 @@
#include "src/core/lib/security/transport/lb_targets_info.h"
#include "src/core/lib/security/transport/secure_endpoint.h"
#include "src/core/lib/security/transport/security_handshaker.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
#include "src/core/tsi/fake_transport_security.h"
#include "src/core/tsi/ssl_transport_security.h"
#include "src/core/tsi/transport_security_adapter.h"
diff --git a/src/core/lib/slice/slice_intern.cc b/src/core/lib/slice/slice_intern.cc
index c578c6d9de..fe1770b92c 100644
--- a/src/core/lib/slice/slice_intern.cc
+++ b/src/core/lib/slice/slice_intern.cc
@@ -24,10 +24,10 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
+#include "src/core/lib/gpr/murmur_hash.h"
#include "src/core/lib/iomgr/iomgr_internal.h" /* for iomgr_abort_on_leaks() */
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/murmur_hash.h"
#include "src/core/lib/transport/static_metadata.h"
#define LOG2_SHARD_COUNT 5
diff --git a/src/core/lib/slice/slice_string_helpers.cc b/src/core/lib/slice/slice_string_helpers.cc
index 5385be9866..be0db09252 100644
--- a/src/core/lib/slice/slice_string_helpers.cc
+++ b/src/core/lib/slice/slice_string_helpers.cc
@@ -22,8 +22,8 @@
#include <grpc/support/log.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/string.h"
char* grpc_dump_slice(grpc_slice s, uint32_t flags) {
return gpr_dump((const char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s),
diff --git a/src/core/lib/slice/slice_string_helpers.h b/src/core/lib/slice/slice_string_helpers.h
index 7f51b11b9c..109084be1f 100644
--- a/src/core/lib/slice/slice_string_helpers.h
+++ b/src/core/lib/slice/slice_string_helpers.h
@@ -26,7 +26,7 @@
#include <grpc/slice_buffer.h>
#include <grpc/support/port_platform.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
/* Calls gpr_dump on a slice. */
char* grpc_dump_slice(grpc_slice slice, uint32_t flags);
diff --git a/src/core/lib/surface/call.cc b/src/core/lib/surface/call.cc
index d677576c14..8a579cabe7 100644
--- a/src/core/lib/surface/call.cc
+++ b/src/core/lib/surface/call.cc
@@ -33,12 +33,12 @@
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/compression/algorithm_metadata.h"
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/arena.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/arena.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/call_test_only.h"
diff --git a/src/core/lib/surface/call_log_batch.cc b/src/core/lib/surface/call_log_batch.cc
index 535a3d3282..d56ea2a932 100644
--- a/src/core/lib/surface/call_log_batch.cc
+++ b/src/core/lib/surface/call_log_batch.cc
@@ -22,8 +22,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
static void add_metadata(gpr_strvec* b, const grpc_metadata* md, size_t count) {
size_t i;
diff --git a/src/core/lib/surface/channel.cc b/src/core/lib/surface/channel.cc
index cf5e8c2150..62db82a1d9 100644
--- a/src/core/lib/surface/channel.cc
+++ b/src/core/lib/surface/channel.cc
@@ -29,9 +29,9 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/channel_init.h"
diff --git a/src/core/lib/surface/completion_queue.cc b/src/core/lib/surface/completion_queue.cc
index aa5808da4c..e731e2139f 100644
--- a/src/core/lib/surface/completion_queue.cc
+++ b/src/core/lib/surface/completion_queue.cc
@@ -31,11 +31,11 @@
#include <grpc/support/tls.h>
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/spinlock.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/pollset.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/spinlock.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/event_string.h"
diff --git a/src/core/lib/surface/event_string.cc b/src/core/lib/surface/event_string.cc
index 5168edc9b5..7f40bb2405 100644
--- a/src/core/lib/surface/event_string.cc
+++ b/src/core/lib/surface/event_string.cc
@@ -22,7 +22,7 @@
#include <grpc/byte_buffer.h>
#include <grpc/support/string_util.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
static void addhdr(gpr_strvec* buf, grpc_event* ev) {
char* tmp;
diff --git a/src/core/lib/surface/init.cc b/src/core/lib/surface/init.cc
index 0f40965f16..70329b09f4 100644
--- a/src/core/lib/surface/init.cc
+++ b/src/core/lib/surface/init.cc
@@ -31,6 +31,8 @@
#include "src/core/lib/channel/handshaker_registry.h"
#include "src/core/lib/debug/stats.h"
#include "src/core/lib/debug/trace.h"
+#include "src/core/lib/gpr/fork.h"
+#include "src/core/lib/gpr/thd_internal.h"
#include "src/core/lib/http/parser.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/combiner.h"
@@ -40,8 +42,6 @@
#include "src/core/lib/iomgr/timer_manager.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/fork.h"
-#include "src/core/lib/support/thd_internal.h"
#include "src/core/lib/surface/alarm_internal.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
diff --git a/src/core/lib/surface/lame_client.cc b/src/core/lib/surface/lame_client.cc
index 08611ff730..a1f1cf1107 100644
--- a/src/core/lib/surface/lame_client.cc
+++ b/src/core/lib/surface/lame_client.cc
@@ -23,10 +23,10 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
-#include "src/core/lib/support/atomic.h"
+#include "src/core/lib/gprpp/atomic.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/channel.h"
diff --git a/src/core/lib/surface/server.cc b/src/core/lib/surface/server.cc
index ee98cf2693..c8c1db337f 100644
--- a/src/core/lib/surface/server.cc
+++ b/src/core/lib/surface/server.cc
@@ -30,12 +30,12 @@
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/debug/stats.h"
+#include "src/core/lib/gpr/mpscq.h"
+#include "src/core/lib/gpr/spinlock.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/slice/slice_internal.h"
-#include "src/core/lib/support/mpscq.h"
-#include "src/core/lib/support/spinlock.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/call.h"
#include "src/core/lib/surface/channel.h"
diff --git a/src/core/lib/surface/version.cc b/src/core/lib/surface/version.cc
index 7d36c6c9e1..19498a6df7 100644
--- a/src/core/lib/surface/version.cc
+++ b/src/core/lib/surface/version.cc
@@ -23,4 +23,4 @@
const char* grpc_version_string(void) { return "5.0.0-dev"; }
-const char* grpc_g_stands_for(void) { return "glossy"; }
+const char* grpc_g_stands_for(void) { return "glamorous"; }
diff --git a/src/core/lib/transport/metadata.cc b/src/core/lib/transport/metadata.cc
index 5f0673e014..652222bd0b 100644
--- a/src/core/lib/transport/metadata.cc
+++ b/src/core/lib/transport/metadata.cc
@@ -31,12 +31,12 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
+#include "src/core/lib/gpr/murmur_hash.h"
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/murmur_hash.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/transport/static_metadata.h"
/* There are two kinds of mdelem and mdstr instances.
diff --git a/src/core/lib/transport/service_config.cc b/src/core/lib/transport/service_config.cc
index cbafc33840..5c9930a273 100644
--- a/src/core/lib/transport/service_config.cc
+++ b/src/core/lib/transport/service_config.cc
@@ -23,11 +23,11 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/slice/slice_hash_table.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
// The main purpose of the code here is to parse the service config in
// JSON form, which will look like this:
diff --git a/src/core/lib/transport/timeout_encoding.cc b/src/core/lib/transport/timeout_encoding.cc
index 86db6c8344..47f964af45 100644
--- a/src/core/lib/transport/timeout_encoding.cc
+++ b/src/core/lib/transport/timeout_encoding.cc
@@ -22,7 +22,7 @@
#include <string.h>
#include <grpc/support/port_platform.h>
-#include "src/core/lib/support/string.h"
+#include "src/core/lib/gpr/string.h"
static int64_t round_up(int64_t x, int64_t divisor) {
return (x / divisor + (x % divisor != 0)) * divisor;
diff --git a/src/core/lib/transport/timeout_encoding.h b/src/core/lib/transport/timeout_encoding.h
index 8611f49b00..4e9268262e 100644
--- a/src/core/lib/transport/timeout_encoding.h
+++ b/src/core/lib/transport/timeout_encoding.h
@@ -22,8 +22,8 @@
#include <grpc/slice.h>
#include <grpc/support/time.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/support/string.h"
#define GRPC_HTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE (GPR_LTOA_MIN_BUFSIZE + 1)
diff --git a/src/core/lib/transport/transport.cc b/src/core/lib/transport/transport.cc
index 08aee04ac9..ea0380e591 100644
--- a/src/core/lib/transport/transport.cc
+++ b/src/core/lib/transport/transport.cc
@@ -25,10 +25,10 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/iomgr/executor.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/transport/transport_impl.h"
grpc_core::DebugOnlyTraceFlag grpc_trace_stream_refcount(false,
diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h
index 80a7ff98be..b392c696cd 100644
--- a/src/core/lib/transport/transport.h
+++ b/src/core/lib/transport/transport.h
@@ -22,12 +22,12 @@
#include <stddef.h>
#include "src/core/lib/channel/context.h"
+#include "src/core/lib/gpr/arena.h"
#include "src/core/lib/iomgr/call_combiner.h"
#include "src/core/lib/iomgr/endpoint.h"
#include "src/core/lib/iomgr/polling_entity.h"
#include "src/core/lib/iomgr/pollset.h"
#include "src/core/lib/iomgr/pollset_set.h"
-#include "src/core/lib/support/arena.h"
#include "src/core/lib/transport/byte_stream.h"
#include "src/core/lib/transport/metadata_batch.h"
diff --git a/src/core/lib/transport/transport_op_string.cc b/src/core/lib/transport/transport_op_string.cc
index c0f82fea0d..58a21e9b60 100644
--- a/src/core/lib/transport/transport_op_string.cc
+++ b/src/core/lib/transport/transport_op_string.cc
@@ -28,8 +28,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
+#include "src/core/lib/gpr/string.h"
#include "src/core/lib/slice/slice_string_helpers.h"
-#include "src/core/lib/support/string.h"
#include "src/core/lib/transport/connectivity_state.h"
/* These routines are here to facilitate debugging - they produce string