Eliminate gpr_ int types - and insist on C99 variants instead
diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h
index 8e7c357..ab8ffb6 100644
--- a/include/grpc++/client_context.h
+++ b/include/grpc++/client_context.h
@@ -137,10 +137,10 @@
     return *this;
   }
 
-  gpr_uint32 c_bitmask() const { return propagate_; }
+  uint32_t c_bitmask() const { return propagate_; }
 
  private:
-  gpr_uint32 propagate_;
+  uint32_t propagate_;
 };
 
 namespace testing {
diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h
index df45d6f..cb7856b 100644
--- a/include/grpc++/impl/call.h
+++ b/include/grpc++/impl/call.h
@@ -70,7 +70,7 @@
   inline void Clear() { flags_ = 0; }
 
   /// Returns raw flags bitset.
-  inline gpr_uint32 flags() const { return flags_; }
+  inline uint32_t flags() const { return flags_; }
 
   /// Sets flag for the disabling of compression for the next message write.
   ///
@@ -126,13 +126,13 @@
   }
 
  private:
-  void SetBit(const gpr_uint32 mask) { flags_ |= mask; }
+  void SetBit(const uint32_t mask) { flags_ |= mask; }
 
-  void ClearBit(const gpr_uint32 mask) { flags_ &= ~mask; }
+  void ClearBit(const uint32_t mask) { flags_ &= ~mask; }
 
-  bool GetBit(const gpr_uint32 mask) const { return (flags_ & mask) != 0; }
+  bool GetBit(const uint32_t mask) const { return (flags_ & mask) != 0; }
 
-  gpr_uint32 flags_;
+  uint32_t flags_;
 };
 
 /// Default argument for CallOpSet. I is unused by the class, but can be
diff --git a/include/grpc++/support/slice.h b/include/grpc++/support/slice.h
index 456379c..be316e7 100644
--- a/include/grpc++/support/slice.h
+++ b/include/grpc++/support/slice.h
@@ -72,10 +72,10 @@
   size_t size() const { return GPR_SLICE_LENGTH(slice_); }
 
   /// Raw pointer to the beginning (first element) of the slice.
-  const gpr_uint8* begin() const { return GPR_SLICE_START_PTR(slice_); }
+  const uint8_t* begin() const { return GPR_SLICE_START_PTR(slice_); }
 
   /// Raw pointer to the end (one byte \em past the last element) of the slice.
-  const gpr_uint8* end() const { return GPR_SLICE_END_PTR(slice_); }
+  const uint8_t* end() const { return GPR_SLICE_END_PTR(slice_); }
 
  private:
   friend class ByteBuffer;
diff --git a/include/grpc/census.h b/include/grpc/census.h
index d0bc904..369827d 100644
--- a/include/grpc/census.h
+++ b/include/grpc/census.h
@@ -166,8 +166,8 @@
   functions, maybe it should be set once at census initialization.
 */
 typedef struct {
-  const char *(*get_rpc_service_name)(gpr_int64 id);
-  const char *(*get_rpc_method_name)(gpr_int64 id);
+  const char *(*get_rpc_service_name)(int64_t id);
+  const char *(*get_rpc_method_name)(int64_t id);
 } census_rpc_name_info;
 
 /**
@@ -205,7 +205,7 @@
    @return A new census context.
  */
 census_context *census_start_client_rpc_op(
-    const census_context *context, gpr_int64 rpc_name_id,
+    const census_context *context, int64_t rpc_name_id,
     const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
     const census_timestamp *start_time);
 
@@ -233,7 +233,7 @@
    @return A new census context.
  */
 census_context *census_start_server_rpc_op(
-    const char *buffer, gpr_int64 rpc_name_id,
+    const char *buffer, int64_t rpc_name_id,
     const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
     census_timestamp *start_time);
 
@@ -276,8 +276,8 @@
 */
 void census_end_op(census_context *context, int status);
 
-#define CENSUS_TRACE_RECORD_START_OP ((gpr_uint32)0)
-#define CENSUS_TRACE_RECORD_END_OP ((gpr_uint32)1)
+#define CENSUS_TRACE_RECORD_START_OP ((uint32_t)0)
+#define CENSUS_TRACE_RECORD_END_OP ((uint32_t)1)
 
 /** Insert a trace record into the trace stream. The record consists of an
     arbitrary size buffer, the size of which is provided in 'n'.
@@ -286,15 +286,15 @@
     @param buffer Pointer to buffer to use
     @param n Number of bytes in buffer
 */
-void census_trace_print(census_context *context, gpr_uint32 type,
+void census_trace_print(census_context *context, uint32_t type,
                         const char *buffer, size_t n);
 
 /** Trace record. */
 typedef struct {
   census_timestamp timestamp; /* Time of record creation */
-  gpr_uint64 trace_id;        /* Trace ID associated with record */
-  gpr_uint64 op_id;           /* Operation ID associated with record */
-  gpr_uint32 type;            /* Type (as used in census_trace_print() */
+  uint64_t trace_id;          /* Trace ID associated with record */
+  uint64_t op_id;             /* Operation ID associated with record */
+  uint32_t type;              /* Type (as used in census_trace_print() */
   const char *buffer;         /* Buffer (from census_trace_print() */
   size_t buf_size;            /* Number of bytes inside buffer */
 } census_trace_record;
@@ -403,7 +403,7 @@
 /* A single value to be recorded comprises two parts: an ID for the particular
  * metric and the value to be recorded against it. */
 typedef struct {
-  gpr_uint32 metric_id;
+  uint32_t metric_id;
   double value;
 } census_value;
 
@@ -439,8 +439,7 @@
 
   @return A new census view
 */
-census_view *census_view_create(gpr_uint32 metric_id,
-                                const census_tag_set *tags,
+census_view *census_view_create(uint32_t metric_id, const census_tag_set *tags,
                                 const census_aggregation *aggregations,
                                 size_t naggregations);
 
diff --git a/include/grpc/compression.h b/include/grpc/compression.h
index 3655a4f..31d048b 100644
--- a/include/grpc/compression.h
+++ b/include/grpc/compression.h
@@ -64,7 +64,7 @@
 } grpc_compression_level;
 
 typedef struct grpc_compression_options {
-  gpr_uint32 enabled_algorithms_bitset; /**< All algs are enabled by default */
+  uint32_t enabled_algorithms_bitset; /**< All algs are enabled by default */
   grpc_compression_algorithm default_compression_algorithm; /**< for channel */
 } grpc_compression_options;
 
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index d52aab0..be4c4d2 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -222,7 +222,7 @@
   const char *key;
   const char *value;
   size_t value_length;
-  gpr_uint32 flags;
+  uint32_t flags;
 
   /** The following fields are reserved for grpc internal use.
       There is no need to initialize them, and they will be set to garbage
@@ -326,7 +326,7 @@
   /** Operation type, as defined by grpc_op_type */
   grpc_op_type op;
   /** Write flags bitset for grpc_begin_messages */
-  gpr_uint32 flags;
+  uint32_t flags;
   /** Reserved for future usage */
   void *reserved;
   union {
@@ -408,12 +408,12 @@
 /* Propagation bits: this can be bitwise or-ed to form propagation_mask for
  * grpc_call */
 /** Propagate deadline */
-#define GRPC_PROPAGATE_DEADLINE ((gpr_uint32)1)
+#define GRPC_PROPAGATE_DEADLINE ((uint32_t)1)
 /** Propagate census context */
-#define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((gpr_uint32)2)
-#define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((gpr_uint32)4)
+#define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((uint32_t)2)
+#define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((uint32_t)4)
 /** Propagate cancellation */
-#define GRPC_PROPAGATE_CANCELLATION ((gpr_uint32)8)
+#define GRPC_PROPAGATE_CANCELLATION ((uint32_t)8)
 
 /* Default propagation mask: clients of the core API are encouraged to encode
    deltas from this in their implementations... ie write:
@@ -421,7 +421,7 @@
    propagation. Doing so gives flexibility in the future to define new
    propagation types that are default inherited or not. */
 #define GRPC_PROPAGATE_DEFAULTS                                                \
-  ((gpr_uint32)((                                                              \
+  ((uint32_t)((                                                                \
       0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \
       GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION)))
 
@@ -526,7 +526,7 @@
     */
 grpc_call *grpc_channel_create_call(grpc_channel *channel,
                                     grpc_call *parent_call,
-                                    gpr_uint32 propagation_mask,
+                                    uint32_t propagation_mask,
                                     grpc_completion_queue *completion_queue,
                                     const char *method, const char *host,
                                     gpr_timespec deadline, void *reserved);
@@ -542,7 +542,7 @@
 
 /** Create a call given a handle returned from grpc_channel_register_call */
 grpc_call *grpc_channel_create_registered_call(
-    grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask,
+    grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
     grpc_completion_queue *completion_queue, void *registered_call_handle,
     gpr_timespec deadline, void *reserved);
 
diff --git a/include/grpc/support/atm.h b/include/grpc/support/atm.h
index 3f88e2e..cbb3813 100644
--- a/include/grpc/support/atm.h
+++ b/include/grpc/support/atm.h
@@ -53,7 +53,7 @@
 
    // Atomic operations act on an intergral_type gpr_atm that is guaranteed to
    // be the same size as a pointer.
-   typedef gpr_intptr gpr_atm;
+   typedef intptr_t gpr_atm;
 
    // A memory barrier, providing both acquire and release semantics, but not
    // otherwise acting on memory.
diff --git a/include/grpc/support/atm_gcc_atomic.h b/include/grpc/support/atm_gcc_atomic.h
index 104e1d5..90d91dd 100644
--- a/include/grpc/support/atm_gcc_atomic.h
+++ b/include/grpc/support/atm_gcc_atomic.h
@@ -38,21 +38,21 @@
    __atomic_* interface.  */
 #include <grpc/support/port_platform.h>
 
-typedef gpr_intptr gpr_atm;
+typedef intptr_t gpr_atm;
 
 #define gpr_atm_full_barrier() (__atomic_thread_fence(__ATOMIC_SEQ_CST))
 
 #define gpr_atm_acq_load(p) (__atomic_load_n((p), __ATOMIC_ACQUIRE))
 #define gpr_atm_no_barrier_load(p) (__atomic_load_n((p), __ATOMIC_RELAXED))
 #define gpr_atm_rel_store(p, value) \
-  (__atomic_store_n((p), (gpr_intptr)(value), __ATOMIC_RELEASE))
+  (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELEASE))
 #define gpr_atm_no_barrier_store(p, value) \
-  (__atomic_store_n((p), (gpr_intptr)(value), __ATOMIC_RELAXED))
+  (__atomic_store_n((p), (intptr_t)(value), __ATOMIC_RELAXED))
 
 #define gpr_atm_no_barrier_fetch_add(p, delta) \
-  (__atomic_fetch_add((p), (gpr_intptr)(delta), __ATOMIC_RELAXED))
+  (__atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_RELAXED))
 #define gpr_atm_full_fetch_add(p, delta) \
-  (__atomic_fetch_add((p), (gpr_intptr)(delta), __ATOMIC_ACQ_REL))
+  (__atomic_fetch_add((p), (intptr_t)(delta), __ATOMIC_ACQ_REL))
 
 static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
   return __atomic_compare_exchange_n(p, &o, n, 0, __ATOMIC_RELAXED,
diff --git a/include/grpc/support/atm_gcc_sync.h b/include/grpc/support/atm_gcc_sync.h
index 241ae76..9d72cd4 100644
--- a/include/grpc/support/atm_gcc_sync.h
+++ b/include/grpc/support/atm_gcc_sync.h
@@ -38,7 +38,7 @@
    interface */
 #include <grpc/support/port_platform.h>
 
-typedef gpr_intptr gpr_atm;
+typedef intptr_t gpr_atm;
 
 #define GPR_ATM_COMPILE_BARRIER_() __asm__ __volatile__("" : : : "memory")
 
diff --git a/include/grpc/support/atm_win32.h b/include/grpc/support/atm_win32.h
index cc016e5..8b1de76 100644
--- a/include/grpc/support/atm_win32.h
+++ b/include/grpc/support/atm_win32.h
@@ -37,7 +37,7 @@
 /* Win32 variant of atm_platform.h */
 #include <grpc/support/port_platform.h>
 
-typedef gpr_intptr gpr_atm;
+typedef intptr_t gpr_atm;
 
 #define gpr_atm_full_barrier MemoryBarrier
 
diff --git a/include/grpc/support/histogram.h b/include/grpc/support/histogram.h
index fd56dac..8774676 100644
--- a/include/grpc/support/histogram.h
+++ b/include/grpc/support/histogram.h
@@ -62,10 +62,10 @@
 double gpr_histogram_sum(gpr_histogram *histogram);
 double gpr_histogram_sum_of_squares(gpr_histogram *histogram);
 
-const gpr_uint32 *gpr_histogram_get_contents(gpr_histogram *histogram,
-                                             size_t *count);
+const uint32_t *gpr_histogram_get_contents(gpr_histogram *histogram,
+                                           size_t *count);
 void gpr_histogram_merge_contents(gpr_histogram *histogram,
-                                  const gpr_uint32 *data, size_t data_count,
+                                  const uint32_t *data, size_t data_count,
                                   double min_seen, double max_seen, double sum,
                                   double sum_of_squares, double count);
 
diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
index 557410b..8a30f1d 100644
--- a/include/grpc/support/port_platform.h
+++ b/include/grpc/support/port_platform.h
@@ -314,22 +314,6 @@
 #error Must define exactly one of GPR_MSVC_TLS, GPR_GCC_TLS, GPR_PTHREAD_TLS, GPR_CUSTOM_TLS
 #endif
 
-typedef int16_t gpr_int16;
-typedef int32_t gpr_int32;
-typedef int64_t gpr_int64;
-typedef uint8_t gpr_uint8;
-typedef uint16_t gpr_uint16;
-typedef uint32_t gpr_uint32;
-typedef uint64_t gpr_uint64;
-typedef intmax_t gpr_intmax;
-typedef intptr_t gpr_intptr;
-typedef uintmax_t gpr_uintmax;
-typedef uintptr_t gpr_uintptr;
-
-/* INT64_MAX is unavailable on some platforms. */
-#define GPR_INT64_MAX (gpr_int64)(~(gpr_uint64)0 >> 1)
-#define GPR_UINT32_MAX (~(gpr_uint32)0)
-
 /* maximum alignment needed for any type on this platform, rounded up to a
    power of two */
 #define GPR_MAX_ALIGNMENT 16
diff --git a/include/grpc/support/slice.h b/include/grpc/support/slice.h
index 507cb19..26ca9a8 100644
--- a/include/grpc/support/slice.h
+++ b/include/grpc/support/slice.h
@@ -65,7 +65,7 @@
   void (*unref)(void *);
 } gpr_slice_refcount;
 
-#define GPR_SLICE_INLINED_SIZE (sizeof(size_t) + sizeof(gpr_uint8 *) - 1)
+#define GPR_SLICE_INLINED_SIZE (sizeof(size_t) + sizeof(uint8_t *) - 1)
 
 /* A gpr_slice s, if initialized, represents the byte range
    s.bytes[0..s.length-1].
@@ -80,12 +80,12 @@
   struct gpr_slice_refcount *refcount;
   union {
     struct {
-      gpr_uint8 *bytes;
+      uint8_t *bytes;
       size_t length;
     } refcounted;
     struct {
-      gpr_uint8 length;
-      gpr_uint8 bytes[GPR_SLICE_INLINED_SIZE];
+      uint8_t length;
+      uint8_t bytes[GPR_SLICE_INLINED_SIZE];
     } inlined;
   } data;
 } gpr_slice;
@@ -98,7 +98,7 @@
                     : (slice).data.inlined.length)
 #define GPR_SLICE_SET_LENGTH(slice, newlen)                               \
   ((slice).refcount ? ((slice).data.refcounted.length = (size_t)(newlen)) \
-                    : ((slice).data.inlined.length = (gpr_uint8)(newlen)))
+                    : ((slice).data.inlined.length = (uint8_t)(newlen)))
 #define GPR_SLICE_END_PTR(slice) \
   GPR_SLICE_START_PTR(slice) + GPR_SLICE_LENGTH(slice)
 #define GPR_SLICE_IS_EMPTY(slice) (GPR_SLICE_LENGTH(slice) == 0)
diff --git a/include/grpc/support/slice_buffer.h b/include/grpc/support/slice_buffer.h
index f926717..99f3881 100644
--- a/include/grpc/support/slice_buffer.h
+++ b/include/grpc/support/slice_buffer.h
@@ -77,7 +77,7 @@
 void gpr_slice_buffer_addn(gpr_slice_buffer *sb, gpr_slice *slices, size_t n);
 /* add a very small (less than 8 bytes) amount of data to the end of a slice
    buffer: returns a pointer into which to add the data */
-gpr_uint8 *gpr_slice_buffer_tiny_add(gpr_slice_buffer *sb, size_t len);
+uint8_t *gpr_slice_buffer_tiny_add(gpr_slice_buffer *sb, size_t len);
 /* pop the last buffer, but don't unref it */
 void gpr_slice_buffer_pop(gpr_slice_buffer *sb);
 /* clear a slice buffer, unref all elements */
diff --git a/include/grpc/support/sync.h b/include/grpc/support/sync.h
index 172aea0..4f42cff 100644
--- a/include/grpc/support/sync.h
+++ b/include/grpc/support/sync.h
@@ -197,13 +197,13 @@
    synchronize other events.  */
 
 /* Initialize *c to the value n. */
-void gpr_stats_init(gpr_stats_counter *c, gpr_intptr n);
+void gpr_stats_init(gpr_stats_counter *c, intptr_t n);
 
 /* *c += inc.  Requires: *c initialized. */
-void gpr_stats_inc(gpr_stats_counter *c, gpr_intptr inc);
+void gpr_stats_inc(gpr_stats_counter *c, intptr_t inc);
 
 /* Return *c.  Requires: *c initialized. */
-gpr_intptr gpr_stats_read(const gpr_stats_counter *c);
+intptr_t gpr_stats_read(const gpr_stats_counter *c);
 
 /* ==================Example use of interface===================
    A producer-consumer queue of up to N integers,
diff --git a/include/grpc/support/thd.h b/include/grpc/support/thd.h
index d3265f2..58b8a83 100644
--- a/include/grpc/support/thd.h
+++ b/include/grpc/support/thd.h
@@ -48,7 +48,7 @@
 extern "C" {
 #endif
 
-typedef gpr_uint64 gpr_thd_id;
+typedef uint64_t gpr_thd_id;
 
 /* Thread creation options. */
 typedef struct {
diff --git a/include/grpc/support/time.h b/include/grpc/support/time.h
index 722866a..d2607f3 100644
--- a/include/grpc/support/time.h
+++ b/include/grpc/support/time.h
@@ -61,8 +61,8 @@
 } gpr_clock_type;
 
 typedef struct gpr_timespec {
-  gpr_int64 tv_sec;
-  gpr_int32 tv_nsec;
+  int64_t tv_sec;
+  int32_t tv_nsec;
   /** Against which clock was this time measured? (or GPR_TIMESPAN if
       this is a relative time meaure) */
   gpr_clock_type clock_type;
@@ -110,7 +110,7 @@
 gpr_timespec gpr_time_from_minutes(long x, gpr_clock_type clock_type);
 gpr_timespec gpr_time_from_hours(long x, gpr_clock_type clock_type);
 
-gpr_int32 gpr_time_to_millis(gpr_timespec timespec);
+int32_t gpr_time_to_millis(gpr_timespec timespec);
 
 /* Return 1 if two times are equal or within threshold of each other,
    0 otherwise */
diff --git a/include/grpc/support/tls.h b/include/grpc/support/tls.h
index a4ebac5..43addc7 100644
--- a/include/grpc/support/tls.h
+++ b/include/grpc/support/tls.h
@@ -41,7 +41,7 @@
    A minimal wrapper that should be implementable across many compilers,
    and implementable efficiently across most modern compilers.
 
-   Thread locals have type gpr_intptr.
+   Thread locals have type intptr_t.
 
    Declaring a thread local variable 'foo':
      GPR_TLS_DECL(foo);
diff --git a/include/grpc/support/tls_gcc.h b/include/grpc/support/tls_gcc.h
index 1a02fb2..a697ad0 100644
--- a/include/grpc/support/tls_gcc.h
+++ b/include/grpc/support/tls_gcc.h
@@ -38,7 +38,7 @@
    #include tls.h to use this - and see that file for documentation */
 
 struct gpr_gcc_thread_local {
-  gpr_intptr value;
+  intptr_t value;
 };
 
 #define GPR_TLS_DECL(name) \
diff --git a/include/grpc/support/tls_msvc.h b/include/grpc/support/tls_msvc.h
index 9997f8e..987a514 100644
--- a/include/grpc/support/tls_msvc.h
+++ b/include/grpc/support/tls_msvc.h
@@ -38,7 +38,7 @@
    #include tls.h to use this - and see that file for documentation */
 
 struct gpr_msvc_thread_local {
-  gpr_intptr value;
+  intptr_t value;
 };
 
 #define GPR_TLS_DECL(name) \
diff --git a/include/grpc/support/tls_pthread.h b/include/grpc/support/tls_pthread.h
index 50e55d3..699ee6b 100644
--- a/include/grpc/support/tls_pthread.h
+++ b/include/grpc/support/tls_pthread.h
@@ -48,11 +48,11 @@
 
 #define gpr_tls_init(tls) GPR_ASSERT(0 == pthread_key_create(&(tls)->key, NULL))
 #define gpr_tls_destroy(tls) pthread_key_delete((tls)->key)
-#define gpr_tls_get(tls) ((gpr_intptr)pthread_getspecific((tls)->key))
+#define gpr_tls_get(tls) ((intptr_t)pthread_getspecific((tls)->key))
 #ifdef __cplusplus
 extern "C" {
 #endif
-gpr_intptr gpr_tls_set(struct gpr_pthread_thread_local *tls, gpr_intptr value);
+intptr_t gpr_tls_set(struct gpr_pthread_thread_local *tls, intptr_t value);
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/core/census/grpc_filter.c b/src/core/census/grpc_filter.c
index 4529ae9..ee1f62f 100644
--- a/src/core/census/grpc_filter.c
+++ b/src/core/census/grpc_filter.c
@@ -59,7 +59,7 @@
   grpc_closure finish_recv;
 } call_data;
 
-typedef struct channel_data { gpr_uint8 unused; } channel_data;
+typedef struct channel_data { uint8_t unused; } channel_data;
 
 static void extract_and_annotate_method_tag(grpc_metadata_batch *md,
                                             call_data *calld,
diff --git a/src/core/census/operation.c b/src/core/census/operation.c
index 118eb0a..5c58704 100644
--- a/src/core/census/operation.c
+++ b/src/core/census/operation.c
@@ -42,14 +42,14 @@
 }
 
 census_context *census_start_client_rpc_op(
-    const census_context *context, gpr_int64 rpc_name_id,
+    const census_context *context, int64_t rpc_name_id,
     const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
     const census_timestamp *start_time) {
   return NULL;
 }
 
 census_context *census_start_server_rpc_op(
-    const char *buffer, gpr_int64 rpc_name_id,
+    const char *buffer, int64_t rpc_name_id,
     const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
     census_timestamp *start_time) {
   return NULL;
diff --git a/src/core/census/rpc_metric_id.h b/src/core/census/rpc_metric_id.h
index 1d8e880..f199839 100644
--- a/src/core/census/rpc_metric_id.h
+++ b/src/core/census/rpc_metric_id.h
@@ -36,16 +36,16 @@
 
 /* Metric ID's used for RPC measurements. */
 /* Count of client requests sent. */
-#define CENSUS_METRIC_RPC_CLIENT_REQUESTS ((gpr_uint32)0)
+#define CENSUS_METRIC_RPC_CLIENT_REQUESTS ((uint32_t)0)
 /* Count of server requests sent. */
-#define CENSUS_METRIC_RPC_SERVER_REQUESTS ((gpr_uint32)1)
+#define CENSUS_METRIC_RPC_SERVER_REQUESTS ((uint32_t)1)
 /* Client error counts. */
-#define CENSUS_METRIC_RPC_CLIENT_ERRORS ((gpr_uint32)2)
+#define CENSUS_METRIC_RPC_CLIENT_ERRORS ((uint32_t)2)
 /* Server error counts. */
-#define CENSUS_METRIC_RPC_SERVER_ERRORS ((gpr_uint32)3)
+#define CENSUS_METRIC_RPC_SERVER_ERRORS ((uint32_t)3)
 /* Client side request latency. */
-#define CENSUS_METRIC_RPC_CLIENT_LATENCY ((gpr_uint32)4)
+#define CENSUS_METRIC_RPC_CLIENT_LATENCY ((uint32_t)4)
 /* Server side request latency. */
-#define CENSUS_METRIC_RPC_SERVER_LATENCY ((gpr_uint32)5)
+#define CENSUS_METRIC_RPC_SERVER_LATENCY ((uint32_t)5)
 
 #endif /* CENSUS_RPC_METRIC_ID_H */
diff --git a/src/core/census/tracing.c b/src/core/census/tracing.c
index ae38773..3b5d6da 100644
--- a/src/core/census/tracing.c
+++ b/src/core/census/tracing.c
@@ -41,5 +41,5 @@
 
 void census_set_trace_mask(int trace_mask) {}
 
-void census_trace_print(census_context *context, gpr_uint32 type,
+void census_trace_print(census_context *context, uint32_t type,
                         const char *buffer, size_t n) {}
diff --git a/src/core/channel/channel_stack.c b/src/core/channel/channel_stack.c
index 5e09a05..3e61688 100644
--- a/src/core/channel/channel_stack.c
+++ b/src/core/channel/channel_stack.c
@@ -137,7 +137,7 @@
   }
 
   GPR_ASSERT(user_data > (char *)stack);
-  GPR_ASSERT((gpr_uintptr)(user_data - (char *)stack) ==
+  GPR_ASSERT((uintptr_t)(user_data - (char *)stack) ==
              grpc_channel_stack_size(filters, filter_count));
 
   stack->call_stack_size = call_size;
diff --git a/src/core/channel/compress_filter.c b/src/core/channel/compress_filter.c
index cc8e191..3de1ef8 100644
--- a/src/core/channel/compress_filter.c
+++ b/src/core/channel/compress_filter.c
@@ -51,7 +51,7 @@
   gpr_slice_buffer slices; /**< Buffers up input slices to be compressed */
   grpc_linked_mdelem compression_algorithm_storage;
   grpc_linked_mdelem accept_encoding_storage;
-  gpr_uint32 remaining_slice_bytes;
+  uint32_t remaining_slice_bytes;
   /** Compression algorithm we'll try to use. It may be given by incoming
    * metadata, or by the channel's default compression settings. */
   grpc_compression_algorithm compression_algorithm;
@@ -59,8 +59,8 @@
   int has_compression_algorithm;
 
   grpc_transport_stream_op send_op;
-  gpr_uint32 send_length;
-  gpr_uint32 send_flags;
+  uint32_t send_length;
+  uint32_t send_flags;
   gpr_slice incoming_slice;
   grpc_slice_buffer_stream replacement_stream;
   grpc_closure *post_send;
@@ -74,7 +74,7 @@
   /** Compression options for the channel */
   grpc_compression_options compression_options;
   /** Supported compression algorithms */
-  gpr_uint32 supported_compression_algorithms;
+  uint32_t supported_compression_algorithms;
 } channel_data;
 
 /** For each \a md element from the incoming metadata, filter out the entry for
@@ -262,7 +262,7 @@
 
   grpc_compression_options_init(&channeld->compression_options);
   channeld->compression_options.enabled_algorithms_bitset =
-      (gpr_uint32)grpc_channel_args_compression_algorithm_get_states(
+      (uint32_t)grpc_channel_args_compression_algorithm_get_states(
           args->channel_args);
 
   channeld->default_compression_algorithm =
diff --git a/src/core/channel/http_server_filter.c b/src/core/channel/http_server_filter.c
index ae8660d..a10b105 100644
--- a/src/core/channel/http_server_filter.c
+++ b/src/core/channel/http_server_filter.c
@@ -40,12 +40,12 @@
 #include "src/core/transport/static_metadata.h"
 
 typedef struct call_data {
-  gpr_uint8 seen_path;
-  gpr_uint8 seen_post;
-  gpr_uint8 sent_status;
-  gpr_uint8 seen_scheme;
-  gpr_uint8 seen_te_trailers;
-  gpr_uint8 seen_authority;
+  uint8_t seen_path;
+  uint8_t seen_post;
+  uint8_t sent_status;
+  uint8_t seen_scheme;
+  uint8_t seen_te_trailers;
+  uint8_t seen_authority;
   grpc_linked_mdelem status;
   grpc_linked_mdelem content_type;
 
@@ -58,7 +58,7 @@
   grpc_closure hs_on_recv;
 } call_data;
 
-typedef struct channel_data { gpr_uint8 unused; } channel_data;
+typedef struct channel_data { uint8_t unused; } channel_data;
 
 typedef struct {
   grpc_call_element *elem;
diff --git a/src/core/channel/subchannel_call_holder.c b/src/core/channel/subchannel_call_holder.c
index f5da41f..1e8f4ba 100644
--- a/src/core/channel/subchannel_call_holder.c
+++ b/src/core/channel/subchannel_call_holder.c
@@ -155,7 +155,7 @@
       holder->connected_subchannel != NULL) {
     gpr_atm_rel_store(
         &holder->subchannel_call,
-        (gpr_atm)(gpr_uintptr)grpc_connected_subchannel_create_call(
+        (gpr_atm)(uintptr_t)grpc_connected_subchannel_create_call(
             exec_ctx, holder->connected_subchannel, holder->pollset));
     retry_waiting_locked(exec_ctx, holder);
     goto retry;
@@ -180,7 +180,7 @@
   } else {
     gpr_atm_rel_store(
         &holder->subchannel_call,
-        (gpr_atm)(gpr_uintptr)grpc_connected_subchannel_create_call(
+        (gpr_atm)(uintptr_t)grpc_connected_subchannel_create_call(
             exec_ctx, holder->connected_subchannel, holder->pollset));
     retry_waiting_locked(exec_ctx, holder);
   }
diff --git a/src/core/client_config/resolvers/sockaddr_resolver.c b/src/core/client_config/resolvers/sockaddr_resolver.c
index 81d6627..6343259 100644
--- a/src/core/client_config/resolvers/sockaddr_resolver.c
+++ b/src/core/client_config/resolvers/sockaddr_resolver.c
@@ -230,7 +230,7 @@
       gpr_log(GPR_ERROR, "invalid ipv4 port: '%s'", port);
       goto done;
     }
-    in->sin_port = htons((gpr_uint16)port_num);
+    in->sin_port = htons((uint16_t)port_num);
   } else {
     gpr_log(GPR_ERROR, "no port given for ipv4 scheme");
     goto done;
@@ -271,7 +271,7 @@
       gpr_log(GPR_ERROR, "invalid ipv6 port: '%s'", port);
       goto done;
     }
-    in6->sin6_port = htons((gpr_uint16)port_num);
+    in6->sin6_port = htons((uint16_t)port_num);
   } else {
     gpr_log(GPR_ERROR, "no port given for ipv6 scheme");
     goto done;
diff --git a/src/core/client_config/subchannel.c b/src/core/client_config/subchannel.c
index 9a332c4..2992da8 100644
--- a/src/core/client_config/subchannel.c
+++ b/src/core/client_config/subchannel.c
@@ -131,7 +131,7 @@
   /** our alarm */
   grpc_timer alarm;
   /** current random value */
-  gpr_uint32 random;
+  uint32_t random;
 };
 
 struct grpc_subchannel_call {
@@ -272,8 +272,8 @@
   }
 }
 
-static gpr_uint32 random_seed() {
-  return (gpr_uint32)(gpr_time_to_millis(gpr_now(GPR_CLOCK_MONOTONIC)));
+static uint32_t random_seed() {
+  return (uint32_t)(gpr_time_to_millis(gpr_now(GPR_CLOCK_MONOTONIC)));
 }
 
 grpc_subchannel *grpc_subchannel_create(grpc_connector *connector,
@@ -541,15 +541,15 @@
 
 /* Generate a random number between 0 and 1. */
 static double generate_uniform_random_number(grpc_subchannel *c) {
-  c->random = (1103515245 * c->random + 12345) % ((gpr_uint32)1 << 31);
-  return c->random / (double)((gpr_uint32)1 << 31);
+  c->random = (1103515245 * c->random + 12345) % ((uint32_t)1 << 31);
+  return c->random / (double)((uint32_t)1 << 31);
 }
 
 /* Update backoff_delta and next_attempt in subchannel */
 static void update_reconnect_parameters(grpc_subchannel *c) {
   size_t i;
-  gpr_int32 backoff_delta_millis, jitter;
-  gpr_int32 max_backoff_millis =
+  int32_t backoff_delta_millis, jitter;
+  int32_t max_backoff_millis =
       GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS * 1000;
   double jitter_range;
 
@@ -567,8 +567,8 @@
   }
 
   backoff_delta_millis =
-      (gpr_int32)(gpr_time_to_millis(c->backoff_delta) *
-                  GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER);
+      (int32_t)(gpr_time_to_millis(c->backoff_delta) *
+                GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER);
   if (backoff_delta_millis > max_backoff_millis) {
     backoff_delta_millis = max_backoff_millis;
   }
@@ -578,7 +578,7 @@
 
   jitter_range = GRPC_SUBCHANNEL_RECONNECT_JITTER * backoff_delta_millis;
   jitter =
-      (gpr_int32)((2 * generate_uniform_random_number(c) - 1) * jitter_range);
+      (int32_t)((2 * generate_uniform_random_number(c) - 1) * jitter_range);
   c->next_attempt =
       gpr_time_add(c->next_attempt, gpr_time_from_millis(jitter, GPR_TIMESPAN));
 }
diff --git a/src/core/httpcli/format_request.c b/src/core/httpcli/format_request.c
index 6189fce..04f2a2d 100644
--- a/src/core/httpcli/format_request.c
+++ b/src/core/httpcli/format_request.c
@@ -93,7 +93,7 @@
   gpr_strvec_add(&out, gpr_strdup("POST "));
   fill_common_header(request, &out);
   if (body_bytes) {
-    gpr_uint8 has_content_type = 0;
+    uint8_t has_content_type = 0;
     for (i = 0; i < request->hdr_count; i++) {
       if (strcmp(request->hdrs[i].key, "Content-Type") == 0) {
         has_content_type = 1;
diff --git a/src/core/httpcli/httpcli_security_connector.c b/src/core/httpcli/httpcli_security_connector.c
index ba7cba2..4822d52 100644
--- a/src/core/httpcli/httpcli_security_connector.c
+++ b/src/core/httpcli/httpcli_security_connector.c
@@ -84,8 +84,7 @@
 }
 
 static void httpcli_ssl_check_peer(grpc_exec_ctx *exec_ctx,
-                                   grpc_security_connector *sc,
-                                   tsi_peer peer,
+                                   grpc_security_connector *sc, tsi_peer peer,
                                    grpc_security_peer_check_cb cb,
                                    void *user_data) {
   grpc_httpcli_ssl_channel_security_connector *c =
diff --git a/src/core/httpcli/parser.c b/src/core/httpcli/parser.c
index 046770c..c314f02 100644
--- a/src/core/httpcli/parser.c
+++ b/src/core/httpcli/parser.c
@@ -40,9 +40,9 @@
 #include <grpc/support/useful.h>
 
 static int handle_response_line(grpc_httpcli_parser *parser) {
-  gpr_uint8 *beg = parser->cur_line;
-  gpr_uint8 *cur = beg;
-  gpr_uint8 *end = beg + parser->cur_line_length;
+  uint8_t *beg = parser->cur_line;
+  uint8_t *cur = beg;
+  uint8_t *end = beg + parser->cur_line_length;
 
   if (cur == end || *cur++ != 'H') goto error;
   if (cur == end || *cur++ != 'T') goto error;
@@ -77,9 +77,9 @@
 }
 
 static int add_header(grpc_httpcli_parser *parser) {
-  gpr_uint8 *beg = parser->cur_line;
-  gpr_uint8 *cur = beg;
-  gpr_uint8 *end = beg + parser->cur_line_length;
+  uint8_t *beg = parser->cur_line;
+  uint8_t *cur = beg;
+  uint8_t *end = beg + parser->cur_line_length;
   grpc_httpcli_header hdr = {NULL, NULL};
 
   GPR_ASSERT(cur != end);
@@ -146,7 +146,7 @@
   return 1;
 }
 
-static int addbyte(grpc_httpcli_parser *parser, gpr_uint8 byte) {
+static int addbyte(grpc_httpcli_parser *parser, uint8_t byte) {
   switch (parser->state) {
     case GRPC_HTTPCLI_INITIAL_RESPONSE:
     case GRPC_HTTPCLI_HEADERS:
diff --git a/src/core/httpcli/parser.h b/src/core/httpcli/parser.h
index 40b28f0..cd03836 100644
--- a/src/core/httpcli/parser.h
+++ b/src/core/httpcli/parser.h
@@ -51,7 +51,7 @@
   size_t body_capacity;
   size_t hdr_capacity;
 
-  gpr_uint8 cur_line[GRPC_HTTPCLI_MAX_HEADER_LENGTH];
+  uint8_t cur_line[GRPC_HTTPCLI_MAX_HEADER_LENGTH];
   size_t cur_line_length;
 } grpc_httpcli_parser;
 
diff --git a/src/core/iomgr/closure.c b/src/core/iomgr/closure.c
index 4aae52a..7646a88 100644
--- a/src/core/iomgr/closure.c
+++ b/src/core/iomgr/closure.c
@@ -49,7 +49,7 @@
   if (closure_list->head == NULL) {
     closure_list->head = closure;
   } else {
-    closure_list->tail->final_data |= (gpr_uintptr)closure;
+    closure_list->tail->final_data |= (uintptr_t)closure;
   }
   closure_list->tail = closure;
 }
@@ -65,7 +65,7 @@
   if (dst->head == NULL) {
     *dst = *src;
   } else {
-    dst->tail->final_data |= (gpr_uintptr)src->head;
+    dst->tail->final_data |= (uintptr_t)src->head;
     dst->tail = src->tail;
   }
   src->head = src->tail = NULL;
@@ -94,5 +94,5 @@
 }
 
 grpc_closure *grpc_closure_next(grpc_closure *closure) {
-  return (grpc_closure *)(closure->final_data & ~(gpr_uintptr)1);
+  return (grpc_closure *)(closure->final_data & ~(uintptr_t)1);
 }
diff --git a/src/core/iomgr/closure.h b/src/core/iomgr/closure.h
index a1d738b..98ef91e 100644
--- a/src/core/iomgr/closure.h
+++ b/src/core/iomgr/closure.h
@@ -67,7 +67,7 @@
   /** Once enqueued, contains in the lower bit the success of the closure,
       and in the upper bits the pointer to the next closure in the list.
       Before enqueing for execution, this is usable for scratch data. */
-  gpr_uintptr final_data;
+  uintptr_t final_data;
 };
 
 /** Initializes \a closure with \a cb and \a cb_arg. */
diff --git a/src/core/iomgr/exec_ctx.c b/src/core/iomgr/exec_ctx.c
index e95eaf2..6059a60 100644
--- a/src/core/iomgr/exec_ctx.c
+++ b/src/core/iomgr/exec_ctx.c
@@ -45,7 +45,7 @@
     exec_ctx->closure_list.head = exec_ctx->closure_list.tail = NULL;
     while (c != NULL) {
       int success = (int)(c->final_data & 1);
-      grpc_closure *next = (grpc_closure *)(c->final_data & ~(gpr_uintptr)1);
+      grpc_closure *next = (grpc_closure *)(c->final_data & ~(uintptr_t)1);
       did_something++;
       GPR_TIMER_BEGIN("grpc_exec_ctx_flush.cb", 0);
       c->cb(exec_ctx, c->cb_arg, success);
diff --git a/src/core/iomgr/fd_posix.c b/src/core/iomgr/fd_posix.c
index 00710d8..3e28f0f 100644
--- a/src/core/iomgr/fd_posix.c
+++ b/src/core/iomgr/fd_posix.c
@@ -318,10 +318,10 @@
   gpr_mu_unlock(&fd->mu);
 }
 
-gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
-                              grpc_pollset_worker *worker, gpr_uint32 read_mask,
-                              gpr_uint32 write_mask, grpc_fd_watcher *watcher) {
-  gpr_uint32 mask = 0;
+uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+                            grpc_pollset_worker *worker, uint32_t read_mask,
+                            uint32_t write_mask, grpc_fd_watcher *watcher) {
+  uint32_t mask = 0;
   grpc_closure *cur;
   int requested;
   /* keep track of pollers that have requested our events, in case they change
diff --git a/src/core/iomgr/fd_posix.h b/src/core/iomgr/fd_posix.h
index df4eb64..d088749 100644
--- a/src/core/iomgr/fd_posix.h
+++ b/src/core/iomgr/fd_posix.h
@@ -126,9 +126,9 @@
    Polling strategies that do not need to alter their behavior depending on the
    fd's current interest (such as epoll) do not need to call this function.
    MUST NOT be called with a pollset lock taken */
-gpr_uint32 grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
-                              grpc_pollset_worker *worker, gpr_uint32 read_mask,
-                              gpr_uint32 write_mask, grpc_fd_watcher *rec);
+uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+                            grpc_pollset_worker *worker, uint32_t read_mask,
+                            uint32_t write_mask, grpc_fd_watcher *rec);
 /* Complete polling previously started with grpc_fd_begin_poll
    MUST NOT be called with a pollset lock taken
    if got_read or got_write are 1, also does the become_{readable,writable} as
diff --git a/src/core/iomgr/iocp_windows.c b/src/core/iomgr/iocp_windows.c
index 65da3a9..d3868ce 100644
--- a/src/core/iomgr/iocp_windows.c
+++ b/src/core/iomgr/iocp_windows.c
@@ -160,7 +160,7 @@
   HANDLE ret;
   if (socket->added_to_iocp) return;
   ret = CreateIoCompletionPort((HANDLE)socket->socket, g_iocp,
-                               (gpr_uintptr)socket, 0);
+                               (uintptr_t)socket, 0);
   if (!ret) {
     char *utf8_message = gpr_format_message(WSAGetLastError());
     gpr_log(GPR_ERROR, "Unable to add socket to iocp: %s", utf8_message);
diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c
index 9195344..c325b63 100644
--- a/src/core/iomgr/pollset_posix.c
+++ b/src/core/iomgr/pollset_posix.c
@@ -100,7 +100,7 @@
 
 void grpc_pollset_kick_ext(grpc_pollset *p,
                            grpc_pollset_worker *specific_worker,
-                           gpr_uint32 flags) {
+                           uint32_t flags) {
   GPR_TIMER_BEGIN("grpc_pollset_kick_ext", 0);
 
   /* pollset->mu already held */
@@ -116,7 +116,7 @@
       p->kicked_without_pollers = 1;
       GPR_TIMER_END("grpc_pollset_kick_ext.broadcast", 0);
     } else if (gpr_tls_get(&g_current_thread_worker) !=
-               (gpr_intptr)specific_worker) {
+               (intptr_t)specific_worker) {
       GPR_TIMER_MARK("different_thread_worker", 0);
       if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
         specific_worker->reevaluate_polling_on_wakeup = 1;
@@ -131,19 +131,18 @@
       specific_worker->kicked_specifically = 1;
       grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
     }
-  } else if (gpr_tls_get(&g_current_thread_poller) != (gpr_intptr)p) {
+  } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
     GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
     GPR_TIMER_MARK("kick_anonymous", 0);
     specific_worker = pop_front_worker(p);
     if (specific_worker != NULL) {
-      if (gpr_tls_get(&g_current_thread_worker) ==
-          (gpr_intptr)specific_worker) {
+      if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
         GPR_TIMER_MARK("kick_anonymous_not_self", 0);
         push_back_worker(p, specific_worker);
         specific_worker = pop_front_worker(p);
         if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
             gpr_tls_get(&g_current_thread_worker) ==
-                (gpr_intptr)specific_worker) {
+                (intptr_t)specific_worker) {
           push_back_worker(p, specific_worker);
           specific_worker = NULL;
         }
@@ -307,9 +306,9 @@
       if (!added_worker) {
         push_front_worker(pollset, worker);
         added_worker = 1;
-        gpr_tls_set(&g_current_thread_worker, (gpr_intptr)worker);
+        gpr_tls_set(&g_current_thread_worker, (intptr_t)worker);
       }
-      gpr_tls_set(&g_current_thread_poller, (gpr_intptr)pollset);
+      gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
       GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
       pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, worker,
                                              deadline, now);
diff --git a/src/core/iomgr/pollset_posix.h b/src/core/iomgr/pollset_posix.h
index 29de4a2..78fc27d 100644
--- a/src/core/iomgr/pollset_posix.h
+++ b/src/core/iomgr/pollset_posix.h
@@ -122,7 +122,7 @@
    -- mostly for fd_posix's use. */
 void grpc_pollset_kick_ext(grpc_pollset *p,
                            grpc_pollset_worker *specific_worker,
-                           gpr_uint32 flags);
+                           uint32_t flags);
 
 /* turn a pollset into a multipoller: platform specific */
 typedef void (*grpc_platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
diff --git a/src/core/iomgr/sockaddr_utils.c b/src/core/iomgr/sockaddr_utils.c
index 511a5d5..61006d7 100644
--- a/src/core/iomgr/sockaddr_utils.c
+++ b/src/core/iomgr/sockaddr_utils.c
@@ -48,8 +48,8 @@
 
 #include "src/core/support/string.h"
 
-static const gpr_uint8 kV4MappedPrefix[] = {0, 0, 0, 0, 0,    0,
-                                            0, 0, 0, 0, 0xff, 0xff};
+static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0,    0,
+                                          0, 0, 0, 0, 0xff, 0xff};
 
 int grpc_sockaddr_is_v4mapped(const struct sockaddr *addr,
                               struct sockaddr_in *addr4_out) {
@@ -126,14 +126,14 @@
   GPR_ASSERT(port >= 0 && port < 65536);
   memset(wild_out, 0, sizeof(*wild_out));
   wild_out->sin_family = AF_INET;
-  wild_out->sin_port = htons((gpr_uint16)port);
+  wild_out->sin_port = htons((uint16_t)port);
 }
 
 void grpc_sockaddr_make_wildcard6(int port, struct sockaddr_in6 *wild_out) {
   GPR_ASSERT(port >= 0 && port < 65536);
   memset(wild_out, 0, sizeof(*wild_out));
   wild_out->sin6_family = AF_INET6;
-  wild_out->sin6_port = htons((gpr_uint16)port);
+  wild_out->sin6_port = htons((uint16_t)port);
 }
 
 int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr,
@@ -220,11 +220,11 @@
   switch (addr->sa_family) {
     case AF_INET:
       GPR_ASSERT(port >= 0 && port < 65536);
-      ((struct sockaddr_in *)addr)->sin_port = htons((gpr_uint16)port);
+      ((struct sockaddr_in *)addr)->sin_port = htons((uint16_t)port);
       return 1;
     case AF_INET6:
       GPR_ASSERT(port >= 0 && port < 65536);
-      ((struct sockaddr_in6 *)addr)->sin6_port = htons((gpr_uint16)port);
+      ((struct sockaddr_in6 *)addr)->sin6_port = htons((uint16_t)port);
       return 1;
     default:
       gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_set_port",
diff --git a/src/core/iomgr/tcp_server_posix.c b/src/core/iomgr/tcp_server_posix.c
index 835675c..49e83cf 100644
--- a/src/core/iomgr/tcp_server_posix.c
+++ b/src/core/iomgr/tcp_server_posix.c
@@ -78,7 +78,7 @@
   grpc_fd *emfd;
   grpc_tcp_server *server;
   union {
-    gpr_uint8 untyped[GRPC_MAX_SOCKADDR_SIZE];
+    uint8_t untyped[GRPC_MAX_SOCKADDR_SIZE];
     struct sockaddr sockaddr;
     struct sockaddr_un un;
   } addr;
diff --git a/src/core/iomgr/tcp_server_windows.c b/src/core/iomgr/tcp_server_windows.c
index 583cab4..d38fd88 100644
--- a/src/core/iomgr/tcp_server_windows.c
+++ b/src/core/iomgr/tcp_server_windows.c
@@ -58,7 +58,7 @@
 struct grpc_tcp_listener {
   /* This seemingly magic number comes from AcceptEx's documentation. each
      address buffer needs to have at least 16 more bytes at their end. */
-  gpr_uint8 addresses[(sizeof(struct sockaddr_in6) + 16) * 2];
+  uint8_t addresses[(sizeof(struct sockaddr_in6) + 16) * 2];
   /* This will hold the socket for the next accept. */
   SOCKET new_socket;
   /* The listener winsocket. */
diff --git a/src/core/iomgr/timer.c b/src/core/iomgr/timer.c
index bbf9800..24d6204 100644
--- a/src/core/iomgr/timer.c
+++ b/src/core/iomgr/timer.c
@@ -55,7 +55,7 @@
   gpr_timespec queue_deadline_cap;
   gpr_timespec min_deadline;
   /* Index in the g_shard_queue */
-  gpr_uint32 shard_queue_index;
+  uint32_t shard_queue_index;
   /* This holds all timers with deadlines < queue_deadline_cap. Timers in this
      list have the top bit of their deadline set to 0. */
   grpc_timer_heap heap;
@@ -82,7 +82,7 @@
 }
 
 void grpc_timer_list_init(gpr_timespec now) {
-  gpr_uint32 i;
+  uint32_t i;
 
   gpr_mu_init(&g_mu);
   gpr_mu_init(&g_checker_mu);
@@ -126,8 +126,8 @@
 
 static gpr_timespec dbl_to_ts(double d) {
   gpr_timespec ts;
-  ts.tv_sec = (gpr_int64)d;
-  ts.tv_nsec = (gpr_int32)(1e9 * (d - (double)ts.tv_sec));
+  ts.tv_sec = (int64_t)d;
+  ts.tv_nsec = (int32_t)(1e9 * (d - (double)ts.tv_sec));
   ts.clock_type = GPR_TIMESPAN;
   return ts;
 }
@@ -143,7 +143,7 @@
   timer->prev->next = timer->next;
 }
 
-static void swap_adjacent_shards_in_queue(gpr_uint32 first_shard_queue_index) {
+static void swap_adjacent_shards_in_queue(uint32_t first_shard_queue_index) {
   shard_type *temp;
   temp = g_shard_queue[first_shard_queue_index];
   g_shard_queue[first_shard_queue_index] =
diff --git a/src/core/iomgr/timer.h b/src/core/iomgr/timer.h
index 9abe581..720c9d5 100644
--- a/src/core/iomgr/timer.h
+++ b/src/core/iomgr/timer.h
@@ -41,7 +41,7 @@
 
 typedef struct grpc_timer {
   gpr_timespec deadline;
-  gpr_uint32 heap_index; /* INVALID_HEAP_INDEX if not in heap */
+  uint32_t heap_index; /* INVALID_HEAP_INDEX if not in heap */
   int triggered;
   struct grpc_timer *next;
   struct grpc_timer *prev;
diff --git a/src/core/iomgr/timer_heap.c b/src/core/iomgr/timer_heap.c
index 31d41d6..9d8be5c 100644
--- a/src/core/iomgr/timer_heap.c
+++ b/src/core/iomgr/timer_heap.c
@@ -43,9 +43,9 @@
    position. This functor is called each time immediately after modifying a
    value in the underlying container, with the offset of the modified element as
    its argument. */
-static void adjust_upwards(grpc_timer **first, gpr_uint32 i, grpc_timer *t) {
+static void adjust_upwards(grpc_timer **first, uint32_t i, grpc_timer *t) {
   while (i > 0) {
-    gpr_uint32 parent = (gpr_uint32)(((int)i - 1) / 2);
+    uint32_t parent = (uint32_t)(((int)i - 1) / 2);
     if (gpr_time_cmp(first[parent]->deadline, t->deadline) >= 0) break;
     first[i] = first[parent];
     first[i]->heap_index = i;
@@ -58,12 +58,12 @@
 /* Adjusts a heap so as to move a hole at position i farther away from the root,
    until a suitable position is found for element t.  Then, copies t into that
    position. */
-static void adjust_downwards(grpc_timer **first, gpr_uint32 i,
-                             gpr_uint32 length, grpc_timer *t) {
+static void adjust_downwards(grpc_timer **first, uint32_t i, uint32_t length,
+                             grpc_timer *t) {
   for (;;) {
-    gpr_uint32 left_child = 1u + 2u * i;
-    gpr_uint32 right_child;
-    gpr_uint32 next_i;
+    uint32_t left_child = 1u + 2u * i;
+    uint32_t right_child;
+    uint32_t next_i;
     if (left_child >= length) break;
     right_child = left_child + 1;
     next_i = right_child < length &&
@@ -93,8 +93,8 @@
 }
 
 static void note_changed_priority(grpc_timer_heap *heap, grpc_timer *timer) {
-  gpr_uint32 i = timer->heap_index;
-  gpr_uint32 parent = (gpr_uint32)(((int)i - 1) / 2);
+  uint32_t i = timer->heap_index;
+  uint32_t parent = (uint32_t)(((int)i - 1) / 2);
   if (gpr_time_cmp(heap->timers[parent]->deadline, timer->deadline) < 0) {
     adjust_upwards(heap->timers, i, timer);
   } else {
@@ -122,7 +122,7 @@
 }
 
 void grpc_timer_heap_remove(grpc_timer_heap *heap, grpc_timer *timer) {
-  gpr_uint32 i = timer->heap_index;
+  uint32_t i = timer->heap_index;
   if (i == heap->timer_count - 1) {
     heap->timer_count--;
     maybe_shrink(heap);
diff --git a/src/core/iomgr/timer_heap.h b/src/core/iomgr/timer_heap.h
index cd5258f..2d220f1 100644
--- a/src/core/iomgr/timer_heap.h
+++ b/src/core/iomgr/timer_heap.h
@@ -38,8 +38,8 @@
 
 typedef struct {
   grpc_timer **timers;
-  gpr_uint32 timer_count;
-  gpr_uint32 timer_capacity;
+  uint32_t timer_count;
+  uint32_t timer_capacity;
 } grpc_timer_heap;
 
 /* return 1 if the new timer is the first timer in the heap */
diff --git a/src/core/iomgr/udp_server.c b/src/core/iomgr/udp_server.c
index 28f1bfa..a1a6b04 100644
--- a/src/core/iomgr/udp_server.c
+++ b/src/core/iomgr/udp_server.c
@@ -75,7 +75,7 @@
   grpc_fd *emfd;
   grpc_udp_server *server;
   union {
-    gpr_uint8 untyped[GRPC_MAX_SOCKADDR_SIZE];
+    uint8_t untyped[GRPC_MAX_SOCKADDR_SIZE];
     struct sockaddr sockaddr;
     struct sockaddr_un un;
   } addr;
diff --git a/src/core/json/json_reader.c b/src/core/json/json_reader.c
index 2569952..30da6f2 100644
--- a/src/core/json/json_reader.c
+++ b/src/core/json/json_reader.c
@@ -43,17 +43,16 @@
   reader->vtable->string_clear(reader->userdata);
 }
 
-static void json_reader_string_add_char(grpc_json_reader *reader,
-                                        gpr_uint32 c) {
+static void json_reader_string_add_char(grpc_json_reader *reader, uint32_t c) {
   reader->vtable->string_add_char(reader->userdata, c);
 }
 
 static void json_reader_string_add_utf32(grpc_json_reader *reader,
-                                         gpr_uint32 utf32) {
+                                         uint32_t utf32) {
   reader->vtable->string_add_utf32(reader->userdata, utf32);
 }
 
-static gpr_uint32 grpc_json_reader_read_char(grpc_json_reader *reader) {
+static uint32_t grpc_json_reader_read_char(grpc_json_reader *reader) {
   return reader->vtable->read_char(reader->userdata);
 }
 
@@ -108,7 +107,7 @@
 }
 
 grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
-  gpr_uint32 c, success;
+  uint32_t c, success;
 
   /* This state-machine is a strict implementation of ECMA-404 */
   for (;;) {
@@ -154,7 +153,7 @@
           case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
           case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
           case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
-            success = (gpr_uint32)json_reader_set_number(reader);
+            success = (uint32_t)json_reader_set_number(reader);
             if (!success) return GRPC_JSON_PARSE_ERROR;
             json_reader_string_clear(reader);
             reader->state = GRPC_JSON_STATE_VALUE_END;
@@ -181,7 +180,7 @@
           case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
           case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
           case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
-            success = (gpr_uint32)json_reader_set_number(reader);
+            success = (uint32_t)json_reader_set_number(reader);
             if (!success) return GRPC_JSON_PARSE_ERROR;
             json_reader_string_clear(reader);
             reader->state = GRPC_JSON_STATE_VALUE_END;
@@ -416,8 +415,8 @@
             } else {
               return GRPC_JSON_PARSE_ERROR;
             }
-            reader->unicode_char = (gpr_uint16)(reader->unicode_char << 4);
-            reader->unicode_char = (gpr_uint16)(reader->unicode_char | c);
+            reader->unicode_char = (uint16_t)(reader->unicode_char << 4);
+            reader->unicode_char = (uint16_t)(reader->unicode_char | c);
 
             switch (reader->state) {
               case GRPC_JSON_STATE_STRING_ESCAPE_U1:
@@ -440,13 +439,13 @@
                   reader->unicode_high_surrogate = reader->unicode_char;
                 } else if ((reader->unicode_char & 0xfc00) == 0xdc00) {
                   /* low surrogate utf-16 */
-                  gpr_uint32 utf32;
+                  uint32_t utf32;
                   if (reader->unicode_high_surrogate == 0)
                     return GRPC_JSON_PARSE_ERROR;
                   utf32 = 0x10000;
-                  utf32 += (gpr_uint32)(
+                  utf32 += (uint32_t)(
                       (reader->unicode_high_surrogate - 0xd800) * 0x400);
-                  utf32 += (gpr_uint32)(reader->unicode_char - 0xdc00);
+                  utf32 += (uint32_t)(reader->unicode_char - 0xdc00);
                   json_reader_string_add_utf32(reader, utf32);
                   reader->unicode_high_surrogate = 0;
                 } else {
diff --git a/src/core/json/json_reader.h b/src/core/json/json_reader.h
index 417db11..90b9f1f 100644
--- a/src/core/json/json_reader.h
+++ b/src/core/json/json_reader.h
@@ -84,11 +84,11 @@
   /* Clears your internal string scratchpad. */
   void (*string_clear)(void *userdata);
   /* Adds a char to the string scratchpad. */
-  void (*string_add_char)(void *userdata, gpr_uint32 c);
+  void (*string_add_char)(void *userdata, uint32_t c);
   /* Adds a utf32 char to the string scratchpad. */
-  void (*string_add_utf32)(void *userdata, gpr_uint32 c);
+  void (*string_add_utf32)(void *userdata, uint32_t c);
   /* Reads a character from your input. May be utf-8, 16 or 32. */
-  gpr_uint32 (*read_char)(void *userdata);
+  uint32_t (*read_char)(void *userdata);
   /* Starts a container of type GRPC_JSON_ARRAY or GRPC_JSON_OBJECT. */
   void (*container_begins)(void *userdata, grpc_json_type type);
   /* Ends the current container. Must return the type of its parent. */
@@ -117,7 +117,7 @@
   int in_array;
   int escaped_string_was_key;
   int container_just_begun;
-  gpr_uint16 unicode_char, unicode_high_surrogate;
+  uint16_t unicode_char, unicode_high_surrogate;
   grpc_json_reader_state state;
 } grpc_json_reader;
 
diff --git a/src/core/json/json_string.c b/src/core/json/json_string.c
index 06c157d..2bc0b51 100644
--- a/src/core/json/json_string.c
+++ b/src/core/json/json_string.c
@@ -56,10 +56,10 @@
   grpc_json *top;
   grpc_json *current_container;
   grpc_json *current_value;
-  gpr_uint8 *input;
-  gpr_uint8 *key;
-  gpr_uint8 *string;
-  gpr_uint8 *string_ptr;
+  uint8_t *input;
+  uint8_t *key;
+  uint8_t *string;
+  uint8_t *string_ptr;
   size_t remaining_input;
 } json_reader_userdata;
 
@@ -122,36 +122,36 @@
   state->string = state->string_ptr;
 }
 
-static void json_reader_string_add_char(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_char(void *userdata, uint32_t c) {
   json_reader_userdata *state = userdata;
   GPR_ASSERT(state->string_ptr < state->input);
   GPR_ASSERT(c <= 0xff);
-  *state->string_ptr++ = (gpr_uint8)c;
+  *state->string_ptr++ = (uint8_t)c;
 }
 
 /* We are converting a UTF-32 character into UTF-8 here,
  * as described by RFC3629.
  */
-static void json_reader_string_add_utf32(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_utf32(void *userdata, uint32_t c) {
   if (c <= 0x7f) {
     json_reader_string_add_char(userdata, c);
   } else if (c <= 0x7ff) {
-    gpr_uint32 b1 = 0xc0 | ((c >> 6) & 0x1f);
-    gpr_uint32 b2 = 0x80 | (c & 0x3f);
+    uint32_t b1 = 0xc0 | ((c >> 6) & 0x1f);
+    uint32_t b2 = 0x80 | (c & 0x3f);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
   } else if (c <= 0xffff) {
-    gpr_uint32 b1 = 0xe0 | ((c >> 12) & 0x0f);
-    gpr_uint32 b2 = 0x80 | ((c >> 6) & 0x3f);
-    gpr_uint32 b3 = 0x80 | (c & 0x3f);
+    uint32_t b1 = 0xe0 | ((c >> 12) & 0x0f);
+    uint32_t b2 = 0x80 | ((c >> 6) & 0x3f);
+    uint32_t b3 = 0x80 | (c & 0x3f);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
   } else if (c <= 0x1fffff) {
-    gpr_uint32 b1 = 0xf0 | ((c >> 18) & 0x07);
-    gpr_uint32 b2 = 0x80 | ((c >> 12) & 0x3f);
-    gpr_uint32 b3 = 0x80 | ((c >> 6) & 0x3f);
-    gpr_uint32 b4 = 0x80 | (c & 0x3f);
+    uint32_t b1 = 0xf0 | ((c >> 18) & 0x07);
+    uint32_t b2 = 0x80 | ((c >> 12) & 0x3f);
+    uint32_t b3 = 0x80 | ((c >> 6) & 0x3f);
+    uint32_t b4 = 0x80 | (c & 0x3f);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
@@ -162,8 +162,8 @@
 /* We consider that the input may be a zero-terminated string. So we
  * can end up hitting eof before the end of the alleged string length.
  */
-static gpr_uint32 json_reader_read_char(void *userdata) {
-  gpr_uint32 r;
+static uint32_t json_reader_read_char(void *userdata) {
+  uint32_t r;
   json_reader_userdata *state = userdata;
 
   if (state->remaining_input == 0) return GRPC_JSON_READ_CHAR_EOF;
@@ -302,7 +302,7 @@
 
   state.top = state.current_container = state.current_value = NULL;
   state.string = state.key = NULL;
-  state.string_ptr = state.input = (gpr_uint8 *)input;
+  state.string_ptr = state.input = (uint8_t *)input;
   state.remaining_input = size;
   grpc_json_reader_init(&reader, &reader_vtable, &state);
 
diff --git a/src/core/json/json_writer.c b/src/core/json/json_writer.c
index e0d02f4..326ec2d 100644
--- a/src/core/json/json_writer.c
+++ b/src/core/json/json_writer.c
@@ -100,8 +100,7 @@
   }
 }
 
-static void json_writer_escape_utf16(grpc_json_writer *writer,
-                                     gpr_uint16 utf16) {
+static void json_writer_escape_utf16(grpc_json_writer *writer, uint16_t utf16) {
   static const char hex[] = "0123456789abcdef";
 
   json_writer_output_string_with_len(writer, "\\u", 2);
@@ -116,7 +115,7 @@
   json_writer_output_char(writer, '"');
 
   for (;;) {
-    gpr_uint8 c = (gpr_uint8)*string++;
+    uint8_t c = (uint8_t)*string++;
     if (c == 0) {
       break;
     } else if ((c >= 32) && (c <= 126)) {
@@ -144,7 +143,7 @@
           break;
       }
     } else {
-      gpr_uint32 utf32 = 0;
+      uint32_t utf32 = 0;
       int extra = 0;
       int i;
       int valid = 1;
@@ -162,7 +161,7 @@
       }
       for (i = 0; i < extra; i++) {
         utf32 <<= 6;
-        c = (gpr_uint8)(*string++);
+        c = (uint8_t)(*string++);
         /* Breaks out and bail on any invalid UTF-8 sequence, including \0. */
         if ((c & 0xc0) != 0x80) {
           valid = 0;
@@ -195,11 +194,10 @@
          * That range is exactly 20 bits.
          */
         utf32 -= 0x10000;
-        json_writer_escape_utf16(writer, (gpr_uint16)(0xd800 | (utf32 >> 10)));
-        json_writer_escape_utf16(writer,
-                                 (gpr_uint16)(0xdc00 | (utf32 & 0x3ff)));
+        json_writer_escape_utf16(writer, (uint16_t)(0xd800 | (utf32 >> 10)));
+        json_writer_escape_utf16(writer, (uint16_t)(0xdc00 | (utf32 & 0x3ff)));
       } else {
-        json_writer_escape_utf16(writer, (gpr_uint16)utf32);
+        json_writer_escape_utf16(writer, (uint16_t)utf32);
       }
     }
   }
diff --git a/src/core/profiling/basic_timers.c b/src/core/profiling/basic_timers.c
index eedd387..df32472 100644
--- a/src/core/profiling/basic_timers.c
+++ b/src/core/profiling/basic_timers.c
@@ -52,7 +52,7 @@
   const char *file;
   short line;
   char type;
-  gpr_uint8 important;
+  uint8_t important;
   int thd;
 } gpr_timer_entry;
 
diff --git a/src/core/security/base64.c b/src/core/security/base64.c
index 5226d2c..e683596 100644
--- a/src/core/security/base64.c
+++ b/src/core/security/base64.c
@@ -114,7 +114,7 @@
   }
 
   GPR_ASSERT(current >= result);
-  GPR_ASSERT((gpr_uintptr)(current - result) < result_projected_size);
+  GPR_ASSERT((uintptr_t)(current - result) < result_projected_size);
   result[current - result] = '\0';
   return result;
 }
@@ -125,14 +125,14 @@
 
 static void decode_one_char(const unsigned char *codes, unsigned char *result,
                             size_t *result_offset) {
-  gpr_uint32 packed = ((gpr_uint32)codes[0] << 2) | ((gpr_uint32)codes[1] >> 4);
+  uint32_t packed = ((uint32_t)codes[0] << 2) | ((uint32_t)codes[1] >> 4);
   result[(*result_offset)++] = (unsigned char)packed;
 }
 
 static void decode_two_chars(const unsigned char *codes, unsigned char *result,
                              size_t *result_offset) {
-  gpr_uint32 packed = ((gpr_uint32)codes[0] << 10) |
-                      ((gpr_uint32)codes[1] << 4) | ((gpr_uint32)codes[2] >> 2);
+  uint32_t packed = ((uint32_t)codes[0] << 10) | ((uint32_t)codes[1] << 4) |
+                    ((uint32_t)codes[2] >> 2);
   result[(*result_offset)++] = (unsigned char)(packed >> 8);
   result[(*result_offset)++] = (unsigned char)(packed);
 }
@@ -172,9 +172,8 @@
     decode_two_chars(codes, result, result_offset);
   } else {
     /* No padding. */
-    gpr_uint32 packed = ((gpr_uint32)codes[0] << 18) |
-                        ((gpr_uint32)codes[1] << 12) |
-                        ((gpr_uint32)codes[2] << 6) | codes[3];
+    uint32_t packed = ((uint32_t)codes[0] << 18) | ((uint32_t)codes[1] << 12) |
+                      ((uint32_t)codes[2] << 6) | codes[3];
     result[(*result_offset)++] = (unsigned char)(packed >> 16);
     result[(*result_offset)++] = (unsigned char)(packed >> 8);
     result[(*result_offset)++] = (unsigned char)(packed);
diff --git a/src/core/security/client_auth_filter.c b/src/core/security/client_auth_filter.c
index 1cb247d..d6568f1 100644
--- a/src/core/security/client_auth_filter.c
+++ b/src/core/security/client_auth_filter.c
@@ -60,7 +60,7 @@
      progress */
   grpc_pollset *pollset;
   grpc_transport_stream_op op;
-  gpr_uint8 security_context_set;
+  uint8_t security_context_set;
   grpc_linked_mdelem md_links[MAX_CREDENTIALS_METADATA_COUNT];
   grpc_auth_metadata_context auth_md_context;
 } call_data;
@@ -232,8 +232,8 @@
     }
     sec_ctx = op->context[GRPC_CONTEXT_SECURITY].value;
     GRPC_AUTH_CONTEXT_UNREF(sec_ctx->auth_context, "client auth filter");
-    sec_ctx->auth_context = GRPC_AUTH_CONTEXT_REF(
-        chand->auth_context, "client_auth_filter");
+    sec_ctx->auth_context =
+        GRPC_AUTH_CONTEXT_REF(chand->auth_context, "client_auth_filter");
   }
 
   if (op->send_initial_metadata != NULL) {
diff --git a/src/core/security/credentials.c b/src/core/security/credentials.c
index 1d1c3b0..8e33227 100644
--- a/src/core/security/credentials.c
+++ b/src/core/security/credentials.c
@@ -180,7 +180,7 @@
       "grpc_server_credentials_set_auth_metadata_processor("
       "creds=%p, "
       "processor=grpc_auth_metadata_processor { process: %p, state: %p })",
-      3, (creds, (void*)(gpr_intptr)processor.process, processor.state));
+      3, (creds, (void *)(intptr_t)processor.process, processor.state));
   if (creds == NULL) return;
   if (creds->processor.destroy != NULL && creds->processor.state != NULL) {
     creds->processor.destroy(creds->processor.state);
diff --git a/src/core/security/json_token.c b/src/core/security/json_token.c
index 92775d8..4d4bc4b 100644
--- a/src/core/security/json_token.c
+++ b/src/core/security/json_token.c
@@ -215,8 +215,8 @@
     gpr_log(GPR_INFO, "Cropping token lifetime to maximum allowed value.");
     expiration = gpr_time_add(now, grpc_max_auth_token_lifetime);
   }
-  gpr_int64toa(now.tv_sec, now_str);
-  gpr_int64toa(expiration.tv_sec, expiration_str);
+  int64_ttoa(now.tv_sec, now_str);
+  int64_ttoa(expiration.tv_sec, expiration_str);
 
   child =
       create_child(NULL, json, "iss", json_key->client_email, GRPC_JSON_STRING);
@@ -251,7 +251,7 @@
   memcpy(current, str2, str2_len);
   current += str2_len;
   GPR_ASSERT(current >= result);
-  GPR_ASSERT((gpr_uintptr)(current - result) == result_len);
+  GPR_ASSERT((uintptr_t)(current - result) == result_len);
   *current = '\0';
   gpr_free(str1);
   gpr_free(str2);
diff --git a/src/core/security/jwt_verifier.c b/src/core/security/jwt_verifier.c
index eca903d..85b9624 100644
--- a/src/core/security/jwt_verifier.c
+++ b/src/core/security/jwt_verifier.c
@@ -443,8 +443,8 @@
     gpr_log(GPR_ERROR, "Invalid base64 for big num.");
     return NULL;
   }
-  result =
-      BN_bin2bn(GPR_SLICE_START_PTR(bin), TSI_SIZE_AS_SIZE(GPR_SLICE_LENGTH(bin)), NULL);
+  result = BN_bin2bn(GPR_SLICE_START_PTR(bin),
+                     TSI_SIZE_AS_SIZE(GPR_SLICE_LENGTH(bin)), NULL);
   gpr_slice_unref(bin);
   return result;
 }
diff --git a/src/core/security/secure_endpoint.c b/src/core/security/secure_endpoint.c
index fd50abb..9b87e26 100644
--- a/src/core/security/secure_endpoint.c
+++ b/src/core/security/secure_endpoint.c
@@ -117,8 +117,8 @@
 static void secure_endpoint_ref(secure_endpoint *ep) { gpr_ref(&ep->ref); }
 #endif
 
-static void flush_read_staging_buffer(secure_endpoint *ep, gpr_uint8 **cur,
-                                      gpr_uint8 **end) {
+static void flush_read_staging_buffer(secure_endpoint *ep, uint8_t **cur,
+                                      uint8_t **end) {
   gpr_slice_buffer_add(ep->read_buffer, ep->read_staging_buffer);
   ep->read_staging_buffer = gpr_slice_malloc(STAGING_BUFFER_SIZE);
   *cur = GPR_SLICE_START_PTR(ep->read_staging_buffer);
@@ -143,11 +143,11 @@
 
 static void on_read(grpc_exec_ctx *exec_ctx, void *user_data, int success) {
   unsigned i;
-  gpr_uint8 keep_looping = 0;
+  uint8_t keep_looping = 0;
   tsi_result result = TSI_OK;
   secure_endpoint *ep = (secure_endpoint *)user_data;
-  gpr_uint8 *cur = GPR_SLICE_START_PTR(ep->read_staging_buffer);
-  gpr_uint8 *end = GPR_SLICE_END_PTR(ep->read_staging_buffer);
+  uint8_t *cur = GPR_SLICE_START_PTR(ep->read_staging_buffer);
+  uint8_t *end = GPR_SLICE_END_PTR(ep->read_staging_buffer);
 
   if (!success) {
     gpr_slice_buffer_reset_and_unref(ep->read_buffer);
@@ -158,7 +158,7 @@
   /* TODO(yangg) check error, maybe bail out early */
   for (i = 0; i < ep->source_buffer.count; i++) {
     gpr_slice encrypted = ep->source_buffer.slices[i];
-    gpr_uint8 *message_bytes = GPR_SLICE_START_PTR(encrypted);
+    uint8_t *message_bytes = GPR_SLICE_START_PTR(encrypted);
     size_t message_size = GPR_SLICE_LENGTH(encrypted);
 
     while (message_size > 0 || keep_looping) {
@@ -234,8 +234,8 @@
                      &ep->on_read);
 }
 
-static void flush_write_staging_buffer(secure_endpoint *ep, gpr_uint8 **cur,
-                                       gpr_uint8 **end) {
+static void flush_write_staging_buffer(secure_endpoint *ep, uint8_t **cur,
+                                       uint8_t **end) {
   gpr_slice_buffer_add(&ep->output_buffer, ep->write_staging_buffer);
   ep->write_staging_buffer = gpr_slice_malloc(STAGING_BUFFER_SIZE);
   *cur = GPR_SLICE_START_PTR(ep->write_staging_buffer);
@@ -247,8 +247,8 @@
   unsigned i;
   tsi_result result = TSI_OK;
   secure_endpoint *ep = (secure_endpoint *)secure_ep;
-  gpr_uint8 *cur = GPR_SLICE_START_PTR(ep->write_staging_buffer);
-  gpr_uint8 *end = GPR_SLICE_END_PTR(ep->write_staging_buffer);
+  uint8_t *cur = GPR_SLICE_START_PTR(ep->write_staging_buffer);
+  uint8_t *end = GPR_SLICE_END_PTR(ep->write_staging_buffer);
 
   gpr_slice_buffer_reset_and_unref(&ep->output_buffer);
 
@@ -263,7 +263,7 @@
 
   for (i = 0; i < slices->count; i++) {
     gpr_slice plain = slices->slices[i];
-    gpr_uint8 *message_bytes = GPR_SLICE_START_PTR(plain);
+    uint8_t *message_bytes = GPR_SLICE_START_PTR(plain);
     size_t message_size = GPR_SLICE_LENGTH(plain);
     while (message_size > 0) {
       size_t protected_buffer_size_to_send = (size_t)(end - cur);
diff --git a/src/core/security/security_connector.c b/src/core/security/security_connector.c
index 204cd32..a115b94 100644
--- a/src/core/security/security_connector.c
+++ b/src/core/security/security_connector.c
@@ -316,8 +316,7 @@
   c->base.is_client_side = 1;
   c->base.url_scheme = GRPC_FAKE_SECURITY_URL_SCHEME;
   c->base.vtable = &fake_channel_vtable;
-  c->request_metadata_creds =
-      grpc_call_credentials_ref(request_metadata_creds);
+  c->request_metadata_creds = grpc_call_credentials_ref(request_metadata_creds);
   c->check_call_host = fake_channel_check_call_host;
   return c;
 }
@@ -500,9 +499,10 @@
   return GRPC_SECURITY_OK;
 }
 
-static void ssl_channel_check_peer(
-    grpc_exec_ctx *exec_ctx, grpc_security_connector *sc, tsi_peer peer,
-    grpc_security_peer_check_cb cb, void *user_data) {
+static void ssl_channel_check_peer(grpc_exec_ctx *exec_ctx,
+                                   grpc_security_connector *sc, tsi_peer peer,
+                                   grpc_security_peer_check_cb cb,
+                                   void *user_data) {
   grpc_ssl_channel_security_connector *c =
       (grpc_ssl_channel_security_connector *)sc;
   grpc_security_status status;
@@ -516,9 +516,10 @@
   tsi_peer_destruct(&peer);
 }
 
-static void ssl_server_check_peer(
-    grpc_exec_ctx *exec_ctx, grpc_security_connector *sc, tsi_peer peer,
-    grpc_security_peer_check_cb cb, void *user_data) {
+static void ssl_server_check_peer(grpc_exec_ctx *exec_ctx,
+                                  grpc_security_connector *sc, tsi_peer peer,
+                                  grpc_security_peer_check_cb cb,
+                                  void *user_data) {
   grpc_auth_context *auth_context = NULL;
   grpc_security_status status = ssl_check_peer(sc, NULL, &peer, &auth_context);
   tsi_peer_destruct(&peer);
diff --git a/src/core/security/security_connector.h b/src/core/security/security_connector.h
index b5f3ff1..cc6cc74 100644
--- a/src/core/security/security_connector.h
+++ b/src/core/security/security_connector.h
@@ -40,10 +40,7 @@
 
 /* --- status enum. --- */
 
-typedef enum {
-  GRPC_SECURITY_OK = 0,
-  GRPC_SECURITY_ERROR
-} grpc_security_status;
+typedef enum { GRPC_SECURITY_OK = 0, GRPC_SECURITY_ERROR } grpc_security_status;
 
 /* --- URL schemes. --- */
 
diff --git a/src/core/statistics/census_interface.h b/src/core/statistics/census_interface.h
index e870357..c43acbd 100644
--- a/src/core/statistics/census_interface.h
+++ b/src/core/statistics/census_interface.h
@@ -42,8 +42,8 @@
 /* Structure of a census op id. Define as structure because 64bit integer is not
    available on every platform for C89. */
 typedef struct census_op_id {
-  gpr_uint32 upper;
-  gpr_uint32 lower;
+  uint32_t upper;
+  uint32_t lower;
 } census_op_id;
 
 typedef struct census_rpc_stats census_rpc_stats;
diff --git a/src/core/statistics/census_log.c b/src/core/statistics/census_log.c
index 88e3380..257ba58 100644
--- a/src/core/statistics/census_log.c
+++ b/src/core/statistics/census_log.c
@@ -116,7 +116,7 @@
      simultaneously by reader and writer. */
   gpr_atm bytes_committed;
   /* Bytes already read */
-  gpr_int32 bytes_read;
+  int32_t bytes_read;
   /* Links for list */
   cl_block_list_struct link;
 /* We want this structure to be cacheline aligned. We assume the following
@@ -124,7 +124,7 @@
    type                 32b size    64b size
    char*                   4           8
    3x gpr_atm             12          24
-   gpr_int32               4           8 (assumes padding)
+   int32_t               4           8 (assumes padding)
    cl_block_list_struct   12          24
    TOTAL                  32          64
 
@@ -147,7 +147,7 @@
 
 /* A list of cl_blocks, doubly-linked through cl_block::link. */
 typedef struct census_log_block_list {
-  gpr_int32 count;         /* Number of items in list. */
+  int32_t count;           /* Number of items in list. */
   cl_block_list_struct ht; /* head/tail of linked list. */
 } cl_block_list;
 
@@ -175,7 +175,7 @@
   /* Number of cores (aka hardware-contexts) */
   unsigned num_cores;
   /* number of CENSUS_LOG_2_MAX_RECORD_SIZE blocks in log */
-  gpr_int32 num_blocks;
+  int32_t num_blocks;
   cl_block *blocks;                       /* Block metadata. */
   cl_core_local_block *core_local_blocks; /* Keeps core to block mappings. */
   gpr_mu lock;
@@ -183,7 +183,7 @@
   /* Keeps the state of the reader iterator. A value of 0 indicates that
      iterator has reached the end. census_log_init_reader() resets the
      value to num_core to restart iteration. */
-  gpr_uint32 read_iterator_state;
+  uint32_t read_iterator_state;
   /* Points to the block being read. If non-NULL, the block is locked for
      reading (block_being_read_->reader_lock is held). */
   cl_block *block_being_read;
@@ -276,11 +276,11 @@
 
 /* Guards against exposing partially written buffer to the reader. */
 static void cl_block_set_bytes_committed(cl_block *block,
-                                         gpr_int32 bytes_committed) {
+                                         int32_t bytes_committed) {
   gpr_atm_rel_store(&block->bytes_committed, bytes_committed);
 }
 
-static gpr_int32 cl_block_get_bytes_committed(cl_block *block) {
+static int32_t cl_block_get_bytes_committed(cl_block *block) {
   return gpr_atm_acq_load(&block->bytes_committed);
 }
 
@@ -317,7 +317,7 @@
 
 /* Returns with writer_lock held. */
 static void *cl_block_start_write(cl_block *block, size_t size) {
-  gpr_int32 bytes_committed;
+  int32_t bytes_committed;
   if (!cl_try_lock(&block->writer_lock)) {
     return NULL;
   }
@@ -395,8 +395,7 @@
    - allocated a new block OR
    - 'core_id' => 'old_block' mapping changed (another thread allocated a
      block before lock was acquired). */
-static int cl_allocate_core_local_block(gpr_int32 core_id,
-                                        cl_block *old_block) {
+static int cl_allocate_core_local_block(int32_t core_id, cl_block *old_block) {
   /* Now that we have the lock, check if core-local mapping has changed. */
   cl_core_local_block *core_local_block = &g_log.core_local_blocks[core_id];
   cl_block *block = cl_core_local_block_get_block(core_local_block);
@@ -418,8 +417,8 @@
 }
 
 static cl_block *cl_get_block(void *record) {
-  gpr_uintptr p = (gpr_uintptr)((char *)record - g_log.buffer);
-  gpr_uintptr index = p >> CENSUS_LOG_2_MAX_RECORD_SIZE;
+  uintptr_t p = (uintptr_t)((char *)record - g_log.buffer);
+  uintptr_t index = p >> CENSUS_LOG_2_MAX_RECORD_SIZE;
   return &g_log.blocks[index];
 }
 
@@ -460,7 +459,7 @@
 
 /* External functions: primary stats_log interface */
 void census_log_initialize(size_t size_in_mb, int discard_old_records) {
-  gpr_int32 ix;
+  int32_t ix;
   /* Check cacheline alignment. */
   GPR_ASSERT(sizeof(cl_block) % GPR_CACHELINE_SIZE == 0);
   GPR_ASSERT(sizeof(cl_core_local_block) % GPR_CACHELINE_SIZE == 0);
@@ -510,9 +509,9 @@
 
 void *census_log_start_write(size_t size) {
   /* Used to bound number of times block allocation is attempted. */
-  gpr_int32 attempts_remaining = g_log.num_blocks;
+  int32_t attempts_remaining = g_log.num_blocks;
   /* TODO(aveitch): move this inside the do loop when current_cpu is fixed */
-  gpr_int32 core_id = gpr_cpu_current_cpu();
+  int32_t core_id = gpr_cpu_current_cpu();
   GPR_ASSERT(g_log.initialized);
   if (size > CENSUS_LOG_MAX_RECORD_SIZE) {
     return NULL;
diff --git a/src/core/statistics/census_rpc_stats.c b/src/core/statistics/census_rpc_stats.c
index d6638ed..524a607 100644
--- a/src/core/statistics/census_rpc_stats.c
+++ b/src/core/statistics/census_rpc_stats.c
@@ -70,9 +70,9 @@
 }
 
 /* TODO(hongyu): replace it with cityhash64 */
-static gpr_uint64 simple_hash(const void *k) {
+static uint64_t simple_hash(const void *k) {
   size_t len = strlen(k);
-  gpr_uint64 higher = gpr_murmur_hash3((const char *)k, len / 2, 0);
+  uint64_t higher = gpr_murmur_hash3((const char *)k, len / 2, 0);
   return higher << 32 |
          gpr_murmur_hash3((const char *)k + len / 2, len - len / 2, 0);
 }
diff --git a/src/core/statistics/census_rpc_stats.h b/src/core/statistics/census_rpc_stats.h
index 5edbe9f..8bdbc49 100644
--- a/src/core/statistics/census_rpc_stats.h
+++ b/src/core/statistics/census_rpc_stats.h
@@ -42,9 +42,9 @@
 #endif
 
 struct census_rpc_stats {
-  gpr_uint64 cnt;
-  gpr_uint64 rpc_error_cnt;
-  gpr_uint64 app_error_cnt;
+  uint64_t cnt;
+  uint64_t rpc_error_cnt;
+  uint64_t app_error_cnt;
   double elapsed_time_ms;
   double api_request_bytes;
   double wire_request_bytes;
diff --git a/src/core/statistics/census_tracing.c b/src/core/statistics/census_tracing.c
index ecbe27e..dc0f8a2 100644
--- a/src/core/statistics/census_tracing.c
+++ b/src/core/statistics/census_tracing.c
@@ -68,14 +68,14 @@
 static gpr_once g_init_mutex_once = GPR_ONCE_INIT;
 static gpr_mu g_mu; /* Guards following two static variables. */
 static census_ht *g_trace_store = NULL;
-static gpr_uint64 g_id = 0;
+static uint64_t g_id = 0;
 
 static census_ht_key op_id_as_key(census_op_id *id) {
   return *(census_ht_key *)id;
 }
 
-static gpr_uint64 op_id_2_uint64(census_op_id *id) {
-  gpr_uint64 ret;
+static uint64_t op_id_2_uint64(census_op_id *id) {
+  uint64_t ret;
   memcpy(&ret, id, sizeof(census_op_id));
   return ret;
 }
diff --git a/src/core/statistics/hash_table.c b/src/core/statistics/hash_table.c
index 39b760f..0cadcd4 100644
--- a/src/core/statistics/hash_table.c
+++ b/src/core/statistics/hash_table.c
@@ -54,29 +54,29 @@
   /* NULL if bucket is empty */
   ht_entry *next;
   /* -1 if all buckets are empty. */
-  gpr_int32 prev_non_empty_bucket;
+  int32_t prev_non_empty_bucket;
   /* -1 if all buckets are empty. */
-  gpr_int32 next_non_empty_bucket;
+  int32_t next_non_empty_bucket;
 } bucket;
 
 struct unresizable_hash_table {
   /* Number of entries in the table */
   size_t size;
   /* Number of buckets */
-  gpr_uint32 num_buckets;
+  uint32_t num_buckets;
   /* Array of buckets initialized at creation time. Memory consumption is
      16 bytes per bucket on a 64-bit platform. */
   bucket *buckets;
   /* Index of the first non-empty bucket. -1 iff size == 0. */
-  gpr_int32 first_non_empty_bucket;
+  int32_t first_non_empty_bucket;
   /* Index of the last non_empty bucket. -1 iff size == 0. */
-  gpr_int32 last_non_empty_bucket;
+  int32_t last_non_empty_bucket;
   /* Immutable options of this hash table, initialized at creation time. */
   census_ht_option options;
 };
 
 typedef struct entry_locator {
-  gpr_int32 bucket_idx;
+  int32_t bucket_idx;
   int is_first_in_chain;
   int found;
   ht_entry *prev_entry;
@@ -113,7 +113,7 @@
   gpr_free(p);
 }
 
-static gpr_uint64 hash(const census_ht_option *opt, census_ht_key key) {
+static uint64_t hash(const census_ht_option *opt, census_ht_key key) {
   return opt->key_type == CENSUS_HT_UINT64 ? key.val : opt->hash(key.ptr);
 }
 
@@ -135,7 +135,7 @@
   return ret;
 }
 
-static gpr_int32 find_bucket_idx(const census_ht *ht, census_ht_key key) {
+static int32_t find_bucket_idx(const census_ht *ht, census_ht_key key) {
   return hash(&ht->options, key) % ht->num_buckets;
 }
 
@@ -149,7 +149,7 @@
 
 static entry_locator ht_find(const census_ht *ht, census_ht_key key) {
   entry_locator loc = {0, 0, 0, NULL};
-  gpr_int32 idx = 0;
+  int32_t idx = 0;
   ht_entry *ptr = NULL;
   GPR_ASSERT(ht != NULL);
   idx = find_bucket_idx(ht, key);
@@ -188,7 +188,7 @@
 }
 
 void census_ht_insert(census_ht *ht, census_ht_key key, void *data) {
-  gpr_int32 idx = find_bucket_idx(ht, key);
+  int32_t idx = find_bucket_idx(ht, key);
   ht_entry *ptr = NULL;
   entry_locator loc = ht_find(ht, key);
   if (loc.found) {
@@ -259,7 +259,7 @@
 census_ht_kv *census_ht_get_all_elements(const census_ht *ht, size_t *num) {
   census_ht_kv *ret = NULL;
   int i = 0;
-  gpr_int32 idx = -1;
+  int32_t idx = -1;
   GPR_ASSERT(ht != NULL && num != NULL);
   *num = ht->size;
   if (*num == 0) {
diff --git a/src/core/statistics/hash_table.h b/src/core/statistics/hash_table.h
index 8b39f53..d9860a9 100644
--- a/src/core/statistics/hash_table.h
+++ b/src/core/statistics/hash_table.h
@@ -60,7 +60,7 @@
 /* Currently, the hash_table can take two types of keys. (uint64 for trace
    store and const char* for stats store). */
 typedef union {
-  gpr_uint64 val;
+  uint64_t val;
   void *ptr;
 } census_ht_key;
 
@@ -73,10 +73,10 @@
   /* Type of hash key */
   census_ht_key_type key_type;
   /* Desired number of buckets, preferably a prime number */
-  gpr_int32 num_buckets;
+  int32_t num_buckets;
   /* Fucntion to calculate uint64 hash value of the key. Only takes effect if
      key_type is POINTER. */
-  gpr_uint64 (*hash)(const void *);
+  uint64_t (*hash)(const void *);
   /* Function to compare two keys, returns 0 iff equal. Only takes effect if
      key_type is POINTER */
   int (*compare_keys)(const void *k1, const void *k2);
@@ -126,6 +126,6 @@
 
 /* Iterates through all key-value pairs in the hash_table. The callback function
    should not invalidate data entries. */
-gpr_uint64 census_ht_for_all(const census_ht *ht, census_ht_itr_cb);
+uint64_t census_ht_for_all(const census_ht *ht, census_ht_itr_cb);
 
 #endif /* GRPC_INTERNAL_CORE_STATISTICS_HASH_TABLE_H */
diff --git a/src/core/statistics/window_stats.c b/src/core/statistics/window_stats.c
index e744006..3f29408 100644
--- a/src/core/statistics/window_stats.c
+++ b/src/core/statistics/window_stats.c
@@ -47,7 +47,7 @@
 /* Each interval is composed of a number of buckets, which hold a count of
    entries and a single statistic */
 typedef struct census_window_stats_bucket {
-  gpr_int64 count;
+  int64_t count;
   void *statistic;
 } cws_bucket;
 
@@ -59,11 +59,11 @@
   /* Index of the bucket containing the smallest time interval. */
   int bottom_bucket;
   /* The smallest time storable in the current window. */
-  gpr_int64 bottom;
+  int64_t bottom;
   /* The largest time storable in the current window + 1ns */
-  gpr_int64 top;
+  int64_t top;
   /* The width of each bucket in ns. */
-  gpr_int64 width;
+  int64_t width;
 } cws_interval_stats;
 
 typedef struct census_window_stats {
@@ -76,7 +76,7 @@
   /* Stats for each interval. */
   cws_interval_stats *interval_stats;
   /* The time the newset stat was recorded. */
-  gpr_int64 newest_time;
+  int64_t newest_time;
 } window_stats;
 
 /* Calculate an actual bucket index from a logical index 'IDX'. Other
@@ -87,10 +87,9 @@
 /* The maximum seconds value we can have in a valid timespec. More than this
    will result in overflow in timespec_to_ns(). This works out to ~292 years.
    TODO: consider using doubles instead of int64. */
-static gpr_int64 max_seconds =
-    (GPR_INT64_MAX - GPR_NS_PER_SEC) / GPR_NS_PER_SEC;
+static int64_t max_seconds = (GPR_INT64_MAX - GPR_NS_PER_SEC) / GPR_NS_PER_SEC;
 
-static gpr_int64 timespec_to_ns(const gpr_timespec ts) {
+static int64_t timespec_to_ns(const gpr_timespec ts) {
   if (ts.tv_sec > max_seconds) {
     return GPR_INT64_MAX - 1;
   }
@@ -123,7 +122,7 @@
   GPR_ASSERT(nintervals > 0 && granularity > 2 && intervals != NULL &&
              stat_info != NULL);
   for (i = 0; i < nintervals; i++) {
-    gpr_int64 ns = timespec_to_ns(intervals[i]);
+    int64_t ns = timespec_to_ns(intervals[i]);
     GPR_ASSERT(intervals[i].tv_sec >= 0 && intervals[i].tv_nsec >= 0 &&
                intervals[i].tv_nsec < GPR_NS_PER_SEC && ns >= 100 &&
                granularity * 10 <= ns);
@@ -136,7 +135,7 @@
   ret->interval_stats =
       (cws_interval_stats *)gpr_malloc(nintervals * sizeof(cws_interval_stats));
   for (i = 0; i < nintervals; i++) {
-    gpr_int64 size_ns = timespec_to_ns(intervals[i]);
+    int64_t size_ns = timespec_to_ns(intervals[i]);
     cws_interval_stats *is = ret->interval_stats + i;
     cws_bucket *buckets = is->buckets =
         (cws_bucket *)gpr_malloc(ret->nbuckets * sizeof(cws_bucket));
@@ -169,7 +168,7 @@
 /* When we try adding a measurement above the current interval range, we
    need to "shift" the buckets sufficiently to cover the new range. */
 static void cws_shift_buckets(const window_stats *wstats,
-                              cws_interval_stats *is, gpr_int64 when_ns) {
+                              cws_interval_stats *is, int64_t when_ns) {
   int i;
   /* number of bucket time widths to "shift" */
   int shift;
@@ -194,7 +193,7 @@
 void census_window_stats_add(window_stats *wstats, const gpr_timespec when,
                              const void *stat_value) {
   int i;
-  gpr_int64 when_ns = timespec_to_ns(when);
+  int64_t when_ns = timespec_to_ns(when);
   GPR_ASSERT(wstats->interval_stats != NULL);
   for (i = 0; i < wstats->nintervals; i++) {
     cws_interval_stats *is = wstats->interval_stats + i;
@@ -235,7 +234,7 @@
 void census_window_stats_get_sums(const window_stats *wstats,
                                   const gpr_timespec when, cws_sum sums[]) {
   int i;
-  gpr_int64 when_ns = timespec_to_ns(when);
+  int64_t when_ns = timespec_to_ns(when);
   GPR_ASSERT(wstats->interval_stats != NULL);
   for (i = 0; i < wstats->nintervals; i++) {
     int when_bucket;
@@ -264,7 +263,7 @@
     when_bucket = (when_ns - is->bottom) / is->width;
     new_bucket = (wstats->newest_time - is->bottom) / is->width;
     if (new_bucket == when_bucket) {
-      gpr_int64 bottom_bucket_time = is->bottom + when_bucket * is->width;
+      int64_t bottom_bucket_time = is->bottom + when_bucket * is->width;
       if (when_ns < wstats->newest_time) {
         last_proportion = (double)(when_ns - bottom_bucket_time) /
                           (double)(wstats->newest_time - bottom_bucket_time);
diff --git a/src/core/support/alloc.c b/src/core/support/alloc.c
index ca72379..0a064b2 100644
--- a/src/core/support/alloc.c
+++ b/src/core/support/alloc.c
@@ -82,7 +82,7 @@
   size_t alignment = ((size_t)1) << alignment_log;
   size_t extra = alignment - 1 + sizeof(void *);
   void *p = gpr_malloc(size + extra);
-  void **ret = (void **)(((gpr_uintptr)p + extra) & ~(alignment - 1));
+  void **ret = (void **)(((uintptr_t)p + extra) & ~(alignment - 1));
   ret[-1] = p;
   return (void *)ret;
 }
diff --git a/src/core/support/cpu_posix.c b/src/core/support/cpu_posix.c
index 55d92c0..5edb87d 100644
--- a/src/core/support/cpu_posix.c
+++ b/src/core/support/cpu_posix.c
@@ -48,7 +48,7 @@
 
 static void init_ncpus() {
   ncpus = sysconf(_SC_NPROCESSORS_ONLN);
-  if (ncpus < 1 || ncpus > GPR_UINT32_MAX) {
+  if (ncpus < 1 || ncpus > UINT32_MAX) {
     gpr_log(GPR_ERROR, "Cannot determine number of CPUs: assuming 1");
     ncpus = 1;
   }
diff --git a/src/core/support/histogram.c b/src/core/support/histogram.c
index 77b48af..20ed2b1 100644
--- a/src/core/support/histogram.c
+++ b/src/core/support/histogram.c
@@ -66,7 +66,7 @@
   /* number of buckets */
   size_t num_buckets;
   /* the buckets themselves */
-  gpr_uint32 *buckets;
+  uint32_t *buckets;
 };
 
 /* determine a bucket index given a value - does no bounds checking */
@@ -102,8 +102,8 @@
   h->num_buckets = bucket_for_unchecked(h, max_bucket_start) + 1;
   GPR_ASSERT(h->num_buckets > 1);
   GPR_ASSERT(h->num_buckets < 100000000);
-  h->buckets = gpr_malloc(sizeof(gpr_uint32) * h->num_buckets);
-  memset(h->buckets, 0, sizeof(gpr_uint32) * h->num_buckets);
+  h->buckets = gpr_malloc(sizeof(uint32_t) * h->num_buckets);
+  memset(h->buckets, 0, sizeof(uint32_t) * h->num_buckets);
   return h;
 }
 
@@ -137,7 +137,7 @@
   return 1;
 }
 
-void gpr_histogram_merge_contents(gpr_histogram *dst, const gpr_uint32 *data,
+void gpr_histogram_merge_contents(gpr_histogram *dst, const uint32_t *data,
                                   size_t data_count, double min_seen,
                                   double max_seen, double sum,
                                   double sum_of_squares, double count) {
@@ -238,7 +238,7 @@
   return h->sum_of_squares;
 }
 
-const gpr_uint32 *gpr_histogram_get_contents(gpr_histogram *h, size_t *size) {
+const uint32_t *gpr_histogram_get_contents(gpr_histogram *h, size_t *size) {
   *size = h->num_buckets;
   return h->buckets;
 }
diff --git a/src/core/support/log_posix.c b/src/core/support/log_posix.c
index 8986254..3ff171f 100644
--- a/src/core/support/log_posix.c
+++ b/src/core/support/log_posix.c
@@ -45,7 +45,7 @@
 #include <time.h>
 #include <pthread.h>
 
-static gpr_intptr gettid(void) { return (gpr_intptr)pthread_self(); }
+static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
 
 void gpr_log(const char *file, int line, gpr_log_severity severity,
              const char *format, ...) {
diff --git a/src/core/support/murmur_hash.c b/src/core/support/murmur_hash.c
index 37fdca8..a5261c0 100644
--- a/src/core/support/murmur_hash.c
+++ b/src/core/support/murmur_hash.c
@@ -46,19 +46,19 @@
    handle aligned reads, do the conversion here */
 #define GETBLOCK32(p, i) (p)[(i)]
 
-gpr_uint32 gpr_murmur_hash3(const void *key, size_t len, gpr_uint32 seed) {
-  const gpr_uint8 *data = (const gpr_uint8 *)key;
+uint32_t gpr_murmur_hash3(const void *key, size_t len, uint32_t seed) {
+  const uint8_t *data = (const uint8_t *)key;
   const size_t nblocks = len / 4;
   int i;
 
-  gpr_uint32 h1 = seed;
-  gpr_uint32 k1;
+  uint32_t h1 = seed;
+  uint32_t k1;
 
-  const gpr_uint32 c1 = 0xcc9e2d51;
-  const gpr_uint32 c2 = 0x1b873593;
+  const uint32_t c1 = 0xcc9e2d51;
+  const uint32_t c2 = 0x1b873593;
 
-  const gpr_uint32 *blocks = ((const gpr_uint32 *)key) + nblocks;
-  const gpr_uint8 *tail = (const gpr_uint8 *)(data + nblocks * 4);
+  const uint32_t *blocks = ((const uint32_t *)key) + nblocks;
+  const uint8_t *tail = (const uint8_t *)(data + nblocks * 4);
 
   /* body */
   for (i = -(int)nblocks; i; i++) {
@@ -78,9 +78,9 @@
   /* tail */
   switch (len & 3) {
     case 3:
-      k1 ^= ((gpr_uint32)tail[2]) << 16;
+      k1 ^= ((uint32_t)tail[2]) << 16;
     case 2:
-      k1 ^= ((gpr_uint32)tail[1]) << 8;
+      k1 ^= ((uint32_t)tail[1]) << 8;
     case 1:
       k1 ^= tail[0];
       k1 *= c1;
@@ -90,7 +90,7 @@
   };
 
   /* finalization */
-  h1 ^= (gpr_uint32)len;
+  h1 ^= (uint32_t)len;
   FMIX32(h1);
   return h1;
 }
diff --git a/src/core/support/murmur_hash.h b/src/core/support/murmur_hash.h
index 343fcb9..0bf04f7 100644
--- a/src/core/support/murmur_hash.h
+++ b/src/core/support/murmur_hash.h
@@ -39,6 +39,6 @@
 #include <stddef.h>
 
 /* compute the hash of key (length len) */
-gpr_uint32 gpr_murmur_hash3(const void *key, size_t len, gpr_uint32 seed);
+uint32_t gpr_murmur_hash3(const void *key, size_t len, uint32_t seed);
 
 #endif /* GRPC_INTERNAL_CORE_SUPPORT_MURMUR_HASH_H */
diff --git a/src/core/support/slice.c b/src/core/support/slice.c
index 9f0ded4..b9a7c77 100644
--- a/src/core/support/slice.c
+++ b/src/core/support/slice.c
@@ -67,7 +67,7 @@
 gpr_slice gpr_slice_from_static_string(const char *s) {
   gpr_slice slice;
   slice.refcount = &noop_refcount;
-  slice.data.refcounted.bytes = (gpr_uint8 *)s;
+  slice.data.refcounted.bytes = (uint8_t *)s;
   slice.data.refcounted.length = strlen(s);
   return slice;
 }
@@ -203,13 +203,13 @@
     /* The slices refcount points back to the allocated block. */
     slice.refcount = &rc->base;
     /* The data bytes are placed immediately after the refcount struct */
-    slice.data.refcounted.bytes = (gpr_uint8 *)(rc + 1);
+    slice.data.refcounted.bytes = (uint8_t *)(rc + 1);
     /* And the length of the block is set to the requested length */
     slice.data.refcounted.length = length;
   } else {
     /* small slice: just inline the data */
     slice.refcount = NULL;
-    slice.data.inlined.length = (gpr_uint8)length;
+    slice.data.inlined.length = (uint8_t)length;
   }
   return slice;
 }
@@ -232,7 +232,7 @@
     /* Enforce preconditions */
     GPR_ASSERT(source.data.inlined.length >= end);
     subset.refcount = NULL;
-    subset.data.inlined.length = (gpr_uint8)(end - begin);
+    subset.data.inlined.length = (uint8_t)(end - begin);
     memcpy(subset.data.inlined.bytes, source.data.inlined.bytes + begin,
            end - begin);
   }
@@ -244,7 +244,7 @@
 
   if (end - begin <= sizeof(subset.data.inlined.bytes)) {
     subset.refcount = NULL;
-    subset.data.inlined.length = (gpr_uint8)(end - begin);
+    subset.data.inlined.length = (uint8_t)(end - begin);
     memcpy(subset.data.inlined.bytes, GPR_SLICE_START_PTR(source) + begin,
            end - begin);
   } else {
@@ -262,17 +262,17 @@
     /* inlined data, copy it out */
     GPR_ASSERT(source->data.inlined.length >= split);
     tail.refcount = NULL;
-    tail.data.inlined.length = (gpr_uint8)(source->data.inlined.length - split);
+    tail.data.inlined.length = (uint8_t)(source->data.inlined.length - split);
     memcpy(tail.data.inlined.bytes, source->data.inlined.bytes + split,
            tail.data.inlined.length);
-    source->data.inlined.length = (gpr_uint8)split;
+    source->data.inlined.length = (uint8_t)split;
   } else {
     size_t tail_length = source->data.refcounted.length - split;
     GPR_ASSERT(source->data.refcounted.length >= split);
     if (tail_length < sizeof(tail.data.inlined.bytes)) {
       /* Copy out the bytes - it'll be cheaper than refcounting */
       tail.refcount = NULL;
-      tail.data.inlined.length = (gpr_uint8)tail_length;
+      tail.data.inlined.length = (uint8_t)tail_length;
       memcpy(tail.data.inlined.bytes, source->data.refcounted.bytes + split,
              tail_length);
     } else {
@@ -297,17 +297,17 @@
     GPR_ASSERT(source->data.inlined.length >= split);
 
     head.refcount = NULL;
-    head.data.inlined.length = (gpr_uint8)split;
+    head.data.inlined.length = (uint8_t)split;
     memcpy(head.data.inlined.bytes, source->data.inlined.bytes, split);
     source->data.inlined.length =
-        (gpr_uint8)(source->data.inlined.length - split);
+        (uint8_t)(source->data.inlined.length - split);
     memmove(source->data.inlined.bytes, source->data.inlined.bytes + split,
             source->data.inlined.length);
   } else if (split < sizeof(head.data.inlined.bytes)) {
     GPR_ASSERT(source->data.refcounted.length >= split);
 
     head.refcount = NULL;
-    head.data.inlined.length = (gpr_uint8)split;
+    head.data.inlined.length = (uint8_t)split;
     memcpy(head.data.inlined.bytes, source->data.refcounted.bytes, split);
     source->data.refcounted.bytes += split;
     source->data.refcounted.length -= split;
diff --git a/src/core/support/slice_buffer.c b/src/core/support/slice_buffer.c
index 856d3a2..66f111d 100644
--- a/src/core/support/slice_buffer.c
+++ b/src/core/support/slice_buffer.c
@@ -70,9 +70,9 @@
   }
 }
 
-gpr_uint8 *gpr_slice_buffer_tiny_add(gpr_slice_buffer *sb, size_t n) {
+uint8_t *gpr_slice_buffer_tiny_add(gpr_slice_buffer *sb, size_t n) {
   gpr_slice *back;
-  gpr_uint8 *out;
+  uint8_t *out;
 
   sb->length += n;
 
@@ -82,7 +82,7 @@
   if ((back->data.inlined.length + n) > sizeof(back->data.inlined.bytes))
     goto add_new;
   out = back->data.inlined.bytes + back->data.inlined.length;
-  back->data.inlined.length = (gpr_uint8)(back->data.inlined.length + n);
+  back->data.inlined.length = (uint8_t)(back->data.inlined.length + n);
   return out;
 
 add_new:
@@ -90,7 +90,7 @@
   back = &sb->slices[sb->count];
   sb->count++;
   back->refcount = NULL;
-  back->data.inlined.length = (gpr_uint8)n;
+  back->data.inlined.length = (uint8_t)n;
   return back->data.inlined.bytes;
 }
 
@@ -118,7 +118,7 @@
         memcpy(back->data.inlined.bytes + back->data.inlined.length,
                s.data.inlined.bytes, s.data.inlined.length);
         back->data.inlined.length =
-            (gpr_uint8)(back->data.inlined.length + s.data.inlined.length);
+            (uint8_t)(back->data.inlined.length + s.data.inlined.length);
       } else {
         size_t cp1 = GPR_SLICE_INLINED_SIZE - back->data.inlined.length;
         memcpy(back->data.inlined.bytes + back->data.inlined.length,
@@ -128,7 +128,7 @@
         back = &sb->slices[n];
         sb->count = n + 1;
         back->refcount = NULL;
-        back->data.inlined.length = (gpr_uint8)(s.data.inlined.length - cp1);
+        back->data.inlined.length = (uint8_t)(s.data.inlined.length - cp1);
         memcpy(back->data.inlined.bytes, s.data.inlined.bytes + cp1,
                s.data.inlined.length - cp1);
       }
diff --git a/src/core/support/stack_lockfree.c b/src/core/support/stack_lockfree.c
index fc934d4..cd0afdd 100644
--- a/src/core/support/stack_lockfree.c
+++ b/src/core/support/stack_lockfree.c
@@ -45,13 +45,13 @@
    word that allows for an atomic CAS to set it up. */
 struct lockfree_node_contents {
   /* next thing to look at. Actual index for head, next index otherwise */
-  gpr_uint16 index;
+  uint16_t index;
 #ifdef GPR_ARCH_64
-  gpr_uint16 pad;
-  gpr_uint32 aba_ctr;
+  uint16_t pad;
+  uint32_t aba_ctr;
 #else
 #ifdef GPR_ARCH_32
-  gpr_uint16 aba_ctr;
+  uint16_t aba_ctr;
 #else
 #error Unsupported bit width architecture
 #endif
@@ -114,7 +114,7 @@
   lockfree_node newent;
 
   /* First fill in the entry's index and aba ctr for new head */
-  newhead.contents.index = (gpr_uint16)entry;
+  newhead.contents.index = (uint16_t)entry;
   /* Also post-increment the aba_ctr */
   curent.atm = gpr_atm_no_barrier_load(&stack->entries[entry].atm);
   newhead.contents.aba_ctr = ++curent.contents.aba_ctr;
diff --git a/src/core/support/string.c b/src/core/support/string.c
index 46a7ca3..1f541de 100644
--- a/src/core/support/string.c
+++ b/src/core/support/string.c
@@ -80,9 +80,9 @@
 static void hexdump(dump_out *out, const char *buf, size_t len) {
   static const char hex[16] = "0123456789abcdef";
 
-  const gpr_uint8 *const beg = (const gpr_uint8 *)buf;
-  const gpr_uint8 *const end = beg + len;
-  const gpr_uint8 *cur;
+  const uint8_t *const beg = (const uint8_t *)buf;
+  const uint8_t *const end = beg + len;
+  const uint8_t *cur;
 
   for (cur = beg; cur != end; ++cur) {
     if (cur != beg) dump_out_append(out, ' ');
@@ -92,9 +92,9 @@
 }
 
 static void asciidump(dump_out *out, const char *buf, size_t len) {
-  const gpr_uint8 *const beg = (const gpr_uint8 *)buf;
-  const gpr_uint8 *const end = beg + len;
-  const gpr_uint8 *cur;
+  const uint8_t *const beg = (const uint8_t *)buf;
+  const uint8_t *const end = beg + len;
+  const uint8_t *cur;
   int out_was_empty = (out->length == 0);
   if (!out_was_empty) {
     dump_out_append(out, ' ');
@@ -108,7 +108,7 @@
   }
 }
 
-char *gpr_dump(const char *buf, size_t len, gpr_uint32 flags) {
+char *gpr_dump(const char *buf, size_t len, uint32_t flags) {
   dump_out out = dump_out_create();
   if (flags & GPR_DUMP_HEX) {
     hexdump(&out, buf, len);
@@ -120,21 +120,21 @@
   return out.data;
 }
 
-char *gpr_dump_slice(gpr_slice s, gpr_uint32 flags) {
+char *gpr_dump_slice(gpr_slice s, uint32_t flags) {
   return gpr_dump((const char *)GPR_SLICE_START_PTR(s), GPR_SLICE_LENGTH(s),
                   flags);
 }
 
-int gpr_parse_bytes_to_uint32(const char *buf, size_t len, gpr_uint32 *result) {
-  gpr_uint32 out = 0;
-  gpr_uint32 new;
+int gpr_parse_bytes_to_uint32(const char *buf, size_t len, uint32_t *result) {
+  uint32_t out = 0;
+  uint32_t new;
   size_t i;
 
   if (len == 0) return 0; /* must have some bytes */
 
   for (i = 0; i < len; i++) {
     if (buf[i] < '0' || buf[i] > '9') return 0; /* bad char */
-    new = 10 * out + (gpr_uint32)(buf[i] - '0');
+    new = 10 * out + (uint32_t)(buf[i] - '0');
     if (new < out) return 0; /* overflow */
     out = new;
   }
@@ -173,8 +173,8 @@
   return i;
 }
 
-int gpr_int64toa(gpr_int64 value, char *string) {
-  gpr_int64 sign;
+int int64_ttoa(int64_t value, char *string) {
+  int64_t sign;
   int i = 0;
 
   if (value == 0) {
@@ -238,7 +238,7 @@
                                        const size_t read_offset, size_t *begin,
                                        size_t *end) {
   size_t i;
-  const gpr_uint8 *str_ptr = GPR_SLICE_START_PTR(str) + read_offset;
+  const uint8_t *str_ptr = GPR_SLICE_START_PTR(str) + read_offset;
   const size_t str_len = GPR_SLICE_LENGTH(str) - read_offset;
   const size_t sep_len = strlen(sep);
   if (str_len < sep_len) {
diff --git a/src/core/support/string.h b/src/core/support/string.h
index 9b604ac..e6755de 100644
--- a/src/core/support/string.h
+++ b/src/core/support/string.h
@@ -52,15 +52,15 @@
 
 /* Converts array buf, of length len, into a C string  according to the flags.
    Result should be freed with gpr_free() */
-char *gpr_dump(const char *buf, size_t len, gpr_uint32 flags);
+char *gpr_dump(const char *buf, size_t len, uint32_t flags);
 
 /* Calls gpr_dump on a slice. */
-char *gpr_dump_slice(gpr_slice slice, gpr_uint32 flags);
+char *gpr_dump_slice(gpr_slice slice, uint32_t flags);
 
 /* Parses an array of bytes into an integer (base 10). Returns 1 on success,
    0 on failure. */
 int gpr_parse_bytes_to_uint32(const char *data, size_t length,
-                              gpr_uint32 *result);
+                              uint32_t *result);
 
 /* Minimum buffer size for calling ltoa */
 #define GPR_LTOA_MIN_BUFSIZE (3 * sizeof(long))
@@ -71,14 +71,14 @@
 int gpr_ltoa(long value, char *output);
 
 /* Minimum buffer size for calling int64toa */
-#define GPR_INT64TOA_MIN_BUFSIZE (3 * sizeof(gpr_int64))
+#define GPR_INT64TOA_MIN_BUFSIZE (3 * sizeof(int64_t))
 
 /* Convert an int64 to a string in base 10; returns the length of the
 output string (or 0 on failure).
 output must be at least GPR_INT64TOA_MIN_BUFSIZE bytes long.
 NOTE: This function ensures sufficient bit width even on Win x64,
 where long is 32bit is size.*/
-int gpr_int64toa(gpr_int64 value, char *output);
+int int64_ttoa(int64_t value, char *output);
 
 /* Reverse a run of bytes */
 void gpr_reverse_bytes(char *str, int len);
diff --git a/src/core/support/sync.c b/src/core/support/sync.c
index d3cf77f..d368422 100644
--- a/src/core/support/sync.c
+++ b/src/core/support/sync.c
@@ -59,7 +59,7 @@
 
 /* Hash ev into an element of sync_array[]. */
 static struct sync_array_s *hash(gpr_event *ev) {
-  return &sync_array[((gpr_uintptr)ev) % event_sync_partitions];
+  return &sync_array[((uintptr_t)ev) % event_sync_partitions];
 }
 
 void gpr_event_init(gpr_event *ev) {
@@ -108,15 +108,15 @@
   return prior == 1;
 }
 
-void gpr_stats_init(gpr_stats_counter *c, gpr_intptr n) {
+void gpr_stats_init(gpr_stats_counter *c, intptr_t n) {
   gpr_atm_rel_store(&c->value, n);
 }
 
-void gpr_stats_inc(gpr_stats_counter *c, gpr_intptr inc) {
+void gpr_stats_inc(gpr_stats_counter *c, intptr_t inc) {
   gpr_atm_no_barrier_fetch_add(&c->value, inc);
 }
 
-gpr_intptr gpr_stats_read(const gpr_stats_counter *c) {
+intptr_t gpr_stats_read(const gpr_stats_counter *c) {
   /* don't need acquire-load, but we have no no-barrier load yet */
   return gpr_atm_acq_load(&c->value);
 }
diff --git a/src/core/support/sync_win32.c b/src/core/support/sync_win32.c
index 69dd463..51a082b 100644
--- a/src/core/support/sync_win32.c
+++ b/src/core/support/sync_win32.c
@@ -88,9 +88,9 @@
     SleepConditionVariableCS(cv, &mu->cs, INFINITE);
   } else {
     gpr_timespec now = gpr_now(abs_deadline.clock_type);
-    gpr_int64 now_ms = (gpr_int64)now.tv_sec * 1000 + now.tv_nsec / 1000000;
-    gpr_int64 deadline_ms =
-        (gpr_int64)abs_deadline.tv_sec * 1000 + abs_deadline.tv_nsec / 1000000;
+    int64_t now_ms = (int64_t)now.tv_sec * 1000 + now.tv_nsec / 1000000;
+    int64_t deadline_ms =
+        (int64_t)abs_deadline.tv_sec * 1000 + abs_deadline.tv_nsec / 1000000;
     if (now_ms >= deadline_ms) {
       timeout = 1;
     } else {
diff --git a/src/core/support/time.c b/src/core/support/time.c
index 197fa9a..ac8c3bc 100644
--- a/src/core/support/time.c
+++ b/src/core/support/time.c
@@ -92,11 +92,11 @@
     result = gpr_inf_past(type);
   } else if (ns >= 0) {
     result.tv_sec = ns / GPR_NS_PER_SEC;
-    result.tv_nsec = (gpr_int32)(ns - result.tv_sec * GPR_NS_PER_SEC);
+    result.tv_nsec = (int32_t)(ns - result.tv_sec * GPR_NS_PER_SEC);
   } else {
     /* Calculation carefully formulated to avoid any possible under/overflow. */
     result.tv_sec = (-(999999999 - (ns + GPR_NS_PER_SEC)) / GPR_NS_PER_SEC) - 1;
-    result.tv_nsec = (gpr_int32)(ns - result.tv_sec * GPR_NS_PER_SEC);
+    result.tv_nsec = (int32_t)(ns - result.tv_sec * GPR_NS_PER_SEC);
   }
   return result;
 }
@@ -110,11 +110,11 @@
     result = gpr_inf_past(type);
   } else if (us >= 0) {
     result.tv_sec = us / 1000000;
-    result.tv_nsec = (gpr_int32)((us - result.tv_sec * 1000000) * 1000);
+    result.tv_nsec = (int32_t)((us - result.tv_sec * 1000000) * 1000);
   } else {
     /* Calculation carefully formulated to avoid any possible under/overflow. */
     result.tv_sec = (-(999999 - (us + 1000000)) / 1000000) - 1;
-    result.tv_nsec = (gpr_int32)((us - result.tv_sec * 1000000) * 1000);
+    result.tv_nsec = (int32_t)((us - result.tv_sec * 1000000) * 1000);
   }
   return result;
 }
@@ -128,11 +128,11 @@
     result = gpr_inf_past(type);
   } else if (ms >= 0) {
     result.tv_sec = ms / 1000;
-    result.tv_nsec = (gpr_int32)((ms - result.tv_sec * 1000) * 1000000);
+    result.tv_nsec = (int32_t)((ms - result.tv_sec * 1000) * 1000000);
   } else {
     /* Calculation carefully formulated to avoid any possible under/overflow. */
     result.tv_sec = (-(999 - (ms + 1000)) / 1000) - 1;
-    result.tv_nsec = (gpr_int32)((ms - result.tv_sec * 1000) * 1000000);
+    result.tv_nsec = (int32_t)((ms - result.tv_sec * 1000) * 1000000);
   }
   return result;
 }
@@ -181,7 +181,7 @@
 
 gpr_timespec gpr_time_add(gpr_timespec a, gpr_timespec b) {
   gpr_timespec sum;
-  gpr_int64 inc = 0;
+  int64_t inc = 0;
   GPR_ASSERT(b.clock_type == GPR_TIMESPAN);
   sum.clock_type = a.clock_type;
   sum.tv_nsec = a.tv_nsec + b.tv_nsec;
@@ -210,7 +210,7 @@
 
 gpr_timespec gpr_time_sub(gpr_timespec a, gpr_timespec b) {
   gpr_timespec diff;
-  gpr_int64 dec = 0;
+  int64_t dec = 0;
   if (b.clock_type == GPR_TIMESPAN) {
     diff.clock_type = a.clock_type;
   } else {
@@ -256,7 +256,7 @@
   }
 }
 
-gpr_int32 gpr_time_to_millis(gpr_timespec t) {
+int32_t gpr_time_to_millis(gpr_timespec t) {
   if (t.tv_sec >= 2147483) {
     if (t.tv_sec == 2147483 && t.tv_nsec < 648 * GPR_NS_PER_MS) {
       return 2147483 * GPR_MS_PER_SEC + t.tv_nsec / GPR_NS_PER_MS;
@@ -267,7 +267,7 @@
        care?) */
     return -2147483647;
   } else {
-    return (gpr_int32)(t.tv_sec * GPR_MS_PER_SEC + t.tv_nsec / GPR_NS_PER_MS);
+    return (int32_t)(t.tv_sec * GPR_MS_PER_SEC + t.tv_nsec / GPR_NS_PER_MS);
   }
 }
 
diff --git a/src/core/support/time_posix.c b/src/core/support/time_posix.c
index ba72572..06bb78c 100644
--- a/src/core/support/time_posix.c
+++ b/src/core/support/time_posix.c
@@ -45,7 +45,7 @@
 
 static struct timespec timespec_from_gpr(gpr_timespec gts) {
   struct timespec rv;
-  if (sizeof(time_t) < sizeof(gpr_int64)) {
+  if (sizeof(time_t) < sizeof(int64_t)) {
     /* fine to assert, as this is only used in gpr_sleep_until */
     GPR_ASSERT(gts.tv_sec <= INT32_MAX && gts.tv_sec >= INT32_MIN);
   }
@@ -64,7 +64,7 @@
    */
   gpr_timespec rv;
   rv.tv_sec = ts.tv_sec;
-  rv.tv_nsec = (gpr_int32)ts.tv_nsec;
+  rv.tv_nsec = (int32_t)ts.tv_nsec;
   rv.clock_type = clock_type;
   return rv;
 }
@@ -119,8 +119,8 @@
       break;
     case GPR_CLOCK_MONOTONIC:
       now_dbl = (mach_absolute_time() - g_time_start) * g_time_scale;
-      now.tv_sec = (gpr_int64)(now_dbl * 1e-9);
-      now.tv_nsec = (gpr_int32)(now_dbl - ((double)now.tv_sec) * 1e9);
+      now.tv_sec = (int64_t)(now_dbl * 1e-9);
+      now.tv_nsec = (int32_t)(now_dbl - ((double)now.tv_sec) * 1e9);
       break;
     case GPR_CLOCK_PRECISE:
       gpr_precise_clock_now(&now);
diff --git a/src/core/support/time_precise.c b/src/core/support/time_precise.c
index 4de1d9b..a2cf74b 100644
--- a/src/core/support/time_precise.c
+++ b/src/core/support/time_precise.c
@@ -75,8 +75,8 @@
   gpr_get_cycle_counter(&counter);
   secs = (double)(counter - start_cycle) / cycles_per_second;
   clk->clock_type = GPR_CLOCK_PRECISE;
-  clk->tv_sec = (gpr_int64)secs;
-  clk->tv_nsec = (gpr_int32)(1e9 * (secs - (double)clk->tv_sec));
+  clk->tv_sec = (int64_t)secs;
+  clk->tv_nsec = (int32_t)(1e9 * (secs - (double)clk->tv_sec));
 }
 
 #else  /* GRPC_TIMERS_RDTSC */
diff --git a/src/core/support/time_win32.c b/src/core/support/time_win32.c
index 7ccaaa2..2bed0f6 100644
--- a/src/core/support/time_win32.c
+++ b/src/core/support/time_win32.c
@@ -62,15 +62,15 @@
   switch (clock) {
     case GPR_CLOCK_REALTIME:
       _ftime_s(&now_tb);
-      now_tv.tv_sec = (gpr_int64)now_tb.time;
+      now_tv.tv_sec = (int64_t)now_tb.time;
       now_tv.tv_nsec = now_tb.millitm * 1000000;
       break;
     case GPR_CLOCK_MONOTONIC:
     case GPR_CLOCK_PRECISE:
       QueryPerformanceCounter(&timestamp);
       now_dbl = (timestamp.QuadPart - g_start_time.QuadPart) * g_time_scale;
-      now_tv.tv_sec = (gpr_int64)now_dbl;
-      now_tv.tv_nsec = (gpr_int32)((now_dbl - (double)now_tv.tv_sec) * 1e9);
+      now_tv.tv_sec = (int64_t)now_dbl;
+      now_tv.tv_nsec = (int32_t)((now_dbl - (double)now_tv.tv_sec) * 1e9);
       break;
   }
   return now_tv;
diff --git a/src/core/support/tls_pthread.c b/src/core/support/tls_pthread.c
index 2d28226..9683a6e 100644
--- a/src/core/support/tls_pthread.c
+++ b/src/core/support/tls_pthread.c
@@ -37,7 +37,7 @@
 
 #include <grpc/support/tls.h>
 
-gpr_intptr gpr_tls_set(struct gpr_pthread_thread_local *tls, gpr_intptr value) {
+intptr_t gpr_tls_set(struct gpr_pthread_thread_local *tls, intptr_t value) {
   GPR_ASSERT(0 == pthread_setspecific(tls->key, (void *)value));
   return value;
 }
diff --git a/src/core/surface/byte_buffer_reader.c b/src/core/surface/byte_buffer_reader.c
index 57417f4..4679854 100644
--- a/src/core/surface/byte_buffer_reader.c
+++ b/src/core/surface/byte_buffer_reader.c
@@ -110,7 +110,7 @@
   size_t bytes_read = 0;
   const size_t input_size = grpc_byte_buffer_length(reader->buffer_out);
   gpr_slice out_slice = gpr_slice_malloc(input_size);
-  gpr_uint8 *const outbuf = GPR_SLICE_START_PTR(out_slice); /* just an alias */
+  uint8_t *const outbuf = GPR_SLICE_START_PTR(out_slice); /* just an alias */
 
   while (grpc_byte_buffer_reader_next(reader, &in_slice) != 0) {
     const size_t slice_length = GPR_SLICE_LENGTH(in_slice);
diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 73c1996..b1ba2af 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -91,7 +91,7 @@
 } status_source;
 
 typedef struct {
-  gpr_uint8 is_set;
+  uint8_t is_set;
   grpc_status_code code;
   grpc_mdstr *details;
 } received_status;
@@ -122,14 +122,14 @@
   void *notify_tag;
   gpr_refcount steps_to_complete;
 
-  gpr_uint8 send_initial_metadata;
-  gpr_uint8 send_message;
-  gpr_uint8 send_final_op;
-  gpr_uint8 recv_initial_metadata;
-  gpr_uint8 recv_message;
-  gpr_uint8 recv_final_op;
-  gpr_uint8 is_notify_tag_closure;
-  gpr_uint8 success;
+  uint8_t send_initial_metadata;
+  uint8_t send_message;
+  uint8_t send_final_op;
+  uint8_t recv_initial_metadata;
+  uint8_t recv_message;
+  uint8_t recv_final_op;
+  uint8_t is_notify_tag_closure;
+  uint8_t success;
 } batch_control;
 
 struct grpc_call {
@@ -141,22 +141,22 @@
   gpr_mu mu;
 
   /* client or server call */
-  gpr_uint8 is_client;
+  uint8_t is_client;
   /* is the alarm set */
-  gpr_uint8 have_alarm;
+  uint8_t have_alarm;
   /** has grpc_call_destroy been called */
-  gpr_uint8 destroy_called;
+  uint8_t destroy_called;
   /** flag indicating that cancellation is inherited */
-  gpr_uint8 cancellation_is_inherited;
+  uint8_t cancellation_is_inherited;
   /** bitmask of live batches */
-  gpr_uint8 used_batches;
+  uint8_t used_batches;
   /** which ops are in-flight */
-  gpr_uint8 sent_initial_metadata;
-  gpr_uint8 sending_message;
-  gpr_uint8 sent_final_op;
-  gpr_uint8 received_initial_metadata;
-  gpr_uint8 receiving_message;
-  gpr_uint8 received_final_op;
+  uint8_t sent_initial_metadata;
+  uint8_t sending_message;
+  uint8_t sent_final_op;
+  uint8_t received_initial_metadata;
+  uint8_t receiving_message;
+  uint8_t received_final_op;
 
   batch_control active_batches[MAX_CONCURRENT_BATCHES];
 
@@ -173,7 +173,7 @@
   /* Compression algorithm for the call */
   grpc_compression_algorithm compression_algorithm;
   /* Supported encodings (compression algorithms), a bitset */
-  gpr_uint32 encodings_accepted_by_peer;
+  uint32_t encodings_accepted_by_peer;
 
   /* Contexts for various subsystems (security, tracing, ...). */
   grpc_call_context_element context[GRPC_CONTEXT_COUNT];
@@ -199,7 +199,7 @@
   gpr_slice receiving_slice;
   grpc_closure receiving_slice_ready;
   grpc_closure receiving_stream_ready;
-  gpr_uint32 test_only_last_message_flags;
+  uint32_t test_only_last_message_flags;
 
   union {
     struct {
@@ -233,7 +233,7 @@
                                   int success);
 
 grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
-                            gpr_uint32 propagation_mask,
+                            uint32_t propagation_mask,
                             grpc_completion_queue *cq,
                             const void *server_transport_data,
                             grpc_mdelem **add_initial_metadata,
@@ -386,7 +386,7 @@
 }
 
 static void set_status_code(grpc_call *call, status_source source,
-                            gpr_uint32 status) {
+                            uint32_t status) {
   if (call->status[source].is_set) return;
 
   call->status[source].is_set = 1;
@@ -409,8 +409,8 @@
   return algorithm;
 }
 
-gpr_uint32 grpc_call_test_only_get_message_flags(grpc_call *call) {
-  gpr_uint32 flags;
+uint32_t grpc_call_test_only_get_message_flags(grpc_call *call) {
+  uint32_t flags;
   gpr_mu_lock(&call->mu);
   flags = call->test_only_last_message_flags;
   gpr_mu_unlock(&call->mu);
@@ -430,7 +430,7 @@
       grpc_mdelem_get_user_data(mdel, destroy_encodings_accepted_by_peer);
   if (accepted_user_data != NULL) {
     call->encodings_accepted_by_peer =
-        (gpr_uint32)(((gpr_uintptr)accepted_user_data) - 1);
+        (uint32_t)(((uintptr_t)accepted_user_data) - 1);
     return;
   }
 
@@ -463,11 +463,11 @@
 
   grpc_mdelem_set_user_data(
       mdel, destroy_encodings_accepted_by_peer,
-      (void *)(((gpr_uintptr)call->encodings_accepted_by_peer) + 1));
+      (void *)(((uintptr_t)call->encodings_accepted_by_peer) + 1));
 }
 
-gpr_uint32 grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call) {
-  gpr_uint32 encodings_accepted_by_peer;
+uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call) {
+  uint32_t encodings_accepted_by_peer;
   gpr_mu_lock(&call->mu);
   encodings_accepted_by_peer = call->encodings_accepted_by_peer;
   gpr_mu_unlock(&call->mu);
@@ -561,7 +561,7 @@
     grpc_linked_mdelem *l = (grpc_linked_mdelem *)&md->internal_data;
     GPR_ASSERT(sizeof(grpc_linked_mdelem) == sizeof(md->internal_data));
     l->md = grpc_mdelem_from_string_and_buffer(
-        md->key, (const gpr_uint8 *)md->value, md->value_length);
+        md->key, (const uint8_t *)md->value, md->value_length);
     if (!grpc_mdstr_is_legal_header(l->md->key)) {
       gpr_log(GPR_ERROR, "attempt to send invalid metadata key: %s",
               grpc_mdstr_as_c_string(l->md->key));
@@ -709,7 +709,7 @@
 
   GPR_ASSERT(status != GRPC_STATUS_OK);
 
-  set_status_code(c, STATUS_FROM_API_OVERRIDE, (gpr_uint32)status);
+  set_status_code(c, STATUS_FROM_API_OVERRIDE, (uint32_t)status);
   set_status_details(c, STATUS_FROM_API_OVERRIDE, details);
 
   grpc_closure_init(&cc->closure, send_cancel, cc);
@@ -784,15 +784,15 @@
 #define STATUS_OFFSET 1
 static void destroy_status(void *ignored) {}
 
-static gpr_uint32 decode_status(grpc_mdelem *md) {
-  gpr_uint32 status;
+static uint32_t decode_status(grpc_mdelem *md) {
+  uint32_t status;
   void *user_data;
   if (md == GRPC_MDELEM_GRPC_STATUS_0) return 0;
   if (md == GRPC_MDELEM_GRPC_STATUS_1) return 1;
   if (md == GRPC_MDELEM_GRPC_STATUS_2) return 2;
   user_data = grpc_mdelem_get_user_data(md, destroy_status);
   if (user_data != NULL) {
-    status = ((gpr_uint32)(gpr_intptr)user_data) - STATUS_OFFSET;
+    status = ((uint32_t)(intptr_t)user_data) - STATUS_OFFSET;
   } else {
     if (!gpr_parse_bytes_to_uint32(grpc_mdstr_as_c_string(md->value),
                                    GPR_SLICE_LENGTH(md->value->slice),
@@ -800,12 +800,12 @@
       status = GRPC_STATUS_UNKNOWN; /* could not parse status code */
     }
     grpc_mdelem_set_user_data(md, destroy_status,
-                              (void *)(gpr_intptr)(status + STATUS_OFFSET));
+                              (void *)(intptr_t)(status + STATUS_OFFSET));
   }
   return status;
 }
 
-static gpr_uint32 decode_compression(grpc_mdelem *md) {
+static uint32_t decode_compression(grpc_mdelem *md) {
   grpc_compression_algorithm algorithm =
       grpc_compression_algorithm_from_mdstr(md->value);
   if (algorithm == GRPC_COMPRESS_ALGORITHMS_COUNT) {
@@ -895,11 +895,11 @@
   *(int *)dest = (status != GRPC_STATUS_OK);
 }
 
-static int are_write_flags_valid(gpr_uint32 flags) {
+static int are_write_flags_valid(uint32_t flags) {
   /* check that only bits in GRPC_WRITE_(INTERNAL?)_USED_MASK are set */
-  const gpr_uint32 allowed_write_positions =
+  const uint32_t allowed_write_positions =
       (GRPC_WRITE_USED_MASK | GRPC_WRITE_INTERNAL_USED_MASK);
-  const gpr_uint32 invalid_positions = ~allowed_write_positions;
+  const uint32_t invalid_positions = ~allowed_write_positions;
   return !(flags & invalid_positions);
 }
 
@@ -907,8 +907,7 @@
   size_t i;
   for (i = 0; i < MAX_CONCURRENT_BATCHES; i++) {
     if ((call->used_batches & (1 << i)) == 0) {
-      call->used_batches =
-          (gpr_uint8)(call->used_batches | (gpr_uint8)(1 << i));
+      call->used_batches = (uint8_t)(call->used_batches | (uint8_t)(1 << i));
       return &call->active_batches[i];
     }
   }
@@ -920,8 +919,8 @@
   batch_control *bctl = user_data;
   grpc_call *call = bctl->call;
   gpr_mu_lock(&call->mu);
-  call->used_batches = (gpr_uint8)(
-      call->used_batches & ~(gpr_uint8)(1 << (bctl - call->active_batches)));
+  call->used_batches = (uint8_t)(
+      call->used_batches & ~(uint8_t)(1 << (bctl - call->active_batches)));
   gpr_mu_unlock(&call->mu);
   GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "completion");
 }
@@ -933,8 +932,8 @@
     grpc_exec_ctx_enqueue(exec_ctx, bctl->notify_tag, bctl->success);
     gpr_mu_lock(&call->mu);
     bctl->call->used_batches =
-        (gpr_uint8)(bctl->call->used_batches &
-                    ~(gpr_uint8)(1 << (bctl - bctl->call->active_batches)));
+        (uint8_t)(bctl->call->used_batches &
+                  ~(uint8_t)(1 << (bctl - bctl->call->active_batches)));
     gpr_mu_unlock(&call->mu);
     GRPC_CALL_INTERNAL_UNREF(exec_ctx, call, "completion");
   } else {
@@ -1123,7 +1122,7 @@
   memset(bctl, 0, sizeof(*bctl));
   bctl->call = call;
   bctl->notify_tag = notify_tag;
-  bctl->is_notify_tag_closure = (gpr_uint8)(is_notify_tag_closure != 0);
+  bctl->is_notify_tag_closure = (uint8_t)(is_notify_tag_closure != 0);
 
   if (nops == 0) {
     GRPC_CALL_INTERNAL_REF(call, "completion");
@@ -1246,7 +1245,7 @@
               GRPC_MDSTR_REF(call->send_extra_metadata[1].md->value));
         }
         set_status_code(call, STATUS_FROM_API_OVERRIDE,
-                        (gpr_uint32)op->data.send_status_from_server.status);
+                        (uint32_t)op->data.send_status_from_server.status);
         if (!prepare_application_metadata(
                 call,
                 (int)op->data.send_status_from_server.trailing_metadata_count,
@@ -1426,4 +1425,4 @@
   return call->context[elem].value;
 }
 
-gpr_uint8 grpc_call_is_client(grpc_call *call) { return call->is_client; }
+uint8_t grpc_call_is_client(grpc_call *call) { return call->is_client; }
diff --git a/src/core/surface/call.h b/src/core/surface/call.h
index b53340d..0bbffb9 100644
--- a/src/core/surface/call.h
+++ b/src/core/surface/call.h
@@ -49,7 +49,7 @@
                                            void *user_data);
 
 grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
-                            gpr_uint32 propagation_mask,
+                            uint32_t propagation_mask,
                             grpc_completion_queue *cq,
                             const void *server_transport_data,
                             grpc_mdelem **add_initial_metadata,
@@ -100,7 +100,7 @@
 #define GRPC_CALL_LOG_BATCH(sev, call, ops, nops, tag) \
   if (grpc_api_trace) grpc_call_log_batch(sev, call, ops, nops, tag)
 
-gpr_uint8 grpc_call_is_client(grpc_call *call);
+uint8_t grpc_call_is_client(grpc_call *call);
 
 #ifdef __cplusplus
 }
diff --git a/src/core/surface/call_test_only.h b/src/core/surface/call_test_only.h
index b3a2bbd..b57c95c 100644
--- a/src/core/surface/call_test_only.h
+++ b/src/core/surface/call_test_only.h
@@ -49,13 +49,13 @@
 /** Return the message flags from \a call.
  *
  * \warning This function should \b only be used in test code. */
-gpr_uint32 grpc_call_test_only_get_message_flags(grpc_call *call);
+uint32_t grpc_call_test_only_get_message_flags(grpc_call *call);
 
 /** Returns a bitset for the encodings (compression algorithms) supported by \a
  * call's peer.
  *
  * To be indexed by grpc_compression_algorithm enum values. */
-gpr_uint32 grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call);
+uint32_t grpc_call_test_only_get_encodings_accepted_by_peer(grpc_call *call);
 
 #ifdef __cplusplus
 }
diff --git a/src/core/surface/channel.c b/src/core/surface/channel.c
index d0a8b0b..0016923 100644
--- a/src/core/surface/channel.c
+++ b/src/core/surface/channel.c
@@ -63,7 +63,7 @@
 
 struct grpc_channel {
   int is_client;
-  gpr_uint32 max_message_length;
+  uint32_t max_message_length;
   grpc_mdelem *default_authority;
 
   gpr_mu registered_call_mu;
@@ -108,7 +108,7 @@
           gpr_log(GPR_ERROR, "%s ignored: it must be >= 0",
                   GRPC_ARG_MAX_MESSAGE_LENGTH);
         } else {
-          channel->max_message_length = (gpr_uint32)args->args[i].value.integer;
+          channel->max_message_length = (uint32_t)args->args[i].value.integer;
         }
       } else if (0 == strcmp(args->args[i].key, GRPC_ARG_DEFAULT_AUTHORITY)) {
         if (args->args[i].type != GRPC_ARG_STRING) {
@@ -166,7 +166,7 @@
 }
 
 static grpc_call *grpc_channel_create_call_internal(
-    grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask,
+    grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
     grpc_completion_queue *cq, grpc_mdelem *path_mdelem,
     grpc_mdelem *authority_mdelem, gpr_timespec deadline) {
   grpc_mdelem *send_metadata[2];
@@ -187,7 +187,7 @@
 
 grpc_call *grpc_channel_create_call(grpc_channel *channel,
                                     grpc_call *parent_call,
-                                    gpr_uint32 propagation_mask,
+                                    uint32_t propagation_mask,
                                     grpc_completion_queue *cq,
                                     const char *method, const char *host,
                                     gpr_timespec deadline, void *reserved) {
@@ -231,7 +231,7 @@
 }
 
 grpc_call *grpc_channel_create_registered_call(
-    grpc_channel *channel, grpc_call *parent_call, gpr_uint32 propagation_mask,
+    grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
     grpc_completion_queue *completion_queue, void *registered_call_handle,
     gpr_timespec deadline, void *reserved) {
   registered_call *rc = registered_call_handle;
@@ -322,6 +322,6 @@
                                            grpc_mdstr_from_string(tmp));
 }
 
-gpr_uint32 grpc_channel_get_max_message_length(grpc_channel *channel) {
+uint32_t grpc_channel_get_max_message_length(grpc_channel *channel) {
   return channel->max_message_length;
 }
diff --git a/src/core/surface/channel.h b/src/core/surface/channel.h
index 3d2ff23..00240c6 100644
--- a/src/core/surface/channel.h
+++ b/src/core/surface/channel.h
@@ -51,7 +51,7 @@
     The returned elem is owned by the caller. */
 grpc_mdelem *grpc_channel_get_reffed_status_elem(grpc_channel *channel,
                                                  int status_code);
-gpr_uint32 grpc_channel_get_max_message_length(grpc_channel *channel);
+uint32_t grpc_channel_get_max_message_length(grpc_channel *channel);
 
 #ifdef GRPC_STREAM_REFCOUNT_DEBUG
 void grpc_channel_internal_ref(grpc_channel *channel, const char *reason);
diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c
index 848a33a..c0db9c5 100644
--- a/src/core/surface/completion_queue.c
+++ b/src/core/surface/completion_queue.c
@@ -142,7 +142,7 @@
   /* One for destroy(), one for pollset_shutdown */
   gpr_ref_init(&cc->owning_refs, 2);
   cc->completed_tail = &cc->completed_head;
-  cc->completed_head.next = (gpr_uintptr)cc->completed_tail;
+  cc->completed_head.next = (uintptr_t)cc->completed_tail;
   cc->shutdown = 0;
   cc->shutdown_called = 0;
   cc->is_server_cq = 0;
@@ -183,7 +183,7 @@
 void grpc_cq_internal_unref(grpc_completion_queue *cc) {
 #endif
   if (gpr_unref(&cc->owning_refs)) {
-    GPR_ASSERT(cc->completed_head.next == (gpr_uintptr)&cc->completed_head);
+    GPR_ASSERT(cc->completed_head.next == (uintptr_t)&cc->completed_head);
     grpc_pollset_reset(&cc->pollset);
     gpr_mu_lock(&g_freelist_mu);
     cc->next_free = g_freelist;
@@ -229,7 +229,7 @@
   storage->done = done;
   storage->done_arg = done_arg;
   storage->next =
-      ((gpr_uintptr)&cc->completed_head) | ((gpr_uintptr)(success != 0));
+      ((uintptr_t)&cc->completed_head) | ((uintptr_t)(success != 0));
 
   gpr_mu_lock(GRPC_POLLSET_MU(&cc->pollset));
 #ifndef NDEBUG
@@ -247,7 +247,7 @@
   shutdown = gpr_unref(&cc->pending_events);
   if (!shutdown) {
     cc->completed_tail->next =
-        ((gpr_uintptr)storage) | (1u & (gpr_uintptr)cc->completed_tail->next);
+        ((uintptr_t)storage) | (1u & (uintptr_t)cc->completed_tail->next);
     cc->completed_tail = storage;
     pluck_worker = NULL;
     for (i = 0; i < cc->num_pluckers; i++) {
@@ -260,7 +260,7 @@
     gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
   } else {
     cc->completed_tail->next =
-        ((gpr_uintptr)storage) | (1u & (gpr_uintptr)cc->completed_tail->next);
+        ((uintptr_t)storage) | (1u & (uintptr_t)cc->completed_tail->next);
     cc->completed_tail = storage;
     GPR_ASSERT(!cc->shutdown);
     GPR_ASSERT(cc->shutdown_called);
@@ -298,7 +298,7 @@
   for (;;) {
     if (cc->completed_tail != &cc->completed_head) {
       grpc_cq_completion *c = (grpc_cq_completion *)cc->completed_head.next;
-      cc->completed_head.next = c->next & ~(gpr_uintptr)1;
+      cc->completed_head.next = c->next & ~(uintptr_t)1;
       if (c == cc->completed_tail) {
         cc->completed_tail = &cc->completed_head;
       }
@@ -385,11 +385,10 @@
   gpr_mu_lock(GRPC_POLLSET_MU(&cc->pollset));
   for (;;) {
     prev = &cc->completed_head;
-    while ((c = (grpc_cq_completion *)(prev->next & ~(gpr_uintptr)1)) !=
+    while ((c = (grpc_cq_completion *)(prev->next & ~(uintptr_t)1)) !=
            &cc->completed_head) {
       if (c->tag == tag) {
-        prev->next =
-            (prev->next & (gpr_uintptr)1) | (c->next & ~(gpr_uintptr)1);
+        prev->next = (prev->next & (uintptr_t)1) | (c->next & ~(uintptr_t)1);
         if (c == cc->completed_tail) {
           cc->completed_tail = prev;
         }
diff --git a/src/core/surface/completion_queue.h b/src/core/surface/completion_queue.h
index 1e40c48..27ef90f 100644
--- a/src/core/surface/completion_queue.h
+++ b/src/core/surface/completion_queue.h
@@ -48,7 +48,7 @@
                struct grpc_cq_completion *c);
   void *done_arg;
   /** next pointer; low bit is used to indicate success or not */
-  gpr_uintptr next;
+  uintptr_t next;
 } grpc_cq_completion;
 
 #ifdef GRPC_CQ_REF_COUNT_DEBUG
diff --git a/src/core/surface/init.c b/src/core/surface/init.c
index 81166e8..ec314bd 100644
--- a/src/core/surface/init.c
+++ b/src/core/surface/init.c
@@ -83,7 +83,7 @@
 
 void grpc_register_plugin(void (*init)(void), void (*destroy)(void)) {
   GRPC_API_TRACE("grpc_register_plugin(init=%p, destroy=%p)", 2,
-      ((void*)(gpr_intptr)init, (void*)(gpr_intptr)destroy));
+                 ((void*)(intptr_t)init, (void*)(intptr_t)destroy));
   GPR_ASSERT(g_number_of_plugins != MAX_PLUGINS);
   g_all_of_the_plugins[g_number_of_plugins].init = init;
   g_all_of_the_plugins[g_number_of_plugins].destroy = destroy;
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index 1e1cde3..79db138 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -113,8 +113,8 @@
   channel_data *next;
   channel_data *prev;
   channel_registered_method *registered_methods;
-  gpr_uint32 registered_method_slots;
-  gpr_uint32 registered_method_max_probes;
+  uint32_t registered_method_slots;
+  uint32_t registered_method_max_probes;
   grpc_closure finish_destroy_channel_closure;
   grpc_closure channel_connectivity_changed;
 };
@@ -209,7 +209,7 @@
   size_t max_requested_calls;
 
   gpr_atm shutdown_flag;
-  gpr_uint8 shutdown_published;
+  uint8_t shutdown_published;
   size_t num_shutdown_tags;
   shutdown_tag *shutdown_tags;
 
@@ -450,8 +450,8 @@
   channel_data *chand = elem->channel_data;
   call_data *calld = elem->call_data;
   grpc_server *server = chand->server;
-  gpr_uint32 i;
-  gpr_uint32 hash;
+  uint32_t i;
+  uint32_t hash;
   channel_registered_method *rm;
 
   if (chand->registered_methods && calld->path && calld->host) {
@@ -901,10 +901,10 @@
   channel_data *chand;
   grpc_mdstr *host;
   grpc_mdstr *method;
-  gpr_uint32 hash;
+  uint32_t hash;
   size_t slots;
-  gpr_uint32 probes;
-  gpr_uint32 max_probes = 0;
+  uint32_t probes;
+  uint32_t max_probes = 0;
   grpc_transport_op op;
 
   for (i = 0; i < s->channel_filter_count; i++) {
@@ -954,8 +954,8 @@
       crm->host = host;
       crm->method = method;
     }
-    GPR_ASSERT(slots <= GPR_UINT32_MAX);
-    chand->registered_method_slots = (gpr_uint32)slots;
+    GPR_ASSERT(slots <= UINT32_MAX);
+    chand->registered_method_slots = (uint32_t)slots;
     chand->registered_method_max_probes = max_probes;
   }
 
diff --git a/src/core/transport/byte_stream.c b/src/core/transport/byte_stream.c
index 89e2048..8e6fb2c 100644
--- a/src/core/transport/byte_stream.c
+++ b/src/core/transport/byte_stream.c
@@ -67,9 +67,9 @@
 
 void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
                                    gpr_slice_buffer *slice_buffer,
-                                   gpr_uint32 flags) {
-  GPR_ASSERT(slice_buffer->length <= GPR_UINT32_MAX);
-  stream->base.length = (gpr_uint32)slice_buffer->length;
+                                   uint32_t flags) {
+  GPR_ASSERT(slice_buffer->length <= UINT32_MAX);
+  stream->base.length = (uint32_t)slice_buffer->length;
   stream->base.flags = flags;
   stream->base.next = slice_buffer_stream_next;
   stream->base.destroy = slice_buffer_stream_destroy;
diff --git a/src/core/transport/byte_stream.h b/src/core/transport/byte_stream.h
index 5f2fe57..d2e51e7 100644
--- a/src/core/transport/byte_stream.h
+++ b/src/core/transport/byte_stream.h
@@ -47,8 +47,8 @@
 typedef struct grpc_byte_stream grpc_byte_stream;
 
 struct grpc_byte_stream {
-  gpr_uint32 length;
-  gpr_uint32 flags;
+  uint32_t length;
+  uint32_t flags;
   int (*next)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream,
               gpr_slice *slice, size_t max_size_hint,
               grpc_closure *on_complete);
@@ -84,6 +84,6 @@
 
 void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
                                    gpr_slice_buffer *slice_buffer,
-                                   gpr_uint32 flags);
+                                   uint32_t flags);
 
 #endif /* GRPC_INTERNAL_CORE_TRANSPORT_BYTE_STREAM_H */
diff --git a/src/core/transport/chttp2/bin_encoder.c b/src/core/transport/chttp2/bin_encoder.c
index 9c9070e..a6a8e3e 100644
--- a/src/core/transport/chttp2/bin_encoder.c
+++ b/src/core/transport/chttp2/bin_encoder.c
@@ -42,8 +42,8 @@
     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
 typedef struct {
-  gpr_uint16 bits;
-  gpr_uint8 length;
+  uint16_t bits;
+  uint8_t length;
 } b64_huff_sym;
 
 static const b64_huff_sym huff_alphabet[64] = {{0x21, 6},
@@ -111,7 +111,7 @@
                                                {0x7fb, 11},
                                                {0x18, 6}};
 
-static const gpr_uint8 tail_xtra[3] = {0, 2, 3};
+static const uint8_t tail_xtra[3] = {0, 2, 3};
 
 gpr_slice grpc_chttp2_base64_encode(gpr_slice input) {
   size_t input_length = GPR_SLICE_LENGTH(input);
@@ -119,7 +119,7 @@
   size_t tail_case = input_length % 3;
   size_t output_length = input_triplets * 4 + tail_xtra[tail_case];
   gpr_slice output = gpr_slice_malloc(output_length);
-  gpr_uint8 *in = GPR_SLICE_START_PTR(input);
+  uint8_t *in = GPR_SLICE_START_PTR(input);
   char *out = (char *)GPR_SLICE_START_PTR(output);
   size_t i;
 
@@ -159,11 +159,11 @@
 
 gpr_slice grpc_chttp2_huffman_compress(gpr_slice input) {
   size_t nbits;
-  gpr_uint8 *in;
-  gpr_uint8 *out;
+  uint8_t *in;
+  uint8_t *out;
   gpr_slice output;
-  gpr_uint32 temp = 0;
-  gpr_uint32 temp_length = 0;
+  uint32_t temp = 0;
+  uint32_t temp_length = 0;
 
   nbits = 0;
   for (in = GPR_SLICE_START_PTR(input); in != GPR_SLICE_END_PTR(input); ++in) {
@@ -180,7 +180,7 @@
 
     while (temp_length > 8) {
       temp_length -= 8;
-      *out++ = (gpr_uint8)(temp >> temp_length);
+      *out++ = (uint8_t)(temp >> temp_length);
     }
   }
 
@@ -189,8 +189,8 @@
      * expanded form due to the "integral promotion" performed (see section
      * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
      * is then required to avoid the compiler warning */
-    *out++ = (gpr_uint8)((gpr_uint8)(temp << (8u - temp_length)) |
-                         (gpr_uint8)(0xffu >> temp_length));
+    *out++ = (uint8_t)((uint8_t)(temp << (8u - temp_length)) |
+                       (uint8_t)(0xffu >> temp_length));
   }
 
   GPR_ASSERT(out == GPR_SLICE_END_PTR(output));
@@ -199,28 +199,28 @@
 }
 
 typedef struct {
-  gpr_uint32 temp;
-  gpr_uint32 temp_length;
-  gpr_uint8 *out;
+  uint32_t temp;
+  uint32_t temp_length;
+  uint8_t *out;
 } huff_out;
 
 static void enc_flush_some(huff_out *out) {
   while (out->temp_length > 8) {
     out->temp_length -= 8;
-    *out->out++ = (gpr_uint8)(out->temp >> out->temp_length);
+    *out->out++ = (uint8_t)(out->temp >> out->temp_length);
   }
 }
 
-static void enc_add2(huff_out *out, gpr_uint8 a, gpr_uint8 b) {
+static void enc_add2(huff_out *out, uint8_t a, uint8_t b) {
   b64_huff_sym sa = huff_alphabet[a];
   b64_huff_sym sb = huff_alphabet[b];
   out->temp = (out->temp << (sa.length + sb.length)) |
-              ((gpr_uint32)sa.bits << sb.length) | sb.bits;
-  out->temp_length += (gpr_uint32)sa.length + (gpr_uint32)sb.length;
+              ((uint32_t)sa.bits << sb.length) | sb.bits;
+  out->temp_length += (uint32_t)sa.length + (uint32_t)sb.length;
   enc_flush_some(out);
 }
 
-static void enc_add1(huff_out *out, gpr_uint8 a) {
+static void enc_add1(huff_out *out, uint8_t a) {
   b64_huff_sym sa = huff_alphabet[a];
   out->temp = (out->temp << sa.length) | sa.bits;
   out->temp_length += sa.length;
@@ -235,8 +235,8 @@
   size_t max_output_bits = 11 * output_syms;
   size_t max_output_length = max_output_bits / 8 + (max_output_bits % 8 != 0);
   gpr_slice output = gpr_slice_malloc(max_output_length);
-  gpr_uint8 *in = GPR_SLICE_START_PTR(input);
-  gpr_uint8 *start_out = GPR_SLICE_START_PTR(output);
+  uint8_t *in = GPR_SLICE_START_PTR(input);
+  uint8_t *start_out = GPR_SLICE_START_PTR(output);
   huff_out out;
   size_t i;
 
@@ -246,9 +246,9 @@
 
   /* encode full triplets */
   for (i = 0; i < input_triplets; i++) {
-    enc_add2(&out, in[0] >> 2, (gpr_uint8)((in[0] & 0x3) << 4) | (in[1] >> 4));
-    enc_add2(&out, (gpr_uint8)((in[1] & 0xf) << 2) | (in[2] >> 6),
-             (gpr_uint8)(in[2] & 0x3f));
+    enc_add2(&out, in[0] >> 2, (uint8_t)((in[0] & 0x3) << 4) | (in[1] >> 4));
+    enc_add2(&out, (uint8_t)((in[1] & 0xf) << 2) | (in[2] >> 6),
+             (uint8_t)(in[2] & 0x3f));
     in += 3;
   }
 
@@ -257,13 +257,13 @@
     case 0:
       break;
     case 1:
-      enc_add2(&out, in[0] >> 2, (gpr_uint8)((in[0] & 0x3) << 4));
+      enc_add2(&out, in[0] >> 2, (uint8_t)((in[0] & 0x3) << 4));
       in += 1;
       break;
     case 2:
       enc_add2(&out, in[0] >> 2,
-               (gpr_uint8)((in[0] & 0x3) << 4) | (gpr_uint8)(in[1] >> 4));
-      enc_add1(&out, (gpr_uint8)((in[1] & 0xf) << 2));
+               (uint8_t)((in[0] & 0x3) << 4) | (uint8_t)(in[1] >> 4));
+      enc_add1(&out, (uint8_t)((in[1] & 0xf) << 2));
       in += 2;
       break;
   }
@@ -273,8 +273,8 @@
      * expanded form due to the "integral promotion" performed (see section
      * 3.2.1.1 of the C89 draft standard). A cast to the smaller container type
      * is then required to avoid the compiler warning */
-    *out.out++ = (gpr_uint8)((gpr_uint8)(out.temp << (8u - out.temp_length)) |
-                             (gpr_uint8)(0xffu >> out.temp_length));
+    *out.out++ = (uint8_t)((uint8_t)(out.temp << (8u - out.temp_length)) |
+                           (uint8_t)(0xffu >> out.temp_length));
   }
 
   GPR_ASSERT(out.out <= GPR_SLICE_END_PTR(output));
diff --git a/src/core/transport/chttp2/frame_data.c b/src/core/transport/chttp2/frame_data.c
index 5b16ce6..f9a1af8 100644
--- a/src/core/transport/chttp2/frame_data.c
+++ b/src/core/transport/chttp2/frame_data.c
@@ -63,7 +63,7 @@
 }
 
 grpc_chttp2_parse_error grpc_chttp2_data_parser_begin_frame(
-    grpc_chttp2_data_parser *parser, gpr_uint8 flags) {
+    grpc_chttp2_data_parser *parser, uint8_t flags) {
   if (flags & ~GRPC_CHTTP2_DATA_FLAG_END_STREAM) {
     gpr_log(GPR_ERROR, "unsupported data flags: 0x%02x", flags);
     return GRPC_CHTTP2_STREAM_ERROR;
@@ -111,24 +111,24 @@
   return out;
 }
 
-void grpc_chttp2_encode_data(gpr_uint32 id, gpr_slice_buffer *inbuf,
-                             gpr_uint32 write_bytes, int is_eof,
+void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
+                             uint32_t write_bytes, int is_eof,
                              gpr_slice_buffer *outbuf) {
   gpr_slice hdr;
-  gpr_uint8 *p;
+  uint8_t *p;
 
   hdr = gpr_slice_malloc(9);
   p = GPR_SLICE_START_PTR(hdr);
   GPR_ASSERT(write_bytes < (1 << 24));
-  *p++ = (gpr_uint8)(write_bytes >> 16);
-  *p++ = (gpr_uint8)(write_bytes >> 8);
-  *p++ = (gpr_uint8)(write_bytes);
+  *p++ = (uint8_t)(write_bytes >> 16);
+  *p++ = (uint8_t)(write_bytes >> 8);
+  *p++ = (uint8_t)(write_bytes);
   *p++ = GRPC_CHTTP2_FRAME_DATA;
   *p++ = is_eof ? GRPC_CHTTP2_DATA_FLAG_END_STREAM : 0;
-  *p++ = (gpr_uint8)(id >> 24);
-  *p++ = (gpr_uint8)(id >> 16);
-  *p++ = (gpr_uint8)(id >> 8);
-  *p++ = (gpr_uint8)(id);
+  *p++ = (uint8_t)(id >> 24);
+  *p++ = (uint8_t)(id >> 16);
+  *p++ = (uint8_t)(id >> 8);
+  *p++ = (uint8_t)(id);
   gpr_slice_buffer_add(outbuf, hdr);
 
   gpr_slice_buffer_move_first(inbuf, write_bytes, outbuf);
@@ -138,11 +138,11 @@
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
-  gpr_uint8 *const beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *const end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *const beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *const end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
   grpc_chttp2_data_parser *p = parser;
-  gpr_uint32 message_flags;
+  uint32_t message_flags;
   grpc_chttp2_incoming_byte_stream *incoming_byte_stream;
 
   if (is_last && p->is_last_frame) {
@@ -174,28 +174,28 @@
       }
     /* fallthrough */
     case GRPC_CHTTP2_DATA_FH_1:
-      p->frame_size = ((gpr_uint32)*cur) << 24;
+      p->frame_size = ((uint32_t)*cur) << 24;
       if (++cur == end) {
         p->state = GRPC_CHTTP2_DATA_FH_2;
         return GRPC_CHTTP2_PARSE_OK;
       }
     /* fallthrough */
     case GRPC_CHTTP2_DATA_FH_2:
-      p->frame_size |= ((gpr_uint32)*cur) << 16;
+      p->frame_size |= ((uint32_t)*cur) << 16;
       if (++cur == end) {
         p->state = GRPC_CHTTP2_DATA_FH_3;
         return GRPC_CHTTP2_PARSE_OK;
       }
     /* fallthrough */
     case GRPC_CHTTP2_DATA_FH_3:
-      p->frame_size |= ((gpr_uint32)*cur) << 8;
+      p->frame_size |= ((uint32_t)*cur) << 8;
       if (++cur == end) {
         p->state = GRPC_CHTTP2_DATA_FH_4;
         return GRPC_CHTTP2_PARSE_OK;
       }
     /* fallthrough */
     case GRPC_CHTTP2_DATA_FH_4:
-      p->frame_size |= ((gpr_uint32)*cur);
+      p->frame_size |= ((uint32_t)*cur);
       p->state = GRPC_CHTTP2_DATA_FRAME;
       ++cur;
       message_flags = 0;
@@ -215,7 +215,7 @@
       }
       grpc_chttp2_list_add_parsing_seen_stream(transport_parsing,
                                                stream_parsing);
-      if ((gpr_uint32)(end - cur) == p->frame_size) {
+      if ((uint32_t)(end - cur) == p->frame_size) {
         grpc_chttp2_incoming_byte_stream_push(
             exec_ctx, p->parsing_frame,
             gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
@@ -224,7 +224,7 @@
         p->parsing_frame = NULL;
         p->state = GRPC_CHTTP2_DATA_FH_0;
         return GRPC_CHTTP2_PARSE_OK;
-      } else if ((gpr_uint32)(end - cur) > p->frame_size) {
+      } else if ((uint32_t)(end - cur) > p->frame_size) {
         grpc_chttp2_incoming_byte_stream_push(
             exec_ctx, p->parsing_frame,
             gpr_slice_sub(slice, (size_t)(cur - beg),
@@ -239,7 +239,7 @@
             exec_ctx, p->parsing_frame,
             gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
         GPR_ASSERT((size_t)(end - cur) <= p->frame_size);
-        p->frame_size -= (gpr_uint32)(end - cur);
+        p->frame_size -= (uint32_t)(end - cur);
         return GRPC_CHTTP2_PARSE_OK;
       }
   }
diff --git a/src/core/transport/chttp2/frame_data.h b/src/core/transport/chttp2/frame_data.h
index 27d4d00..936b7a2 100644
--- a/src/core/transport/chttp2/frame_data.h
+++ b/src/core/transport/chttp2/frame_data.h
@@ -61,9 +61,9 @@
 
 typedef struct {
   grpc_chttp2_stream_state state;
-  gpr_uint8 is_last_frame;
-  gpr_uint8 frame_type;
-  gpr_uint32 frame_size;
+  uint8_t is_last_frame;
+  uint8_t frame_type;
+  uint32_t frame_size;
 
   int is_frame_compressed;
   grpc_chttp2_incoming_frame_queue incoming_frames;
@@ -85,7 +85,7 @@
 
 /* start processing a new data frame */
 grpc_chttp2_parse_error grpc_chttp2_data_parser_begin_frame(
-    grpc_chttp2_data_parser *parser, gpr_uint8 flags);
+    grpc_chttp2_data_parser *parser, uint8_t flags);
 
 /* handle a slice of a data frame - is_last indicates the last slice of a
    frame */
@@ -94,8 +94,8 @@
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
 
-void grpc_chttp2_encode_data(gpr_uint32 id, gpr_slice_buffer *inbuf,
-                             gpr_uint32 write_bytes, int is_eof,
+void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
+                             uint32_t write_bytes, int is_eof,
                              gpr_slice_buffer *outbuf);
 
 #endif /* GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_DATA_H */
diff --git a/src/core/transport/chttp2/frame_goaway.c b/src/core/transport/chttp2/frame_goaway.c
index c5758bc..2fa525e 100644
--- a/src/core/transport/chttp2/frame_goaway.c
+++ b/src/core/transport/chttp2/frame_goaway.c
@@ -48,7 +48,7 @@
 }
 
 grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(
-    grpc_chttp2_goaway_parser *p, gpr_uint32 length, gpr_uint8 flags) {
+    grpc_chttp2_goaway_parser *p, uint32_t length, uint8_t flags) {
   if (length < 8) {
     gpr_log(GPR_ERROR, "goaway frame too short (%d bytes)", length);
     return GRPC_CHTTP2_CONNECTION_ERROR;
@@ -66,9 +66,9 @@
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
-  gpr_uint8 *const beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *const end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *const beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *const end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
   grpc_chttp2_goaway_parser *p = parser;
 
   switch (p->state) {
@@ -77,7 +77,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_LSI0;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->last_stream_id = ((gpr_uint32)*cur) << 24;
+      p->last_stream_id = ((uint32_t)*cur) << 24;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_LSI1:
@@ -85,7 +85,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_LSI1;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->last_stream_id |= ((gpr_uint32)*cur) << 16;
+      p->last_stream_id |= ((uint32_t)*cur) << 16;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_LSI2:
@@ -93,7 +93,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_LSI2;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->last_stream_id |= ((gpr_uint32)*cur) << 8;
+      p->last_stream_id |= ((uint32_t)*cur) << 8;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_LSI3:
@@ -101,7 +101,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_LSI3;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->last_stream_id |= ((gpr_uint32)*cur);
+      p->last_stream_id |= ((uint32_t)*cur);
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_ERR0:
@@ -109,7 +109,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_ERR0;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->error_code = ((gpr_uint32)*cur) << 24;
+      p->error_code = ((uint32_t)*cur) << 24;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_ERR1:
@@ -117,7 +117,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_ERR1;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->error_code |= ((gpr_uint32)*cur) << 16;
+      p->error_code |= ((uint32_t)*cur) << 16;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_ERR2:
@@ -125,7 +125,7 @@
         p->state = GRPC_CHTTP2_GOAWAY_ERR2;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->error_code |= ((gpr_uint32)*cur) << 8;
+      p->error_code |= ((uint32_t)*cur) << 8;
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_ERR3:
@@ -133,13 +133,13 @@
         p->state = GRPC_CHTTP2_GOAWAY_ERR3;
         return GRPC_CHTTP2_PARSE_OK;
       }
-      p->error_code |= ((gpr_uint32)*cur);
+      p->error_code |= ((uint32_t)*cur);
       ++cur;
     /* fallthrough */
     case GRPC_CHTTP2_GOAWAY_DEBUG:
       memcpy(p->debug_data + p->debug_pos, cur, (size_t)(end - cur));
-      GPR_ASSERT((size_t)(end - cur) < GPR_UINT32_MAX - p->debug_pos);
-      p->debug_pos += (gpr_uint32)(end - cur);
+      GPR_ASSERT((size_t)(end - cur) < UINT32_MAX - p->debug_pos);
+      p->debug_pos += (uint32_t)(end - cur);
       p->state = GRPC_CHTTP2_GOAWAY_DEBUG;
       if (is_last) {
         transport_parsing->goaway_received = 1;
@@ -155,19 +155,19 @@
   GPR_UNREACHABLE_CODE(return GRPC_CHTTP2_CONNECTION_ERROR);
 }
 
-void grpc_chttp2_goaway_append(gpr_uint32 last_stream_id, gpr_uint32 error_code,
+void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
                                gpr_slice debug_data,
                                gpr_slice_buffer *slice_buffer) {
   gpr_slice header = gpr_slice_malloc(9 + 4 + 4);
-  gpr_uint8 *p = GPR_SLICE_START_PTR(header);
-  gpr_uint32 frame_length;
-  GPR_ASSERT(GPR_SLICE_LENGTH(debug_data) < GPR_UINT32_MAX - 4 - 4);
-  frame_length = 4 + 4 + (gpr_uint32)GPR_SLICE_LENGTH(debug_data);
+  uint8_t *p = GPR_SLICE_START_PTR(header);
+  uint32_t frame_length;
+  GPR_ASSERT(GPR_SLICE_LENGTH(debug_data) < UINT32_MAX - 4 - 4);
+  frame_length = 4 + 4 + (uint32_t)GPR_SLICE_LENGTH(debug_data);
 
   /* frame header: length */
-  *p++ = (gpr_uint8)(frame_length >> 16);
-  *p++ = (gpr_uint8)(frame_length >> 8);
-  *p++ = (gpr_uint8)(frame_length);
+  *p++ = (uint8_t)(frame_length >> 16);
+  *p++ = (uint8_t)(frame_length >> 8);
+  *p++ = (uint8_t)(frame_length);
   /* frame header: type */
   *p++ = GRPC_CHTTP2_FRAME_GOAWAY;
   /* frame header: flags */
@@ -178,15 +178,15 @@
   *p++ = 0;
   *p++ = 0;
   /* payload: last stream id */
-  *p++ = (gpr_uint8)(last_stream_id >> 24);
-  *p++ = (gpr_uint8)(last_stream_id >> 16);
-  *p++ = (gpr_uint8)(last_stream_id >> 8);
-  *p++ = (gpr_uint8)(last_stream_id);
+  *p++ = (uint8_t)(last_stream_id >> 24);
+  *p++ = (uint8_t)(last_stream_id >> 16);
+  *p++ = (uint8_t)(last_stream_id >> 8);
+  *p++ = (uint8_t)(last_stream_id);
   /* payload: error code */
-  *p++ = (gpr_uint8)(error_code >> 24);
-  *p++ = (gpr_uint8)(error_code >> 16);
-  *p++ = (gpr_uint8)(error_code >> 8);
-  *p++ = (gpr_uint8)(error_code);
+  *p++ = (uint8_t)(error_code >> 24);
+  *p++ = (uint8_t)(error_code >> 16);
+  *p++ = (uint8_t)(error_code >> 8);
+  *p++ = (uint8_t)(error_code);
   GPR_ASSERT(p == GPR_SLICE_END_PTR(header));
   gpr_slice_buffer_add(slice_buffer, header);
   gpr_slice_buffer_add(slice_buffer, debug_data);
diff --git a/src/core/transport/chttp2/frame_goaway.h b/src/core/transport/chttp2/frame_goaway.h
index 06aaa92..e1a72b4 100644
--- a/src/core/transport/chttp2/frame_goaway.h
+++ b/src/core/transport/chttp2/frame_goaway.h
@@ -54,23 +54,23 @@
 
 typedef struct {
   grpc_chttp2_goaway_parse_state state;
-  gpr_uint32 last_stream_id;
-  gpr_uint32 error_code;
+  uint32_t last_stream_id;
+  uint32_t error_code;
   char *debug_data;
-  gpr_uint32 debug_length;
-  gpr_uint32 debug_pos;
+  uint32_t debug_length;
+  uint32_t debug_pos;
 } grpc_chttp2_goaway_parser;
 
 void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser *p);
 void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser *p);
 grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(
-    grpc_chttp2_goaway_parser *parser, gpr_uint32 length, gpr_uint8 flags);
+    grpc_chttp2_goaway_parser *parser, uint32_t length, uint8_t flags);
 grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
 
-void grpc_chttp2_goaway_append(gpr_uint32 last_stream_id, gpr_uint32 error_code,
+void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
                                gpr_slice debug_data,
                                gpr_slice_buffer *slice_buffer);
 
diff --git a/src/core/transport/chttp2/frame_ping.c b/src/core/transport/chttp2/frame_ping.c
index 8e76327..c6ab522 100644
--- a/src/core/transport/chttp2/frame_ping.c
+++ b/src/core/transport/chttp2/frame_ping.c
@@ -39,9 +39,9 @@
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 
-gpr_slice grpc_chttp2_ping_create(gpr_uint8 ack, gpr_uint8 *opaque_8bytes) {
+gpr_slice grpc_chttp2_ping_create(uint8_t ack, uint8_t *opaque_8bytes) {
   gpr_slice slice = gpr_slice_malloc(9 + 8);
-  gpr_uint8 *p = GPR_SLICE_START_PTR(slice);
+  uint8_t *p = GPR_SLICE_START_PTR(slice);
 
   *p++ = 0;
   *p++ = 0;
@@ -58,7 +58,7 @@
 }
 
 grpc_chttp2_parse_error grpc_chttp2_ping_parser_begin_frame(
-    grpc_chttp2_ping_parser *parser, gpr_uint32 length, gpr_uint8 flags) {
+    grpc_chttp2_ping_parser *parser, uint32_t length, uint8_t flags) {
   if (flags & 0xfe || length != 8) {
     gpr_log(GPR_ERROR, "invalid ping: length=%d, flags=%02x", length, flags);
     return GRPC_CHTTP2_CONNECTION_ERROR;
@@ -72,9 +72,9 @@
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
-  gpr_uint8 *const beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *const end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *const beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *const end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
   grpc_chttp2_ping_parser *p = parser;
 
   while (p->byte != 8 && cur != end) {
diff --git a/src/core/transport/chttp2/frame_ping.h b/src/core/transport/chttp2/frame_ping.h
index 2c71d0d..16d7a72 100644
--- a/src/core/transport/chttp2/frame_ping.h
+++ b/src/core/transport/chttp2/frame_ping.h
@@ -39,15 +39,15 @@
 #include "src/core/transport/chttp2/frame.h"
 
 typedef struct {
-  gpr_uint8 byte;
-  gpr_uint8 is_ack;
-  gpr_uint8 opaque_8bytes[8];
+  uint8_t byte;
+  uint8_t is_ack;
+  uint8_t opaque_8bytes[8];
 } grpc_chttp2_ping_parser;
 
-gpr_slice grpc_chttp2_ping_create(gpr_uint8 ack, gpr_uint8 *opaque_8bytes);
+gpr_slice grpc_chttp2_ping_create(uint8_t ack, uint8_t *opaque_8bytes);
 
 grpc_chttp2_parse_error grpc_chttp2_ping_parser_begin_frame(
-    grpc_chttp2_ping_parser *parser, gpr_uint32 length, gpr_uint8 flags);
+    grpc_chttp2_ping_parser *parser, uint32_t length, uint8_t flags);
 grpc_chttp2_parse_error grpc_chttp2_ping_parser_parse(
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
diff --git a/src/core/transport/chttp2/frame_rst_stream.c b/src/core/transport/chttp2/frame_rst_stream.c
index 3cd5bcf..754529e 100644
--- a/src/core/transport/chttp2/frame_rst_stream.c
+++ b/src/core/transport/chttp2/frame_rst_stream.c
@@ -38,29 +38,29 @@
 
 #include "src/core/transport/chttp2/frame.h"
 
-gpr_slice grpc_chttp2_rst_stream_create(gpr_uint32 id, gpr_uint32 code) {
+gpr_slice grpc_chttp2_rst_stream_create(uint32_t id, uint32_t code) {
   gpr_slice slice = gpr_slice_malloc(13);
-  gpr_uint8 *p = GPR_SLICE_START_PTR(slice);
+  uint8_t *p = GPR_SLICE_START_PTR(slice);
 
   *p++ = 0;
   *p++ = 0;
   *p++ = 4;
   *p++ = GRPC_CHTTP2_FRAME_RST_STREAM;
   *p++ = 0;
-  *p++ = (gpr_uint8)(id >> 24);
-  *p++ = (gpr_uint8)(id >> 16);
-  *p++ = (gpr_uint8)(id >> 8);
-  *p++ = (gpr_uint8)(id);
-  *p++ = (gpr_uint8)(code >> 24);
-  *p++ = (gpr_uint8)(code >> 16);
-  *p++ = (gpr_uint8)(code >> 8);
-  *p++ = (gpr_uint8)(code);
+  *p++ = (uint8_t)(id >> 24);
+  *p++ = (uint8_t)(id >> 16);
+  *p++ = (uint8_t)(id >> 8);
+  *p++ = (uint8_t)(id);
+  *p++ = (uint8_t)(code >> 24);
+  *p++ = (uint8_t)(code >> 16);
+  *p++ = (uint8_t)(code >> 8);
+  *p++ = (uint8_t)(code);
 
   return slice;
 }
 
 grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_begin_frame(
-    grpc_chttp2_rst_stream_parser *parser, gpr_uint32 length, gpr_uint8 flags) {
+    grpc_chttp2_rst_stream_parser *parser, uint32_t length, uint8_t flags) {
   if (length != 4) {
     gpr_log(GPR_ERROR, "invalid rst_stream: length=%d, flags=%02x", length,
             flags);
@@ -74,9 +74,9 @@
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
-  gpr_uint8 *const beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *const end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *const beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *const end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
   grpc_chttp2_rst_stream_parser *p = parser;
 
   while (p->byte != 4 && cur != end) {
@@ -89,11 +89,10 @@
     GPR_ASSERT(is_last);
     stream_parsing->received_close = 1;
     stream_parsing->saw_rst_stream = 1;
-    stream_parsing->rst_stream_reason =
-        (((gpr_uint32)p->reason_bytes[0]) << 24) |
-        (((gpr_uint32)p->reason_bytes[1]) << 16) |
-        (((gpr_uint32)p->reason_bytes[2]) << 8) |
-        (((gpr_uint32)p->reason_bytes[3]));
+    stream_parsing->rst_stream_reason = (((uint32_t)p->reason_bytes[0]) << 24) |
+                                        (((uint32_t)p->reason_bytes[1]) << 16) |
+                                        (((uint32_t)p->reason_bytes[2]) << 8) |
+                                        (((uint32_t)p->reason_bytes[3]));
   }
 
   return GRPC_CHTTP2_PARSE_OK;
diff --git a/src/core/transport/chttp2/frame_rst_stream.h b/src/core/transport/chttp2/frame_rst_stream.h
index 92cb77c..72ca654 100644
--- a/src/core/transport/chttp2/frame_rst_stream.h
+++ b/src/core/transport/chttp2/frame_rst_stream.h
@@ -39,14 +39,14 @@
 #include "src/core/iomgr/exec_ctx.h"
 
 typedef struct {
-  gpr_uint8 byte;
-  gpr_uint8 reason_bytes[4];
+  uint8_t byte;
+  uint8_t reason_bytes[4];
 } grpc_chttp2_rst_stream_parser;
 
-gpr_slice grpc_chttp2_rst_stream_create(gpr_uint32 stream_id, gpr_uint32 code);
+gpr_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code);
 
 grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_begin_frame(
-    grpc_chttp2_rst_stream_parser *parser, gpr_uint32 length, gpr_uint8 flags);
+    grpc_chttp2_rst_stream_parser *parser, uint32_t length, uint8_t flags);
 grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
diff --git a/src/core/transport/chttp2/frame_settings.c b/src/core/transport/chttp2/frame_settings.c
index 8982d71..cc49dd4 100644
--- a/src/core/transport/chttp2/frame_settings.c
+++ b/src/core/transport/chttp2/frame_settings.c
@@ -67,11 +67,10 @@
          GRPC_CHTTP2_PROTOCOL_ERROR},
 };
 
-static gpr_uint8 *fill_header(gpr_uint8 *out, gpr_uint32 length,
-                              gpr_uint8 flags) {
-  *out++ = (gpr_uint8)(length >> 16);
-  *out++ = (gpr_uint8)(length >> 8);
-  *out++ = (gpr_uint8)(length);
+static uint8_t *fill_header(uint8_t *out, uint32_t length, uint8_t flags) {
+  *out++ = (uint8_t)(length >> 16);
+  *out++ = (uint8_t)(length >> 8);
+  *out++ = (uint8_t)(length);
   *out++ = GRPC_CHTTP2_FRAME_SETTINGS;
   *out++ = flags;
   *out++ = 0;
@@ -81,12 +80,12 @@
   return out;
 }
 
-gpr_slice grpc_chttp2_settings_create(gpr_uint32 *old, const gpr_uint32 *new,
-                                      gpr_uint32 force_mask, size_t count) {
+gpr_slice grpc_chttp2_settings_create(uint32_t *old, const uint32_t *new,
+                                      uint32_t force_mask, size_t count) {
   size_t i;
-  gpr_uint32 n = 0;
+  uint32_t n = 0;
   gpr_slice output;
-  gpr_uint8 *p;
+  uint8_t *p;
 
   for (i = 0; i < count; i++) {
     n += (new[i] != old[i] || (force_mask & (1u << i)) != 0);
@@ -98,12 +97,12 @@
   for (i = 0; i < count; i++) {
     if (new[i] != old[i] || (force_mask & (1u << i)) != 0) {
       GPR_ASSERT(i);
-      *p++ = (gpr_uint8)(i >> 8);
-      *p++ = (gpr_uint8)(i);
-      *p++ = (gpr_uint8)(new[i] >> 24);
-      *p++ = (gpr_uint8)(new[i] >> 16);
-      *p++ = (gpr_uint8)(new[i] >> 8);
-      *p++ = (gpr_uint8)(new[i]);
+      *p++ = (uint8_t)(i >> 8);
+      *p++ = (uint8_t)(i);
+      *p++ = (uint8_t)(new[i] >> 24);
+      *p++ = (uint8_t)(new[i] >> 16);
+      *p++ = (uint8_t)(new[i] >> 8);
+      *p++ = (uint8_t)(new[i]);
       old[i] = new[i];
     }
   }
@@ -120,11 +119,11 @@
 }
 
 grpc_chttp2_parse_error grpc_chttp2_settings_parser_begin_frame(
-    grpc_chttp2_settings_parser *parser, gpr_uint32 length, gpr_uint8 flags,
-    gpr_uint32 *settings) {
+    grpc_chttp2_settings_parser *parser, uint32_t length, uint8_t flags,
+    uint32_t *settings) {
   parser->target_settings = settings;
   memcpy(parser->incoming_settings, settings,
-         GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32));
+         GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
   parser->is_ack = 0;
   parser->state = GRPC_CHTTP2_SPS_ID0;
   if (flags == GRPC_CHTTP2_FLAG_ACK) {
@@ -150,8 +149,8 @@
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
   grpc_chttp2_settings_parser *parser = p;
-  const gpr_uint8 *cur = GPR_SLICE_START_PTR(slice);
-  const gpr_uint8 *end = GPR_SLICE_END_PTR(slice);
+  const uint8_t *cur = GPR_SLICE_START_PTR(slice);
+  const uint8_t *end = GPR_SLICE_END_PTR(slice);
 
   if (parser->is_ack) {
     return GRPC_CHTTP2_PARSE_OK;
@@ -165,13 +164,13 @@
           if (is_last) {
             transport_parsing->settings_updated = 1;
             memcpy(parser->target_settings, parser->incoming_settings,
-                   GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32));
+                   GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
             gpr_slice_buffer_add(&transport_parsing->qbuf,
                                  grpc_chttp2_settings_ack_create());
           }
           return GRPC_CHTTP2_PARSE_OK;
         }
-        parser->id = (gpr_uint16)(((gpr_uint16)*cur) << 8);
+        parser->id = (uint16_t)(((uint16_t)*cur) << 8);
         cur++;
       /* fallthrough */
       case GRPC_CHTTP2_SPS_ID1:
@@ -179,7 +178,7 @@
           parser->state = GRPC_CHTTP2_SPS_ID1;
           return GRPC_CHTTP2_PARSE_OK;
         }
-        parser->id = (gpr_uint16)(parser->id | (*cur));
+        parser->id = (uint16_t)(parser->id | (*cur));
         cur++;
       /* fallthrough */
       case GRPC_CHTTP2_SPS_VAL0:
@@ -187,7 +186,7 @@
           parser->state = GRPC_CHTTP2_SPS_VAL0;
           return GRPC_CHTTP2_PARSE_OK;
         }
-        parser->value = ((gpr_uint32)*cur) << 24;
+        parser->value = ((uint32_t)*cur) << 24;
         cur++;
       /* fallthrough */
       case GRPC_CHTTP2_SPS_VAL1:
@@ -195,7 +194,7 @@
           parser->state = GRPC_CHTTP2_SPS_VAL1;
           return GRPC_CHTTP2_PARSE_OK;
         }
-        parser->value |= ((gpr_uint32)*cur) << 16;
+        parser->value |= ((uint32_t)*cur) << 16;
         cur++;
       /* fallthrough */
       case GRPC_CHTTP2_SPS_VAL2:
@@ -203,7 +202,7 @@
           parser->state = GRPC_CHTTP2_SPS_VAL2;
           return GRPC_CHTTP2_PARSE_OK;
         }
-        parser->value |= ((gpr_uint32)*cur) << 8;
+        parser->value |= ((uint32_t)*cur) << 8;
         cur++;
       /* fallthrough */
       case GRPC_CHTTP2_SPS_VAL3:
@@ -238,8 +237,7 @@
           if (parser->id == GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE &&
               parser->incoming_settings[parser->id] != parser->value) {
             transport_parsing->initial_window_update =
-                (gpr_int64)parser->value -
-                parser->incoming_settings[parser->id];
+                (int64_t)parser->value - parser->incoming_settings[parser->id];
             if (grpc_http_trace) {
               gpr_log(GPR_DEBUG, "adding %d for initial_window change",
                       (int)transport_parsing->initial_window_update);
diff --git a/src/core/transport/chttp2/frame_settings.h b/src/core/transport/chttp2/frame_settings.h
index e9c3c44..3c918e3 100644
--- a/src/core/transport/chttp2/frame_settings.h
+++ b/src/core/transport/chttp2/frame_settings.h
@@ -61,11 +61,11 @@
 
 typedef struct {
   grpc_chttp2_settings_parse_state state;
-  gpr_uint32 *target_settings;
-  gpr_uint8 is_ack;
-  gpr_uint16 id;
-  gpr_uint32 value;
-  gpr_uint32 incoming_settings[GRPC_CHTTP2_NUM_SETTINGS];
+  uint32_t *target_settings;
+  uint8_t is_ack;
+  uint16_t id;
+  uint32_t value;
+  uint32_t incoming_settings[GRPC_CHTTP2_NUM_SETTINGS];
 } grpc_chttp2_settings_parser;
 
 typedef enum {
@@ -75,11 +75,11 @@
 
 typedef struct {
   const char *name;
-  gpr_uint32 default_value;
-  gpr_uint32 min_value;
-  gpr_uint32 max_value;
+  uint32_t default_value;
+  uint32_t min_value;
+  uint32_t max_value;
   grpc_chttp2_invalid_value_behavior invalid_value_behavior;
-  gpr_uint32 error_value;
+  uint32_t error_value;
 } grpc_chttp2_setting_parameters;
 
 /* HTTP/2 mandated connection setting parameters */
@@ -87,14 +87,14 @@
     grpc_chttp2_settings_parameters[GRPC_CHTTP2_NUM_SETTINGS];
 
 /* Create a settings frame by diffing old & new, and updating old to be new */
-gpr_slice grpc_chttp2_settings_create(gpr_uint32 *old, const gpr_uint32 *new,
-                                      gpr_uint32 force_mask, size_t count);
+gpr_slice grpc_chttp2_settings_create(uint32_t *old, const uint32_t *new,
+                                      uint32_t force_mask, size_t count);
 /* Create an ack settings frame */
 gpr_slice grpc_chttp2_settings_ack_create(void);
 
 grpc_chttp2_parse_error grpc_chttp2_settings_parser_begin_frame(
-    grpc_chttp2_settings_parser *parser, gpr_uint32 length, gpr_uint8 flags,
-    gpr_uint32 *settings);
+    grpc_chttp2_settings_parser *parser, uint32_t length, uint8_t flags,
+    uint32_t *settings);
 grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
diff --git a/src/core/transport/chttp2/frame_window_update.c b/src/core/transport/chttp2/frame_window_update.c
index 74ca29b..62d9bac 100644
--- a/src/core/transport/chttp2/frame_window_update.c
+++ b/src/core/transport/chttp2/frame_window_update.c
@@ -36,10 +36,10 @@
 
 #include <grpc/support/log.h>
 
-gpr_slice grpc_chttp2_window_update_create(gpr_uint32 id,
-                                           gpr_uint32 window_update) {
+gpr_slice grpc_chttp2_window_update_create(uint32_t id,
+                                           uint32_t window_update) {
   gpr_slice slice = gpr_slice_malloc(13);
-  gpr_uint8 *p = GPR_SLICE_START_PTR(slice);
+  uint8_t *p = GPR_SLICE_START_PTR(slice);
 
   GPR_ASSERT(window_update);
 
@@ -48,21 +48,20 @@
   *p++ = 4;
   *p++ = GRPC_CHTTP2_FRAME_WINDOW_UPDATE;
   *p++ = 0;
-  *p++ = (gpr_uint8)(id >> 24);
-  *p++ = (gpr_uint8)(id >> 16);
-  *p++ = (gpr_uint8)(id >> 8);
-  *p++ = (gpr_uint8)(id);
-  *p++ = (gpr_uint8)(window_update >> 24);
-  *p++ = (gpr_uint8)(window_update >> 16);
-  *p++ = (gpr_uint8)(window_update >> 8);
-  *p++ = (gpr_uint8)(window_update);
+  *p++ = (uint8_t)(id >> 24);
+  *p++ = (uint8_t)(id >> 16);
+  *p++ = (uint8_t)(id >> 8);
+  *p++ = (uint8_t)(id);
+  *p++ = (uint8_t)(window_update >> 24);
+  *p++ = (uint8_t)(window_update >> 16);
+  *p++ = (uint8_t)(window_update >> 8);
+  *p++ = (uint8_t)(window_update);
 
   return slice;
 }
 
 grpc_chttp2_parse_error grpc_chttp2_window_update_parser_begin_frame(
-    grpc_chttp2_window_update_parser *parser, gpr_uint32 length,
-    gpr_uint8 flags) {
+    grpc_chttp2_window_update_parser *parser, uint32_t length, uint8_t flags) {
   if (flags || length != 4) {
     gpr_log(GPR_ERROR, "invalid window update: length=%d, flags=%02x", length,
             flags);
@@ -77,19 +76,19 @@
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
-  gpr_uint8 *const beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *const end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *const beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *const end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
   grpc_chttp2_window_update_parser *p = parser;
 
   while (p->byte != 4 && cur != end) {
-    p->amount |= ((gpr_uint32)*cur) << (8 * (3 - p->byte));
+    p->amount |= ((uint32_t)*cur) << (8 * (3 - p->byte));
     cur++;
     p->byte++;
   }
 
   if (p->byte == 4) {
-    gpr_uint32 received_update = p->amount;
+    uint32_t received_update = p->amount;
     if (received_update == 0 || (received_update & 0x80000000u)) {
       gpr_log(GPR_ERROR, "invalid window update bytes: %d", p->amount);
       return GRPC_CHTTP2_CONNECTION_ERROR;
diff --git a/src/core/transport/chttp2/frame_window_update.h b/src/core/transport/chttp2/frame_window_update.h
index fc07409..89d835c 100644
--- a/src/core/transport/chttp2/frame_window_update.h
+++ b/src/core/transport/chttp2/frame_window_update.h
@@ -39,17 +39,15 @@
 #include "src/core/transport/chttp2/frame.h"
 
 typedef struct {
-  gpr_uint8 byte;
-  gpr_uint8 is_connection_update;
-  gpr_uint32 amount;
+  uint8_t byte;
+  uint8_t is_connection_update;
+  uint32_t amount;
 } grpc_chttp2_window_update_parser;
 
-gpr_slice grpc_chttp2_window_update_create(gpr_uint32 id,
-                                           gpr_uint32 window_delta);
+gpr_slice grpc_chttp2_window_update_create(uint32_t id, uint32_t window_delta);
 
 grpc_chttp2_parse_error grpc_chttp2_window_update_parser_begin_frame(
-    grpc_chttp2_window_update_parser *parser, gpr_uint32 length,
-    gpr_uint8 flags);
+    grpc_chttp2_window_update_parser *parser, uint32_t length, uint8_t flags);
 grpc_chttp2_parse_error grpc_chttp2_window_update_parser_parse(
     grpc_exec_ctx *exec_ctx, void *parser,
     grpc_chttp2_transport_parsing *transport_parsing,
diff --git a/src/core/transport/chttp2/hpack_encoder.c b/src/core/transport/chttp2/hpack_encoder.c
index 6c558bc..d6a352a 100644
--- a/src/core/transport/chttp2/hpack_encoder.c
+++ b/src/core/transport/chttp2/hpack_encoder.c
@@ -65,39 +65,38 @@
   /* index (in output) of the header for the current frame */
   size_t header_idx;
   /* have we seen a regular (non-colon-prefixed) header yet? */
-  gpr_uint8 seen_regular_header;
+  uint8_t seen_regular_header;
   /* output stream id */
-  gpr_uint32 stream_id;
+  uint32_t stream_id;
   gpr_slice_buffer *output;
 } framer_state;
 
 /* fills p (which is expected to be 9 bytes long) with a data frame header */
-static void fill_header(gpr_uint8 *p, gpr_uint8 type, gpr_uint32 id, size_t len,
-                        gpr_uint8 flags) {
+static void fill_header(uint8_t *p, uint8_t type, uint32_t id, size_t len,
+                        uint8_t flags) {
   GPR_ASSERT(len < 16777316);
-  *p++ = (gpr_uint8)(len >> 16);
-  *p++ = (gpr_uint8)(len >> 8);
-  *p++ = (gpr_uint8)(len);
+  *p++ = (uint8_t)(len >> 16);
+  *p++ = (uint8_t)(len >> 8);
+  *p++ = (uint8_t)(len);
   *p++ = type;
   *p++ = flags;
-  *p++ = (gpr_uint8)(id >> 24);
-  *p++ = (gpr_uint8)(id >> 16);
-  *p++ = (gpr_uint8)(id >> 8);
-  *p++ = (gpr_uint8)(id);
+  *p++ = (uint8_t)(id >> 24);
+  *p++ = (uint8_t)(id >> 16);
+  *p++ = (uint8_t)(id >> 8);
+  *p++ = (uint8_t)(id);
 }
 
 /* finish a frame - fill in the previously reserved header */
 static void finish_frame(framer_state *st, int is_header_boundary,
                          int is_last_in_stream) {
-  gpr_uint8 type = 0xff;
+  uint8_t type = 0xff;
   type = st->is_first_frame ? GRPC_CHTTP2_FRAME_HEADER
                             : GRPC_CHTTP2_FRAME_CONTINUATION;
   fill_header(
       GPR_SLICE_START_PTR(st->output->slices[st->header_idx]), type,
       st->stream_id, st->output->length - st->output_length_at_start_of_frame,
-      (gpr_uint8)(
-          (is_last_in_stream ? GRPC_CHTTP2_DATA_FLAG_END_STREAM : 0) |
-          (is_header_boundary ? GRPC_CHTTP2_DATA_FLAG_END_HEADERS : 0)));
+      (uint8_t)((is_last_in_stream ? GRPC_CHTTP2_DATA_FLAG_END_STREAM : 0) |
+                (is_header_boundary ? GRPC_CHTTP2_DATA_FLAG_END_HEADERS : 0)));
   st->is_first_frame = 0;
 }
 
@@ -122,7 +121,7 @@
 }
 
 /* increment a filter count, halve all counts if one element reaches max */
-static void inc_filter(gpr_uint8 idx, gpr_uint32 *sum, gpr_uint8 *elems) {
+static void inc_filter(uint8_t idx, uint32_t *sum, uint8_t *elems) {
   elems[idx]++;
   if (elems[idx] < 255) {
     (*sum)++;
@@ -152,7 +151,7 @@
   }
 }
 
-static gpr_uint8 *add_tiny_header_data(framer_state *st, size_t len) {
+static uint8_t *add_tiny_header_data(framer_state *st, size_t len) {
   ensure_space(st, len);
   return gpr_slice_buffer_tiny_add(st->output, len);
 }
@@ -163,17 +162,17 @@
   GPR_ASSERT(c->table_size >=
              c->table_elem_size[c->tail_remote_index % c->cap_table_elems]);
   GPR_ASSERT(c->table_elems > 0);
-  c->table_size = (gpr_uint16)(
-      c->table_size -
-      c->table_elem_size[c->tail_remote_index % c->cap_table_elems]);
+  c->table_size =
+      (uint16_t)(c->table_size -
+                 c->table_elem_size[c->tail_remote_index % c->cap_table_elems]);
   c->table_elems--;
 }
 
 /* add an element to the decoder table */
 static void add_elem(grpc_chttp2_hpack_compressor *c, grpc_mdelem *elem) {
-  gpr_uint32 key_hash = elem->key->hash;
-  gpr_uint32 elem_hash = GRPC_MDSTR_KV_HASH(key_hash, elem->value->hash);
-  gpr_uint32 new_index = c->tail_remote_index + c->table_elems + 1;
+  uint32_t key_hash = elem->key->hash;
+  uint32_t elem_hash = GRPC_MDSTR_KV_HASH(key_hash, elem->value->hash);
+  uint32_t new_index = c->tail_remote_index + c->table_elems + 1;
   size_t elem_size = 32 + GPR_SLICE_LENGTH(elem->key->slice) +
                      GPR_SLICE_LENGTH(elem->value->slice);
 
@@ -193,8 +192,8 @@
     evict_entry(c);
   }
   GPR_ASSERT(c->table_elems < c->max_table_size);
-  c->table_elem_size[new_index % c->cap_table_elems] = (gpr_uint16)elem_size;
-  c->table_size = (gpr_uint16)(c->table_size + elem_size);
+  c->table_elem_size[new_index % c->cap_table_elems] = (uint16_t)elem_size;
+  c->table_size = (uint16_t)(c->table_size + elem_size);
   c->table_elems++;
 
   /* Store this element into {entries,indices}_elem */
@@ -249,14 +248,14 @@
   }
 }
 
-static void emit_indexed(grpc_chttp2_hpack_compressor *c, gpr_uint32 elem_index,
+static void emit_indexed(grpc_chttp2_hpack_compressor *c, uint32_t elem_index,
                          framer_state *st) {
-  gpr_uint32 len = GRPC_CHTTP2_VARINT_LENGTH(elem_index, 1);
+  uint32_t len = GRPC_CHTTP2_VARINT_LENGTH(elem_index, 1);
   GRPC_CHTTP2_WRITE_VARINT(elem_index, 1, 0x80, add_tiny_header_data(st, len),
                            len);
 }
 
-static gpr_slice get_wire_value(grpc_mdelem *elem, gpr_uint8 *huffman_prefix) {
+static gpr_slice get_wire_value(grpc_mdelem *elem, uint8_t *huffman_prefix) {
   if (grpc_is_binary_header((const char *)GPR_SLICE_START_PTR(elem->key->slice),
                             GPR_SLICE_LENGTH(elem->key->slice))) {
     *huffman_prefix = 0x80;
@@ -268,49 +267,49 @@
 }
 
 static void emit_lithdr_incidx(grpc_chttp2_hpack_compressor *c,
-                               gpr_uint32 key_index, grpc_mdelem *elem,
+                               uint32_t key_index, grpc_mdelem *elem,
                                framer_state *st) {
-  gpr_uint32 len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 2);
-  gpr_uint8 huffman_prefix;
+  uint32_t len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 2);
+  uint8_t huffman_prefix;
   gpr_slice value_slice = get_wire_value(elem, &huffman_prefix);
   size_t len_val = GPR_SLICE_LENGTH(value_slice);
-  gpr_uint32 len_val_len;
-  GPR_ASSERT(len_val <= GPR_UINT32_MAX);
-  len_val_len = GRPC_CHTTP2_VARINT_LENGTH((gpr_uint32)len_val, 1);
+  uint32_t len_val_len;
+  GPR_ASSERT(len_val <= UINT32_MAX);
+  len_val_len = GRPC_CHTTP2_VARINT_LENGTH((uint32_t)len_val, 1);
   GRPC_CHTTP2_WRITE_VARINT(key_index, 2, 0x40,
                            add_tiny_header_data(st, len_pfx), len_pfx);
-  GRPC_CHTTP2_WRITE_VARINT((gpr_uint32)len_val, 1, 0x00,
+  GRPC_CHTTP2_WRITE_VARINT((uint32_t)len_val, 1, 0x00,
                            add_tiny_header_data(st, len_val_len), len_val_len);
   add_header_data(st, gpr_slice_ref(value_slice));
 }
 
 static void emit_lithdr_noidx(grpc_chttp2_hpack_compressor *c,
-                              gpr_uint32 key_index, grpc_mdelem *elem,
+                              uint32_t key_index, grpc_mdelem *elem,
                               framer_state *st) {
-  gpr_uint32 len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 4);
-  gpr_uint8 huffman_prefix;
+  uint32_t len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 4);
+  uint8_t huffman_prefix;
   gpr_slice value_slice = get_wire_value(elem, &huffman_prefix);
   size_t len_val = GPR_SLICE_LENGTH(value_slice);
-  gpr_uint32 len_val_len;
-  GPR_ASSERT(len_val <= GPR_UINT32_MAX);
-  len_val_len = GRPC_CHTTP2_VARINT_LENGTH((gpr_uint32)len_val, 1);
+  uint32_t len_val_len;
+  GPR_ASSERT(len_val <= UINT32_MAX);
+  len_val_len = GRPC_CHTTP2_VARINT_LENGTH((uint32_t)len_val, 1);
   GRPC_CHTTP2_WRITE_VARINT(key_index, 4, 0x00,
                            add_tiny_header_data(st, len_pfx), len_pfx);
-  GRPC_CHTTP2_WRITE_VARINT((gpr_uint32)len_val, 1, 0x00,
+  GRPC_CHTTP2_WRITE_VARINT((uint32_t)len_val, 1, 0x00,
                            add_tiny_header_data(st, len_val_len), len_val_len);
   add_header_data(st, gpr_slice_ref(value_slice));
 }
 
 static void emit_lithdr_incidx_v(grpc_chttp2_hpack_compressor *c,
                                  grpc_mdelem *elem, framer_state *st) {
-  gpr_uint32 len_key = (gpr_uint32)GPR_SLICE_LENGTH(elem->key->slice);
-  gpr_uint8 huffman_prefix;
+  uint32_t len_key = (uint32_t)GPR_SLICE_LENGTH(elem->key->slice);
+  uint8_t huffman_prefix;
   gpr_slice value_slice = get_wire_value(elem, &huffman_prefix);
-  gpr_uint32 len_val = (gpr_uint32)GPR_SLICE_LENGTH(value_slice);
-  gpr_uint32 len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
-  gpr_uint32 len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
-  GPR_ASSERT(len_key <= GPR_UINT32_MAX);
-  GPR_ASSERT(GPR_SLICE_LENGTH(value_slice) <= GPR_UINT32_MAX);
+  uint32_t len_val = (uint32_t)GPR_SLICE_LENGTH(value_slice);
+  uint32_t len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
+  uint32_t len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
+  GPR_ASSERT(len_key <= UINT32_MAX);
+  GPR_ASSERT(GPR_SLICE_LENGTH(value_slice) <= UINT32_MAX);
   *add_tiny_header_data(st, 1) = 0x40;
   GRPC_CHTTP2_WRITE_VARINT(len_key, 1, 0x00,
                            add_tiny_header_data(st, len_key_len), len_key_len);
@@ -322,14 +321,14 @@
 
 static void emit_lithdr_noidx_v(grpc_chttp2_hpack_compressor *c,
                                 grpc_mdelem *elem, framer_state *st) {
-  gpr_uint32 len_key = (gpr_uint32)GPR_SLICE_LENGTH(elem->key->slice);
-  gpr_uint8 huffman_prefix;
+  uint32_t len_key = (uint32_t)GPR_SLICE_LENGTH(elem->key->slice);
+  uint8_t huffman_prefix;
   gpr_slice value_slice = get_wire_value(elem, &huffman_prefix);
-  gpr_uint32 len_val = (gpr_uint32)GPR_SLICE_LENGTH(value_slice);
-  gpr_uint32 len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
-  gpr_uint32 len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
-  GPR_ASSERT(len_key <= GPR_UINT32_MAX);
-  GPR_ASSERT(GPR_SLICE_LENGTH(value_slice) <= GPR_UINT32_MAX);
+  uint32_t len_val = (uint32_t)GPR_SLICE_LENGTH(value_slice);
+  uint32_t len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
+  uint32_t len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
+  GPR_ASSERT(len_key <= UINT32_MAX);
+  GPR_ASSERT(GPR_SLICE_LENGTH(value_slice) <= UINT32_MAX);
   *add_tiny_header_data(st, 1) = 0x00;
   GRPC_CHTTP2_WRITE_VARINT(len_key, 1, 0x00,
                            add_tiny_header_data(st, len_key_len), len_key_len);
@@ -341,14 +340,13 @@
 
 static void emit_advertise_table_size_change(grpc_chttp2_hpack_compressor *c,
                                              framer_state *st) {
-  gpr_uint32 len = GRPC_CHTTP2_VARINT_LENGTH(c->max_table_size, 3);
+  uint32_t len = GRPC_CHTTP2_VARINT_LENGTH(c->max_table_size, 3);
   GRPC_CHTTP2_WRITE_VARINT(c->max_table_size, 3, 0x20,
                            add_tiny_header_data(st, len), len);
   c->advertise_table_size_change = 0;
 }
 
-static gpr_uint32 dynidx(grpc_chttp2_hpack_compressor *c,
-                         gpr_uint32 elem_index) {
+static uint32_t dynidx(grpc_chttp2_hpack_compressor *c, uint32_t elem_index) {
   return 1 + GRPC_CHTTP2_LAST_STATIC_ENTRY + c->tail_remote_index +
          c->table_elems - elem_index;
 }
@@ -356,10 +354,10 @@
 /* encode an mdelem */
 static void hpack_enc(grpc_chttp2_hpack_compressor *c, grpc_mdelem *elem,
                       framer_state *st) {
-  gpr_uint32 key_hash = elem->key->hash;
-  gpr_uint32 elem_hash = GRPC_MDSTR_KV_HASH(key_hash, elem->value->hash);
+  uint32_t key_hash = elem->key->hash;
+  uint32_t elem_hash = GRPC_MDSTR_KV_HASH(key_hash, elem->value->hash);
   size_t decoder_space_usage;
-  gpr_uint32 indices_key;
+  uint32_t indices_key;
   int should_add_elem;
 
   GPR_ASSERT(GPR_SLICE_LENGTH(elem->key->slice) > 0);
@@ -458,9 +456,7 @@
   GRPC_MDELEM_UNREF(mdelem);
 }
 
-static gpr_uint32 elems_for_bytes(gpr_uint32 bytes) {
-  return (bytes + 31) / 32;
-}
+static uint32_t elems_for_bytes(uint32_t bytes) { return (bytes + 31) / 32; }
 
 void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c) {
   memset(c, 0, sizeof(*c));
@@ -484,21 +480,21 @@
 }
 
 void grpc_chttp2_hpack_compressor_set_max_usable_size(
-    grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) {
+    grpc_chttp2_hpack_compressor *c, uint32_t max_table_size) {
   c->max_usable_size = max_table_size;
   grpc_chttp2_hpack_compressor_set_max_table_size(
       c, GPR_MIN(c->max_table_size, max_table_size));
 }
 
-static void rebuild_elems(grpc_chttp2_hpack_compressor *c, gpr_uint32 new_cap) {
-  gpr_uint16 *table_elem_size = gpr_malloc(sizeof(*table_elem_size) * new_cap);
-  gpr_uint32 i;
+static void rebuild_elems(grpc_chttp2_hpack_compressor *c, uint32_t new_cap) {
+  uint16_t *table_elem_size = gpr_malloc(sizeof(*table_elem_size) * new_cap);
+  uint32_t i;
 
   memset(table_elem_size, 0, sizeof(*table_elem_size) * new_cap);
   GPR_ASSERT(c->table_elems <= new_cap);
 
   for (i = 0; i < c->table_elems; i++) {
-    gpr_uint32 ofs = c->tail_remote_index + i + 1;
+    uint32_t ofs = c->tail_remote_index + i + 1;
     table_elem_size[ofs % new_cap] =
         c->table_elem_size[ofs % c->cap_table_elems];
   }
@@ -509,7 +505,7 @@
 }
 
 void grpc_chttp2_hpack_compressor_set_max_table_size(
-    grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size) {
+    grpc_chttp2_hpack_compressor *c, uint32_t max_table_size) {
   max_table_size = GPR_MIN(max_table_size, c->max_usable_size);
   if (max_table_size == c->max_table_size) {
     return;
@@ -522,7 +518,7 @@
   if (c->max_table_elems > c->cap_table_elems) {
     rebuild_elems(c, GPR_MAX(c->max_table_elems, 2 * c->cap_table_elems));
   } else if (c->max_table_elems < c->cap_table_elems / 3) {
-    gpr_uint32 new_cap = GPR_MAX(c->max_table_elems, 16);
+    uint32_t new_cap = GPR_MAX(c->max_table_elems, 16);
     if (new_cap != c->cap_table_elems) {
       rebuild_elems(c, new_cap);
     }
@@ -532,7 +528,7 @@
 }
 
 void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c,
-                               gpr_uint32 stream_id,
+                               uint32_t stream_id,
                                grpc_metadata_batch *metadata, int is_eof,
                                gpr_slice_buffer *outbuf) {
   framer_state st;
diff --git a/src/core/transport/chttp2/hpack_encoder.h b/src/core/transport/chttp2/hpack_encoder.h
index a360043..19b5cb7 100644
--- a/src/core/transport/chttp2/hpack_encoder.h
+++ b/src/core/transport/chttp2/hpack_encoder.h
@@ -49,46 +49,46 @@
 #define GRPC_CHTTP2_HPACKC_MAX_TABLE_SIZE (1024 * 1024)
 
 typedef struct {
-  gpr_uint32 filter_elems_sum;
-  gpr_uint32 max_table_size;
-  gpr_uint32 max_table_elems;
-  gpr_uint32 cap_table_elems;
+  uint32_t filter_elems_sum;
+  uint32_t max_table_size;
+  uint32_t max_table_elems;
+  uint32_t cap_table_elems;
   /** if non-zero, advertise to the decoder that we'll start using a table
       of this size */
-  gpr_uint8 advertise_table_size_change;
+  uint8_t advertise_table_size_change;
   /** maximum number of bytes we'll use for the decode table (to guard against
       peers ooming us by setting decode table size high) */
-  gpr_uint32 max_usable_size;
+  uint32_t max_usable_size;
   /* one before the lowest usable table index */
-  gpr_uint32 tail_remote_index;
-  gpr_uint32 table_size;
-  gpr_uint32 table_elems;
+  uint32_t tail_remote_index;
+  uint32_t table_size;
+  uint32_t table_elems;
 
   /* filter tables for elems: this tables provides an approximate
      popularity count for particular hashes, and are used to determine whether
      a new literal should be added to the compression table or not.
      They track a single integer that counts how often a particular value has
      been seen. When that count reaches max (255), all values are halved. */
-  gpr_uint8 filter_elems[GRPC_CHTTP2_HPACKC_NUM_FILTERS];
+  uint8_t filter_elems[GRPC_CHTTP2_HPACKC_NUM_FILTERS];
 
   /* entry tables for keys & elems: these tables track values that have been
      seen and *may* be in the decompressor table */
   grpc_mdstr *entries_keys[GRPC_CHTTP2_HPACKC_NUM_VALUES];
   grpc_mdelem *entries_elems[GRPC_CHTTP2_HPACKC_NUM_VALUES];
-  gpr_uint32 indices_keys[GRPC_CHTTP2_HPACKC_NUM_VALUES];
-  gpr_uint32 indices_elems[GRPC_CHTTP2_HPACKC_NUM_VALUES];
+  uint32_t indices_keys[GRPC_CHTTP2_HPACKC_NUM_VALUES];
+  uint32_t indices_elems[GRPC_CHTTP2_HPACKC_NUM_VALUES];
 
-  gpr_uint16 *table_elem_size;
+  uint16_t *table_elem_size;
 } grpc_chttp2_hpack_compressor;
 
 void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor *c);
 void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor *c);
 void grpc_chttp2_hpack_compressor_set_max_table_size(
-    grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size);
+    grpc_chttp2_hpack_compressor *c, uint32_t max_table_size);
 void grpc_chttp2_hpack_compressor_set_max_usable_size(
-    grpc_chttp2_hpack_compressor *c, gpr_uint32 max_table_size);
+    grpc_chttp2_hpack_compressor *c, uint32_t max_table_size);
 
-void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, gpr_uint32 id,
+void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, uint32_t id,
                                grpc_metadata_batch *metadata, int is_eof,
                                gpr_slice_buffer *outbuf);
 
diff --git a/src/core/transport/chttp2/hpack_parser.c b/src/core/transport/chttp2/hpack_parser.c
index fea0000..16395d6 100644
--- a/src/core/transport/chttp2/hpack_parser.c
+++ b/src/core/transport/chttp2/hpack_parser.c
@@ -70,63 +70,63 @@
    a set of indirect jumps, and so not waste stack space. */
 
 /* forward declarations for parsing states */
-static int parse_begin(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                       const gpr_uint8 *end);
-static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                       const gpr_uint8 *end);
-static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                            const gpr_uint8 *end);
+static int parse_begin(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                       const uint8_t *end);
+static int parse_error(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                       const uint8_t *end);
+static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                            const uint8_t *end);
 
-static int parse_string_prefix(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end);
-static int parse_key_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                            const gpr_uint8 *end);
+static int parse_string_prefix(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end);
+static int parse_key_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                            const uint8_t *end);
 static int parse_value_string_with_indexed_key(grpc_chttp2_hpack_parser *p,
-                                               const gpr_uint8 *cur,
-                                               const gpr_uint8 *end);
+                                               const uint8_t *cur,
+                                               const uint8_t *end);
 static int parse_value_string_with_literal_key(grpc_chttp2_hpack_parser *p,
-                                               const gpr_uint8 *cur,
-                                               const gpr_uint8 *end);
+                                               const uint8_t *cur,
+                                               const uint8_t *end);
 
-static int parse_value0(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end);
-static int parse_value1(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end);
-static int parse_value2(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end);
-static int parse_value3(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end);
-static int parse_value4(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end);
-static int parse_value5up(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                          const gpr_uint8 *end);
+static int parse_value0(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end);
+static int parse_value1(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end);
+static int parse_value2(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end);
+static int parse_value3(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end);
+static int parse_value4(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end);
+static int parse_value5up(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                          const uint8_t *end);
 
-static int parse_indexed_field(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end);
+static int parse_indexed_field(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end);
 static int parse_indexed_field_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
-static int parse_lithdr_incidx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
+static int parse_lithdr_incidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end);
 static int parse_lithdr_incidx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
 static int parse_lithdr_incidx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
-static int parse_lithdr_notidx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
+static int parse_lithdr_notidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end);
 static int parse_lithdr_notidx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
 static int parse_lithdr_notidx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
-static int parse_lithdr_nvridx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
+static int parse_lithdr_nvridx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end);
 static int parse_lithdr_nvridx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
 static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end);
-static int parse_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                              const gpr_uint8 *end);
-static int parse_max_tbl_size_x(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end);
+                                 const uint8_t *cur, const uint8_t *end);
+static int parse_max_tbl_size(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                              const uint8_t *end);
+static int parse_max_tbl_size_x(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end);
 
 /* we translate the first byte of a hpack field into one of these decoding
    cases, then use a lookup table to jump directly to the appropriate parser.
@@ -162,7 +162,7 @@
 
 /* indexes the first byte to a parse state function - generated by
    gen_hpack_tables.c */
-static const gpr_uint8 first_byte_lut[256] = {
+static const uint8_t first_byte_lut[256] = {
     LITHDR_NOTIDX_V, LITHDR_NOTIDX, LITHDR_NOTIDX, LITHDR_NOTIDX,
     LITHDR_NOTIDX,   LITHDR_NOTIDX, LITHDR_NOTIDX, LITHDR_NOTIDX,
     LITHDR_NOTIDX,   LITHDR_NOTIDX, LITHDR_NOTIDX, LITHDR_NOTIDX,
@@ -234,7 +234,7 @@
    considered returns the next state.
 
    generated by gen_hpack_tables.c */
-static const gpr_uint8 next_tbl[256] = {
+static const uint8_t next_tbl[256] = {
     0,  1,  2,  3,  4,  1,  2, 5,  6,  1, 7,  8,  1,  3,  3,  9,  10, 11, 1,  1,
     1,  12, 1,  2,  13, 1,  1, 1,  1,  1, 1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
     14, 1,  15, 16, 1,  17, 1, 15, 2,  7, 3,  18, 19, 1,  1,  1,  1,  20, 1,  1,
@@ -252,7 +252,7 @@
 
 /* next state, based upon current state and the current nibble: see above.
    generated by gen_hpack_tables.c */
-static const gpr_int16 next_sub_tbl[48 * 16] = {
+static const int16_t next_sub_tbl[48 * 16] = {
     1,   204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
     218, 2,   6,   10,  13,  14,  15,  16,  17,  2,   6,   10,  13,  14,  15,
     16,  17,  3,   7,   11,  24,  3,   7,   11,  24,  3,   7,   11,  24,  3,
@@ -311,7 +311,7 @@
    emitted, or -1 for no byte, or 256 for end of stream
 
    generated by gen_hpack_tables.c */
-static const gpr_uint16 emit_tbl[256] = {
+static const uint16_t emit_tbl[256] = {
     0,   1,   2,   3,   4,   5,   6,   7,   0,   8,   9,   10,  11,  12,  13,
     14,  15,  16,  17,  18,  19,  20,  21,  22,  0,   23,  24,  25,  26,  27,
     28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,
@@ -333,7 +333,7 @@
 };
 
 /* generated by gen_hpack_tables.c */
-static const gpr_int16 emit_sub_tbl[249 * 16] = {
+static const int16_t emit_sub_tbl[249 * 16] = {
     -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
     -1,  48,  48,  48,  48,  48,  48,  48,  48,  49,  49,  49,  49,  49,  49,
     49,  49,  48,  48,  48,  48,  49,  49,  49,  49,  50,  50,  50,  50,  97,
@@ -602,7 +602,7 @@
     13,  22,  22,  22,  22,  256, 256, 256, 256,
 };
 
-static const gpr_uint8 inverse_base64[256] = {
+static const uint8_t inverse_base64[256] = {
     255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
     255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62,  255,
@@ -637,22 +637,22 @@
 
 static grpc_mdstr *take_string(grpc_chttp2_hpack_parser *p,
                                grpc_chttp2_hpack_parser_string *str) {
-  grpc_mdstr *s = grpc_mdstr_from_buffer((gpr_uint8 *)str->str, str->length);
+  grpc_mdstr *s = grpc_mdstr_from_buffer((uint8_t *)str->str, str->length);
   str->length = 0;
   return s;
 }
 
 /* jump to the next state */
-static int parse_next(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                      const gpr_uint8 *end) {
+static int parse_next(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                      const uint8_t *end) {
   p->state = *p->next_state++;
   return p->state(p, cur, end);
 }
 
 /* begin parsing a header: all functionality is encoded into lookup tables
    above */
-static int parse_begin(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                       const gpr_uint8 *end) {
+static int parse_begin(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                       const uint8_t *end) {
   if (cur == end) {
     p->state = parse_begin;
     return 1;
@@ -662,8 +662,8 @@
 }
 
 /* stream dependency and prioritization data: we just skip it */
-static int parse_stream_weight(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_stream_weight(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   if (cur == end) {
     p->state = parse_stream_weight;
     return 1;
@@ -672,8 +672,8 @@
   return p->after_prioritization(p, cur + 1, end);
 }
 
-static int parse_stream_dep3(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                             const gpr_uint8 *end) {
+static int parse_stream_dep3(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                             const uint8_t *end) {
   if (cur == end) {
     p->state = parse_stream_dep3;
     return 1;
@@ -682,8 +682,8 @@
   return parse_stream_weight(p, cur + 1, end);
 }
 
-static int parse_stream_dep2(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                             const gpr_uint8 *end) {
+static int parse_stream_dep2(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                             const uint8_t *end) {
   if (cur == end) {
     p->state = parse_stream_dep2;
     return 1;
@@ -692,8 +692,8 @@
   return parse_stream_dep3(p, cur + 1, end);
 }
 
-static int parse_stream_dep1(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                             const gpr_uint8 *end) {
+static int parse_stream_dep1(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                             const uint8_t *end) {
   if (cur == end) {
     p->state = parse_stream_dep1;
     return 1;
@@ -702,8 +702,8 @@
   return parse_stream_dep2(p, cur + 1, end);
 }
 
-static int parse_stream_dep0(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                             const gpr_uint8 *end) {
+static int parse_stream_dep0(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                             const uint8_t *end) {
   if (cur == end) {
     p->state = parse_stream_dep0;
     return 1;
@@ -714,8 +714,8 @@
 
 /* emit an indexed field; for now just logs it to console; jumps to
    begin the next field on completion */
-static int finish_indexed_field(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int finish_indexed_field(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end) {
   grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index);
   if (md == NULL) {
     gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index);
@@ -726,8 +726,8 @@
 }
 
 /* parse an indexed field with index < 127 */
-static int parse_indexed_field(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_indexed_field(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   p->dynamic_table_update_allowed = 0;
   p->index = (*cur) & 0x7f;
   return finish_indexed_field(p, cur + 1, end);
@@ -735,7 +735,7 @@
 
 /* parse an indexed field with index >= 127 */
 static int parse_indexed_field_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       finish_indexed_field};
   p->dynamic_table_update_allowed = 0;
@@ -747,8 +747,8 @@
 
 /* finish a literal header with incremental indexing: just log, and jump to '
    begin */
-static int finish_lithdr_incidx(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int finish_lithdr_incidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end) {
   grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index);
   GPR_ASSERT(md != NULL); /* handled in string parsing */
   return on_hdr(p, grpc_mdelem_from_metadata_strings(GRPC_MDSTR_REF(md->key),
@@ -759,7 +759,7 @@
 
 /* finish a literal header with incremental indexing with no index */
 static int finish_lithdr_incidx_v(grpc_chttp2_hpack_parser *p,
-                                  const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                  const uint8_t *cur, const uint8_t *end) {
   return on_hdr(p, grpc_mdelem_from_metadata_strings(take_string(p, &p->key),
                                                      take_string(p, &p->value)),
                 1) &&
@@ -767,8 +767,8 @@
 }
 
 /* parse a literal header with incremental indexing; index < 63 */
-static int parse_lithdr_incidx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_lithdr_incidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_value_string_with_indexed_key, finish_lithdr_incidx};
   p->dynamic_table_update_allowed = 0;
@@ -779,7 +779,7 @@
 
 /* parse a literal header with incremental indexing; index >= 63 */
 static int parse_lithdr_incidx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_string_prefix, parse_value_string_with_indexed_key,
       finish_lithdr_incidx};
@@ -792,7 +792,7 @@
 
 /* parse a literal header with incremental indexing; index = 0 */
 static int parse_lithdr_incidx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_key_string, parse_string_prefix,
       parse_value_string_with_literal_key, finish_lithdr_incidx_v};
@@ -802,8 +802,8 @@
 }
 
 /* finish a literal header without incremental indexing */
-static int finish_lithdr_notidx(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int finish_lithdr_notidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end) {
   grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index);
   GPR_ASSERT(md != NULL); /* handled in string parsing */
   return on_hdr(p, grpc_mdelem_from_metadata_strings(GRPC_MDSTR_REF(md->key),
@@ -814,7 +814,7 @@
 
 /* finish a literal header without incremental indexing with index = 0 */
 static int finish_lithdr_notidx_v(grpc_chttp2_hpack_parser *p,
-                                  const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                  const uint8_t *cur, const uint8_t *end) {
   return on_hdr(p, grpc_mdelem_from_metadata_strings(take_string(p, &p->key),
                                                      take_string(p, &p->value)),
                 0) &&
@@ -822,8 +822,8 @@
 }
 
 /* parse a literal header without incremental indexing; index < 15 */
-static int parse_lithdr_notidx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_lithdr_notidx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_value_string_with_indexed_key, finish_lithdr_notidx};
   p->dynamic_table_update_allowed = 0;
@@ -834,7 +834,7 @@
 
 /* parse a literal header without incremental indexing; index >= 15 */
 static int parse_lithdr_notidx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_string_prefix, parse_value_string_with_indexed_key,
       finish_lithdr_notidx};
@@ -847,7 +847,7 @@
 
 /* parse a literal header without incremental indexing; index == 0 */
 static int parse_lithdr_notidx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_key_string, parse_string_prefix,
       parse_value_string_with_literal_key, finish_lithdr_notidx_v};
@@ -857,8 +857,8 @@
 }
 
 /* finish a literal header that is never indexed */
-static int finish_lithdr_nvridx(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int finish_lithdr_nvridx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end) {
   grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index);
   GPR_ASSERT(md != NULL); /* handled in string parsing */
   return on_hdr(p, grpc_mdelem_from_metadata_strings(GRPC_MDSTR_REF(md->key),
@@ -869,7 +869,7 @@
 
 /* finish a literal header that is never indexed with an extra value */
 static int finish_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p,
-                                  const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                  const uint8_t *cur, const uint8_t *end) {
   return on_hdr(p, grpc_mdelem_from_metadata_strings(take_string(p, &p->key),
                                                      take_string(p, &p->value)),
                 0) &&
@@ -877,8 +877,8 @@
 }
 
 /* parse a literal header that is never indexed; index < 15 */
-static int parse_lithdr_nvridx(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_lithdr_nvridx(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_value_string_with_indexed_key, finish_lithdr_nvridx};
   p->dynamic_table_update_allowed = 0;
@@ -889,7 +889,7 @@
 
 /* parse a literal header that is never indexed; index >= 15 */
 static int parse_lithdr_nvridx_x(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_string_prefix, parse_value_string_with_indexed_key,
       finish_lithdr_nvridx};
@@ -902,7 +902,7 @@
 
 /* parse a literal header that is never indexed; index == 0 */
 static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p,
-                                 const gpr_uint8 *cur, const gpr_uint8 *end) {
+                                 const uint8_t *cur, const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       parse_key_string, parse_string_prefix,
       parse_value_string_with_literal_key, finish_lithdr_nvridx_v};
@@ -912,16 +912,16 @@
 }
 
 /* finish parsing a max table size change */
-static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index);
   return grpc_chttp2_hptbl_set_current_table_size(&p->table, p->index) &&
          parse_begin(p, cur, end);
 }
 
 /* parse a max table size change, max size < 15 */
-static int parse_max_tbl_size(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                              const gpr_uint8 *end) {
+static int parse_max_tbl_size(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                              const uint8_t *end) {
   if (p->dynamic_table_update_allowed == 0) {
     return 0;
   }
@@ -931,8 +931,8 @@
 }
 
 /* parse a max table size change, max size >= 15 */
-static int parse_max_tbl_size_x(grpc_chttp2_hpack_parser *p,
-                                const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_max_tbl_size_x(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                                const uint8_t *end) {
   static const grpc_chttp2_hpack_parser_state and_then[] = {
       finish_max_tbl_size};
   if (p->dynamic_table_update_allowed == 0) {
@@ -946,14 +946,14 @@
 }
 
 /* a parse error: jam the parse state into parse_error, and return error */
-static int parse_error(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                       const gpr_uint8 *end) {
+static int parse_error(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                       const uint8_t *end) {
   p->state = parse_error;
   return 0;
 }
 
-static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                            const gpr_uint8 *end) {
+static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                            const uint8_t *end) {
   GPR_ASSERT(cur != end);
   gpr_log(GPR_DEBUG, "Illegal hpack op code %d", *cur);
   return parse_error(p, cur, end);
@@ -961,8 +961,8 @@
 
 /* parse the 1st byte of a varint into p->parsing.value
    no overflow is possible */
-static int parse_value0(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
+static int parse_value0(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
   if (cur == end) {
     p->state = parse_value0;
     return 1;
@@ -979,14 +979,14 @@
 
 /* parse the 2nd byte of a varint into p->parsing.value
    no overflow is possible */
-static int parse_value1(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
+static int parse_value1(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
   if (cur == end) {
     p->state = parse_value1;
     return 1;
   }
 
-  *p->parsing.value += (((gpr_uint32)*cur) & 0x7f) << 7;
+  *p->parsing.value += (((uint32_t)*cur) & 0x7f) << 7;
 
   if ((*cur) & 0x80) {
     return parse_value2(p, cur + 1, end);
@@ -997,14 +997,14 @@
 
 /* parse the 3rd byte of a varint into p->parsing.value
    no overflow is possible */
-static int parse_value2(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
+static int parse_value2(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
   if (cur == end) {
     p->state = parse_value2;
     return 1;
   }
 
-  *p->parsing.value += (((gpr_uint32)*cur) & 0x7f) << 14;
+  *p->parsing.value += (((uint32_t)*cur) & 0x7f) << 14;
 
   if ((*cur) & 0x80) {
     return parse_value3(p, cur + 1, end);
@@ -1015,14 +1015,14 @@
 
 /* parse the 4th byte of a varint into p->parsing.value
    no overflow is possible */
-static int parse_value3(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
+static int parse_value3(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
   if (cur == end) {
     p->state = parse_value3;
     return 1;
   }
 
-  *p->parsing.value += (((gpr_uint32)*cur) & 0x7f) << 21;
+  *p->parsing.value += (((uint32_t)*cur) & 0x7f) << 21;
 
   if ((*cur) & 0x80) {
     return parse_value4(p, cur + 1, end);
@@ -1033,11 +1033,11 @@
 
 /* parse the 5th byte of a varint into p->parsing.value
    depending on the byte, we may overflow, and care must be taken */
-static int parse_value4(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
-  gpr_uint8 c;
-  gpr_uint32 cur_value;
-  gpr_uint32 add_value;
+static int parse_value4(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
+  uint8_t c;
+  uint32_t cur_value;
+  uint32_t add_value;
 
   if (cur == end) {
     p->state = parse_value4;
@@ -1050,7 +1050,7 @@
   }
 
   cur_value = *p->parsing.value;
-  add_value = ((gpr_uint32)c) << 28;
+  add_value = ((uint32_t)c) << 28;
   if (add_value > 0xffffffffu - cur_value) {
     goto error;
   }
@@ -1074,8 +1074,8 @@
 /* parse any trailing bytes in a varint: it's possible to append an arbitrary
    number of 0x80's and not affect the value - a zero will terminate - and
    anything else will overflow */
-static int parse_value5up(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                          const gpr_uint8 *end) {
+static int parse_value5up(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                          const uint8_t *end) {
   while (cur != end && *cur == 0x80) {
     ++cur;
   }
@@ -1097,8 +1097,8 @@
 }
 
 /* parse a string prefix */
-static int parse_string_prefix(grpc_chttp2_hpack_parser *p,
-                               const gpr_uint8 *cur, const gpr_uint8 *end) {
+static int parse_string_prefix(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                               const uint8_t *end) {
   if (cur == end) {
     p->state = parse_string_prefix;
     return 1;
@@ -1116,22 +1116,22 @@
 
 /* append some bytes to a string */
 static void append_bytes(grpc_chttp2_hpack_parser_string *str,
-                         const gpr_uint8 *data, size_t length) {
+                         const uint8_t *data, size_t length) {
   if (length + str->length > str->capacity) {
-    GPR_ASSERT(str->length + length <= GPR_UINT32_MAX);
-    str->capacity = (gpr_uint32)(str->length + length);
+    GPR_ASSERT(str->length + length <= UINT32_MAX);
+    str->capacity = (uint32_t)(str->length + length);
     str->str = gpr_realloc(str->str, str->capacity);
   }
   memcpy(str->str + str->length, data, length);
-  GPR_ASSERT(length <= GPR_UINT32_MAX - str->length);
-  str->length += (gpr_uint32)length;
+  GPR_ASSERT(length <= UINT32_MAX - str->length);
+  str->length += (uint32_t)length;
 }
 
-static int append_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                         const gpr_uint8 *end) {
+static int append_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                         const uint8_t *end) {
   grpc_chttp2_hpack_parser_string *str = p->parsing.str;
-  gpr_uint32 bits;
-  gpr_uint8 decoded[3];
+  uint32_t bits;
+  uint8_t decoded[3];
   switch ((binary_state)p->binary) {
     case NOT_BINARY:
       append_bytes(str, cur, (size_t)(end - cur));
@@ -1192,9 +1192,9 @@
         goto b64_byte3;
       p->base64_buffer |= bits;
       bits = p->base64_buffer;
-      decoded[0] = (gpr_uint8)(bits >> 16);
-      decoded[1] = (gpr_uint8)(bits >> 8);
-      decoded[2] = (gpr_uint8)(bits);
+      decoded[0] = (uint8_t)(bits >> 16);
+      decoded[1] = (uint8_t)(bits >> 8);
+      decoded[2] = (uint8_t)(bits);
       append_bytes(str, decoded, 3);
       goto b64_byte0;
   }
@@ -1203,9 +1203,9 @@
 
 /* append a null terminator to a string */
 static int finish_str(grpc_chttp2_hpack_parser *p) {
-  gpr_uint8 terminator = 0;
-  gpr_uint8 decoded[2];
-  gpr_uint32 bits;
+  uint8_t terminator = 0;
+  uint8_t decoded[2];
+  uint32_t bits;
   grpc_chttp2_hpack_parser_string *str = p->parsing.str;
   switch ((binary_state)p->binary) {
     case NOT_BINARY:
@@ -1222,7 +1222,7 @@
                 bits & 0xffff);
         return 0;
       }
-      decoded[0] = (gpr_uint8)(bits >> 16);
+      decoded[0] = (uint8_t)(bits >> 16);
       append_bytes(str, decoded, 1);
       break;
     case B64_BYTE3:
@@ -1232,8 +1232,8 @@
                 bits & 0xff);
         return 0;
       }
-      decoded[0] = (gpr_uint8)(bits >> 16);
-      decoded[1] = (gpr_uint8)(bits >> 8);
+      decoded[0] = (uint8_t)(bits >> 16);
+      decoded[1] = (uint8_t)(bits >> 8);
       append_bytes(str, decoded, 2);
       break;
   }
@@ -1243,12 +1243,12 @@
 }
 
 /* decode a nibble from a huffman encoded stream */
-static int huff_nibble(grpc_chttp2_hpack_parser *p, gpr_uint8 nibble) {
-  gpr_int16 emit = emit_sub_tbl[16 * emit_tbl[p->huff_state] + nibble];
-  gpr_int16 next = next_sub_tbl[16 * next_tbl[p->huff_state] + nibble];
+static int huff_nibble(grpc_chttp2_hpack_parser *p, uint8_t nibble) {
+  int16_t emit = emit_sub_tbl[16 * emit_tbl[p->huff_state] + nibble];
+  int16_t next = next_sub_tbl[16 * next_tbl[p->huff_state] + nibble];
   if (emit != -1) {
     if (emit >= 0 && emit < 256) {
-      gpr_uint8 c = (gpr_uint8)emit;
+      uint8_t c = (uint8_t)emit;
       if (!append_string(p, &c, (&c) + 1)) return 0;
     } else {
       assert(emit == 256);
@@ -1259,8 +1259,8 @@
 }
 
 /* decode full bytes from a huffman encoded stream */
-static int add_huff_bytes(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                          const gpr_uint8 *end) {
+static int add_huff_bytes(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                          const uint8_t *end) {
   for (; cur != end; ++cur) {
     if (!huff_nibble(p, *cur >> 4) || !huff_nibble(p, *cur & 0xf)) return 0;
   }
@@ -1269,8 +1269,8 @@
 
 /* decode some string bytes based on the current decoding mode
    (huffman or not) */
-static int add_str_bytes(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                         const gpr_uint8 *end) {
+static int add_str_bytes(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                         const uint8_t *end) {
   if (p->huff) {
     return add_huff_bytes(p, cur, end);
   } else {
@@ -1279,8 +1279,8 @@
 }
 
 /* parse a string - tries to do large chunks at a time */
-static int parse_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                        const gpr_uint8 *end) {
+static int parse_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                        const uint8_t *end) {
   size_t remaining = p->strlen - p->strgot;
   size_t given = (size_t)(end - cur);
   if (remaining <= given) {
@@ -1288,16 +1288,16 @@
            parse_next(p, cur + remaining, end);
   } else {
     if (!add_str_bytes(p, cur, cur + given)) return 0;
-    GPR_ASSERT(given <= GPR_UINT32_MAX - p->strgot);
-    p->strgot += (gpr_uint32)given;
+    GPR_ASSERT(given <= UINT32_MAX - p->strgot);
+    p->strgot += (uint32_t)given;
     p->state = parse_string;
     return 1;
   }
 }
 
 /* begin parsing a string - performs setup, calls parse_string */
-static int begin_parse_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                              const gpr_uint8 *end, gpr_uint8 binary,
+static int begin_parse_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                              const uint8_t *end, uint8_t binary,
                               grpc_chttp2_hpack_parser_string *str) {
   p->strgot = 0;
   str->length = 0;
@@ -1308,8 +1308,8 @@
 }
 
 /* parse the key string */
-static int parse_key_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                            const gpr_uint8 *end) {
+static int parse_key_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                            const uint8_t *end) {
   return begin_parse_string(p, cur, end, NOT_BINARY, &p->key);
 }
 
@@ -1335,8 +1335,8 @@
 }
 
 /* parse the value string */
-static int parse_value_string(grpc_chttp2_hpack_parser *p, const gpr_uint8 *cur,
-                              const gpr_uint8 *end, is_binary_header type) {
+static int parse_value_string(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
+                              const uint8_t *end, is_binary_header type) {
   switch (type) {
     case BINARY_HEADER:
       return begin_parse_string(p, cur, end, B64_BYTE0, &p->value);
@@ -1350,14 +1350,14 @@
 }
 
 static int parse_value_string_with_indexed_key(grpc_chttp2_hpack_parser *p,
-                                               const gpr_uint8 *cur,
-                                               const gpr_uint8 *end) {
+                                               const uint8_t *cur,
+                                               const uint8_t *end) {
   return parse_value_string(p, cur, end, is_binary_indexed_header(p));
 }
 
 static int parse_value_string_with_literal_key(grpc_chttp2_hpack_parser *p,
-                                               const gpr_uint8 *cur,
-                                               const gpr_uint8 *end) {
+                                               const uint8_t *cur,
+                                               const uint8_t *end) {
   return parse_value_string(p, cur, end, is_binary_literal_header(p));
 }
 
@@ -1393,7 +1393,7 @@
 }
 
 int grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser *p,
-                                   const gpr_uint8 *beg, const gpr_uint8 *end) {
+                                   const uint8_t *beg, const uint8_t *end) {
   /* TODO(ctiller): limit the distance of end from beg, and perform multiple
      steps in the event of a large chunk of data to limit
      stack space usage when no tail call optimization is
diff --git a/src/core/transport/chttp2/hpack_parser.h b/src/core/transport/chttp2/hpack_parser.h
index bd36357..1ad0c64 100644
--- a/src/core/transport/chttp2/hpack_parser.h
+++ b/src/core/transport/chttp2/hpack_parser.h
@@ -45,13 +45,13 @@
 typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
 
 typedef int (*grpc_chttp2_hpack_parser_state)(grpc_chttp2_hpack_parser *p,
-                                              const gpr_uint8 *beg,
-                                              const gpr_uint8 *end);
+                                              const uint8_t *beg,
+                                              const uint8_t *end);
 
 typedef struct {
   char *str;
-  gpr_uint32 length;
-  gpr_uint32 capacity;
+  uint32_t length;
+  uint32_t capacity;
 } grpc_chttp2_hpack_parser_string;
 
 struct grpc_chttp2_hpack_parser {
@@ -67,31 +67,31 @@
   grpc_chttp2_hpack_parser_state after_prioritization;
   /* the value we're currently parsing */
   union {
-    gpr_uint32 *value;
+    uint32_t *value;
     grpc_chttp2_hpack_parser_string *str;
   } parsing;
   /* string parameters for each chunk */
   grpc_chttp2_hpack_parser_string key;
   grpc_chttp2_hpack_parser_string value;
   /* parsed index */
-  gpr_uint32 index;
+  uint32_t index;
   /* length of source bytes for the currently parsing string */
-  gpr_uint32 strlen;
+  uint32_t strlen;
   /* number of source bytes read for the currently parsing string */
-  gpr_uint32 strgot;
+  uint32_t strgot;
   /* huffman decoding state */
-  gpr_int16 huff_state;
+  int16_t huff_state;
   /* is the string being decoded binary? */
-  gpr_uint8 binary;
+  uint8_t binary;
   /* is the current string huffman encoded? */
-  gpr_uint8 huff;
+  uint8_t huff;
   /* is a dynamic table update allowed? */
-  gpr_uint8 dynamic_table_update_allowed;
+  uint8_t dynamic_table_update_allowed;
   /* set by higher layers, used by grpc_chttp2_header_parser_parse to signal
      it should append a metadata boundary at the end of frame */
-  gpr_uint8 is_boundary;
-  gpr_uint8 is_eof;
-  gpr_uint32 base64_buffer;
+  uint8_t is_boundary;
+  uint8_t is_eof;
+  uint32_t base64_buffer;
 
   /* hpack table */
   grpc_chttp2_hptbl table;
@@ -104,7 +104,7 @@
 
 /* returns 1 on success, 0 on error */
 int grpc_chttp2_hpack_parser_parse(grpc_chttp2_hpack_parser *p,
-                                   const gpr_uint8 *beg, const gpr_uint8 *end);
+                                   const uint8_t *beg, const uint8_t *end);
 
 /* wraps grpc_chttp2_hpack_parser_parse to provide a frame level parser for
    the transport */
diff --git a/src/core/transport/chttp2/hpack_table.c b/src/core/transport/chttp2/hpack_table.c
index 59060da..f1ce3b8 100644
--- a/src/core/transport/chttp2/hpack_table.c
+++ b/src/core/transport/chttp2/hpack_table.c
@@ -171,7 +171,7 @@
     {"www-authenticate", ""},
 };
 
-static gpr_uint32 entries_for_bytes(gpr_uint32 bytes) {
+static uint32_t entries_for_bytes(uint32_t bytes) {
   return (bytes + GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD - 1) /
          GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
 }
@@ -204,7 +204,7 @@
 }
 
 grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl,
-                                      gpr_uint32 tbl_index) {
+                                      uint32_t tbl_index) {
   /* Static table comes first, just return an entry from it */
   if (tbl_index <= GRPC_CHTTP2_LAST_STATIC_ENTRY) {
     return tbl->static_ents[tbl_index - 1];
@@ -212,7 +212,7 @@
   /* Otherwise, find the value in the list of valid entries */
   tbl_index -= (GRPC_CHTTP2_LAST_STATIC_ENTRY + 1);
   if (tbl_index < tbl->num_ents) {
-    gpr_uint32 offset =
+    uint32_t offset =
         (tbl->num_ents - 1u - tbl_index + tbl->first_ent) % tbl->cap_entries;
     return tbl->ents[offset];
   }
@@ -227,15 +227,15 @@
                       GPR_SLICE_LENGTH(first_ent->value->slice) +
                       GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
   GPR_ASSERT(elem_bytes <= tbl->mem_used);
-  tbl->mem_used -= (gpr_uint32)elem_bytes;
+  tbl->mem_used -= (uint32_t)elem_bytes;
   tbl->first_ent = ((tbl->first_ent + 1) % tbl->cap_entries);
   tbl->num_ents--;
   GRPC_MDELEM_UNREF(first_ent);
 }
 
-static void rebuild_ents(grpc_chttp2_hptbl *tbl, gpr_uint32 new_cap) {
+static void rebuild_ents(grpc_chttp2_hptbl *tbl, uint32_t new_cap) {
   grpc_mdelem **ents = gpr_malloc(sizeof(*ents) * new_cap);
-  gpr_uint32 i;
+  uint32_t i;
 
   for (i = 0; i < tbl->num_ents; i++) {
     ents[i] = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries];
@@ -247,7 +247,7 @@
 }
 
 void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl,
-                                     gpr_uint32 max_bytes) {
+                                     uint32_t max_bytes) {
   if (tbl->max_bytes == max_bytes) {
     return;
   }
@@ -259,7 +259,7 @@
 }
 
 int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
-                                             gpr_uint32 bytes) {
+                                             uint32_t bytes) {
   if (tbl->current_table_bytes == bytes) {
     return 1;
   }
@@ -278,7 +278,7 @@
   if (tbl->max_entries > tbl->cap_entries) {
     rebuild_ents(tbl, GPR_MAX(tbl->max_entries, 2 * tbl->cap_entries));
   } else if (tbl->max_entries < tbl->cap_entries / 3) {
-    gpr_uint32 new_cap = GPR_MAX(tbl->max_entries, 16u);
+    uint32_t new_cap = GPR_MAX(tbl->max_entries, 16u);
     if (new_cap != tbl->cap_entries) {
       rebuild_ents(tbl, new_cap);
     }
@@ -328,14 +328,14 @@
 
   /* update accounting values */
   tbl->num_ents++;
-  tbl->mem_used += (gpr_uint32)elem_bytes;
+  tbl->mem_used += (uint32_t)elem_bytes;
   return 1;
 }
 
 grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
     const grpc_chttp2_hptbl *tbl, grpc_mdelem *md) {
   grpc_chttp2_hptbl_find_result r = {0, 0};
-  gpr_uint32 i;
+  uint32_t i;
 
   /* See if the string is in the static table */
   for (i = 0; i < GRPC_CHTTP2_LAST_STATIC_ENTRY; i++) {
@@ -348,8 +348,8 @@
 
   /* Scan the dynamic table */
   for (i = 0; i < tbl->num_ents; i++) {
-    gpr_uint32 idx =
-        (gpr_uint32)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY);
+    uint32_t idx =
+        (uint32_t)(tbl->num_ents - i + GRPC_CHTTP2_LAST_STATIC_ENTRY);
     grpc_mdelem *ent = tbl->ents[(tbl->first_ent + i) % tbl->cap_entries];
     if (md->key != ent->key) continue;
     r.index = idx;
diff --git a/src/core/transport/chttp2/hpack_table.h b/src/core/transport/chttp2/hpack_table.h
index a173eec..e743125 100644
--- a/src/core/transport/chttp2/hpack_table.h
+++ b/src/core/transport/chttp2/hpack_table.h
@@ -60,21 +60,21 @@
 /* hpack decoder table */
 typedef struct {
   /* the first used entry in ents */
-  gpr_uint32 first_ent;
+  uint32_t first_ent;
   /* how many entries are in the table */
-  gpr_uint32 num_ents;
+  uint32_t num_ents;
   /* the amount of memory used by the table, according to the hpack algorithm */
-  gpr_uint32 mem_used;
+  uint32_t mem_used;
   /* the max memory allowed to be used by the table, according to the hpack
      algorithm */
-  gpr_uint32 max_bytes;
+  uint32_t max_bytes;
   /* the currently agreed size of the table, according to the hpack algorithm */
-  gpr_uint32 current_table_bytes;
+  uint32_t current_table_bytes;
   /* Maximum number of entries we could possibly fit in the table, given defined
      overheads */
-  gpr_uint32 max_entries;
+  uint32_t max_entries;
   /* Number of entries allocated in ents */
-  gpr_uint32 cap_entries;
+  uint32_t cap_entries;
   /* a circular buffer of headers - this is stored in the opposite order to
      what hpack specifies, in order to simplify table management a little...
      meaning lookups need to SUBTRACT from the end position */
@@ -86,20 +86,20 @@
 void grpc_chttp2_hptbl_init(grpc_chttp2_hptbl *tbl);
 void grpc_chttp2_hptbl_destroy(grpc_chttp2_hptbl *tbl);
 void grpc_chttp2_hptbl_set_max_bytes(grpc_chttp2_hptbl *tbl,
-                                     gpr_uint32 max_bytes);
+                                     uint32_t max_bytes);
 int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
-                                             gpr_uint32 bytes);
+                                             uint32_t bytes);
 
 /* lookup a table entry based on its hpack index */
 grpc_mdelem *grpc_chttp2_hptbl_lookup(const grpc_chttp2_hptbl *tbl,
-                                      gpr_uint32 index);
+                                      uint32_t index);
 /* add a table entry to the index */
 int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl,
                           grpc_mdelem *md) GRPC_MUST_USE_RESULT;
 /* Find a key/value pair in the table... returns the index in the table of the
    most similar entry, or 0 if the value was not found */
 typedef struct {
-  gpr_uint32 index;
+  uint32_t index;
   int has_value;
 } grpc_chttp2_hptbl_find_result;
 grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
diff --git a/src/core/transport/chttp2/internal.h b/src/core/transport/chttp2/internal.h
index 4ad9003..e36c0fd 100644
--- a/src/core/transport/chttp2/internal.h
+++ b/src/core/transport/chttp2/internal.h
@@ -141,7 +141,7 @@
 
 /* Outstanding ping request data */
 typedef struct grpc_chttp2_outstanding_ping {
-  gpr_uint8 id[8];
+  uint8_t id[8];
   grpc_closure *on_recv;
   struct grpc_chttp2_outstanding_ping *next;
   struct grpc_chttp2_outstanding_ping *prev;
@@ -167,46 +167,46 @@
   gpr_slice_buffer qbuf;
 
   /** window available for us to send to peer */
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
   /** window available to announce to peer */
-  gpr_int64 announce_incoming_window;
+  int64_t announce_incoming_window;
   /** how much window would we like to have for incoming_window */
-  gpr_uint32 connection_window_target;
+  uint32_t connection_window_target;
 
   /** have we seen a goaway */
-  gpr_uint8 seen_goaway;
+  uint8_t seen_goaway;
   /** have we sent a goaway */
-  gpr_uint8 sent_goaway;
+  uint8_t sent_goaway;
 
   /** is this transport a client? */
-  gpr_uint8 is_client;
+  uint8_t is_client;
   /** are the local settings dirty and need to be sent? */
-  gpr_uint8 dirtied_local_settings;
+  uint8_t dirtied_local_settings;
   /** have local settings been sent? */
-  gpr_uint8 sent_local_settings;
+  uint8_t sent_local_settings;
   /** bitmask of setting indexes to send out */
-  gpr_uint32 force_send_settings;
+  uint32_t force_send_settings;
   /** settings values */
-  gpr_uint32 settings[GRPC_NUM_SETTING_SETS][GRPC_CHTTP2_NUM_SETTINGS];
+  uint32_t settings[GRPC_NUM_SETTING_SETS][GRPC_CHTTP2_NUM_SETTINGS];
 
   /** what is the next stream id to be allocated by this peer?
       copied to next_stream_id in parsing when parsing commences */
-  gpr_uint32 next_stream_id;
+  uint32_t next_stream_id;
 
   /** how far to lookahead in a stream? */
-  gpr_uint32 stream_lookahead;
+  uint32_t stream_lookahead;
 
   /** last received stream id */
-  gpr_uint32 last_incoming_stream_id;
+  uint32_t last_incoming_stream_id;
 
   /** pings awaiting responses */
   grpc_chttp2_outstanding_ping pings;
   /** next payload for an outgoing ping */
-  gpr_uint64 ping_counter;
+  uint64_t ping_counter;
 
   /** concurrent stream count: updated when not parsing,
       so this is a strict over-estimation on the client */
-  gpr_uint32 concurrent_stream_count;
+  uint32_t concurrent_stream_count;
 } grpc_chttp2_transport_global;
 
 typedef struct {
@@ -214,29 +214,29 @@
   gpr_slice_buffer outbuf;
   /** hpack encoding */
   grpc_chttp2_hpack_compressor hpack_compressor;
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
   /** is this a client? */
-  gpr_uint8 is_client;
+  uint8_t is_client;
   /** callback for when writing is done */
   grpc_closure done_cb;
 } grpc_chttp2_transport_writing;
 
 struct grpc_chttp2_transport_parsing {
   /** is this transport a client? (boolean) */
-  gpr_uint8 is_client;
+  uint8_t is_client;
 
   /** were settings updated? */
-  gpr_uint8 settings_updated;
+  uint8_t settings_updated;
   /** was a settings ack received? */
-  gpr_uint8 settings_ack_received;
+  uint8_t settings_ack_received;
   /** was a goaway frame received? */
-  gpr_uint8 goaway_received;
+  uint8_t goaway_received;
 
   /** the last sent max_table_size setting */
-  gpr_uint32 last_sent_max_table_size;
+  uint32_t last_sent_max_table_size;
 
   /** initial window change */
-  gpr_int64 initial_window_update;
+  int64_t initial_window_update;
 
   /** data to write later - after parsing */
   gpr_slice_buffer qbuf;
@@ -253,20 +253,20 @@
   grpc_chttp2_goaway_parser goaway_parser;
 
   /** window available for peer to send to us */
-  gpr_int64 incoming_window;
+  int64_t incoming_window;
 
   /** next stream id available at the time of beginning parsing */
-  gpr_uint32 next_stream_id;
-  gpr_uint32 last_incoming_stream_id;
+  uint32_t next_stream_id;
+  uint32_t last_incoming_stream_id;
 
   /* deframing */
   grpc_chttp2_deframe_transport_state deframe_state;
-  gpr_uint8 incoming_frame_type;
-  gpr_uint8 incoming_frame_flags;
-  gpr_uint8 header_eof;
-  gpr_uint32 expect_continuation_stream_id;
-  gpr_uint32 incoming_frame_size;
-  gpr_uint32 incoming_stream_id;
+  uint8_t incoming_frame_type;
+  uint8_t incoming_frame_flags;
+  uint8_t header_eof;
+  uint32_t expect_continuation_stream_id;
+  uint32_t incoming_frame_size;
+  uint32_t incoming_stream_id;
 
   /* active parser */
   void *parser_data;
@@ -277,14 +277,14 @@
       grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
 
   /* received settings */
-  gpr_uint32 settings[GRPC_CHTTP2_NUM_SETTINGS];
+  uint32_t settings[GRPC_CHTTP2_NUM_SETTINGS];
 
   /* goaway data */
   grpc_status_code goaway_error;
-  gpr_uint32 goaway_last_stream_index;
+  uint32_t goaway_last_stream_index;
   gpr_slice goaway_text;
 
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
 };
 
 struct grpc_chttp2_transport {
@@ -299,17 +299,17 @@
   gpr_mu mu;
 
   /** is the transport destroying itself? */
-  gpr_uint8 destroying;
+  uint8_t destroying;
   /** has the upper layer closed the transport? */
-  gpr_uint8 closed;
+  uint8_t closed;
 
   /** is a thread currently writing */
-  gpr_uint8 writing_active;
+  uint8_t writing_active;
   /** is a thread currently parsing */
-  gpr_uint8 parsing_active;
+  uint8_t parsing_active;
 
   /** is there a read request to the endpoint outstanding? */
-  gpr_uint8 endpoint_reading;
+  uint8_t endpoint_reading;
 
   /** various lists of streams */
   grpc_chttp2_stream_list lists[STREAM_LIST_COUNT];
@@ -358,20 +358,20 @@
 
 typedef struct {
   /** HTTP2 stream id for this stream, or zero if one has not been assigned */
-  gpr_uint32 id;
+  uint32_t id;
 
   /** window available for us to send to peer */
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
   /** The number of bytes the upper layers have offered to receive.
       As the upper layer offers more bytes, this value increases.
       As bytes are read, this value decreases. */
-  gpr_uint32 max_recv_bytes;
+  uint32_t max_recv_bytes;
   /** The number of bytes the upper layer has offered to read but we have
       not yet announced to HTTP2 flow control.
       As the upper layers offer to read more bytes, this value increases.
       As we advertise incoming flow control window, this value decreases. */
-  gpr_uint32 unannounced_incoming_window_for_parse;
-  gpr_uint32 unannounced_incoming_window_for_writing;
+  uint32_t unannounced_incoming_window_for_parse;
+  uint32_t unannounced_incoming_window_for_writing;
   /** things the upper layers would like to send */
   grpc_metadata_batch *send_initial_metadata;
   grpc_closure *send_initial_metadata_finished;
@@ -390,18 +390,18 @@
   /** when the application requests writes be closed, the write_closed is
       'queued'; when the close is flow controlled into the send path, we are
       'sending' it; when the write has been performed it is 'sent' */
-  gpr_uint8 write_closed;
+  uint8_t write_closed;
   /** is this stream reading half-closed (boolean) */
-  gpr_uint8 read_closed;
+  uint8_t read_closed;
   /** is this stream in the stream map? (boolean) */
-  gpr_uint8 in_stream_map;
+  uint8_t in_stream_map;
   /** has this stream seen an error? if 1, then pending incoming frames
       can be thrown away */
-  gpr_uint8 seen_error;
+  uint8_t seen_error;
 
-  gpr_uint8 published_initial_metadata;
-  gpr_uint8 published_trailing_metadata;
-  gpr_uint8 faked_trailing_metadata;
+  uint8_t published_initial_metadata;
+  uint8_t published_trailing_metadata;
+  uint8_t faked_trailing_metadata;
 
   grpc_chttp2_incoming_metadata_buffer received_initial_metadata;
   grpc_chttp2_incoming_metadata_buffer received_trailing_metadata;
@@ -411,19 +411,19 @@
 
 typedef struct {
   /** HTTP2 stream id for this stream, or zero if one has not been assigned */
-  gpr_uint32 id;
-  gpr_uint8 fetching;
-  gpr_uint8 sent_initial_metadata;
-  gpr_uint8 sent_message;
-  gpr_uint8 sent_trailing_metadata;
-  gpr_uint8 read_closed;
+  uint32_t id;
+  uint8_t fetching;
+  uint8_t sent_initial_metadata;
+  uint8_t sent_message;
+  uint8_t sent_trailing_metadata;
+  uint8_t read_closed;
   /** send this initial metadata */
   grpc_metadata_batch *send_initial_metadata;
   grpc_byte_stream *send_message;
   grpc_metadata_batch *send_trailing_metadata;
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
   /** how much window should we announce? */
-  gpr_uint32 announce_window;
+  uint32_t announce_window;
   gpr_slice_buffer flow_controlled_buffer;
   gpr_slice fetching_slice;
   size_t stream_fetched;
@@ -432,27 +432,27 @@
 
 struct grpc_chttp2_stream_parsing {
   /** HTTP2 stream id for this stream, or zero if one has not been assigned */
-  gpr_uint32 id;
+  uint32_t id;
   /** has this stream received a close */
-  gpr_uint8 received_close;
+  uint8_t received_close;
   /** saw a rst_stream */
-  gpr_uint8 saw_rst_stream;
+  uint8_t saw_rst_stream;
   /** how many header frames have we received? */
-  gpr_uint8 header_frames_received;
+  uint8_t header_frames_received;
   /** which metadata did we get (on this parse) */
-  gpr_uint8 got_metadata_on_parse[2];
+  uint8_t got_metadata_on_parse[2];
   /** should we raise the seen_error flag in transport_global */
-  gpr_uint8 seen_error;
+  uint8_t seen_error;
   /** window available for peer to send to us */
-  gpr_int64 incoming_window;
+  int64_t incoming_window;
   /** parsing state for data frames */
   grpc_chttp2_data_parser data_parser;
   /** reason give to rst_stream */
-  gpr_uint32 rst_stream_reason;
+  uint32_t rst_stream_reason;
   /** amount of window given */
-  gpr_int64 outgoing_window;
+  int64_t outgoing_window;
   /** number of bytes received - reset at end of parse thread execution */
-  gpr_int64 received_bytes;
+  int64_t received_bytes;
 
   /** incoming metadata */
   grpc_chttp2_incoming_metadata_buffer metadata_buffer[2];
@@ -465,7 +465,7 @@
   grpc_chttp2_stream_parsing parsing;
 
   grpc_chttp2_stream_link links[STREAM_LIST_COUNT];
-  gpr_uint8 included[STREAM_LIST_COUNT];
+  uint8_t included[STREAM_LIST_COUNT];
 };
 
 /** Transport writing call flow:
@@ -594,14 +594,14 @@
     grpc_chttp2_stream_global **stream_global);
 
 grpc_chttp2_stream_parsing *grpc_chttp2_parsing_lookup_stream(
-    grpc_chttp2_transport_parsing *transport_parsing, gpr_uint32 id);
+    grpc_chttp2_transport_parsing *transport_parsing, uint32_t id);
 grpc_chttp2_stream_parsing *grpc_chttp2_parsing_accept_stream(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
-    gpr_uint32 id);
+    uint32_t id);
 
 void grpc_chttp2_add_incoming_goaway(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global,
-    gpr_uint32 goaway_error, gpr_slice goaway_text);
+    uint32_t goaway_error, gpr_slice goaway_text);
 
 void grpc_chttp2_register_stream(grpc_chttp2_transport *t,
                                  grpc_chttp2_stream *s);
@@ -707,8 +707,7 @@
                                grpc_chttp2_flowctl_op op, const char *context1,
                                const char *var1, const char *context2,
                                const char *var2, int is_client,
-                               gpr_uint32 stream_id, gpr_int64 val1,
-                               gpr_int64 val2);
+                               uint32_t stream_id, int64_t val1, int64_t val2);
 
 void grpc_chttp2_fake_status(grpc_exec_ctx *exec_ctx,
                              grpc_chttp2_transport_global *transport_global,
@@ -743,8 +742,8 @@
 
 grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
-    grpc_chttp2_stream_parsing *stream_parsing, gpr_uint32 frame_size,
-    gpr_uint32 flags, grpc_chttp2_incoming_frame_queue *add_to_queue);
+    grpc_chttp2_stream_parsing *stream_parsing, uint32_t frame_size,
+    uint32_t flags, grpc_chttp2_incoming_frame_queue *add_to_queue);
 void grpc_chttp2_incoming_byte_stream_push(grpc_exec_ctx *exec_ctx,
                                            grpc_chttp2_incoming_byte_stream *bs,
                                            gpr_slice slice);
@@ -754,6 +753,6 @@
 
 void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx,
                           grpc_chttp2_transport_parsing *parsing,
-                          const gpr_uint8 *opaque_8bytes);
+                          const uint8_t *opaque_8bytes);
 
 #endif
diff --git a/src/core/transport/chttp2/parsing.c b/src/core/transport/chttp2/parsing.c
index 7604e7b..8fdebd7 100644
--- a/src/core/transport/chttp2/parsing.c
+++ b/src/core/transport/chttp2/parsing.c
@@ -126,7 +126,7 @@
   if (transport_parsing->settings_ack_received) {
     memcpy(transport_global->settings[GRPC_ACKED_SETTINGS],
            transport_global->settings[GRPC_SENT_SETTINGS],
-           GRPC_CHTTP2_NUM_SETTINGS * sizeof(gpr_uint32));
+           GRPC_CHTTP2_NUM_SETTINGS * sizeof(uint32_t));
     transport_parsing->settings_ack_received = 0;
     transport_global->sent_local_settings = 0;
   }
@@ -135,7 +135,7 @@
      published later */
   if (transport_parsing->goaway_received) {
     grpc_chttp2_add_incoming_goaway(exec_ctx, transport_global,
-                                    (gpr_uint32)transport_parsing->goaway_error,
+                                    (uint32_t)transport_parsing->goaway_error,
                                     transport_parsing->goaway_text);
     transport_parsing->goaway_text = gpr_empty_slice();
     transport_parsing->goaway_received = 0;
@@ -155,8 +155,8 @@
 
   if (transport_parsing->incoming_window <
       transport_global->connection_window_target * 3 / 4) {
-    gpr_int64 announce_bytes = transport_global->connection_window_target -
-                               transport_parsing->incoming_window;
+    int64_t announce_bytes = transport_global->connection_window_target -
+                             transport_parsing->incoming_window;
     GRPC_CHTTP2_FLOW_CREDIT_TRANSPORT("parsed", transport_global,
                                       announce_incoming_window, announce_bytes);
     GRPC_CHTTP2_FLOW_CREDIT_TRANSPORT("parsed", transport_parsing,
@@ -181,7 +181,7 @@
       grpc_chttp2_list_add_writable_stream(transport_global, stream_global);
     }
 
-    stream_global->max_recv_bytes -= (gpr_uint32)GPR_MIN(
+    stream_global->max_recv_bytes -= (uint32_t)GPR_MIN(
         stream_global->max_recv_bytes, stream_parsing->received_bytes);
     stream_parsing->received_bytes = 0;
 
@@ -245,9 +245,9 @@
 int grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
                              grpc_chttp2_transport_parsing *transport_parsing,
                              gpr_slice slice) {
-  gpr_uint8 *beg = GPR_SLICE_START_PTR(slice);
-  gpr_uint8 *end = GPR_SLICE_END_PTR(slice);
-  gpr_uint8 *cur = beg;
+  uint8_t *beg = GPR_SLICE_START_PTR(slice);
+  uint8_t *end = GPR_SLICE_END_PTR(slice);
+  uint8_t *cur = beg;
 
   if (cur == end) return 1;
 
@@ -284,7 +284,7 @@
                   "at byte %d",
                   GRPC_CHTTP2_CLIENT_CONNECT_STRING[transport_parsing
                                                         ->deframe_state],
-                  (int)(gpr_uint8)GRPC_CHTTP2_CLIENT_CONNECT_STRING
+                  (int)(uint8_t)GRPC_CHTTP2_CLIENT_CONNECT_STRING
                       [transport_parsing->deframe_state],
                   *cur, (int)*cur, transport_parsing->deframe_state);
           return 0;
@@ -299,7 +299,7 @@
     dts_fh_0:
     case GRPC_DTS_FH_0:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_frame_size = ((gpr_uint32)*cur) << 16;
+      transport_parsing->incoming_frame_size = ((uint32_t)*cur) << 16;
       if (++cur == end) {
         transport_parsing->deframe_state = GRPC_DTS_FH_1;
         return 1;
@@ -307,7 +307,7 @@
     /* fallthrough */
     case GRPC_DTS_FH_1:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_frame_size |= ((gpr_uint32)*cur) << 8;
+      transport_parsing->incoming_frame_size |= ((uint32_t)*cur) << 8;
       if (++cur == end) {
         transport_parsing->deframe_state = GRPC_DTS_FH_2;
         return 1;
@@ -339,7 +339,7 @@
     /* fallthrough */
     case GRPC_DTS_FH_5:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_stream_id = (((gpr_uint32)*cur) & 0x7f) << 24;
+      transport_parsing->incoming_stream_id = (((uint32_t)*cur) & 0x7f) << 24;
       if (++cur == end) {
         transport_parsing->deframe_state = GRPC_DTS_FH_6;
         return 1;
@@ -347,7 +347,7 @@
     /* fallthrough */
     case GRPC_DTS_FH_6:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur) << 16;
+      transport_parsing->incoming_stream_id |= ((uint32_t)*cur) << 16;
       if (++cur == end) {
         transport_parsing->deframe_state = GRPC_DTS_FH_7;
         return 1;
@@ -355,7 +355,7 @@
     /* fallthrough */
     case GRPC_DTS_FH_7:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur) << 8;
+      transport_parsing->incoming_stream_id |= ((uint32_t)*cur) << 8;
       if (++cur == end) {
         transport_parsing->deframe_state = GRPC_DTS_FH_8;
         return 1;
@@ -363,7 +363,7 @@
     /* fallthrough */
     case GRPC_DTS_FH_8:
       GPR_ASSERT(cur < end);
-      transport_parsing->incoming_stream_id |= ((gpr_uint32)*cur);
+      transport_parsing->incoming_stream_id |= ((uint32_t)*cur);
       transport_parsing->deframe_state = GRPC_DTS_FRAME;
       if (!init_frame_parser(exec_ctx, transport_parsing)) {
         return 0;
@@ -390,7 +390,7 @@
     /* fallthrough */
     case GRPC_DTS_FRAME:
       GPR_ASSERT(cur < end);
-      if ((gpr_uint32)(end - cur) == transport_parsing->incoming_frame_size) {
+      if ((uint32_t)(end - cur) == transport_parsing->incoming_frame_size) {
         if (!parse_frame_slice(exec_ctx, transport_parsing,
                                gpr_slice_sub_no_ref(slice, (size_t)(cur - beg),
                                                     (size_t)(end - beg)),
@@ -400,7 +400,7 @@
         transport_parsing->deframe_state = GRPC_DTS_FH_0;
         transport_parsing->incoming_stream = NULL;
         return 1;
-      } else if ((gpr_uint32)(end - cur) >
+      } else if ((uint32_t)(end - cur) >
                  transport_parsing->incoming_frame_size) {
         size_t cur_offset = (size_t)(cur - beg);
         if (!parse_frame_slice(
@@ -421,7 +421,7 @@
                                0)) {
           return 0;
         }
-        transport_parsing->incoming_frame_size -= (gpr_uint32)(end - cur);
+        transport_parsing->incoming_frame_size -= (uint32_t)(end - cur);
         return 1;
       }
       GPR_UNREACHABLE_CODE(return 0);
@@ -488,14 +488,14 @@
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
     int is_header) {
   if (is_header) {
-    gpr_uint8 is_eoh = transport_parsing->expect_continuation_stream_id != 0;
+    uint8_t is_eoh = transport_parsing->expect_continuation_stream_id != 0;
     transport_parsing->parser = grpc_chttp2_header_parser_parse;
     transport_parsing->parser_data = &transport_parsing->hpack_parser;
     transport_parsing->hpack_parser.on_header = skip_header;
     transport_parsing->hpack_parser.on_header_user_data = NULL;
     transport_parsing->hpack_parser.is_boundary = is_eoh;
     transport_parsing->hpack_parser.is_eof =
-        (gpr_uint8)(is_eoh ? transport_parsing->header_eof : 0);
+        (uint8_t)(is_eoh ? transport_parsing->header_eof : 0);
   } else {
     transport_parsing->parser = skip_parser;
   }
@@ -512,7 +512,7 @@
 static grpc_chttp2_parse_error update_incoming_window(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
     grpc_chttp2_stream_parsing *stream_parsing) {
-  gpr_uint32 incoming_frame_size = transport_parsing->incoming_frame_size;
+  uint32_t incoming_frame_size = transport_parsing->incoming_frame_size;
   if (incoming_frame_size > transport_parsing->incoming_window) {
     gpr_log(GPR_ERROR, "frame of size %d overflows incoming window of %d",
             transport_parsing->incoming_frame_size,
@@ -652,8 +652,8 @@
 static int init_header_frame_parser(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
     int is_continuation) {
-  gpr_uint8 is_eoh = (transport_parsing->incoming_frame_flags &
-                      GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
+  uint8_t is_eoh = (transport_parsing->incoming_frame_flags &
+                    GRPC_CHTTP2_DATA_FLAG_END_HEADERS) != 0;
   int via_accept = 0;
   grpc_chttp2_stream_parsing *stream_parsing;
 
@@ -738,7 +738,7 @@
   transport_parsing->hpack_parser.on_header_user_data = transport_parsing;
   transport_parsing->hpack_parser.is_boundary = is_eoh;
   transport_parsing->hpack_parser.is_eof =
-      (gpr_uint8)(is_eoh ? transport_parsing->header_eof : 0);
+      (uint8_t)(is_eoh ? transport_parsing->header_eof : 0);
   if (!is_continuation && (transport_parsing->incoming_frame_flags &
                            GRPC_CHTTP2_FLAG_HAS_PRIORITY)) {
     grpc_chttp2_hpack_parser_set_has_priority(&transport_parsing->hpack_parser);
@@ -829,7 +829,7 @@
 }
 
 /*
-static int is_window_update_legal(gpr_int64 window_update, gpr_int64 window) {
+static int is_window_update_legal(int64_t window_update, int64_t window) {
   return window + window_update < MAX_WINDOW;
 }
 */
diff --git a/src/core/transport/chttp2/stream_map.c b/src/core/transport/chttp2/stream_map.c
index c983105..555a16f 100644
--- a/src/core/transport/chttp2/stream_map.c
+++ b/src/core/transport/chttp2/stream_map.c
@@ -42,7 +42,7 @@
 void grpc_chttp2_stream_map_init(grpc_chttp2_stream_map *map,
                                  size_t initial_capacity) {
   GPR_ASSERT(initial_capacity > 1);
-  map->keys = gpr_malloc(sizeof(gpr_uint32) * initial_capacity);
+  map->keys = gpr_malloc(sizeof(uint32_t) * initial_capacity);
   map->values = gpr_malloc(sizeof(void *) * initial_capacity);
   map->count = 0;
   map->free = 0;
@@ -54,7 +54,7 @@
   gpr_free(map->values);
 }
 
-static size_t compact(gpr_uint32 *keys, void **values, size_t count) {
+static size_t compact(uint32_t *keys, void **values, size_t count) {
   size_t i, out;
 
   for (i = 0, out = 0; i < count; i++) {
@@ -68,11 +68,11 @@
   return out;
 }
 
-void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, gpr_uint32 key,
+void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, uint32_t key,
                                 void *value) {
   size_t count = map->count;
   size_t capacity = map->capacity;
-  gpr_uint32 *keys = map->keys;
+  uint32_t *keys = map->keys;
   void **values = map->values;
 
   GPR_ASSERT(count == 0 || keys[count - 1] < key);
@@ -86,7 +86,7 @@
       /* resize when less than 25% of the table is free, because compaction
          won't help much */
       map->capacity = capacity = 3 * capacity / 2;
-      map->keys = keys = gpr_realloc(keys, capacity * sizeof(gpr_uint32));
+      map->keys = keys = gpr_realloc(keys, capacity * sizeof(uint32_t));
       map->values = values = gpr_realloc(values, capacity * sizeof(void *));
     }
   }
@@ -119,10 +119,10 @@
   /* if dst doesn't have capacity, resize */
   if (dst->count + src->count > dst->capacity) {
     dst->capacity = GPR_MAX(dst->capacity * 3 / 2, dst->count + src->count);
-    dst->keys = gpr_realloc(dst->keys, dst->capacity * sizeof(gpr_uint32));
+    dst->keys = gpr_realloc(dst->keys, dst->capacity * sizeof(uint32_t));
     dst->values = gpr_realloc(dst->values, dst->capacity * sizeof(void *));
   }
-  memcpy(dst->keys + dst->count, src->keys, src->count * sizeof(gpr_uint32));
+  memcpy(dst->keys + dst->count, src->keys, src->count * sizeof(uint32_t));
   memcpy(dst->values + dst->count, src->values, src->count * sizeof(void *));
   dst->count += src->count;
   dst->free += src->free;
@@ -130,13 +130,13 @@
   src->free = 0;
 }
 
-static void **find(grpc_chttp2_stream_map *map, gpr_uint32 key) {
+static void **find(grpc_chttp2_stream_map *map, uint32_t key) {
   size_t min_idx = 0;
   size_t max_idx = map->count;
   size_t mid_idx;
-  gpr_uint32 *keys = map->keys;
+  uint32_t *keys = map->keys;
   void **values = map->values;
-  gpr_uint32 mid_key;
+  uint32_t mid_key;
 
   if (max_idx == 0) return NULL;
 
@@ -158,8 +158,7 @@
   return NULL;
 }
 
-void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map,
-                                    gpr_uint32 key) {
+void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map, uint32_t key) {
   void **pvalue = find(map, key);
   void *out = NULL;
   if (pvalue != NULL) {
@@ -175,7 +174,7 @@
   return out;
 }
 
-void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, gpr_uint32 key) {
+void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, uint32_t key) {
   void **pvalue = find(map, key);
   return pvalue != NULL ? *pvalue : NULL;
 }
@@ -185,7 +184,7 @@
 }
 
 void grpc_chttp2_stream_map_for_each(grpc_chttp2_stream_map *map,
-                                     void (*f)(void *user_data, gpr_uint32 key,
+                                     void (*f)(void *user_data, uint32_t key,
                                                void *value),
                                      void *user_data) {
   size_t i;
diff --git a/src/core/transport/chttp2/stream_map.h b/src/core/transport/chttp2/stream_map.h
index 71b0582..7a0e45f 100644
--- a/src/core/transport/chttp2/stream_map.h
+++ b/src/core/transport/chttp2/stream_map.h
@@ -38,14 +38,14 @@
 
 #include <stddef.h>
 
-/* Data structure to map a gpr_uint32 to a data object (represented by a void*)
+/* Data structure to map a uint32_t to a data object (represented by a void*)
 
    Represented as a sorted array of keys, and a corresponding array of values.
    Lookups are performed with binary search.
    Adds are restricted to strictly higher keys than previously seen (this is
    guaranteed by http2). */
 typedef struct {
-  gpr_uint32 *keys;
+  uint32_t *keys;
   void **values;
   size_t count;
   size_t free;
@@ -58,27 +58,26 @@
 
 /* Add a new key: given http2 semantics, new keys must always be greater than
    existing keys - this is asserted */
-void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, gpr_uint32 key,
+void grpc_chttp2_stream_map_add(grpc_chttp2_stream_map *map, uint32_t key,
                                 void *value);
 
 /* Delete an existing key - returns the previous value of the key if it existed,
    or NULL otherwise */
-void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map,
-                                    gpr_uint32 key);
+void *grpc_chttp2_stream_map_delete(grpc_chttp2_stream_map *map, uint32_t key);
 
 /* Move all elements of src into dst */
 void grpc_chttp2_stream_map_move_into(grpc_chttp2_stream_map *src,
                                       grpc_chttp2_stream_map *dst);
 
 /* Return an existing key, or NULL if it does not exist */
-void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, gpr_uint32 key);
+void *grpc_chttp2_stream_map_find(grpc_chttp2_stream_map *map, uint32_t key);
 
 /* How many (populated) entries are in the stream map? */
 size_t grpc_chttp2_stream_map_size(grpc_chttp2_stream_map *map);
 
 /* Callback on each stream */
 void grpc_chttp2_stream_map_for_each(grpc_chttp2_stream_map *map,
-                                     void (*f)(void *user_data, gpr_uint32 key,
+                                     void (*f)(void *user_data, uint32_t key,
                                                void *value),
                                      void *user_data);
 
diff --git a/src/core/transport/chttp2/timeout_encoding.c b/src/core/transport/chttp2/timeout_encoding.c
index 7ec8b4e..8cbf987 100644
--- a/src/core/transport/chttp2/timeout_encoding.c
+++ b/src/core/transport/chttp2/timeout_encoding.c
@@ -39,12 +39,12 @@
 #include <grpc/support/port_platform.h>
 #include "src/core/support/string.h"
 
-static gpr_int64 round_up(gpr_int64 x, gpr_int64 divisor) {
+static int64_t round_up(int64_t x, int64_t divisor) {
   return (x / divisor + (x % divisor != 0)) * divisor;
 }
 
 /* round an integer up to the next value with three significant figures */
-static gpr_int64 round_up_to_three_sig_figs(gpr_int64 x) {
+static int64_t round_up_to_three_sig_figs(int64_t x) {
   if (x < 1000) return x;
   if (x < 10000) return round_up(x, 10);
   if (x < 100000) return round_up(x, 100);
@@ -58,13 +58,13 @@
 /* encode our minimum viable timeout value */
 static void enc_tiny(char *buffer) { memcpy(buffer, "1n", 3); }
 
-static void enc_ext(char *buffer, gpr_int64 value, char ext) {
-  int n = gpr_int64toa(value, buffer);
+static void enc_ext(char *buffer, int64_t value, char ext) {
+  int n = int64_ttoa(value, buffer);
   buffer[n] = ext;
   buffer[n + 1] = 0;
 }
 
-static void enc_seconds(char *buffer, gpr_int64 sec) {
+static void enc_seconds(char *buffer, int64_t sec) {
   if (sec % 3600 == 0) {
     enc_ext(buffer, sec / 3600, 'H');
   } else if (sec % 60 == 0) {
@@ -74,7 +74,7 @@
   }
 }
 
-static void enc_nanos(char *buffer, gpr_int64 x) {
+static void enc_nanos(char *buffer, int64_t x) {
   x = round_up_to_three_sig_figs(x);
   if (x < 100000) {
     if (x % 1000 == 0) {
@@ -98,7 +98,7 @@
   }
 }
 
-static void enc_micros(char *buffer, gpr_int64 x) {
+static void enc_micros(char *buffer, int64_t x) {
   x = round_up_to_three_sig_figs(x);
   if (x < 100000) {
     if (x % 1000 == 0) {
@@ -124,7 +124,7 @@
     enc_nanos(buffer, timeout.tv_nsec);
   } else if (timeout.tv_sec < 1000 && timeout.tv_nsec != 0) {
     enc_micros(buffer,
-               (gpr_int64)(timeout.tv_sec * 1000000) +
+               (int64_t)(timeout.tv_sec * 1000000) +
                    (timeout.tv_nsec / 1000 + (timeout.tv_nsec % 1000 != 0)));
   } else {
     enc_seconds(buffer, timeout.tv_sec + (timeout.tv_nsec != 0));
@@ -137,15 +137,15 @@
 }
 
 int grpc_chttp2_decode_timeout(const char *buffer, gpr_timespec *timeout) {
-  gpr_uint32 x = 0;
-  const gpr_uint8 *p = (const gpr_uint8 *)buffer;
+  uint32_t x = 0;
+  const uint8_t *p = (const uint8_t *)buffer;
   int have_digit = 0;
   /* skip whitespace */
   for (; *p == ' '; p++)
     ;
   /* decode numeric part */
   for (; *p >= '0' && *p <= '9'; p++) {
-    gpr_uint32 xp = x * 10u + (gpr_uint32)*p - (gpr_uint32)'0';
+    uint32_t xp = x * 10u + (uint32_t)*p - (uint32_t)'0';
     have_digit = 1;
     if (xp < x) {
       *timeout = gpr_inf_future(GPR_CLOCK_REALTIME);
diff --git a/src/core/transport/chttp2/varint.c b/src/core/transport/chttp2/varint.c
index 056f680..1cc235e 100644
--- a/src/core/transport/chttp2/varint.c
+++ b/src/core/transport/chttp2/varint.c
@@ -33,7 +33,7 @@
 
 #include "src/core/transport/chttp2/varint.h"
 
-gpr_uint32 grpc_chttp2_hpack_varint_length(gpr_uint32 tail_value) {
+uint32_t grpc_chttp2_hpack_varint_length(uint32_t tail_value) {
   if (tail_value < (1 << 7)) {
     return 2;
   } else if (tail_value < (1 << 14)) {
@@ -47,20 +47,19 @@
   }
 }
 
-void grpc_chttp2_hpack_write_varint_tail(gpr_uint32 tail_value,
-                                         gpr_uint8* target,
-                                         gpr_uint32 tail_length) {
+void grpc_chttp2_hpack_write_varint_tail(uint32_t tail_value, uint8_t* target,
+                                         uint32_t tail_length) {
   switch (tail_length) {
     case 5:
-      target[4] = (gpr_uint8)((tail_value >> 28) | 0x80);
+      target[4] = (uint8_t)((tail_value >> 28) | 0x80);
     case 4:
-      target[3] = (gpr_uint8)((tail_value >> 21) | 0x80);
+      target[3] = (uint8_t)((tail_value >> 21) | 0x80);
     case 3:
-      target[2] = (gpr_uint8)((tail_value >> 14) | 0x80);
+      target[2] = (uint8_t)((tail_value >> 14) | 0x80);
     case 2:
-      target[1] = (gpr_uint8)((tail_value >> 7) | 0x80);
+      target[1] = (uint8_t)((tail_value >> 7) | 0x80);
     case 1:
-      target[0] = (gpr_uint8)((tail_value) | 0x80);
+      target[0] = (uint8_t)((tail_value) | 0x80);
   }
   target[tail_length - 1] &= 0x7f;
 }
diff --git a/src/core/transport/chttp2/varint.h b/src/core/transport/chttp2/varint.h
index 5acb15d..2d92b66 100644
--- a/src/core/transport/chttp2/varint.h
+++ b/src/core/transport/chttp2/varint.h
@@ -41,17 +41,16 @@
 /* length of a value that needs varint tail encoding (it's bigger than can be
    bitpacked into the opcode byte) - returned value includes the length of the
    opcode byte */
-gpr_uint32 grpc_chttp2_hpack_varint_length(gpr_uint32 tail_value);
+uint32_t grpc_chttp2_hpack_varint_length(uint32_t tail_value);
 
-void grpc_chttp2_hpack_write_varint_tail(gpr_uint32 tail_value,
-                                         gpr_uint8* target,
-                                         gpr_uint32 tail_length);
+void grpc_chttp2_hpack_write_varint_tail(uint32_t tail_value, uint8_t* target,
+                                         uint32_t tail_length);
 
 /* maximum value that can be bitpacked with the opcode if the opcode has a
    prefix
    of length prefix_bits */
 #define GRPC_CHTTP2_MAX_IN_PREFIX(prefix_bits) \
-  ((gpr_uint32)((1 << (8 - (prefix_bits))) - 1))
+  ((uint32_t)((1 << (8 - (prefix_bits))) - 1))
 
 /* length required to bitpack a value */
 #define GRPC_CHTTP2_VARINT_LENGTH(n, prefix_bits) \
@@ -62,12 +61,12 @@
 
 #define GRPC_CHTTP2_WRITE_VARINT(n, prefix_bits, prefix_or, target, length)   \
   do {                                                                        \
-    gpr_uint8* tgt = target;                                                  \
+    uint8_t* tgt = target;                                                    \
     if ((length) == 1u) {                                                     \
-      (tgt)[0] = (gpr_uint8)((prefix_or) | (n));                              \
+      (tgt)[0] = (uint8_t)((prefix_or) | (n));                                \
     } else {                                                                  \
       (tgt)[0] =                                                              \
-          (prefix_or) | (gpr_uint8)GRPC_CHTTP2_MAX_IN_PREFIX(prefix_bits);    \
+          (prefix_or) | (uint8_t)GRPC_CHTTP2_MAX_IN_PREFIX(prefix_bits);      \
       grpc_chttp2_hpack_write_varint_tail(                                    \
           (n)-GRPC_CHTTP2_MAX_IN_PREFIX(prefix_bits), (tgt) + 1, (length)-1); \
     }                                                                         \
diff --git a/src/core/transport/chttp2/writing.c b/src/core/transport/chttp2/writing.c
index b5ca42d..fdad05b 100644
--- a/src/core/transport/chttp2/writing.c
+++ b/src/core/transport/chttp2/writing.c
@@ -80,7 +80,7 @@
      (according to available window sizes) and add to the output buffer */
   while (grpc_chttp2_list_pop_writable_stream(
       transport_global, transport_writing, &stream_global, &stream_writing)) {
-    gpr_uint8 sent_initial_metadata;
+    uint8_t sent_initial_metadata;
 
     stream_writing->id = stream_global->id;
     stream_writing->read_closed = stream_global->read_closed;
@@ -103,15 +103,15 @@
     if (sent_initial_metadata) {
       if (stream_global->send_message != NULL) {
         gpr_slice hdr = gpr_slice_malloc(5);
-        gpr_uint8 *p = GPR_SLICE_START_PTR(hdr);
-        gpr_uint32 len = stream_global->send_message->length;
+        uint8_t *p = GPR_SLICE_START_PTR(hdr);
+        uint32_t len = stream_global->send_message->length;
         GPR_ASSERT(stream_writing->send_message == NULL);
         p[0] = (stream_global->send_message->flags &
                 GRPC_WRITE_INTERNAL_COMPRESS) != 0;
-        p[1] = (gpr_uint8)(len >> 24);
-        p[2] = (gpr_uint8)(len >> 16);
-        p[3] = (gpr_uint8)(len >> 8);
-        p[4] = (gpr_uint8)(len);
+        p[1] = (uint8_t)(len >> 24);
+        p[2] = (uint8_t)(len >> 16);
+        p[3] = (uint8_t)(len >> 8);
+        p[4] = (uint8_t)(len);
         gpr_slice_buffer_add(&stream_writing->flow_controlled_buffer, hdr);
         if (stream_global->send_message->length > 0) {
           stream_writing->send_message = stream_global->send_message;
@@ -160,8 +160,8 @@
   /* if the grpc_chttp2_transport is ready to send a window update, do so here
      also; 3/4 is a magic number that will likely get tuned soon */
   if (transport_global->announce_incoming_window > 0) {
-    gpr_uint32 announced = (gpr_uint32)GPR_MIN(
-        transport_global->announce_incoming_window, GPR_UINT32_MAX);
+    uint32_t announced = (uint32_t)GPR_MIN(
+        transport_global->announce_incoming_window, UINT32_MAX);
     GRPC_CHTTP2_FLOW_DEBIT_TRANSPORT("write", transport_global,
                                      announce_incoming_window, announced);
     gpr_slice_buffer_add(&transport_writing->outbuf,
@@ -200,10 +200,10 @@
 
   while (
       grpc_chttp2_list_pop_writing_stream(transport_writing, &stream_writing)) {
-    gpr_uint32 max_outgoing =
-        (gpr_uint32)GPR_MIN(GRPC_CHTTP2_MAX_PAYLOAD_LENGTH,
-                            GPR_MIN(stream_writing->outgoing_window,
-                                    transport_writing->outgoing_window));
+    uint32_t max_outgoing =
+        (uint32_t)GPR_MIN(GRPC_CHTTP2_MAX_PAYLOAD_LENGTH,
+                          GPR_MIN(stream_writing->outgoing_window,
+                                  transport_writing->outgoing_window));
     /* send initial metadata if it's available */
     if (stream_writing->send_initial_metadata != NULL) {
       grpc_chttp2_encode_header(
@@ -215,7 +215,7 @@
     /* send any window updates */
     if (stream_writing->announce_window > 0 &&
         stream_writing->send_initial_metadata == NULL) {
-      gpr_uint32 announce = stream_writing->announce_window;
+      uint32_t announce = stream_writing->announce_window;
       gpr_slice_buffer_add(
           &transport_writing->outbuf,
           grpc_chttp2_window_update_create(stream_writing->id,
@@ -247,7 +247,7 @@
     /* send any body bytes */
     if (stream_writing->flow_controlled_buffer.length > 0) {
       if (max_outgoing > 0) {
-        gpr_uint32 send_bytes = (gpr_uint32)GPR_MIN(
+        uint32_t send_bytes = (uint32_t)GPR_MIN(
             max_outgoing, stream_writing->flow_controlled_buffer.length);
         int is_last_data_frame =
             stream_writing->send_message == NULL &&
diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c
index 70f7eed..bf82784 100644
--- a/src/core/transport/chttp2_transport.c
+++ b/src/core/transport/chttp2_transport.c
@@ -90,7 +90,7 @@
 
 /** Set a transport level setting, and push it to our peer */
 static void push_setting(grpc_chttp2_transport *t, grpc_chttp2_setting_id id,
-                         gpr_uint32 value);
+                         uint32_t value);
 
 /** Endpoint callback to process incoming data */
 static void recv_data(grpc_exec_ctx *exec_ctx, void *tp, int success);
@@ -223,7 +223,7 @@
 
 static void init_transport(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
                            const grpc_channel_args *channel_args,
-                           grpc_endpoint *ep, gpr_uint8 is_client) {
+                           grpc_endpoint *ep, uint8_t is_client) {
   size_t i;
   int j;
 
@@ -318,7 +318,7 @@
                   GRPC_ARG_MAX_CONCURRENT_STREAMS);
         } else {
           push_setting(t, GRPC_CHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS,
-                       (gpr_uint32)channel_args->args[i].value.integer);
+                       (uint32_t)channel_args->args[i].value.integer);
         }
       } else if (0 == strcmp(channel_args->args[i].key,
                              GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER)) {
@@ -333,7 +333,7 @@
                   is_client ? "client" : "server");
         } else {
           t->global.next_stream_id =
-              (gpr_uint32)channel_args->args[i].value.integer;
+              (uint32_t)channel_args->args[i].value.integer;
         }
       } else if (0 == strcmp(channel_args->args[i].key,
                              GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES)) {
@@ -345,7 +345,7 @@
                   GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES);
         } else {
           t->global.stream_lookahead =
-              (gpr_uint32)channel_args->args[i].value.integer;
+              (uint32_t)channel_args->args[i].value.integer;
         }
       } else if (0 == strcmp(channel_args->args[i].key,
                              GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER)) {
@@ -357,7 +357,7 @@
                   GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER);
         } else {
           push_setting(t, GRPC_CHTTP2_SETTINGS_HEADER_TABLE_SIZE,
-                       (gpr_uint32)channel_args->args[i].value.integer);
+                       (uint32_t)channel_args->args[i].value.integer);
         }
       } else if (0 == strcmp(channel_args->args[i].key,
                              GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER)) {
@@ -370,7 +370,7 @@
         } else {
           grpc_chttp2_hpack_compressor_set_max_usable_size(
               &t->writing.hpack_compressor,
-              (gpr_uint32)channel_args->args[i].value.integer);
+              (uint32_t)channel_args->args[i].value.integer);
         }
       }
     }
@@ -482,7 +482,7 @@
   grpc_chttp2_register_stream(t, s);
   if (server_data) {
     GPR_ASSERT(t->parsing_active);
-    s->global.id = (gpr_uint32)(gpr_uintptr)server_data;
+    s->global.id = (uint32_t)(uintptr_t)server_data;
     s->parsing.id = s->global.id;
     s->global.outgoing_window =
         t->global.settings[GRPC_PEER_SETTINGS]
@@ -561,7 +561,7 @@
 }
 
 grpc_chttp2_stream_parsing *grpc_chttp2_parsing_lookup_stream(
-    grpc_chttp2_transport_parsing *transport_parsing, gpr_uint32 id) {
+    grpc_chttp2_transport_parsing *transport_parsing, uint32_t id) {
   grpc_chttp2_transport *t = TRANSPORT_FROM_PARSING(transport_parsing);
   grpc_chttp2_stream *s =
       grpc_chttp2_stream_map_find(&t->parsing_stream_map, id);
@@ -570,14 +570,14 @@
 
 grpc_chttp2_stream_parsing *grpc_chttp2_parsing_accept_stream(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
-    gpr_uint32 id) {
+    uint32_t id) {
   grpc_chttp2_stream *accepting;
   grpc_chttp2_transport *t = TRANSPORT_FROM_PARSING(transport_parsing);
   GPR_ASSERT(t->accepting_stream == NULL);
   t->accepting_stream = &accepting;
   t->channel_callback.accept_stream(exec_ctx,
                                     t->channel_callback.accept_stream_user_data,
-                                    &t->base, (void *)(gpr_uintptr)id);
+                                    &t->base, (void *)(uintptr_t)id);
   t->accepting_stream = NULL;
   return &accepting->parsing;
 }
@@ -615,10 +615,10 @@
  */
 
 static void push_setting(grpc_chttp2_transport *t, grpc_chttp2_setting_id id,
-                         gpr_uint32 value) {
+                         uint32_t value) {
   const grpc_chttp2_setting_parameters *sp =
       &grpc_chttp2_settings_parameters[id];
-  gpr_uint32 use_value = GPR_CLAMP(value, sp->min_value, sp->max_value);
+  uint32_t use_value = GPR_CLAMP(value, sp->min_value, sp->max_value);
   if (use_value != value) {
     gpr_log(GPR_INFO, "Requested parameter %s clamped from %d to %d", sp->name,
             value, use_value);
@@ -677,7 +677,7 @@
 
 void grpc_chttp2_add_incoming_goaway(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global,
-    gpr_uint32 goaway_error, gpr_slice goaway_text) {
+    uint32_t goaway_error, gpr_slice goaway_text) {
   char *msg = gpr_dump_slice(goaway_text, GPR_DUMP_HEX | GPR_DUMP_ASCII);
   gpr_log(GPR_DEBUG, "got goaway [%d]: %s", goaway_error, msg);
   gpr_free(msg);
@@ -690,7 +690,7 @@
 static void maybe_start_some_streams(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_global *transport_global) {
   grpc_chttp2_stream_global *stream_global;
-  gpr_uint32 stream_incoming_window;
+  uint32_t stream_incoming_window;
   /* start streams where we have free grpc_chttp2_stream ids and free
    * concurrency */
   while (transport_global->next_stream_id <= MAX_CLIENT_STREAM_ID &&
@@ -911,21 +911,21 @@
   p->next = &t->global.pings;
   p->prev = p->next->prev;
   p->prev->next = p->next->prev = p;
-  p->id[0] = (gpr_uint8)((t->global.ping_counter >> 56) & 0xff);
-  p->id[1] = (gpr_uint8)((t->global.ping_counter >> 48) & 0xff);
-  p->id[2] = (gpr_uint8)((t->global.ping_counter >> 40) & 0xff);
-  p->id[3] = (gpr_uint8)((t->global.ping_counter >> 32) & 0xff);
-  p->id[4] = (gpr_uint8)((t->global.ping_counter >> 24) & 0xff);
-  p->id[5] = (gpr_uint8)((t->global.ping_counter >> 16) & 0xff);
-  p->id[6] = (gpr_uint8)((t->global.ping_counter >> 8) & 0xff);
-  p->id[7] = (gpr_uint8)(t->global.ping_counter & 0xff);
+  p->id[0] = (uint8_t)((t->global.ping_counter >> 56) & 0xff);
+  p->id[1] = (uint8_t)((t->global.ping_counter >> 48) & 0xff);
+  p->id[2] = (uint8_t)((t->global.ping_counter >> 40) & 0xff);
+  p->id[3] = (uint8_t)((t->global.ping_counter >> 32) & 0xff);
+  p->id[4] = (uint8_t)((t->global.ping_counter >> 24) & 0xff);
+  p->id[5] = (uint8_t)((t->global.ping_counter >> 16) & 0xff);
+  p->id[6] = (uint8_t)((t->global.ping_counter >> 8) & 0xff);
+  p->id[7] = (uint8_t)(t->global.ping_counter & 0xff);
   p->on_recv = on_recv;
   gpr_slice_buffer_add(&t->global.qbuf, grpc_chttp2_ping_create(0, p->id));
 }
 
 void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx,
                           grpc_chttp2_transport_parsing *transport_parsing,
-                          const gpr_uint8 *opaque_8bytes) {
+                          const uint8_t *opaque_8bytes) {
   grpc_chttp2_outstanding_ping *ping;
   grpc_chttp2_transport *t = TRANSPORT_FROM_PARSING(transport_parsing);
   grpc_chttp2_transport_global *transport_global = &t->global;
@@ -962,7 +962,7 @@
     t->global.sent_goaway = 1;
     grpc_chttp2_goaway_append(
         t->global.last_incoming_stream_id,
-        (gpr_uint32)grpc_chttp2_grpc_status_to_http2_error(op->goaway_status),
+        (uint32_t)grpc_chttp2_grpc_status_to_http2_error(op->goaway_status),
         gpr_slice_ref(*op->goaway_message), &t->global.qbuf);
     close_transport = !grpc_chttp2_has_streams(t);
   }
@@ -1048,7 +1048,7 @@
 }
 
 static void remove_stream(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
-                          gpr_uint32 id) {
+                          uint32_t id) {
   size_t new_stream_count;
   grpc_chttp2_stream *s =
       grpc_chttp2_stream_map_delete(&t->parsing_stream_map, id);
@@ -1074,9 +1074,9 @@
 
   new_stream_count = grpc_chttp2_stream_map_size(&t->parsing_stream_map) +
                      grpc_chttp2_stream_map_size(&t->new_stream_map);
-  GPR_ASSERT(new_stream_count <= GPR_UINT32_MAX);
+  GPR_ASSERT(new_stream_count <= UINT32_MAX);
   if (new_stream_count != t->global.concurrent_stream_count) {
-    t->global.concurrent_stream_count = (gpr_uint32)new_stream_count;
+    t->global.concurrent_stream_count = (uint32_t)new_stream_count;
     maybe_start_some_streams(exec_ctx, &t->global);
   }
 }
@@ -1090,7 +1090,7 @@
         &transport_global->qbuf,
         grpc_chttp2_rst_stream_create(
             stream_global->id,
-            (gpr_uint32)grpc_chttp2_grpc_status_to_http2_error(status)));
+            (uint32_t)grpc_chttp2_grpc_status_to_http2_error(status)));
   }
   grpc_chttp2_fake_status(exec_ctx, transport_global, stream_global, status,
                           NULL);
@@ -1192,8 +1192,8 @@
   gpr_slice hdr;
   gpr_slice status_hdr;
   gpr_slice message_pfx;
-  gpr_uint8 *p;
-  gpr_uint32 len = 0;
+  uint8_t *p;
+  uint32_t len = 0;
 
   GPR_ASSERT(status >= 0 && (int)status < 100);
 
@@ -1222,14 +1222,14 @@
   *p++ = 's';
   if (status < 10) {
     *p++ = 1;
-    *p++ = (gpr_uint8)('0' + status);
+    *p++ = (uint8_t)('0' + status);
   } else {
     *p++ = 2;
-    *p++ = (gpr_uint8)('0' + (status / 10));
-    *p++ = (gpr_uint8)('0' + (status % 10));
+    *p++ = (uint8_t)('0' + (status / 10));
+    *p++ = (uint8_t)('0' + (status % 10));
   }
   GPR_ASSERT(p == GPR_SLICE_END_PTR(status_hdr));
-  len += (gpr_uint32)GPR_SLICE_LENGTH(status_hdr);
+  len += (uint32_t)GPR_SLICE_LENGTH(status_hdr);
 
   if (optional_message) {
     GPR_ASSERT(GPR_SLICE_LENGTH(*optional_message) < 127);
@@ -1249,23 +1249,23 @@
     *p++ = 'a';
     *p++ = 'g';
     *p++ = 'e';
-    *p++ = (gpr_uint8)GPR_SLICE_LENGTH(*optional_message);
+    *p++ = (uint8_t)GPR_SLICE_LENGTH(*optional_message);
     GPR_ASSERT(p == GPR_SLICE_END_PTR(message_pfx));
-    len += (gpr_uint32)GPR_SLICE_LENGTH(message_pfx);
-    len += (gpr_uint32)GPR_SLICE_LENGTH(*optional_message);
+    len += (uint32_t)GPR_SLICE_LENGTH(message_pfx);
+    len += (uint32_t)GPR_SLICE_LENGTH(*optional_message);
   }
 
   hdr = gpr_slice_malloc(9);
   p = GPR_SLICE_START_PTR(hdr);
-  *p++ = (gpr_uint8)(len >> 16);
-  *p++ = (gpr_uint8)(len >> 8);
-  *p++ = (gpr_uint8)(len);
+  *p++ = (uint8_t)(len >> 16);
+  *p++ = (uint8_t)(len >> 8);
+  *p++ = (uint8_t)(len);
   *p++ = GRPC_CHTTP2_FRAME_HEADER;
   *p++ = GRPC_CHTTP2_DATA_FLAG_END_STREAM | GRPC_CHTTP2_DATA_FLAG_END_HEADERS;
-  *p++ = (gpr_uint8)(stream_global->id >> 24);
-  *p++ = (gpr_uint8)(stream_global->id >> 16);
-  *p++ = (gpr_uint8)(stream_global->id >> 8);
-  *p++ = (gpr_uint8)(stream_global->id);
+  *p++ = (uint8_t)(stream_global->id >> 24);
+  *p++ = (uint8_t)(stream_global->id >> 16);
+  *p++ = (uint8_t)(stream_global->id >> 8);
+  *p++ = (uint8_t)(stream_global->id);
   GPR_ASSERT(p == GPR_SLICE_END_PTR(hdr));
 
   gpr_slice_buffer_add(&transport_global->qbuf, hdr);
@@ -1307,14 +1307,14 @@
 }
 
 /** update window from a settings change */
-static void update_global_window(void *args, gpr_uint32 id, void *stream) {
+static void update_global_window(void *args, uint32_t id, void *stream) {
   grpc_chttp2_transport *t = args;
   grpc_chttp2_stream *s = stream;
   grpc_chttp2_transport_global *transport_global = &t->global;
   grpc_chttp2_stream_global *stream_global = &s->global;
   int was_zero;
   int is_zero;
-  gpr_int64 initial_window_update = t->parsing.initial_window_update;
+  int64_t initial_window_update = t->parsing.initial_window_update;
 
   was_zero = stream_global->outgoing_window <= 0;
   GRPC_CHTTP2_FLOW_CREDIT_STREAM("settings", transport_global, stream_global,
@@ -1374,7 +1374,7 @@
     grpc_chttp2_stream_map_move_into(&t->new_stream_map,
                                      &t->parsing_stream_map);
     transport_global->concurrent_stream_count =
-        (gpr_uint32)grpc_chttp2_stream_map_size(&t->parsing_stream_map);
+        (uint32_t)grpc_chttp2_stream_map_size(&t->parsing_stream_map);
     if (transport_parsing->initial_window_update != 0) {
       grpc_chttp2_stream_map_for_each(&t->parsing_stream_map,
                                       update_global_window, t);
@@ -1467,28 +1467,27 @@
     grpc_chttp2_transport_global *transport_global,
     grpc_chttp2_stream_global *stream_global, size_t max_size_hint,
     size_t have_already) {
-  gpr_uint32 max_recv_bytes;
+  uint32_t max_recv_bytes;
 
   /* clamp max recv hint to an allowable size */
-  if (max_size_hint >= GPR_UINT32_MAX - transport_global->stream_lookahead) {
-    max_recv_bytes = GPR_UINT32_MAX - transport_global->stream_lookahead;
+  if (max_size_hint >= UINT32_MAX - transport_global->stream_lookahead) {
+    max_recv_bytes = UINT32_MAX - transport_global->stream_lookahead;
   } else {
-    max_recv_bytes = (gpr_uint32)max_size_hint;
+    max_recv_bytes = (uint32_t)max_size_hint;
   }
 
   /* account for bytes already received but unknown to higher layers */
   if (max_recv_bytes >= have_already) {
-    max_recv_bytes -= (gpr_uint32)have_already;
+    max_recv_bytes -= (uint32_t)have_already;
   } else {
     max_recv_bytes = 0;
   }
 
   /* add some small lookahead to keep pipelines flowing */
-  GPR_ASSERT(max_recv_bytes <=
-             GPR_UINT32_MAX - transport_global->stream_lookahead);
+  GPR_ASSERT(max_recv_bytes <= UINT32_MAX - transport_global->stream_lookahead);
   max_recv_bytes += transport_global->stream_lookahead;
   if (stream_global->max_recv_bytes < max_recv_bytes) {
-    gpr_uint32 add_max_recv_bytes =
+    uint32_t add_max_recv_bytes =
         max_recv_bytes - stream_global->max_recv_bytes;
     GRPC_CHTTP2_FLOW_CREDIT_STREAM("op", transport_global, stream_global,
                                    max_recv_bytes, add_max_recv_bytes);
@@ -1589,8 +1588,8 @@
 
 grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create(
     grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing,
-    grpc_chttp2_stream_parsing *stream_parsing, gpr_uint32 frame_size,
-    gpr_uint32 flags, grpc_chttp2_incoming_frame_queue *add_to_queue) {
+    grpc_chttp2_stream_parsing *stream_parsing, uint32_t frame_size,
+    uint32_t flags, grpc_chttp2_incoming_frame_queue *add_to_queue) {
   grpc_chttp2_incoming_byte_stream *incoming_byte_stream =
       gpr_malloc(sizeof(*incoming_byte_stream));
   incoming_byte_stream->base.length = frame_size;
@@ -1620,7 +1619,7 @@
  */
 
 static char *format_flowctl_context_var(const char *context, const char *var,
-                                        gpr_int64 val, gpr_uint32 id,
+                                        int64_t val, uint32_t id,
                                         char **scope) {
   char *underscore_pos;
   char *result;
@@ -1655,8 +1654,7 @@
                                grpc_chttp2_flowctl_op op, const char *context1,
                                const char *var1, const char *context2,
                                const char *var2, int is_client,
-                               gpr_uint32 stream_id, gpr_int64 val1,
-                               gpr_int64 val2) {
+                               uint32_t stream_id, int64_t val1, int64_t val2) {
   char *scope1;
   char *scope2;
   char *label1 =
diff --git a/src/core/transport/metadata.c b/src/core/transport/metadata.c
index 02b2402..ada8899 100644
--- a/src/core/transport/metadata.c
+++ b/src/core/transport/metadata.c
@@ -81,12 +81,12 @@
 typedef struct internal_string {
   /* must be byte compatible with grpc_mdstr */
   gpr_slice slice;
-  gpr_uint32 hash;
+  uint32_t hash;
 
   /* private only data */
   gpr_atm refcnt;
 
-  gpr_uint8 has_base64_and_huffman_encoded;
+  uint8_t has_base64_and_huffman_encoded;
   gpr_slice_refcount refcount;
 
   gpr_slice base64_and_huffman;
@@ -131,7 +131,7 @@
 #define MDTAB_SHARD_COUNT ((size_t)(1 << LOG2_MDTAB_SHARD_COUNT))
 
 /* hash seed: decided at initialization time */
-static gpr_uint32 g_hash_seed;
+static uint32_t g_hash_seed;
 static int g_forced_hash_seed = 0;
 
 /* linearly probed hash tables for static element lookup */
@@ -145,7 +145,7 @@
 
 static void gc_mdtab(mdtab_shard *shard);
 
-void grpc_test_only_set_metadata_hash_seed(gpr_uint32 seed) {
+void grpc_test_only_set_metadata_hash_seed(uint32_t seed) {
   g_hash_seed = seed;
   g_forced_hash_seed = 1;
 }
@@ -153,7 +153,7 @@
 void grpc_mdctx_global_init(void) {
   size_t i, j;
   if (!g_forced_hash_seed) {
-    g_hash_seed = (gpr_uint32)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
+    g_hash_seed = (uint32_t)gpr_now(GPR_CLOCK_REALTIME).tv_nsec;
   }
   g_static_strtab_maxprobe = 0;
   g_static_mdtab_maxprobe = 0;
@@ -163,9 +163,9 @@
   for (i = 0; i < GRPC_STATIC_MDSTR_COUNT; i++) {
     grpc_mdstr *elem = &grpc_static_mdstr_table[i];
     const char *str = grpc_static_metadata_strings[i];
-    gpr_uint32 hash = gpr_murmur_hash3(str, strlen(str), g_hash_seed);
+    uint32_t hash = gpr_murmur_hash3(str, strlen(str), g_hash_seed);
     *(gpr_slice *)&elem->slice = gpr_slice_from_static_string(str);
-    *(gpr_uint32 *)&elem->hash = hash;
+    *(uint32_t *)&elem->hash = hash;
     for (j = 0;; j++) {
       size_t idx = (hash + j) % GPR_ARRAY_SIZE(g_static_strtab);
       if (g_static_strtab[idx] == NULL) {
@@ -183,7 +183,7 @@
         &grpc_static_mdstr_table[grpc_static_metadata_elem_indices[2 * i + 0]];
     grpc_mdstr *value =
         &grpc_static_mdstr_table[grpc_static_metadata_elem_indices[2 * i + 1]];
-    gpr_uint32 hash = GRPC_MDSTR_KV_HASH(key->hash, value->hash);
+    uint32_t hash = GRPC_MDSTR_KV_HASH(key->hash, value->hash);
     *(grpc_mdstr **)&elem->key = key;
     *(grpc_mdstr **)&elem->value = value;
     for (j = 0;; j++) {
@@ -327,7 +327,7 @@
 }
 
 grpc_mdstr *grpc_mdstr_from_string(const char *str) {
-  return grpc_mdstr_from_buffer((const gpr_uint8 *)str, strlen(str));
+  return grpc_mdstr_from_buffer((const uint8_t *)str, strlen(str));
 }
 
 grpc_mdstr *grpc_mdstr_from_slice(gpr_slice slice) {
@@ -337,8 +337,8 @@
   return result;
 }
 
-grpc_mdstr *grpc_mdstr_from_buffer(const gpr_uint8 *buf, size_t length) {
-  gpr_uint32 hash = gpr_murmur_hash3(buf, length, g_hash_seed);
+grpc_mdstr *grpc_mdstr_from_buffer(const uint8_t *buf, size_t length) {
+  uint32_t hash = gpr_murmur_hash3(buf, length, g_hash_seed);
   internal_string *s;
   strtab_shard *shard =
       &g_strtab_shard[SHARD_IDX(hash, LOG2_STRTAB_SHARD_COUNT)];
@@ -382,7 +382,7 @@
     s->slice.refcount = NULL;
     memcpy(s->slice.data.inlined.bytes, buf, length);
     s->slice.data.inlined.bytes[length] = 0;
-    s->slice.data.inlined.length = (gpr_uint8)length;
+    s->slice.data.inlined.length = (uint8_t)length;
   } else {
     /* string data goes after the internal_string header, and we +1 for null
        terminator */
@@ -391,7 +391,7 @@
     s->refcount.ref = slice_ref;
     s->refcount.unref = slice_unref;
     s->slice.refcount = &s->refcount;
-    s->slice.data.refcounted.bytes = (gpr_uint8 *)(s + 1);
+    s->slice.data.refcounted.bytes = (uint8_t *)(s + 1);
     s->slice.data.refcounted.length = length;
     memcpy(s->slice.data.refcounted.bytes, buf, length);
     /* add a null terminator for cheap c string conversion when desired */
@@ -449,7 +449,7 @@
   size_t i;
   internal_metadata **mdtab;
   internal_metadata *md, *next;
-  gpr_uint32 hash;
+  uint32_t hash;
 
   GPR_TIMER_BEGIN("grow_mdtab", 0);
 
@@ -486,7 +486,7 @@
                                                grpc_mdstr *mvalue) {
   internal_string *key = (internal_string *)mkey;
   internal_string *value = (internal_string *)mvalue;
-  gpr_uint32 hash = GRPC_MDSTR_KV_HASH(mkey->hash, mvalue->hash);
+  uint32_t hash = GRPC_MDSTR_KV_HASH(mkey->hash, mvalue->hash);
   internal_metadata *md;
   mdtab_shard *shard = &g_mdtab_shard[SHARD_IDX(hash, LOG2_MDTAB_SHARD_COUNT)];
   size_t i;
@@ -562,7 +562,7 @@
 }
 
 grpc_mdelem *grpc_mdelem_from_string_and_buffer(const char *key,
-                                                const gpr_uint8 *value,
+                                                const uint8_t *value,
                                                 size_t value_length) {
   return grpc_mdelem_from_metadata_strings(
       grpc_mdstr_from_string(key), grpc_mdstr_from_buffer(value, value_length));
@@ -601,7 +601,7 @@
           grpc_mdstr_as_c_string((grpc_mdstr *)md->value));
 #endif
   if (2 == gpr_atm_full_fetch_add(&md->refcnt, -1)) {
-    gpr_uint32 hash = GRPC_MDSTR_KV_HASH(md->key->hash, md->value->hash);
+    uint32_t hash = GRPC_MDSTR_KV_HASH(md->key->hash, md->value->hash);
     mdtab_shard *shard =
         &g_mdtab_shard[SHARD_IDX(hash, LOG2_MDTAB_SHARD_COUNT)];
     GPR_TIMER_BEGIN("grpc_mdelem_unref.to_zero", 0);
@@ -689,9 +689,9 @@
   return slice;
 }
 
-static int conforms_to(grpc_mdstr *s, const gpr_uint8 *legal_bits) {
-  const gpr_uint8 *p = GPR_SLICE_START_PTR(s->slice);
-  const gpr_uint8 *e = GPR_SLICE_END_PTR(s->slice);
+static int conforms_to(grpc_mdstr *s, const uint8_t *legal_bits) {
+  const uint8_t *p = GPR_SLICE_START_PTR(s->slice);
+  const uint8_t *e = GPR_SLICE_END_PTR(s->slice);
   for (; p != e; p++) {
     int idx = *p;
     int byte = idx / 8;
@@ -702,7 +702,7 @@
 }
 
 int grpc_mdstr_is_legal_header(grpc_mdstr *s) {
-  static const gpr_uint8 legal_header_bits[256 / 8] = {
+  static const uint8_t legal_header_bits[256 / 8] = {
       0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0x03, 0x00, 0x00, 0x00,
       0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
@@ -710,7 +710,7 @@
 }
 
 int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s) {
-  static const gpr_uint8 legal_header_bits[256 / 8] = {
+  static const uint8_t legal_header_bits[256 / 8] = {
       0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
       0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/src/core/transport/metadata.h b/src/core/transport/metadata.h
index 3d3efc6..a7c9fd6 100644
--- a/src/core/transport/metadata.h
+++ b/src/core/transport/metadata.h
@@ -74,7 +74,7 @@
 /* if changing this, make identical changes in internal_string in metadata.c */
 struct grpc_mdstr {
   const gpr_slice slice;
-  const gpr_uint32 hash;
+  const uint32_t hash;
   /* there is a private part to this in metadata.c */
 };
 
@@ -86,14 +86,14 @@
   /* there is a private part to this in metadata.c */
 };
 
-void grpc_test_only_set_metadata_hash_seed(gpr_uint32 seed);
+void grpc_test_only_set_metadata_hash_seed(uint32_t seed);
 
 /* Constructors for grpc_mdstr instances; take a variety of data types that
    clients may have handy */
 grpc_mdstr *grpc_mdstr_from_string(const char *str);
 /* Unrefs the slice. */
 grpc_mdstr *grpc_mdstr_from_slice(gpr_slice slice);
-grpc_mdstr *grpc_mdstr_from_buffer(const gpr_uint8 *str, size_t length);
+grpc_mdstr *grpc_mdstr_from_buffer(const uint8_t *str, size_t length);
 
 /* Returns a borrowed slice from the mdstr with its contents base64 encoded
    and huffman compressed */
@@ -107,7 +107,7 @@
 /* Unrefs the slices. */
 grpc_mdelem *grpc_mdelem_from_slices(gpr_slice key, gpr_slice value);
 grpc_mdelem *grpc_mdelem_from_string_and_buffer(const char *key,
-                                                const gpr_uint8 *value,
+                                                const uint8_t *value,
                                                 size_t value_length);
 
 /* Mutator and accessor for grpc_mdelem user data. The destructor function
diff --git a/src/core/transport/static_metadata.c b/src/core/transport/static_metadata.c
index 6e42379..bf8f607 100644
--- a/src/core/transport/static_metadata.c
+++ b/src/core/transport/static_metadata.c
@@ -46,23 +46,22 @@
 grpc_mdstr grpc_static_mdstr_table[GRPC_STATIC_MDSTR_COUNT];
 
 grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
-gpr_uintptr grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
+uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 3, 7, 5, 2, 4, 8, 6, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
 
-const gpr_uint8
-    grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] = {
-        11, 35, 10, 35, 12, 35, 12, 49, 13, 35, 14, 35, 15, 35, 16, 35, 17, 35,
-        19, 35, 20, 35, 21, 35, 24, 35, 25, 35, 26, 35, 27, 35, 28, 35, 29, 35,
-        30, 18, 30, 35, 31, 35, 32, 35, 36, 35, 37, 35, 38, 35, 39, 35, 42, 33,
-        42, 34, 42, 48, 42, 53, 42, 54, 42, 55, 42, 56, 43, 33, 43, 48, 43, 53,
-        46, 0,  46, 1,  46, 2,  50, 35, 57, 35, 58, 35, 59, 35, 60, 35, 61, 35,
-        62, 35, 63, 35, 64, 35, 65, 35, 66, 40, 66, 68, 67, 78, 67, 79, 69, 35,
-        70, 35, 71, 35, 72, 35, 73, 35, 74, 35, 75, 41, 75, 51, 75, 52, 76, 35,
-        77, 35, 80, 3,  80, 4,  80, 5,  80, 6,  80, 7,  80, 8,  80, 9,  81, 35,
-        82, 83, 84, 35, 85, 35, 86, 35, 87, 35, 88, 35};
+const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] =
+    {11, 35, 10, 35, 12, 35, 12, 49, 13, 35, 14, 35, 15, 35, 16, 35, 17, 35,
+     19, 35, 20, 35, 21, 35, 24, 35, 25, 35, 26, 35, 27, 35, 28, 35, 29, 35,
+     30, 18, 30, 35, 31, 35, 32, 35, 36, 35, 37, 35, 38, 35, 39, 35, 42, 33,
+     42, 34, 42, 48, 42, 53, 42, 54, 42, 55, 42, 56, 43, 33, 43, 48, 43, 53,
+     46, 0,  46, 1,  46, 2,  50, 35, 57, 35, 58, 35, 59, 35, 60, 35, 61, 35,
+     62, 35, 63, 35, 64, 35, 65, 35, 66, 40, 66, 68, 67, 78, 67, 79, 69, 35,
+     70, 35, 71, 35, 72, 35, 73, 35, 74, 35, 75, 41, 75, 51, 75, 52, 76, 35,
+     77, 35, 80, 3,  80, 4,  80, 5,  80, 6,  80, 7,  80, 8,  80, 9,  81, 35,
+     82, 83, 84, 35, 85, 35, 86, 35, 87, 35, 88, 35};
 
 const char *const grpc_static_metadata_strings[GRPC_STATIC_MDSTR_COUNT] = {
     "0", "1", "2", "200", "204", "206", "304", "400", "404", "500", "accept",
@@ -84,5 +83,5 @@
     "te", "trailers", "transfer-encoding", "user-agent", "vary", "via",
     "www-authenticate"};
 
-const gpr_uint8 grpc_static_accept_encoding_metadata[8] = {0,  29, 26, 30,
-                                                           28, 32, 27, 31};
+const uint8_t grpc_static_accept_encoding_metadata[8] = {0,  29, 26, 30,
+                                                         28, 32, 27, 31};
diff --git a/src/core/transport/static_metadata.h b/src/core/transport/static_metadata.h
index 0e630b1..199ce63 100644
--- a/src/core/transport/static_metadata.h
+++ b/src/core/transport/static_metadata.h
@@ -230,7 +230,7 @@
 
 #define GRPC_STATIC_MDELEM_COUNT 78
 extern grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
-extern gpr_uintptr grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
+extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
 /* "accept-charset": "" */
 #define GRPC_MDELEM_ACCEPT_CHARSET_EMPTY (&grpc_static_mdelem_table[0])
 /* "accept": "" */
@@ -397,10 +397,10 @@
 /* "www-authenticate": "" */
 #define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[77])
 
-extern const gpr_uint8
+extern const uint8_t
     grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2];
 extern const char *const grpc_static_metadata_strings[GRPC_STATIC_MDSTR_COUNT];
-extern const gpr_uint8 grpc_static_accept_encoding_metadata[8];
+extern const uint8_t grpc_static_accept_encoding_metadata[8];
 #define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs) \
   (&grpc_static_mdelem_table[grpc_static_accept_encoding_metadata[(algs)]])
 #endif /* GRPC_INTERNAL_CORE_TRANSPORT_STATIC_METADATA_H */
diff --git a/src/core/tsi/fake_transport_security.c b/src/core/tsi/fake_transport_security.c
index 99e28ab..72ac32a 100644
--- a/src/core/tsi/fake_transport_security.c
+++ b/src/core/tsi/fake_transport_security.c
@@ -112,12 +112,12 @@
   return TSI_DATA_CORRUPTED;
 }
 
-static gpr_uint32 load32_little_endian(const unsigned char *buf) {
-  return ((gpr_uint32)(buf[0]) | (gpr_uint32)(buf[1] << 8) |
-          (gpr_uint32)(buf[2] << 16) | (gpr_uint32)(buf[3] << 24));
+static uint32_t load32_little_endian(const unsigned char *buf) {
+  return ((uint32_t)(buf[0]) | (uint32_t)(buf[1] << 8) |
+          (uint32_t)(buf[2] << 16) | (uint32_t)(buf[3] << 24));
 }
 
-static void store32_little_endian(gpr_uint32 value, unsigned char *buf) {
+static void store32_little_endian(uint32_t value, unsigned char *buf) {
   buf[3] = (unsigned char)((value >> 24) & 0xFF);
   buf[2] = (unsigned char)((value >> 16) & 0xFF);
   buf[1] = (unsigned char)((value >> 8) & 0xFF);
@@ -219,7 +219,7 @@
   frame->offset = 0;
   frame->size = bytes_size + TSI_FAKE_FRAME_HEADER_SIZE;
   if (!tsi_fake_frame_ensure_size(frame)) return TSI_OUT_OF_RESOURCES;
-  store32_little_endian((gpr_uint32)frame->size, frame->data);
+  store32_little_endian((uint32_t)frame->size, frame->data);
   memcpy(frame->data + TSI_FAKE_FRAME_HEADER_SIZE, bytes, bytes_size);
   tsi_fake_frame_reset(frame, 1 /* needs draining */);
   return TSI_OK;
@@ -266,7 +266,7 @@
   if (frame->size == 0) {
     /* New frame, create a header. */
     size_t written_in_frame_size = 0;
-    store32_little_endian((gpr_uint32)impl->max_frame_size, frame_header);
+    store32_little_endian((uint32_t)impl->max_frame_size, frame_header);
     written_in_frame_size = TSI_FAKE_FRAME_HEADER_SIZE;
     result = fill_frame_from_bytes(frame_header, &written_in_frame_size, frame);
     if (result != TSI_INCOMPLETE_DATA) {
@@ -303,7 +303,7 @@
     frame->size = frame->offset;
     frame->offset = 0;
     frame->needs_draining = 1;
-    store32_little_endian((gpr_uint32)frame->size,
+    store32_little_endian((uint32_t)frame->size,
                           frame->data); /* Overwrite header. */
   }
   result = drain_frame_to_bytes(protected_output_frames,
diff --git a/src/core/tsi/ssl_transport_security.c b/src/core/tsi/ssl_transport_security.c
index a72cbf6..6adcaac 100644
--- a/src/core/tsi/ssl_transport_security.c
+++ b/src/core/tsi/ssl_transport_security.c
@@ -651,7 +651,7 @@
   }
   /* Safety check. */
   if ((current < *protocol_name_list) ||
-      ((gpr_uintptr)(current - *protocol_name_list) !=
+      ((uintptr_t)(current - *protocol_name_list) !=
        *protocol_name_list_length)) {
     return TSI_INTERNAL_ERROR;
   }
@@ -1074,7 +1074,7 @@
     unsigned char client_current_len = *(client_current++);
     const unsigned char *server_current = server_list;
     while ((server_current >= server_list) &&
-           (gpr_uintptr)(server_current - server_list) < server_list_len) {
+           (uintptr_t)(server_current - server_list) < server_list_len) {
       unsigned char server_current_len = *(server_current++);
       if ((client_current_len == server_current_len) &&
           !memcmp(client_current, server_current, server_current_len)) {
diff --git a/src/cpp/proto/proto_utils.cc b/src/cpp/proto/proto_utils.cc
index 898a1d4..79e7bf1 100644
--- a/src/cpp/proto/proto_utils.cc
+++ b/src/cpp/proto/proto_utils.cc
@@ -96,7 +96,7 @@
 
  private:
   const int block_size_;
-  gpr_int64 byte_count_;
+  int64_t byte_count_;
   gpr_slice_buffer* slice_buffer_;
   bool have_backup_;
   gpr_slice backup_slice_;
@@ -156,8 +156,8 @@
   }
 
  private:
-  gpr_int64 byte_count_;
-  gpr_int64 backup_count_;
+  int64_t byte_count_;
+  int64_t backup_count_;
   grpc_byte_buffer_reader reader_;
   gpr_slice slice_;
 };
diff --git a/src/cpp/util/time.cc b/src/cpp/util/time.cc
index 9c38b34..2685e31 100644
--- a/src/cpp/util/time.cc
+++ b/src/cpp/util/time.cc
@@ -57,8 +57,8 @@
     return;
   }
   nanoseconds nsecs = duration_cast<nanoseconds>(deadline - secs);
-  to->tv_sec = (gpr_int64)secs.count();
-  to->tv_nsec = (gpr_int32)nsecs.count();
+  to->tv_sec = (int64_t)secs.count();
+  to->tv_nsec = (int32_t)nsecs.count();
   to->clock_type = GPR_CLOCK_REALTIME;
 }
 
@@ -73,8 +73,8 @@
     return;
   }
   nanoseconds nsecs = duration_cast<nanoseconds>(deadline - secs);
-  to->tv_sec = (gpr_int64)secs.count();
-  to->tv_nsec = (gpr_int32)nsecs.count();
+  to->tv_sec = (int64_t)secs.count();
+  to->tv_nsec = (int32_t)nsecs.count();
   to->clock_type = GPR_CLOCK_REALTIME;
 }
 
diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c
index 0ef9be3..26f1537 100644
--- a/src/csharp/ext/grpc_csharp_ext.c
+++ b/src/csharp/ext/grpc_csharp_ext.c
@@ -167,9 +167,9 @@
   array->count++;
 }
 
-GPR_EXPORT gpr_intptr GPR_CALLTYPE
+GPR_EXPORT intptr_t GPR_CALLTYPE
 grpcsharp_metadata_array_count(grpc_metadata_array *array) {
-  return (gpr_intptr)array->count;
+  return (intptr_t)array->count;
 }
 
 GPR_EXPORT const char *GPR_CALLTYPE
@@ -184,10 +184,10 @@
   return array->metadata[index].value;
 }
 
-GPR_EXPORT gpr_intptr GPR_CALLTYPE grpcsharp_metadata_array_get_value_length(
+GPR_EXPORT intptr_t GPR_CALLTYPE grpcsharp_metadata_array_get_value_length(
     grpc_metadata_array *array, size_t index) {
   GPR_ASSERT(index < array->count);
-  return (gpr_intptr)array->metadata[index].value_length;
+  return (intptr_t)array->metadata[index].value_length;
 }
 
 /* Move contents of metadata array */
@@ -247,12 +247,12 @@
   return &(ctx->recv_initial_metadata);
 }
 
-GPR_EXPORT gpr_intptr GPR_CALLTYPE grpcsharp_batch_context_recv_message_length(
+GPR_EXPORT intptr_t GPR_CALLTYPE grpcsharp_batch_context_recv_message_length(
     const grpcsharp_batch_context *ctx) {
   if (!ctx->recv_message) {
     return -1;
   }
-  return (gpr_intptr)grpc_byte_buffer_length(ctx->recv_message);
+  return (intptr_t)grpc_byte_buffer_length(ctx->recv_message);
 }
 
 /*
@@ -323,10 +323,10 @@
   return &(ctx->server_rpc_new.request_metadata);
 }
 
-GPR_EXPORT gpr_int32 GPR_CALLTYPE
+GPR_EXPORT int32_t GPR_CALLTYPE
 grpcsharp_batch_context_recv_close_on_server_cancelled(
     const grpcsharp_batch_context *ctx) {
-  return (gpr_int32) ctx->recv_close_on_server_cancelled;
+  return (int32_t) ctx->recv_close_on_server_cancelled;
 }
 
 /* Init & shutdown */
@@ -378,7 +378,7 @@
 
 GPR_EXPORT grpc_call *GPR_CALLTYPE
 grpcsharp_channel_create_call(grpc_channel *channel, grpc_call *parent_call,
-                              gpr_uint32 propagation_mask,
+                              uint32_t propagation_mask,
                               grpc_completion_queue *cq,
                               const char *method, const char *host,
                               gpr_timespec deadline) {
@@ -387,7 +387,7 @@
 }
 
 GPR_EXPORT grpc_connectivity_state GPR_CALLTYPE
-grpcsharp_channel_check_connectivity_state(grpc_channel *channel, gpr_int32 try_to_connect) {
+grpcsharp_channel_check_connectivity_state(grpc_channel *channel, int32_t try_to_connect) {
   return grpc_channel_check_connectivity_state(channel, try_to_connect);
 }
 
@@ -469,7 +469,7 @@
   return gpr_convert_clock_type(t, target_clock);
 }
 
-GPR_EXPORT gpr_int32 GPR_CALLTYPE gprsharp_sizeof_timespec(void) {
+GPR_EXPORT int32_t GPR_CALLTYPE gprsharp_sizeof_timespec(void) {
   return sizeof(gpr_timespec);
 }
 
@@ -500,7 +500,7 @@
 GPR_EXPORT grpc_call_error GPR_CALLTYPE
 grpcsharp_call_start_unary(grpc_call *call, grpcsharp_batch_context *ctx,
                            const char *send_buffer, size_t send_buffer_len,
-                           grpc_metadata_array *initial_metadata, gpr_uint32 write_flags) {
+                           grpc_metadata_array *initial_metadata, uint32_t write_flags) {
   /* TODO: don't use magic number */
   grpc_op ops[6];
   ops[0].op = GRPC_OP_SEND_INITIAL_METADATA;
@@ -593,7 +593,7 @@
 
 GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_start_server_streaming(
     grpc_call *call, grpcsharp_batch_context *ctx, const char *send_buffer,
-    size_t send_buffer_len, grpc_metadata_array *initial_metadata, gpr_uint32 write_flags) {
+    size_t send_buffer_len, grpc_metadata_array *initial_metadata, uint32_t write_flags) {
   /* TODO: don't use magic number */
   grpc_op ops[4];
   ops[0].op = GRPC_OP_SEND_INITIAL_METADATA;
@@ -680,8 +680,8 @@
 GPR_EXPORT grpc_call_error GPR_CALLTYPE
 grpcsharp_call_send_message(grpc_call *call, grpcsharp_batch_context *ctx,
                             const char *send_buffer, size_t send_buffer_len,
-                            gpr_uint32 write_flags,
-                            gpr_int32 send_empty_initial_metadata) {
+                            uint32_t write_flags,
+                            int32_t send_empty_initial_metadata) {
   /* TODO: don't use magic number */
   grpc_op ops[2];
   size_t nops = send_empty_initial_metadata ? 2 : 1;
@@ -715,7 +715,7 @@
 GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_send_status_from_server(
     grpc_call *call, grpcsharp_batch_context *ctx, grpc_status_code status_code,
     const char *status_details, grpc_metadata_array *trailing_metadata,
-    gpr_int32 send_empty_initial_metadata) {
+    int32_t send_empty_initial_metadata) {
   /* TODO: don't use magic number */
   grpc_op ops[2];
   size_t nops = send_empty_initial_metadata ? 2 : 1;
@@ -801,7 +801,7 @@
   return server;
 }
 
-GPR_EXPORT gpr_int32 GPR_CALLTYPE
+GPR_EXPORT int32_t GPR_CALLTYPE
 grpcsharp_server_add_insecure_http2_port(grpc_server *server, const char *addr) {
   return grpc_server_add_insecure_http2_port(server, addr);
 }
@@ -899,7 +899,7 @@
   grpc_server_credentials_release(creds);
 }
 
-GPR_EXPORT gpr_int32 GPR_CALLTYPE
+GPR_EXPORT int32_t GPR_CALLTYPE
 grpcsharp_server_add_secure_http2_port(grpc_server *server, const char *addr,
                                        grpc_server_credentials *creds) {
   return grpc_server_add_secure_http2_port(server, addr, creds);
@@ -929,19 +929,19 @@
 typedef void(GPR_CALLTYPE *grpcsharp_metadata_interceptor_func)(
   void *state, const char *service_url, const char *method_name,
   grpc_credentials_plugin_metadata_cb cb,
-  void *user_data, gpr_int32 is_destroy);
+  void *user_data, int32_t is_destroy);
 
 static void grpcsharp_get_metadata_handler(
     void *state, grpc_auth_metadata_context context,
     grpc_credentials_plugin_metadata_cb cb, void *user_data) {
   grpcsharp_metadata_interceptor_func interceptor =
-      (grpcsharp_metadata_interceptor_func)(gpr_intptr)state;
+      (grpcsharp_metadata_interceptor_func)(intptr_t)state;
   interceptor(state, context.service_url, context.method_name, cb, user_data, 0);
 }
 
 static void grpcsharp_metadata_credentials_destroy_handler(void *state) {
   grpcsharp_metadata_interceptor_func interceptor =
-      (grpcsharp_metadata_interceptor_func)(gpr_intptr)state;
+      (grpcsharp_metadata_interceptor_func)(intptr_t)state;
   interceptor(state, NULL, NULL, NULL, NULL, 1);
 }
 
@@ -950,15 +950,15 @@
   grpc_metadata_credentials_plugin plugin;
   plugin.get_metadata = grpcsharp_get_metadata_handler;
   plugin.destroy = grpcsharp_metadata_credentials_destroy_handler;
-  plugin.state = (void*)(gpr_intptr)metadata_interceptor;
+  plugin.state = (void*)(intptr_t)metadata_interceptor;
   plugin.type = "";
   return grpc_metadata_credentials_create_from_plugin(plugin, NULL);
 }
 
 /* Logging */
 
-typedef void(GPR_CALLTYPE *grpcsharp_log_func)(const char *file, gpr_int32 line,
-                                               gpr_uint64 thd_id,
+typedef void(GPR_CALLTYPE *grpcsharp_log_func)(const char *file, int32_t line,
+                                               uint64_t thd_id,
                                                const char *severity_string,
                                                const char *msg);
 static grpcsharp_log_func log_func = NULL;
@@ -975,7 +975,7 @@
   gpr_set_log_function(grpcsharp_log_handler);
 }
 
-typedef void(GPR_CALLTYPE *test_callback_funcptr)(gpr_int32 success);
+typedef void(GPR_CALLTYPE *test_callback_funcptr)(int32_t success);
 
 /* Version info */
 GPR_EXPORT const char *GPR_CALLTYPE grpcsharp_version_string() {
@@ -992,6 +992,6 @@
 GPR_EXPORT void *GPR_CALLTYPE grpcsharp_test_nop(void *ptr) { return ptr; }
 
 /* For testing */
-GPR_EXPORT gpr_int32 GPR_CALLTYPE grpcsharp_sizeof_grpc_event(void) {
+GPR_EXPORT int32_t GPR_CALLTYPE grpcsharp_sizeof_grpc_event(void) {
   return sizeof(grpc_event);
 }
diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc
index c0e2b0f..c6e10bc 100644
--- a/src/node/ext/call.cc
+++ b/src/node/ext/call.cc
@@ -586,7 +586,7 @@
         return Nan::ThrowTypeError(
             "Call's fifth argument must be another call, if provided");
       }
-      gpr_uint32 propagate_flags = GRPC_PROPAGATE_DEFAULTS;
+      uint32_t propagate_flags = GRPC_PROPAGATE_DEFAULTS;
       if (info[5]->IsUint32()) {
         propagate_flags = Nan::To<uint32_t>(info[5]).FromJust();
       } else if (!(info[5]->IsUndefined() || info[5]->IsNull())) {
diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c
index a752a5f..265ab58 100644
--- a/src/ruby/ext/grpc/rb_grpc.c
+++ b/src/ruby/ext/grpc/rb_grpc.c
@@ -138,7 +138,7 @@
           d += 1;
           f -= 1;
         }
-        t.tv_sec = (gpr_int64)f;
+        t.tv_sec = (int64_t)f;
         if (f != t.tv_sec) {
           rb_raise(rb_eRangeError, "%f out of Time range",
                    RFLOAT_VALUE(time));
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index 5aceac6..832570a 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -78,7 +78,7 @@
 
 void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
                               const char *client_payload,
-                              size_t client_payload_length, gpr_uint32 flags) {
+                              size_t client_payload_length, uint32_t flags) {
   grpc_endpoint_pair sfd;
   thd_args a;
   gpr_thd_id id;
diff --git a/test/core/bad_client/bad_client.h b/test/core/bad_client/bad_client.h
index 2dd100a..19ddba8 100644
--- a/test/core/bad_client/bad_client.h
+++ b/test/core/bad_client/bad_client.h
@@ -53,7 +53,7 @@
    handled as expected. */
 void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
                               const char *client_payload,
-                              size_t client_payload_length, gpr_uint32 flags);
+                              size_t client_payload_length, uint32_t flags);
 
 #define GRPC_RUN_BAD_CLIENT_TEST(validator, payload, flags) \
   grpc_run_bad_client_test(validator, payload, sizeof(payload) - 1, flags)
diff --git a/test/core/bad_client/tests/server_registered_method.c b/test/core/bad_client/tests/server_registered_method.c
index d2876ff..dc6ecc5 100644
--- a/test/core/bad_client/tests/server_registered_method.c
+++ b/test/core/bad_client/tests/server_registered_method.c
@@ -53,7 +53,7 @@
   "\x10\x02te\x08trailers"                                    \
   "\x10\x0auser-agent\"bad-client grpc-c/0.12.0.0 (linux)"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static void verifier_succeeds(grpc_server *server, grpc_completion_queue *cq,
                               void *registered_method) {
diff --git a/test/core/bad_client/tests/simple_request.c b/test/core/bad_client/tests/simple_request.c
index 4df586e..c04319e 100644
--- a/test/core/bad_client/tests/simple_request.c
+++ b/test/core/bad_client/tests/simple_request.c
@@ -77,7 +77,7 @@
   "\x10\x0cgrpc-timeout\x02"                                               \
   "5S"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static void verifier(grpc_server *server, grpc_completion_queue *cq,
                      void *registered_method) {
diff --git a/test/core/bad_client/tests/window_overflow.c b/test/core/bad_client/tests/window_overflow.c
index 1c898f3..646d5c5 100644
--- a/test/core/bad_client/tests/window_overflow.c
+++ b/test/core/bad_client/tests/window_overflow.c
@@ -90,12 +90,11 @@
 
   addbuf(PFX_STR, sizeof(PFX_STR) - 1);
   for (i = 0; i < NUM_FRAMES; i++) {
-    gpr_uint8 hdr[9] = {(gpr_uint8)(FRAME_SIZE >> 16),
-                        (gpr_uint8)(FRAME_SIZE >> 8), (gpr_uint8)FRAME_SIZE, 0,
-                        0, 0, 0, 0, 1};
+    uint8_t hdr[9] = {(uint8_t)(FRAME_SIZE >> 16), (uint8_t)(FRAME_SIZE >> 8),
+                      (uint8_t)FRAME_SIZE, 0, 0, 0, 0, 0, 1};
     addbuf(hdr, sizeof(hdr));
     for (j = 0; j < MESSAGES_PER_FRAME; j++) {
-      gpr_uint8 message[5] = {0, 0, 0, 0, 0};
+      uint8_t message[5] = {0, 0, 0, 0, 0};
       addbuf(message, sizeof(message));
     }
   }
diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.c
index 08ab482..a78a079 100644
--- a/test/core/bad_ssl/bad_ssl_test.c
+++ b/test/core/bad_ssl/bad_ssl_test.c
@@ -46,7 +46,7 @@
 #include "test/core/end2end/cq_verifier.h"
 #include "test/core/util/test_config.h"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static void run_test(const char *target, size_t nops) {
   grpc_channel_credentials *ssl_creds =
diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c
index 5f6166c..cb99b3d 100644
--- a/test/core/client_config/lb_policies_test.c
+++ b/test/core/client_config/lb_policies_test.c
@@ -119,7 +119,7 @@
   gpr_free(spec);
 }
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static gpr_timespec n_millis_time(int n) {
   return gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
@@ -306,7 +306,7 @@
                 f->cq, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), NULL)).type !=
            GRPC_QUEUE_TIMEOUT) {
       GPR_ASSERT(ev.type == GRPC_OP_COMPLETE);
-      read_tag = ((int)(gpr_intptr)ev.tag);
+      read_tag = ((int)(intptr_t)ev.tag);
       gpr_log(GPR_DEBUG, "EVENT: success:%d, type:%d, tag:%d iter:%d",
               ev.success, ev.type, read_tag, iter_num);
       if (ev.success && read_tag >= 1000) {
diff --git a/test/core/compression/message_compress_test.c b/test/core/compression/message_compress_test.c
index e5a01ef..6d3d161 100644
--- a/test/core/compression/message_compress_test.c
+++ b/test/core/compression/message_compress_test.c
@@ -172,7 +172,7 @@
   gpr_slice_buffer corrupted;
   gpr_slice_buffer output;
   size_t idx;
-  const gpr_uint32 bad = 0xdeadbeef;
+  const uint32_t bad = 0xdeadbeef;
 
   gpr_slice_buffer_init(&input);
   gpr_slice_buffer_init(&corrupted);
diff --git a/test/core/end2end/cq_verifier.c b/test/core/end2end/cq_verifier.c
index 922de26..724d419 100644
--- a/test/core/end2end/cq_verifier.c
+++ b/test/core/end2end/cq_verifier.c
@@ -110,7 +110,7 @@
 static gpr_slice merge_slices(gpr_slice *slices, size_t nslices) {
   size_t i;
   size_t len = 0;
-  gpr_uint8 *cursor;
+  uint8_t *cursor;
   gpr_slice out;
 
   for (i = 0; i < nslices; i++) {
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index e5ee7c4..58e13a4 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -49,7 +49,7 @@
 
 /* This test exercises IPv4, IPv6, and dualstack sockets in various ways. */
 
-static void *tag(gpr_intptr i) { return (void *)i; }
+static void *tag(intptr_t i) { return (void *)i; }
 
 static gpr_timespec ms_from_now(int ms) {
   return GRPC_TIMEOUT_MILLIS_TO_DEADLINE(ms);
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c
index 8f6cdd8..c0bea7b 100644
--- a/test/core/end2end/end2end_nosec_tests.c
+++ b/test/core/end2end/end2end_nosec_tests.c
@@ -33,8 +33,6 @@
  *
  */
 
-
-
 /* This file is auto-generated */
 
 #include "test/core/end2end/end2end_tests.h"
@@ -77,7 +75,8 @@
 extern void simple_request(grpc_end2end_test_config config);
 extern void trailing_metadata(grpc_end2end_test_config config);
 
-void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config) {
+void grpc_end2end_tests(int argc, char **argv,
+                        grpc_end2end_test_config config) {
   int i;
 
   if (argc <= 1) {
@@ -264,4 +263,3 @@
     abort();
   }
 }
-
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c
index 42a3a70..4c3a018 100644
--- a/test/core/end2end/end2end_tests.c
+++ b/test/core/end2end/end2end_tests.c
@@ -33,8 +33,6 @@
  *
  */
 
-
-
 /* This file is auto-generated */
 
 #include "test/core/end2end/end2end_tests.h"
@@ -78,7 +76,8 @@
 extern void simple_request(grpc_end2end_test_config config);
 extern void trailing_metadata(grpc_end2end_test_config config);
 
-void grpc_end2end_tests(int argc, char **argv, grpc_end2end_test_config config) {
+void grpc_end2end_tests(int argc, char **argv,
+                        grpc_end2end_test_config config) {
   int i;
 
   if (argc <= 1) {
@@ -270,4 +269,3 @@
     abort();
   }
 }
-
diff --git a/test/core/end2end/end2end_tests.h b/test/core/end2end/end2end_tests.h
index 087abfd..bc44f43 100644
--- a/test/core/end2end/end2end_tests.h
+++ b/test/core/end2end/end2end_tests.h
@@ -54,7 +54,7 @@
 
 struct grpc_end2end_test_config {
   const char *name;
-  gpr_uint32 feature_mask;
+  uint32_t feature_mask;
   grpc_end2end_test_fixture (*create_fixture)(grpc_channel_args *client_args,
                                               grpc_channel_args *server_args);
   void (*init_client)(grpc_end2end_test_fixture *f,
diff --git a/test/core/end2end/invalid_call_argument_test.c b/test/core/end2end/invalid_call_argument_test.c
index 1fd4c01..4029e96 100644
--- a/test/core/end2end/invalid_call_argument_test.c
+++ b/test/core/end2end/invalid_call_argument_test.c
@@ -39,7 +39,7 @@
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
 
-static void *tag(gpr_intptr i) { return (void *)i; }
+static void *tag(intptr_t i) { return (void *)i; }
 
 struct test_state {
   int is_client;
diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c
index 775fb22..5c971ea 100644
--- a/test/core/end2end/no_server_test.c
+++ b/test/core/end2end/no_server_test.c
@@ -37,7 +37,7 @@
 #include "test/core/end2end/cq_verifier.h"
 #include "test/core/util/test_config.h"
 
-static void *tag(gpr_intptr i) { return (void *)i; }
+static void *tag(intptr_t i) { return (void *)i; }
 
 int main(int argc, char **argv) {
   grpc_channel *chan;
diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c
index 17f0b98..1458738 100644
--- a/test/core/end2end/tests/bad_hostname.c
+++ b/test/core/end2end/tests/bad_hostname.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/binary_metadata.c b/test/core/end2end/tests/binary_metadata.c
index 6b506ba..4eccd16 100644
--- a/test/core/end2end/tests/binary_metadata.c
+++ b/test/core/end2end/tests/binary_metadata.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/call_creds.c b/test/core/end2end/tests/call_creds.c
index 910d280..c9d4251 100644
--- a/test/core/end2end/tests/call_creds.c
+++ b/test/core/end2end/tests/call_creds.c
@@ -55,7 +55,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c
index a4e5dd1..4646bf7 100644
--- a/test/core/end2end/tests/cancel_after_accept.c
+++ b/test/core/end2end/tests/cancel_after_accept.c
@@ -46,7 +46,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_after_client_done.c b/test/core/end2end/tests/cancel_after_client_done.c
index 86d3595..364598a 100644
--- a/test/core/end2end/tests/cancel_after_client_done.c
+++ b/test/core/end2end/tests/cancel_after_client_done.c
@@ -46,7 +46,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c
index 47ade8c..ec0b0de 100644
--- a/test/core/end2end/tests/cancel_after_invoke.c
+++ b/test/core/end2end/tests/cancel_after_invoke.c
@@ -46,7 +46,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c
index e827a95..7b432fe 100644
--- a/test/core/end2end/tests/cancel_before_invoke.c
+++ b/test/core/end2end/tests/cancel_before_invoke.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c
index 2168e1d..214ab2b 100644
--- a/test/core/end2end/tests/cancel_in_a_vacuum.c
+++ b/test/core/end2end/tests/cancel_in_a_vacuum.c
@@ -46,7 +46,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.c
index cb4cd1b..1541ca0 100644
--- a/test/core/end2end/tests/cancel_with_status.c
+++ b/test/core/end2end/tests/cancel_with_status.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/channel_connectivity.c b/test/core/end2end/tests/channel_connectivity.c
index 8001f3f..0e21e65 100644
--- a/test/core/end2end/tests/channel_connectivity.c
+++ b/test/core/end2end/tests/channel_connectivity.c
@@ -40,7 +40,7 @@
 
 #include "test/core/end2end/cq_verifier.h"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 typedef struct {
   gpr_event started;
diff --git a/test/core/end2end/tests/channel_ping.c b/test/core/end2end/tests/channel_ping.c
index c97778f..73fab20 100644
--- a/test/core/end2end/tests/channel_ping.c
+++ b/test/core/end2end/tests/channel_ping.c
@@ -40,7 +40,7 @@
 
 #include "test/core/end2end/cq_verifier.h"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static void test_ping(grpc_end2end_test_config config) {
   grpc_end2end_test_fixture f = config.create_fixture(NULL, NULL);
diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.c
index 2aa8528..33b1d8f 100644
--- a/test/core/end2end/tests/compressed_payload.c
+++ b/test/core/end2end/tests/compressed_payload.c
@@ -50,7 +50,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
@@ -104,7 +104,7 @@
 
 static void request_with_payload_template(
     grpc_end2end_test_config config, const char *test_name,
-    gpr_uint32 send_flags_bitmask,
+    uint32_t send_flags_bitmask,
     grpc_compression_algorithm requested_compression_algorithm,
     grpc_compression_algorithm expected_compression_algorithm,
     grpc_metadata *client_metadata) {
diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c
index 98f3547..dc33034 100644
--- a/test/core/end2end/tests/default_host.c
+++ b/test/core/end2end/tests/default_host.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.c
index 0e261a0..5b2bbaf 100644
--- a/test/core/end2end/tests/disappearing_server.c
+++ b/test/core/end2end/tests/disappearing_server.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static gpr_timespec n_seconds_time(int n) {
   return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n);
diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c
index 6d85399..24320c0 100644
--- a/test/core/end2end/tests/empty_batch.c
+++ b/test/core/end2end/tests/empty_batch.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.c
index 69dc397..cc6a9d4 100644
--- a/test/core/end2end/tests/graceful_server_shutdown.c
+++ b/test/core/end2end/tests/graceful_server_shutdown.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/high_initial_seqno.c b/test/core/end2end/tests/high_initial_seqno.c
index 42328ae..8d16ef5 100644
--- a/test/core/end2end/tests/high_initial_seqno.c
+++ b/test/core/end2end/tests/high_initial_seqno.c
@@ -49,7 +49,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c
index a5319ae..fd4fe34 100644
--- a/test/core/end2end/tests/hpack_size.c
+++ b/test/core/end2end/tests/hpack_size.c
@@ -47,7 +47,7 @@
 #include "src/core/support/string.h"
 #include "test/core/end2end/cq_verifier.h"
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 const char *hobbits[][2] = {{"Adaldrida", "Brandybuck"},
                             {"Adamanta", "Took"},
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c
index 88879a9..f0b0198 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.c
index 09188be..1b41e89 100644
--- a/test/core/end2end/tests/large_metadata.c
+++ b/test/core/end2end/tests/large_metadata.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index a25579e..d6b2a06 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
@@ -348,7 +348,7 @@
        * both);
        * check this here */
       /* We'll get tag 303 or 403, we want 300, 400 */
-      live_call = ((int)(gpr_intptr)ev.tag) - 1;
+      live_call = ((int)(intptr_t)ev.tag) - 1;
       got_client_start = 1;
     }
   }
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c
index 4da42dd..59ab7f4 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/metadata.c b/test/core/end2end/tests/metadata.c
index 6cda008..5e92091 100644
--- a/test/core/end2end/tests/metadata.c
+++ b/test/core/end2end/tests/metadata.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.c
index 5df632b..2109310 100644
--- a/test/core/end2end/tests/negative_deadline.c
+++ b/test/core/end2end/tests/negative_deadline.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.c
index 0f3ec10..4bc1d63 100644
--- a/test/core/end2end/tests/no_op.c
+++ b/test/core/end2end/tests/no_op.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/payload.c b/test/core/end2end/tests/payload.c
index af86c19..bc220cb 100644
--- a/test/core/end2end/tests/payload.c
+++ b/test/core/end2end/tests/payload.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c
index 3d5f15f..8351f50 100644
--- a/test/core/end2end/tests/ping_pong_streaming.c
+++ b/test/core/end2end/tests/ping_pong_streaming.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c
index ad8981e..d9d2b19 100644
--- a/test/core/end2end/tests/registered_call.c
+++ b/test/core/end2end/tests/registered_call.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c
index fa2ed3b..340aba6 100644
--- a/test/core/end2end/tests/request_with_flags.c
+++ b/test/core/end2end/tests/request_with_flags.c
@@ -46,7 +46,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
@@ -99,7 +99,7 @@
 }
 
 static void test_invoke_request_with_flags(
-    grpc_end2end_test_config config, gpr_uint32 *flags_for_op,
+    grpc_end2end_test_config config, uint32_t *flags_for_op,
     grpc_call_error call_start_batch_expected_result) {
   grpc_call *c;
   gpr_slice request_payload_slice = gpr_slice_from_copied_string("hello world");
@@ -187,7 +187,7 @@
 
 void request_with_flags(grpc_end2end_test_config config) {
   size_t i;
-  gpr_uint32 flags_for_op[GRPC_OP_RECV_CLOSE_ON_SERVER + 1];
+  uint32_t flags_for_op[GRPC_OP_RECV_CLOSE_ON_SERVER + 1];
 
   {
     /* check that all grpc_op_types fail when their flag value is set to an
@@ -205,8 +205,8 @@
   }
   {
     /* check valid operation with allowed flags for GRPC_OP_SEND_BUFFER */
-    gpr_uint32 flags[] = {GRPC_WRITE_BUFFER_HINT, GRPC_WRITE_NO_COMPRESS,
-                          GRPC_WRITE_INTERNAL_COMPRESS};
+    uint32_t flags[] = {GRPC_WRITE_BUFFER_HINT, GRPC_WRITE_NO_COMPRESS,
+                        GRPC_WRITE_INTERNAL_COMPRESS};
     for (i = 0; i < GPR_ARRAY_SIZE(flags); ++i) {
       memset(flags_for_op, 0, sizeof(flags_for_op));
       flags_for_op[GRPC_OP_SEND_MESSAGE] = flags[i];
diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c
index 7b02465..1aced6a 100644
--- a/test/core/end2end/tests/request_with_payload.c
+++ b/test/core/end2end/tests/request_with_payload.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c
index 5c67499..6bca8d4 100644
--- a/test/core/end2end/tests/server_finishes_request.c
+++ b/test/core/end2end/tests/server_finishes_request.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/shutdown_finishes_calls.c b/test/core/end2end/tests/shutdown_finishes_calls.c
index 206b376..b56ba46 100644
--- a/test/core/end2end/tests/shutdown_finishes_calls.c
+++ b/test/core/end2end/tests/shutdown_finishes_calls.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/shutdown_finishes_tags.c b/test/core/end2end/tests/shutdown_finishes_tags.c
index 8e19c32..4a060de 100644
--- a/test/core/end2end/tests/shutdown_finishes_tags.c
+++ b/test/core/end2end/tests/shutdown_finishes_tags.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c
index 4657019..0afef75 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static gpr_timespec n_seconds_time(int n) {
   return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n);
diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c
index 9d3ecd5..3720cd1 100644
--- a/test/core/end2end/tests/simple_request.c
+++ b/test/core/end2end/tests/simple_request.c
@@ -47,7 +47,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/end2end/tests/trailing_metadata.c b/test/core/end2end/tests/trailing_metadata.c
index 31182bc..78525e9 100644
--- a/test/core/end2end/tests/trailing_metadata.c
+++ b/test/core/end2end/tests/trailing_metadata.c
@@ -45,7 +45,7 @@
 
 enum { TIMEOUT = 200000 };
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
                                             const char *test_name,
diff --git a/test/core/fling/server.c b/test/core/fling/server.c
index ae218b4..42be20e 100644
--- a/test/core/fling/server.c
+++ b/test/core/fling/server.c
@@ -73,7 +73,7 @@
 static grpc_op unary_ops[6];
 static int got_sigint = 0;
 
-static void *tag(gpr_intptr t) { return (void *)t; }
+static void *tag(intptr_t t) { return (void *)t; }
 
 typedef enum {
   FLING_SERVER_NEW_REQUEST = 1,
@@ -87,7 +87,7 @@
 
 typedef struct {
   gpr_refcount pending_ops;
-  gpr_uint32 flags;
+  uint32_t flags;
 } call_state;
 
 static void request_call(void) {
@@ -256,7 +256,7 @@
     s = ev.tag;
     switch (ev.type) {
       case GRPC_OP_COMPLETE:
-        switch ((gpr_intptr)s) {
+        switch ((intptr_t)s) {
           case FLING_SERVER_NEW_REQUEST:
             if (call != NULL) {
               if (0 ==
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c
index 4b72590..a66fe32 100644
--- a/test/core/iomgr/endpoint_tests.c
+++ b/test/core/iomgr/endpoint_tests.c
@@ -86,7 +86,7 @@
 static void end_test(grpc_endpoint_test_config config) { config.clean_up(); }
 
 static gpr_slice *allocate_blocks(size_t num_bytes, size_t slice_size,
-                                  size_t *num_blocks, gpr_uint8 *current_data) {
+                                  size_t *num_blocks, uint8_t *current_data) {
   size_t nslices = num_bytes / slice_size + (num_bytes % slice_size ? 1 : 0);
   gpr_slice *slices = malloc(sizeof(gpr_slice) * nslices);
   size_t num_bytes_left = num_bytes;
@@ -117,7 +117,7 @@
   size_t current_write_size;
   size_t bytes_written;
   int current_read_data;
-  gpr_uint8 current_write_data;
+  uint8_t current_write_data;
   int read_done;
   int write_done;
   gpr_slice_buffer incoming;
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c
index 4be6957..b186520 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.c
@@ -84,7 +84,7 @@
   sin->sin_family = AF_INET;
   sin->sin_addr.s_addr = htonl(0x7f000001);
   GPR_ASSERT(port >= 0 && port < 65536);
-  sin->sin_port = htons((gpr_uint16)port);
+  sin->sin_port = htons((uint16_t)port);
 }
 
 /* Dummy gRPC callback */
diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.c
index 5cf0994..a7b57c1 100644
--- a/test/core/iomgr/sockaddr_utils_test.c
+++ b/test/core/iomgr/sockaddr_utils_test.c
@@ -41,7 +41,7 @@
 #include <grpc/support/port_platform.h>
 #include "test/core/util/test_config.h"
 
-static struct sockaddr_in make_addr4(const gpr_uint8 *data, size_t data_len) {
+static struct sockaddr_in make_addr4(const uint8_t *data, size_t data_len) {
   struct sockaddr_in addr4;
   memset(&addr4, 0, sizeof(addr4));
   addr4.sin_family = AF_INET;
@@ -51,7 +51,7 @@
   return addr4;
 }
 
-static struct sockaddr_in6 make_addr6(const gpr_uint8 *data, size_t data_len) {
+static struct sockaddr_in6 make_addr6(const uint8_t *data, size_t data_len) {
   struct sockaddr_in6 addr6;
   memset(&addr6, 0, sizeof(addr6));
   addr6.sin6_family = AF_INET6;
@@ -61,15 +61,15 @@
   return addr6;
 }
 
-static const gpr_uint8 kMapped[] = {0, 0, 0,    0,    0,   0, 0, 0,
-                                    0, 0, 0xff, 0xff, 192, 0, 2, 1};
+static const uint8_t kMapped[] = {0, 0, 0,    0,    0,   0, 0, 0,
+                                  0, 0, 0xff, 0xff, 192, 0, 2, 1};
 
-static const gpr_uint8 kNotQuiteMapped[] = {0, 0, 0,    0,    0,   0, 0, 0,
-                                            0, 0, 0xff, 0xfe, 192, 0, 2, 99};
-static const gpr_uint8 kIPv4[] = {192, 0, 2, 1};
+static const uint8_t kNotQuiteMapped[] = {0, 0, 0,    0,    0,   0, 0, 0,
+                                          0, 0, 0xff, 0xfe, 192, 0, 2, 99};
+static const uint8_t kIPv4[] = {192, 0, 2, 1};
 
-static const gpr_uint8 kIPv6[] = {0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0,
-                                  0,    0,    0,    0,    0, 0, 0, 1};
+static const uint8_t kIPv6[] = {0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0,
+                                0,    0,    0,    0,    0, 0, 0, 1};
 
 static void test_sockaddr_is_v4mapped(void) {
   struct sockaddr_in input4;
diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c
index 9feac93..0aeec27 100644
--- a/test/core/iomgr/tcp_posix_test.c
+++ b/test/core/iomgr/tcp_posix_test.c
@@ -81,7 +81,7 @@
   int i;
   unsigned char buf[256];
   for (i = 0; i < 256; ++i) {
-    buf[i] = (gpr_uint8)i;
+    buf[i] = (uint8_t)i;
   }
   do {
     write_bytes = write(fd, buf, 256);
@@ -99,7 +99,7 @@
   unsigned char *buf = malloc(bytes);
   unsigned i;
   for (i = 0; i < bytes; ++i) {
-    buf[i] = (gpr_uint8)(i % 256);
+    buf[i] = (uint8_t)(i % 256);
   }
 
   do {
@@ -257,7 +257,7 @@
 };
 
 static gpr_slice *allocate_blocks(size_t num_bytes, size_t slice_size,
-                                  size_t *num_blocks, gpr_uint8 *current_data) {
+                                  size_t *num_blocks, uint8_t *current_data) {
   size_t nslices = num_bytes / slice_size + (num_bytes % slice_size ? 1u : 0u);
   gpr_slice *slices = gpr_malloc(sizeof(gpr_slice) * nslices);
   size_t num_bytes_left = num_bytes;
@@ -337,7 +337,7 @@
   struct write_socket_state state;
   size_t num_blocks;
   gpr_slice *slices;
-  gpr_uint8 current_data = 0;
+  uint8_t current_data = 0;
   gpr_slice_buffer outgoing;
   grpc_closure write_done_closure;
   gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20);
diff --git a/test/core/iomgr/timer_heap_test.c b/test/core/iomgr/timer_heap_test.c
index 941f61c..077a9fd 100644
--- a/test/core/iomgr/timer_heap_test.c
+++ b/test/core/iomgr/timer_heap_test.c
@@ -102,7 +102,7 @@
 }
 
 static void check_pq_top(grpc_timer *elements, grpc_timer_heap *pq,
-                         gpr_uint8 *inpq, size_t num_elements) {
+                         uint8_t *inpq, size_t num_elements) {
   gpr_timespec max_deadline = gpr_inf_past(GPR_CLOCK_REALTIME);
   size_t *max_deadline_indices =
       gpr_malloc(num_elements * sizeof(*max_deadline_indices));
@@ -160,7 +160,7 @@
   const size_t num_test_operations = 10000;
   size_t i;
   grpc_timer *test_elements = create_test_elements(num_test_elements);
-  gpr_uint8 *inpq = gpr_malloc(num_test_elements);
+  uint8_t *inpq = gpr_malloc(num_test_elements);
 
   grpc_timer_heap_init(&pq);
   memset(inpq, 0, num_test_elements);
diff --git a/test/core/iomgr/timer_list_test.c b/test/core/iomgr/timer_list_test.c
index 5a2d5b5..63014c3 100644
--- a/test/core/iomgr/timer_list_test.c
+++ b/test/core/iomgr/timer_list_test.c
@@ -44,7 +44,7 @@
 static int cb_called[MAX_CB][2];
 
 static void cb(grpc_exec_ctx *exec_ctx, void *arg, int success) {
-  cb_called[(gpr_intptr)arg][success]++;
+  cb_called[(intptr_t)arg][success]++;
 }
 
 static void add_test(void) {
@@ -60,7 +60,7 @@
   for (i = 0; i < 10; i++) {
     grpc_timer_init(&exec_ctx, &timers[i],
                     gpr_time_add(start, gpr_time_from_millis(10, GPR_TIMESPAN)),
-                    cb, (void *)(gpr_intptr)i, start);
+                    cb, (void *)(intptr_t)i, start);
   }
 
   /* 1010 ms timers.  will expire in the next epoch */
@@ -68,7 +68,7 @@
     grpc_timer_init(
         &exec_ctx, &timers[i],
         gpr_time_add(start, gpr_time_from_millis(1010, GPR_TIMESPAN)), cb,
-        (void *)(gpr_intptr)i, start);
+        (void *)(intptr_t)i, start);
   }
 
   /* collect timers.  Only the first batch should be ready. */
@@ -130,15 +130,15 @@
   grpc_timer_list_init(gpr_time_0(GPR_CLOCK_REALTIME));
   memset(cb_called, 0, sizeof(cb_called));
 
-  grpc_timer_init(&exec_ctx, &timers[0], tfm(100), cb, (void *)(gpr_intptr)0,
+  grpc_timer_init(&exec_ctx, &timers[0], tfm(100), cb, (void *)(intptr_t)0,
                   gpr_time_0(GPR_CLOCK_REALTIME));
-  grpc_timer_init(&exec_ctx, &timers[1], tfm(3), cb, (void *)(gpr_intptr)1,
+  grpc_timer_init(&exec_ctx, &timers[1], tfm(3), cb, (void *)(intptr_t)1,
                   gpr_time_0(GPR_CLOCK_REALTIME));
-  grpc_timer_init(&exec_ctx, &timers[2], tfm(100), cb, (void *)(gpr_intptr)2,
+  grpc_timer_init(&exec_ctx, &timers[2], tfm(100), cb, (void *)(intptr_t)2,
                   gpr_time_0(GPR_CLOCK_REALTIME));
-  grpc_timer_init(&exec_ctx, &timers[3], tfm(3), cb, (void *)(gpr_intptr)3,
+  grpc_timer_init(&exec_ctx, &timers[3], tfm(3), cb, (void *)(intptr_t)3,
                   gpr_time_0(GPR_CLOCK_REALTIME));
-  grpc_timer_init(&exec_ctx, &timers[4], tfm(1), cb, (void *)(gpr_intptr)4,
+  grpc_timer_init(&exec_ctx, &timers[4], tfm(1), cb, (void *)(intptr_t)4,
                   gpr_time_0(GPR_CLOCK_REALTIME));
   GPR_ASSERT(1 == grpc_timer_check(&exec_ctx, tfm(2), NULL));
   grpc_exec_ctx_finish(&exec_ctx);
diff --git a/test/core/json/json_rewrite.c b/test/core/json/json_rewrite.c
index 42fdbd6..0c615a9 100644
--- a/test/core/json/json_rewrite.c
+++ b/test/core/json/json_rewrite.c
@@ -94,33 +94,33 @@
   state->string_len = 0;
 }
 
-static void json_reader_string_add_char(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_char(void *userdata, uint32_t c) {
   json_reader_userdata *state = userdata;
   check_string(state, 1);
   GPR_ASSERT(c < 256);
   state->scratchpad[state->string_len++] = (char)c;
 }
 
-static void json_reader_string_add_utf32(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_utf32(void *userdata, uint32_t c) {
   if (c <= 0x7f) {
     json_reader_string_add_char(userdata, c);
   } else if (c <= 0x7ff) {
-    gpr_uint32 b1 = 0xc0u | ((c >> 6u) & 0x1fu);
-    gpr_uint32 b2 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xc0u | ((c >> 6u) & 0x1fu);
+    uint32_t b2 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
   } else if (c <= 0xffffu) {
-    gpr_uint32 b1 = 0xe0u | ((c >> 12u) & 0x0fu);
-    gpr_uint32 b2 = 0x80u | ((c >> 6u) & 0x3fu);
-    gpr_uint32 b3 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xe0u | ((c >> 12u) & 0x0fu);
+    uint32_t b2 = 0x80u | ((c >> 6u) & 0x3fu);
+    uint32_t b3 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
   } else if (c <= 0x1fffffu) {
-    gpr_uint32 b1 = 0xf0u | ((c >> 18u) & 0x07u);
-    gpr_uint32 b2 = 0x80u | ((c >> 12u) & 0x3fu);
-    gpr_uint32 b3 = 0x80u | ((c >> 6u) & 0x3fu);
-    gpr_uint32 b4 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xf0u | ((c >> 18u) & 0x07u);
+    uint32_t b2 = 0x80u | ((c >> 12u) & 0x3fu);
+    uint32_t b3 = 0x80u | ((c >> 6u) & 0x3fu);
+    uint32_t b4 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
@@ -128,13 +128,13 @@
   }
 }
 
-static gpr_uint32 json_reader_read_char(void *userdata) {
+static uint32_t json_reader_read_char(void *userdata) {
   int r;
   json_reader_userdata *state = userdata;
 
   r = fgetc(state->in);
   if (r == EOF) r = GRPC_JSON_READ_CHAR_EOF;
-  return (gpr_uint32)r;
+  return (uint32_t)r;
 }
 
 static void json_reader_container_begins(void *userdata, grpc_json_type type) {
diff --git a/test/core/json/json_rewrite_test.c b/test/core/json/json_rewrite_test.c
index 644a142..d99cb0d 100644
--- a/test/core/json/json_rewrite_test.c
+++ b/test/core/json/json_rewrite_test.c
@@ -105,33 +105,33 @@
   state->string_len = 0;
 }
 
-static void json_reader_string_add_char(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_char(void *userdata, uint32_t c) {
   json_reader_userdata *state = userdata;
   check_string(state, 1);
   GPR_ASSERT(c <= 256);
   state->scratchpad[state->string_len++] = (char)c;
 }
 
-static void json_reader_string_add_utf32(void *userdata, gpr_uint32 c) {
+static void json_reader_string_add_utf32(void *userdata, uint32_t c) {
   if (c <= 0x7f) {
     json_reader_string_add_char(userdata, c);
   } else if (c <= 0x7ffu) {
-    gpr_uint32 b1 = 0xc0u | ((c >> 6u) & 0x1fu);
-    gpr_uint32 b2 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xc0u | ((c >> 6u) & 0x1fu);
+    uint32_t b2 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
   } else if (c <= 0xffffu) {
-    gpr_uint32 b1 = 0xe0u | ((c >> 12u) & 0x0fu);
-    gpr_uint32 b2 = 0x80u | ((c >> 6u) & 0x3fu);
-    gpr_uint32 b3 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xe0u | ((c >> 12u) & 0x0fu);
+    uint32_t b2 = 0x80u | ((c >> 6u) & 0x3fu);
+    uint32_t b3 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
   } else if (c <= 0x1fffffu) {
-    gpr_uint32 b1 = 0xf0u | ((c >> 18u) & 0x07u);
-    gpr_uint32 b2 = 0x80u | ((c >> 12u) & 0x3fu);
-    gpr_uint32 b3 = 0x80u | ((c >> 6u) & 0x3fu);
-    gpr_uint32 b4 = 0x80u | (c & 0x3fu);
+    uint32_t b1 = 0xf0u | ((c >> 18u) & 0x07u);
+    uint32_t b2 = 0x80u | ((c >> 12u) & 0x3fu);
+    uint32_t b3 = 0x80u | ((c >> 6u) & 0x3fu);
+    uint32_t b4 = 0x80u | (c & 0x3fu);
     json_reader_string_add_char(userdata, b1);
     json_reader_string_add_char(userdata, b2);
     json_reader_string_add_char(userdata, b3);
@@ -139,7 +139,7 @@
   }
 }
 
-static gpr_uint32 json_reader_read_char(void *userdata) {
+static uint32_t json_reader_read_char(void *userdata) {
   int r;
   json_reader_userdata *state = userdata;
 
@@ -152,7 +152,7 @@
 
   r = fgetc(state->in);
   if (r == EOF) r = GRPC_JSON_READ_CHAR_EOF;
-  return (gpr_uint32)r;
+  return (uint32_t)r;
 }
 
 static void json_reader_container_begins(void *userdata, grpc_json_type type) {
diff --git a/test/core/json/json_stream_error_test.c b/test/core/json/json_stream_error_test.c
index 3464eb2..4007767 100644
--- a/test/core/json/json_stream_error_test.c
+++ b/test/core/json/json_stream_error_test.c
@@ -49,9 +49,7 @@
   g_string_clear_once = 1;
 }
 
-static gpr_uint32 read_char(void *userdata) {
-  return GRPC_JSON_READ_CHAR_ERROR;
-}
+static uint32_t read_char(void *userdata) { return GRPC_JSON_READ_CHAR_ERROR; }
 
 static grpc_json_reader_vtable reader_vtable = {
     string_clear, NULL, NULL, read_char, NULL, NULL,
diff --git a/test/core/security/base64_test.c b/test/core/security/base64_test.c
index a8f784d..e656d4c 100644
--- a/test/core/security/base64_test.c
+++ b/test/core/security/base64_test.c
@@ -71,7 +71,7 @@
   size_t i;
   char *b64;
   gpr_slice orig_decoded;
-  for (i = 0; i < sizeof(orig); i++) orig[i] = (gpr_uint8)i;
+  for (i = 0; i < sizeof(orig); i++) orig[i] = (uint8_t)i;
 
   /* Try all the different paddings. */
   for (i = 0; i < 3; i++) {
@@ -123,7 +123,7 @@
   char *b64;
   gpr_slice orig_decoded;
   int url_safe = 1;
-  for (i = 0; i < sizeof(orig); i++) orig[i] = (gpr_uint8)i;
+  for (i = 0; i < sizeof(orig); i++) orig[i] = (uint8_t)i;
 
   b64 = grpc_base64_encode(orig, sizeof(orig), url_safe, 0);
   orig_decoded = grpc_base64_decode(b64, !url_safe);
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c
index 9c526a7..7592f2c 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.c
@@ -487,7 +487,7 @@
 static void corrupt_jwt_sig(char *jwt) {
   gpr_slice sig;
   char *bad_b64_sig;
-  gpr_uint8 *sig_bytes;
+  uint8_t *sig_bytes;
   char *last_dot = strrchr(jwt, '.');
   GPR_ASSERT(last_dot != NULL);
   sig = grpc_base64_decode(last_dot + 1, 1);
diff --git a/test/core/security/secure_endpoint_test.c b/test/core/security/secure_endpoint_test.c
index 8aa80cc..240c459 100644
--- a/test/core/security/secure_endpoint_test.c
+++ b/test/core/security/secure_endpoint_test.c
@@ -68,12 +68,12 @@
     size_t still_pending_size;
     size_t total_buffer_size = 8192;
     size_t buffer_size = total_buffer_size;
-    gpr_uint8 *encrypted_buffer = gpr_malloc(buffer_size);
-    gpr_uint8 *cur = encrypted_buffer;
+    uint8_t *encrypted_buffer = gpr_malloc(buffer_size);
+    uint8_t *cur = encrypted_buffer;
     gpr_slice encrypted_leftover;
     for (i = 0; i < leftover_nslices; i++) {
       gpr_slice plain = leftover_slices[i];
-      gpr_uint8 *message_bytes = GPR_SLICE_START_PTR(plain);
+      uint8_t *message_bytes = GPR_SLICE_START_PTR(plain);
       size_t message_size = GPR_SLICE_LENGTH(plain);
       while (message_size > 0) {
         size_t protected_buffer_size_to_send = buffer_size;
diff --git a/test/core/statistics/census_log_tests.c b/test/core/statistics/census_log_tests.c
index 6968a56..aac20fd 100644
--- a/test/core/statistics/census_log_tests.c
+++ b/test/core/statistics/census_log_tests.c
@@ -47,22 +47,22 @@
 /* Fills in 'record' of size 'size'. Each byte in record is filled in with the
    same value. The value is extracted from 'record' pointer. */
 static void write_record(char *record, size_t size) {
-  char data = (gpr_uintptr)record % 255;
+  char data = (uintptr_t)record % 255;
   memset(record, data, size);
 }
 
 /* Reads fixed size records. Returns the number of records read in
    'num_records'. */
 static void read_records(size_t record_size, const char *buffer,
-                         size_t buffer_size, gpr_int32 *num_records) {
-  gpr_int32 ix;
+                         size_t buffer_size, int32_t *num_records) {
+  int32_t ix;
   GPR_ASSERT(buffer_size >= record_size);
   GPR_ASSERT(buffer_size % record_size == 0);
   *num_records = buffer_size / record_size;
   for (ix = 0; ix < *num_records; ++ix) {
     size_t jx;
     const char *record = buffer + (record_size * ix);
-    char data = (gpr_uintptr)record % 255;
+    char data = (uintptr_t)record % 255;
     for (jx = 0; jx < record_size; ++jx) {
       GPR_ASSERT(data == record[jx]);
     }
@@ -72,14 +72,14 @@
 /* Tries to write the specified number of records. Stops when the log gets
    full. Returns the number of records written. Spins for random
    number of times, up to 'max_spin_count', between writes. */
-static size_t write_records_to_log(int writer_id, gpr_int32 record_size,
-                                   gpr_int32 num_records,
-                                   gpr_int32 max_spin_count) {
-  gpr_int32 ix;
+static size_t write_records_to_log(int writer_id, int32_t record_size,
+                                   int32_t num_records,
+                                   int32_t max_spin_count) {
+  int32_t ix;
   int counter = 0;
   for (ix = 0; ix < num_records; ++ix) {
-    gpr_int32 jx;
-    gpr_int32 spin_count = max_spin_count ? rand() % max_spin_count : 0;
+    int32_t jx;
+    int32_t spin_count = max_spin_count ? rand() % max_spin_count : 0;
     char *record;
     if (counter++ == num_records / 10) {
       printf("   Writer %d: %d out of %d written\n", writer_id, ix,
@@ -106,7 +106,7 @@
   size_t records_read = 0;
   census_log_init_reader();
   while ((read_buffer = census_log_read_next(&bytes_available))) {
-    gpr_int32 num_records = 0;
+    int32_t num_records = 0;
     read_records(record_size, (const char *)read_buffer, bytes_available,
                  &num_records);
     records_read += num_records;
@@ -122,14 +122,14 @@
 }
 
 /* Given log size and record size, computes the minimum usable space. */
-static gpr_int32 min_usable_space(size_t log_size, size_t record_size) {
-  gpr_int32 usable_space;
-  gpr_int32 num_blocks =
+static int32_t min_usable_space(size_t log_size, size_t record_size) {
+  int32_t usable_space;
+  int32_t num_blocks =
       GPR_MAX(log_size / CENSUS_LOG_MAX_RECORD_SIZE, gpr_cpu_num_cores());
-  gpr_int32 waste_per_block = CENSUS_LOG_MAX_RECORD_SIZE % record_size;
+  int32_t waste_per_block = CENSUS_LOG_MAX_RECORD_SIZE % record_size;
   /* In the worst case, all except one core-local block is full. */
-  gpr_int32 num_full_blocks = num_blocks - 1;
-  usable_space = (gpr_int32)log_size -
+  int32_t num_full_blocks = num_blocks - 1;
+  usable_space = (int32_t)log_size -
                  (num_full_blocks * CENSUS_LOG_MAX_RECORD_SIZE) -
                  ((num_blocks - num_full_blocks) * waste_per_block);
   GPR_ASSERT(usable_space > 0);
@@ -142,9 +142,9 @@
    match the number of records read. */
 static void fill_log(size_t log_size, int no_fragmentation, int circular_log) {
   int size;
-  gpr_int32 records_written;
-  gpr_int32 usable_space;
-  gpr_int32 records_read;
+  int32_t records_written;
+  int32_t usable_space;
+  int32_t records_read;
   if (no_fragmentation) {
     int log2size = rand() % (CENSUS_LOG_2_MAX_RECORD_SIZE + 1);
     size = (1 << log2size);
@@ -175,7 +175,7 @@
   /* Record size. */
   size_t record_size;
   /* Number of records to write. */
-  gpr_int32 num_records;
+  int32_t num_records;
   /* Used to signal when writer is complete */
   gpr_cv *done;
   gpr_mu *mu;
@@ -187,7 +187,7 @@
 static void writer_thread(void *arg) {
   writer_thread_args *args = (writer_thread_args *)arg;
   /* Maximum number of times to spin between writes. */
-  static const gpr_int32 MAX_SPIN_COUNT = 50;
+  static const int32_t MAX_SPIN_COUNT = 50;
   int records_written = 0;
   printf("   Writer: %d\n", args->index);
   while (records_written < args->num_records) {
@@ -215,9 +215,9 @@
   /* Record size. */
   size_t record_size;
   /* Interval between read iterations. */
-  gpr_int32 read_iteration_interval_in_msec;
+  int32_t read_iteration_interval_in_msec;
   /* Total number of records. */
-  gpr_int32 total_records;
+  int32_t total_records;
   /* Signalled when reader should stop. */
   gpr_cv stop;
   int stop_flag;
@@ -231,9 +231,9 @@
    stopped via gpr_cv_signal(&args->stop). Sleeps for 'read_interval_in_msec'
    between read iterations. */
 static void reader_thread(void *arg) {
-  gpr_int32 records_read = 0;
+  int32_t records_read = 0;
   reader_thread_args *args = (reader_thread_args *)arg;
-  gpr_int32 num_iterations = 0;
+  int32_t num_iterations = 0;
   gpr_timespec interval;
   int counter = 0;
   printf("   Reader starting\n");
@@ -268,9 +268,9 @@
 #define NUM_WRITERS 5
 static void multiple_writers_single_reader(int circular_log) {
   /* Sleep interval between read iterations. */
-  static const gpr_int32 READ_ITERATION_INTERVAL_IN_MSEC = 10;
+  static const int32_t READ_ITERATION_INTERVAL_IN_MSEC = 10;
   /* Number of records written by each writer. */
-  static const gpr_int32 NUM_RECORDS_PER_WRITER = 10 * 1024 * 1024;
+  static const int32_t NUM_RECORDS_PER_WRITER = 10 * 1024 * 1024;
   /* Maximum record size. */
   static const size_t MAX_RECORD_SIZE = 10;
   int ix;
@@ -282,7 +282,7 @@
   gpr_cv reader_done;
   gpr_mu reader_mu; /* protects reader_done and reader.running */
   reader_thread_args reader;
-  gpr_int32 record_size = 1 + rand() % MAX_RECORD_SIZE;
+  int32_t record_size = 1 + rand() % MAX_RECORD_SIZE;
   printf("   Record size: %d\n", record_size);
   /* Create and start writers. */
   gpr_cv_init(&writers_done);
@@ -417,8 +417,8 @@
 /* Tries reading beyond pending write. */
 void test_read_beyond_pending_record(void) {
   /* Start a write. */
-  gpr_uint32 incomplete_record_size = 10;
-  gpr_uint32 complete_record_size = 20;
+  uint32_t incomplete_record_size = 10;
+  uint32_t complete_record_size = 20;
   size_t bytes_available;
   void *complete_record;
   const void *record_read;
@@ -459,7 +459,7 @@
   size_t bytes_available;
   const void *record_read;
   void *record_written;
-  gpr_uint32 block_read = 0;
+  uint32_t block_read = 0;
   printf("Starting test: detached while reading\n");
   setup_test(0);
   /* Start a write. */
diff --git a/test/core/statistics/hash_table_test.c b/test/core/statistics/hash_table_test.c
index efebd79..3b119db 100644
--- a/test/core/statistics/hash_table_test.c
+++ b/test/core/statistics/hash_table_test.c
@@ -44,9 +44,9 @@
 #include <grpc/support/time.h>
 #include "test/core/util/test_config.h"
 
-static gpr_uint64 hash64(const void *k) {
+static uint64_t hash64(const void *k) {
   size_t len = strlen(k);
-  gpr_uint64 higher = gpr_murmur_hash3((const char *)k, len / 2, 0);
+  uint64_t higher = gpr_murmur_hash3((const char *)k, len / 2, 0);
   return higher << 32 |
          gpr_murmur_hash3((const char *)(k) + len / 2, len - len / 2, 0);
 }
@@ -55,7 +55,7 @@
   return strcmp((const char *)k1, (const char *)k2);
 }
 
-static gpr_uint64 force_collision(const void *k) {
+static uint64_t force_collision(const void *k) {
   return (1997 + hash64(k) % 3);
 }
 
@@ -85,8 +85,8 @@
 static void test_table_with_int_key(void) {
   census_ht_option opt = {CENSUS_HT_UINT64, 7, NULL, NULL, NULL, NULL};
   census_ht *ht = census_ht_create(&opt);
-  gpr_uint64 i = 0;
-  gpr_uint64 sum_of_keys = 0;
+  uint64_t i = 0;
+  uint64_t sum_of_keys = 0;
   size_t num_elements;
   census_ht_kv *elements = NULL;
   GPR_ASSERT(ht != NULL);
@@ -97,15 +97,15 @@
   for (i = 0; i < 20; ++i) {
     census_ht_key key;
     key.val = i;
-    census_ht_insert(ht, key, (void *)(gpr_intptr)i);
+    census_ht_insert(ht, key, (void *)(intptr_t)i);
     GPR_ASSERT(census_ht_get_size(ht) == i + 1);
   }
   for (i = 0; i < 20; i++) {
-    gpr_uint64 *val = NULL;
+    uint64_t *val = NULL;
     census_ht_key key;
     key.val = i;
     val = census_ht_find(ht, key);
-    GPR_ASSERT(val == (void *)(gpr_intptr)i);
+    GPR_ASSERT(val == (void *)(intptr_t)i);
   }
   elements = census_ht_get_all_elements(ht, &num_elements);
   GPR_ASSERT(elements != NULL);
@@ -189,7 +189,7 @@
                           &cmp_str_keys, NULL, NULL};
   census_ht *ht = census_ht_create(&opt);
   char key_str[1000][GPR_LTOA_MIN_BUFSIZE];
-  gpr_uint64 val = 0;
+  uint64_t val = 0;
   unsigned i = 0;
   for (i = 0; i < 1000; i++) {
     census_ht_key key;
@@ -246,7 +246,7 @@
   for (i = 0; i < 9; i++) {
     census_ht_key key;
     int *val_ptr;
-    gpr_uint32 expected_tbl_sz = 9 - i;
+    uint32_t expected_tbl_sz = 9 - i;
     GPR_ASSERT(census_ht_get_size(ht) == expected_tbl_sz);
     key.ptr = (void *)(keys[i]);
     val_ptr = census_ht_find(ht, key);
diff --git a/test/core/support/alloc_test.c b/test/core/support/alloc_test.c
index dc0a2ac..ea6306c 100644
--- a/test/core/support/alloc_test.c
+++ b/test/core/support/alloc_test.c
@@ -39,17 +39,17 @@
 
 static void *fake_realloc(void *addr, size_t size) { return (void *)size; }
 
-static void fake_free(void *addr) { *((gpr_intptr *)addr) = 0xdeadd00d; }
+static void fake_free(void *addr) { *((intptr_t *)addr) = 0xdeadd00d; }
 
 static void test_custom_allocs() {
   const gpr_allocation_functions default_fns = gpr_get_allocation_functions();
-  gpr_intptr addr_to_free = 0;
+  intptr_t addr_to_free = 0;
   int *i;
   gpr_allocation_functions fns = {fake_malloc, fake_realloc, fake_free};
 
   gpr_set_allocation_functions(fns);
-  GPR_ASSERT((void*)(size_t)0xdeadbeef == gpr_malloc(0xdeadbeef));
-  GPR_ASSERT((void*)(size_t)0xcafed00d == gpr_realloc(0, 0xcafed00d));
+  GPR_ASSERT((void *)(size_t)0xdeadbeef == gpr_malloc(0xdeadbeef));
+  GPR_ASSERT((void *)(size_t)0xcafed00d == gpr_realloc(0, 0xcafed00d));
 
   gpr_free(&addr_to_free);
   GPR_ASSERT(addr_to_free == 0xdeadd00d);
diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.c
index fa83878..f041166 100644
--- a/test/core/support/cpu_test.c
+++ b/test/core/support/cpu_test.c
@@ -69,7 +69,7 @@
 struct cpu_test {
   gpr_mu mu;
   int nthreads;
-  gpr_uint32 ncores;
+  uint32_t ncores;
   int is_done;
   gpr_cv done_cv;
   int *used; /* is this core used? */
@@ -78,7 +78,7 @@
 
 static void worker_thread(void *arg) {
   struct cpu_test *ct = (struct cpu_test *)arg;
-  gpr_uint32 cpu;
+  uint32_t cpu;
   int r = 12345678;
   int i, j;
   for (i = 0; i < 1000 / GRPC_TEST_SLOWDOWN_FACTOR; i++) {
@@ -103,7 +103,7 @@
 }
 
 static void cpu_test(void) {
-  gpr_uint32 i;
+  uint32_t i;
   int cores_seen = 0;
   struct cpu_test ct;
   gpr_thd_id thd;
diff --git a/test/core/support/murmur_hash_test.c b/test/core/support/murmur_hash_test.c
index 1762486..562b956 100644
--- a/test/core/support/murmur_hash_test.c
+++ b/test/core/support/murmur_hash_test.c
@@ -38,16 +38,16 @@
 
 #include <string.h>
 
-typedef gpr_uint32 (*hash_func)(const void *key, size_t len, gpr_uint32 seed);
+typedef uint32_t (*hash_func)(const void *key, size_t len, uint32_t seed);
 
 /* From smhasher:
    This should hopefully be a thorough and uambiguous test of whether a hash
    is correctly implemented on a given platform */
 
-static void verification_test(hash_func hash, gpr_uint32 expected) {
-  gpr_uint8 key[256];
-  gpr_uint32 hashes[256];
-  gpr_uint32 final = 0;
+static void verification_test(hash_func hash, uint32_t expected) {
+  uint8_t key[256];
+  uint32_t hashes[256];
+  uint32_t final = 0;
   size_t i;
 
   memset(key, 0, sizeof(key));
@@ -57,8 +57,8 @@
      the seed */
 
   for (i = 0; i < 256; i++) {
-    key[i] = (gpr_uint8)i;
-    hashes[i] = hash(key, i, (gpr_uint32)(256u - i));
+    key[i] = (uint8_t)i;
+    hashes[i] = hash(key, i, (uint32_t)(256u - i));
   }
 
   /* Then hash the result array */
diff --git a/test/core/support/slice_test.c b/test/core/support/slice_test.c
index 9e0e22c..2df3837 100644
--- a/test/core/support/slice_test.c
+++ b/test/core/support/slice_test.c
@@ -66,7 +66,7 @@
     }
     /* We must be able to write to every byte of the data */
     for (i = 0; i < length; i++) {
-      GPR_SLICE_START_PTR(slice)[i] = (gpr_uint8)i;
+      GPR_SLICE_START_PTR(slice)[i] = (uint8_t)i;
     }
     /* And finally we must succeed in destroying the slice */
     gpr_slice_unref(slice);
@@ -76,7 +76,7 @@
 static void do_nothing(void *ignored) {}
 
 static void test_slice_new_returns_something_sensible(void) {
-  gpr_uint8 x;
+  uint8_t x;
 
   gpr_slice slice = gpr_slice_new(&x, 1, do_nothing);
   GPR_ASSERT(slice.refcount);
@@ -93,7 +93,7 @@
 }
 
 static void test_slice_new_with_len_returns_something_sensible(void) {
-  gpr_uint8 x;
+  uint8_t x;
   int num_refs = 5; /* To test adding/removing an arbitrary number of refs */
   int i;
 
@@ -131,7 +131,7 @@
      beginning of the slice. */
   slice = gpr_slice_malloc(length);
   for (i = 0; i < length; i++) {
-    GPR_SLICE_START_PTR(slice)[i] = (gpr_uint8)i;
+    GPR_SLICE_START_PTR(slice)[i] = (uint8_t)i;
   }
 
   /* Ensure that for all subsets length is correct and that we start on the
@@ -141,7 +141,7 @@
       sub = gpr_slice_sub(slice, i, j);
       GPR_ASSERT(GPR_SLICE_LENGTH(sub) == j - i);
       for (k = 0; k < j - i; k++) {
-        GPR_ASSERT(GPR_SLICE_START_PTR(sub)[k] == (gpr_uint8)(i + k));
+        GPR_ASSERT(GPR_SLICE_START_PTR(sub)[k] == (uint8_t)(i + k));
       }
       gpr_slice_unref(sub);
     }
@@ -170,7 +170,7 @@
      beginning of the slice. */
   slice = gpr_slice_malloc(length);
   for (i = 0; i < length; i++) {
-    GPR_SLICE_START_PTR(slice)[i] = (gpr_uint8)i;
+    GPR_SLICE_START_PTR(slice)[i] = (uint8_t)i;
   }
 
   /* Ensure that for all subsets length is correct and that we start on the
@@ -198,7 +198,7 @@
      beginning of the slice. */
   slice = gpr_slice_malloc(length);
   for (i = 0; i < length; i++) {
-    GPR_SLICE_START_PTR(slice)[i] = (gpr_uint8)i;
+    GPR_SLICE_START_PTR(slice)[i] = (uint8_t)i;
   }
 
   /* Ensure that for all subsets length is correct and that we start on the
diff --git a/test/core/support/string_test.c b/test/core/support/string_test.c
index c97d317..c1d0f12 100644
--- a/test/core/support/string_test.c
+++ b/test/core/support/string_test.c
@@ -59,7 +59,7 @@
   GPR_ASSERT(NULL == gpr_strdup(NULL));
 }
 
-static void expect_dump(const char *buf, size_t len, gpr_uint32 flags,
+static void expect_dump(const char *buf, size_t len, uint32_t flags,
                         const char *result) {
   char *got = gpr_dump(buf, len, flags);
   GPR_ASSERT(0 == strcmp(got, result));
@@ -76,7 +76,7 @@
   expect_dump("ab", 2, GPR_DUMP_HEX | GPR_DUMP_ASCII, "61 62 'ab'");
 }
 
-static void expect_slice_dump(gpr_slice slice, gpr_uint32 flags,
+static void expect_slice_dump(gpr_slice slice, uint32_t flags,
                               const char *result) {
   char *got = gpr_dump_slice(slice, flags);
   GPR_ASSERT(0 == strcmp(got, result));
@@ -105,12 +105,12 @@
 }
 
 static void test_pu32_fail(const char *s) {
-  gpr_uint32 out;
+  uint32_t out;
   GPR_ASSERT(!gpr_parse_bytes_to_uint32(s, strlen(s), &out));
 }
 
-static void test_pu32_succeed(const char *s, gpr_uint32 want) {
-  gpr_uint32 out;
+static void test_pu32_succeed(const char *s, uint32_t want) {
+  uint32_t out;
   GPR_ASSERT(gpr_parse_bytes_to_uint32(s, strlen(s), &out));
   GPR_ASSERT(out == want);
 }
@@ -318,19 +318,19 @@
   LOG_TEST_NAME("test_int64toa");
 
   /* zero */
-  GPR_ASSERT(1 == gpr_int64toa(0, buf));
+  GPR_ASSERT(1 == int64_ttoa(0, buf));
   GPR_ASSERT(0 == strcmp("0", buf));
 
   /* positive */
-  GPR_ASSERT(3 == gpr_int64toa(123, buf));
+  GPR_ASSERT(3 == int64_ttoa(123, buf));
   GPR_ASSERT(0 == strcmp("123", buf));
 
   /* large positive */
-  GPR_ASSERT(19 == gpr_int64toa(9223372036854775807LL, buf));
+  GPR_ASSERT(19 == int64_ttoa(9223372036854775807LL, buf));
   GPR_ASSERT(0 == strcmp("9223372036854775807", buf));
 
   /* large negative */
-  GPR_ASSERT(20 == gpr_int64toa(-9223372036854775807LL - 1, buf));
+  GPR_ASSERT(20 == int64_ttoa(-9223372036854775807LL - 1, buf));
   GPR_ASSERT(0 == strcmp("-9223372036854775808", buf));
 }
 
diff --git a/test/core/support/sync_test.c b/test/core/support/sync_test.c
index 73f68e4..0149bc3 100644
--- a/test/core/support/sync_test.c
+++ b/test/core/support/sync_test.c
@@ -149,8 +149,8 @@
 struct test {
   int threads; /* number of threads */
 
-  gpr_int64 iterations; /* number of iterations per thread */
-  gpr_int64 counter;
+  int64_t iterations; /* number of iterations per thread */
+  int64_t counter;
   int thread_count; /* used to allocate thread ids */
   int done;         /* threads not yet completed */
   int incr_step;    /* how much to increment/decrement refcount each time */
@@ -171,7 +171,7 @@
 };
 
 /* Return pointer to a new struct test. */
-static struct test *test_new(int threads, gpr_int64 iterations, int incr_step) {
+static struct test *test_new(int threads, int64_t iterations, int incr_step) {
   struct test *m = gpr_malloc(sizeof(*m));
   m->threads = threads;
   m->iterations = iterations;
@@ -246,7 +246,7 @@
    */
 static void test(const char *name, void (*body)(void *m),
                  void (*extra)(void *m), int timeout_s, int incr_step) {
-  gpr_int64 iterations = 1024;
+  int64_t iterations = 1024;
   struct test *m;
   gpr_timespec start = gpr_now(GPR_CLOCK_REALTIME);
   gpr_timespec time_taken;
@@ -279,7 +279,7 @@
 /* Increment m->counter on each iteration; then mark thread as done.  */
 static void inc(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_mu_lock(&m->mu);
     m->counter++;
@@ -292,7 +292,7 @@
    then mark thread as done.  */
 static void inctry(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations;) {
     if (gpr_mu_trylock(&m->mu)) {
       m->counter++;
@@ -307,7 +307,7 @@
    thread as done.  */
 static void inc_by_turns(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   int id = thread_id(m);
   for (i = 0; i != m->iterations; i++) {
     gpr_mu_lock(&m->mu);
@@ -325,7 +325,7 @@
    then mark thread as done. */
 static void inc_with_1ms_delay(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_timespec deadline;
     gpr_mu_lock(&m->mu);
@@ -343,7 +343,7 @@
    for timing; then mark thread as done. */
 static void inc_with_1ms_delay_event(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_timespec deadline;
     deadline = gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
@@ -361,7 +361,7 @@
    until it succeeds. */
 static void many_producers(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   int x = thread_id(m);
   if ((x & 1) == 0) {
     for (i = 0; i != m->iterations; i++) {
@@ -381,8 +381,8 @@
    then mark thread as done. */
 static void consumer(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 n = m->iterations * m->threads;
-  gpr_int64 i;
+  int64_t n = m->iterations * m->threads;
+  int64_t i;
   int value;
   for (i = 0; i != n; i++) {
     queue_remove(&m->q, &value, gpr_inf_future(GPR_CLOCK_REALTIME));
@@ -401,7 +401,7 @@
    m->counter, then mark thread as done.  */
 static void statsinc(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations; i++) {
     gpr_stats_inc(&m->stats_counter, 1);
   }
@@ -416,7 +416,7 @@
    then mark thread as done.  */
 static void refinc(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 i;
+  int64_t i;
   for (i = 0; i != m->iterations; i++) {
     if (m->incr_step == 1) {
       gpr_ref(&m->refcount);
@@ -435,8 +435,8 @@
    decrement caused the counter to reach zero, then mark thread as done.  */
 static void refcheck(void *v /*=m*/) {
   struct test *m = v;
-  gpr_int64 n = m->iterations * m->threads * m->incr_step;
-  gpr_int64 i;
+  int64_t n = m->iterations * m->threads * m->incr_step;
+  int64_t i;
   GPR_ASSERT(gpr_event_wait(&m->event, gpr_inf_future(GPR_CLOCK_REALTIME)) ==
              (void *)1);
   GPR_ASSERT(gpr_event_get(&m->event) == (void *)1);
diff --git a/test/core/support/tls_test.c b/test/core/support/tls_test.c
index 0a3c284..c6fb1a4 100644
--- a/test/core/support/tls_test.c
+++ b/test/core/support/tls_test.c
@@ -46,7 +46,7 @@
 GPR_TLS_DECL(test_var);
 
 static void thd_body(void *arg) {
-  gpr_intptr i;
+  intptr_t i;
 
   GPR_ASSERT(gpr_tls_get(&test_var) == 0);
 
diff --git a/test/core/support/useful_test.c b/test/core/support/useful_test.c
index cbf4f02..3665bbf 100644
--- a/test/core/support/useful_test.c
+++ b/test/core/support/useful_test.c
@@ -39,7 +39,7 @@
 int main(int argc, char **argv) {
   int four[4];
   int five[5];
-  gpr_uint32 bitset = 0;
+  uint32_t bitset = 0;
   grpc_test_init(argc, argv);
 
   GPR_ASSERT(GPR_MIN(1, 2) == 1);
@@ -51,8 +51,8 @@
   GPR_ASSERT(GPR_CLAMP(2, 0, 2) == 2);
   GPR_ASSERT(GPR_CLAMP(-1, 0, 2) == 0);
   GPR_ASSERT(GPR_CLAMP(3, 0, 2) == 2);
-  GPR_ASSERT(GPR_ROTL((gpr_uint32)0x80000001, 1) == 3);
-  GPR_ASSERT(GPR_ROTR((gpr_uint32)0x80000001, 1) == 0xc0000000);
+  GPR_ASSERT(GPR_ROTL((uint32_t)0x80000001, 1) == 3);
+  GPR_ASSERT(GPR_ROTR((uint32_t)0x80000001, 1) == 0xc0000000);
   GPR_ASSERT(GPR_ARRAY_SIZE(four) == 4);
   GPR_ASSERT(GPR_ARRAY_SIZE(five) == 5);
 
diff --git a/test/core/surface/alarm_test.c b/test/core/surface/alarm_test.c
index 52fe4ea..054c328 100644
--- a/test/core/surface/alarm_test.c
+++ b/test/core/surface/alarm_test.c
@@ -41,7 +41,7 @@
 #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
 
 static void *create_test_tag(void) {
-  static gpr_intptr i = 0;
+  static intptr_t i = 0;
   return (void *)(++i);
 }
 
diff --git a/test/core/surface/completion_queue_test.c b/test/core/surface/completion_queue_test.c
index 8a24d82..ec49840 100644
--- a/test/core/surface/completion_queue_test.c
+++ b/test/core/surface/completion_queue_test.c
@@ -44,7 +44,7 @@
 #define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
 
 static void *create_test_tag(void) {
-  static gpr_intptr i = 0;
+  static intptr_t i = 0;
   return (void *)(++i);
 }
 
@@ -274,29 +274,28 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
 
   gpr_log(GPR_INFO, "producer %d started", opt->id);
-  gpr_event_set(&opt->on_started, (void *)(gpr_intptr)1);
+  gpr_event_set(&opt->on_started, (void *)(intptr_t)1);
   GPR_ASSERT(gpr_event_wait(opt->phase1, ten_seconds_time()));
 
   gpr_log(GPR_INFO, "producer %d phase 1", opt->id);
   for (i = 0; i < TEST_THREAD_EVENTS; i++) {
-    grpc_cq_begin_op(opt->cc, (void *)(gpr_intptr)1);
+    grpc_cq_begin_op(opt->cc, (void *)(intptr_t)1);
   }
 
   gpr_log(GPR_INFO, "producer %d phase 1 done", opt->id);
-  gpr_event_set(&opt->on_phase1_done, (void *)(gpr_intptr)1);
+  gpr_event_set(&opt->on_phase1_done, (void *)(intptr_t)1);
   GPR_ASSERT(gpr_event_wait(opt->phase2, ten_seconds_time()));
 
   gpr_log(GPR_INFO, "producer %d phase 2", opt->id);
   for (i = 0; i < TEST_THREAD_EVENTS; i++) {
-    grpc_cq_end_op(&exec_ctx, opt->cc, (void *)(gpr_intptr)1, 1,
-                   free_completion, NULL,
-                   gpr_malloc(sizeof(grpc_cq_completion)));
+    grpc_cq_end_op(&exec_ctx, opt->cc, (void *)(intptr_t)1, 1, free_completion,
+                   NULL, gpr_malloc(sizeof(grpc_cq_completion)));
     opt->events_triggered++;
     grpc_exec_ctx_finish(&exec_ctx);
   }
 
   gpr_log(GPR_INFO, "producer %d phase 2 done", opt->id);
-  gpr_event_set(&opt->on_finished, (void *)(gpr_intptr)1);
+  gpr_event_set(&opt->on_finished, (void *)(intptr_t)1);
   grpc_exec_ctx_finish(&exec_ctx);
 }
 
@@ -305,13 +304,13 @@
   grpc_event ev;
 
   gpr_log(GPR_INFO, "consumer %d started", opt->id);
-  gpr_event_set(&opt->on_started, (void *)(gpr_intptr)1);
+  gpr_event_set(&opt->on_started, (void *)(intptr_t)1);
   GPR_ASSERT(gpr_event_wait(opt->phase1, ten_seconds_time()));
 
   gpr_log(GPR_INFO, "consumer %d phase 1", opt->id);
 
   gpr_log(GPR_INFO, "consumer %d phase 1 done", opt->id);
-  gpr_event_set(&opt->on_phase1_done, (void *)(gpr_intptr)1);
+  gpr_event_set(&opt->on_phase1_done, (void *)(intptr_t)1);
   GPR_ASSERT(gpr_event_wait(opt->phase2, ten_seconds_time()));
 
   gpr_log(GPR_INFO, "consumer %d phase 2", opt->id);
@@ -324,7 +323,7 @@
         break;
       case GRPC_QUEUE_SHUTDOWN:
         gpr_log(GPR_INFO, "consumer %d phase 2 done", opt->id);
-        gpr_event_set(&opt->on_finished, (void *)(gpr_intptr)1);
+        gpr_event_set(&opt->on_finished, (void *)(intptr_t)1);
         return;
       case GRPC_QUEUE_TIMEOUT:
         gpr_log(GPR_ERROR, "Invalid timeout received");
@@ -366,7 +365,7 @@
   /* start phase1: producers will pre-declare all operations they will
      complete */
   gpr_log(GPR_INFO, "start phase 1");
-  gpr_event_set(&phase1, (void *)(gpr_intptr)1);
+  gpr_event_set(&phase1, (void *)(intptr_t)1);
 
   gpr_log(GPR_INFO, "wait phase 1");
   for (i = 0; i < producers + consumers; i++) {
@@ -376,7 +375,7 @@
 
   /* start phase2: operations will complete, and consumers will consume them */
   gpr_log(GPR_INFO, "start phase 2");
-  gpr_event_set(&phase2, (void *)(gpr_intptr)1);
+  gpr_event_set(&phase2, (void *)(intptr_t)1);
 
   /* in parallel, we shutdown the completion channel - all events should still
      be consumed */
diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.c
index 35b0212..e03cce1 100644
--- a/test/core/surface/lame_client_test.c
+++ b/test/core/surface/lame_client_test.c
@@ -45,7 +45,7 @@
 
 grpc_closure transport_op_cb;
 
-static void *tag(gpr_intptr x) { return (void *)x; }
+static void *tag(intptr_t x) { return (void *)x; }
 
 void verify_connectivity(grpc_exec_ctx *exec_ctx, void *arg, int success) {
   grpc_transport_op *op = arg;
diff --git a/test/core/transport/chttp2/hpack_table_test.c b/test/core/transport/chttp2/hpack_table_test.c
index fde3524..39f4174 100644
--- a/test/core/transport/chttp2/hpack_table_test.c
+++ b/test/core/transport/chttp2/hpack_table_test.c
@@ -51,7 +51,7 @@
   GPR_ASSERT(gpr_slice_str_cmp(mdstr->slice, str) == 0);
 }
 
-static void assert_index(const grpc_chttp2_hptbl *tbl, gpr_uint32 idx,
+static void assert_index(const grpc_chttp2_hptbl *tbl, uint32_t idx,
                          const char *key, const char *value) {
   grpc_mdelem *md = grpc_chttp2_hptbl_lookup(tbl, idx);
   assert_str(tbl, md->key, key);
@@ -172,7 +172,7 @@
 
 static void test_find(void) {
   grpc_chttp2_hptbl tbl;
-  gpr_uint32 i;
+  uint32_t i;
   char buffer[32];
   grpc_mdelem *elem;
   grpc_chttp2_hptbl_find_result r;
@@ -255,7 +255,7 @@
   GPR_ASSERT(r.has_value == 1);
 
   for (i = 0; i < tbl.num_ents; i++) {
-    gpr_uint32 expect = 9999 - i;
+    uint32_t expect = 9999 - i;
     gpr_ltoa(expect, buffer);
 
     r = find_simple(&tbl, "test", buffer);
diff --git a/test/core/transport/chttp2/stream_map_test.c b/test/core/transport/chttp2/stream_map_test.c
index 81fb80f..527d2fe 100644
--- a/test/core/transport/chttp2/stream_map_test.c
+++ b/test/core/transport/chttp2/stream_map_test.c
@@ -82,9 +82,9 @@
 }
 
 /* test add & lookup */
-static void test_basic_add_find(gpr_uint32 n) {
+static void test_basic_add_find(uint32_t n) {
   grpc_chttp2_stream_map map;
-  gpr_uint32 i;
+  uint32_t i;
   size_t got;
 
   LOG_TEST("test_basic_add_find");
@@ -93,36 +93,36 @@
   grpc_chttp2_stream_map_init(&map, 8);
   GPR_ASSERT(0 == grpc_chttp2_stream_map_size(&map));
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(uintptr_t)i);
   }
   GPR_ASSERT(n == grpc_chttp2_stream_map_size(&map));
   GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(&map, 0));
   GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(&map, n + 1));
   for (i = 1; i <= n; i++) {
-    got = (gpr_uintptr)grpc_chttp2_stream_map_find(&map, i);
+    got = (uintptr_t)grpc_chttp2_stream_map_find(&map, i);
     GPR_ASSERT(i == got);
   }
   grpc_chttp2_stream_map_destroy(&map);
 }
 
 /* verify that for_each gets the right values during test_delete_evens_XXX */
-static void verify_for_each(void *user_data, gpr_uint32 stream_id, void *ptr) {
-  gpr_uint32 *for_each_check = user_data;
+static void verify_for_each(void *user_data, uint32_t stream_id, void *ptr) {
+  uint32_t *for_each_check = user_data;
   GPR_ASSERT(ptr);
   GPR_ASSERT(*for_each_check == stream_id);
   *for_each_check += 2;
 }
 
-static void check_delete_evens(grpc_chttp2_stream_map *map, gpr_uint32 n) {
-  gpr_uint32 for_each_check = 1;
-  gpr_uint32 i;
+static void check_delete_evens(grpc_chttp2_stream_map *map, uint32_t n) {
+  uint32_t for_each_check = 1;
+  uint32_t i;
   size_t got;
 
   GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(map, 0));
   GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(map, n + 1));
   for (i = 1; i <= n; i++) {
     if (i & 1) {
-      got = (gpr_uintptr)grpc_chttp2_stream_map_find(map, i);
+      got = (uintptr_t)grpc_chttp2_stream_map_find(map, i);
       GPR_ASSERT(i == got);
     } else {
       GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(map, i));
@@ -139,20 +139,20 @@
 
 /* add a bunch of keys, delete the even ones, and make sure the map is
    consistent */
-static void test_delete_evens_sweep(gpr_uint32 n) {
+static void test_delete_evens_sweep(uint32_t n) {
   grpc_chttp2_stream_map map;
-  gpr_uint32 i;
+  uint32_t i;
 
   LOG_TEST("test_delete_evens_sweep");
   gpr_log(GPR_INFO, "n = %d", n);
 
   grpc_chttp2_stream_map_init(&map, 8);
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(uintptr_t)i);
   }
   for (i = 1; i <= n; i++) {
     if ((i & 1) == 0) {
-      GPR_ASSERT((void *)(gpr_uintptr)i ==
+      GPR_ASSERT((void *)(uintptr_t)i ==
                  grpc_chttp2_stream_map_delete(&map, i));
     }
   }
@@ -162,16 +162,16 @@
 
 /* add a bunch of keys, delete the even ones immediately, and make sure the map
    is consistent */
-static void test_delete_evens_incremental(gpr_uint32 n) {
+static void test_delete_evens_incremental(uint32_t n) {
   grpc_chttp2_stream_map map;
-  gpr_uint32 i;
+  uint32_t i;
 
   LOG_TEST("test_delete_evens_incremental");
   gpr_log(GPR_INFO, "n = %d", n);
 
   grpc_chttp2_stream_map_init(&map, 8);
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(uintptr_t)i);
     if ((i & 1) == 0) {
       grpc_chttp2_stream_map_delete(&map, i);
     }
@@ -182,10 +182,10 @@
 
 /* add a bunch of keys, delete old ones after some time, ensure the
    backing array does not grow */
-static void test_periodic_compaction(gpr_uint32 n) {
+static void test_periodic_compaction(uint32_t n) {
   grpc_chttp2_stream_map map;
-  gpr_uint32 i;
-  gpr_uint32 del;
+  uint32_t i;
+  uint32_t del;
 
   LOG_TEST("test_periodic_compaction");
   gpr_log(GPR_INFO, "n = %d", n);
@@ -193,10 +193,10 @@
   grpc_chttp2_stream_map_init(&map, 16);
   GPR_ASSERT(map.capacity == 16);
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(uintptr_t)i);
     if (i > 8) {
       del = i - 8;
-      GPR_ASSERT((void *)(gpr_uintptr)del ==
+      GPR_ASSERT((void *)(uintptr_t)del ==
                  grpc_chttp2_stream_map_delete(&map, del));
     }
   }
@@ -205,9 +205,9 @@
 }
 
 int main(int argc, char **argv) {
-  gpr_uint32 n = 1;
-  gpr_uint32 prev = 1;
-  gpr_uint32 tmp;
+  uint32_t n = 1;
+  uint32_t prev = 1;
+  uint32_t tmp;
 
   grpc_test_init(argc, argv);
 
diff --git a/test/core/transport/chttp2/varint_test.c b/test/core/transport/chttp2/varint_test.c
index 31fcb7e..f06116a 100644
--- a/test/core/transport/chttp2/varint_test.c
+++ b/test/core/transport/chttp2/varint_test.c
@@ -38,10 +38,9 @@
 
 #include "test/core/util/test_config.h"
 
-static void test_varint(gpr_uint32 value, gpr_uint32 prefix_bits,
-                        gpr_uint8 prefix_or, const char *expect_bytes,
-                        size_t expect_length) {
-  gpr_uint32 nbytes = GRPC_CHTTP2_VARINT_LENGTH(value, prefix_bits);
+static void test_varint(uint32_t value, uint32_t prefix_bits, uint8_t prefix_or,
+                        const char *expect_bytes, size_t expect_length) {
+  uint32_t nbytes = GRPC_CHTTP2_VARINT_LENGTH(value, prefix_bits);
   gpr_slice expect = gpr_slice_from_copied_buffer(expect_bytes, expect_length);
   gpr_slice slice;
   gpr_log(GPR_DEBUG, "Test: 0x%08x", value);
diff --git a/test/core/util/parse_hexstring.c b/test/core/util/parse_hexstring.c
index eced317..3ad7ce5 100644
--- a/test/core/util/parse_hexstring.c
+++ b/test/core/util/parse_hexstring.c
@@ -37,8 +37,8 @@
 gpr_slice parse_hexstring(const char *hexstring) {
   size_t nibbles = 0;
   const char *p = 0;
-  gpr_uint8 *out;
-  gpr_uint8 temp;
+  uint8_t *out;
+  uint8_t temp;
   gpr_slice slice;
 
   for (p = hexstring; *p; p++) {
@@ -54,10 +54,10 @@
   temp = 0;
   for (p = hexstring; *p; p++) {
     if (*p >= '0' && *p <= '9') {
-      temp = (gpr_uint8)(temp << 4) | (gpr_uint8)(*p - '0');
+      temp = (uint8_t)(temp << 4) | (uint8_t)(*p - '0');
       nibbles++;
     } else if (*p >= 'a' && *p <= 'f') {
-      temp = (gpr_uint8)(temp << 4) | (gpr_uint8)(*p - 'a' + 10);
+      temp = (uint8_t)(temp << 4) | (uint8_t)(*p - 'a' + 10);
       nibbles++;
     }
     if (nibbles == 2) {
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index 0a50660..732a51c 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -174,7 +174,7 @@
   /* Try binding to port */
   addr.sin_family = AF_INET;
   addr.sin_addr.s_addr = INADDR_ANY;
-  addr.sin_port = htons((gpr_uint16)*port);
+  addr.sin_port = htons((uint16_t)*port);
   if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
     gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno));
     close(fd);
diff --git a/test/core/util/slice_splitter.c b/test/core/util/slice_splitter.c
index 0f05072..95b55a6 100644
--- a/test/core/util/slice_splitter.c
+++ b/test/core/util/slice_splitter.c
@@ -119,7 +119,7 @@
 }
 
 gpr_slice grpc_slice_merge(gpr_slice *slices, size_t nslices) {
-  gpr_uint8 *out = NULL;
+  uint8_t *out = NULL;
   size_t length = 0;
   size_t capacity = 0;
   size_t i;
diff --git a/test/core/util/test_tcp_server.c b/test/core/util/test_tcp_server.c
index c700d36..53b574d 100644
--- a/test/core/util/test_tcp_server.c
+++ b/test/core/util/test_tcp_server.c
@@ -63,7 +63,7 @@
   grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
 
   addr.sin_family = AF_INET;
-  addr.sin_port = htons((gpr_uint16)port);
+  addr.sin_port = htons((uint16_t)port);
   memset(&addr.sin_addr, 0, sizeof(addr.sin_addr));
 
   server->tcp_server = grpc_tcp_server_create();
diff --git a/test/cpp/common/alarm_test.cc b/test/cpp/common/alarm_test.cc
index 18083cd..d41a25a 100644
--- a/test/cpp/common/alarm_test.cc
+++ b/test/cpp/common/alarm_test.cc
@@ -43,12 +43,12 @@
 class TestTag : public CompletionQueueTag {
  public:
   TestTag() : tag_(0) {}
-  TestTag(gpr_intptr tag) : tag_(tag) {}
+  TestTag(intptr_t tag) : tag_(tag) {}
   bool FinalizeResult(void** tag, bool* status) { return true; }
-  gpr_intptr tag() { return tag_; }
+  intptr_t tag() { return tag_; }
 
  private:
-  gpr_intptr tag_;
+  intptr_t tag_;
 };
 
 TEST(AlarmTest, RegularExpiry) {
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index 279423a..af0b7fd 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -63,7 +63,7 @@
 
 namespace {
 
-void* tag(int i) { return (void*)(gpr_intptr)i; }
+void* tag(int i) { return (void*)(intptr_t)i; }
 
 #ifdef GPR_POSIX_SOCKET
 static int assert_non_blocking_poll(struct pollfd* pfds, nfds_t nfds,
diff --git a/test/cpp/end2end/generic_end2end_test.cc b/test/cpp/end2end/generic_end2end_test.cc
index 6ecf7eb..350e67b 100644
--- a/test/cpp/end2end/generic_end2end_test.cc
+++ b/test/cpp/end2end/generic_end2end_test.cc
@@ -60,7 +60,7 @@
 namespace testing {
 namespace {
 
-void* tag(int i) { return (void*)(gpr_intptr)i; }
+void* tag(int i) { return (void*)(intptr_t)i; }
 
 void verify_ok(CompletionQueue* cq, int i, bool expect_ok) {
   bool ok;
diff --git a/test/cpp/interop/client_helper.h b/test/cpp/interop/client_helper.h
index ace1930..0f77474 100644
--- a/test/cpp/interop/client_helper.h
+++ b/test/cpp/interop/client_helper.h
@@ -60,7 +60,7 @@
     return grpc_call_test_only_get_compression_algorithm(context_.call_);
   }
 
-  gpr_uint32 GetMessageFlags() const {
+  uint32_t GetMessageFlags() const {
     return grpc_call_test_only_get_message_flags(context_.call_);
   }
 
diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc
index 92b5bf4..d08385a 100644
--- a/test/cpp/interop/reconnect_interop_server.cc
+++ b/test/cpp/interop/reconnect_interop_server.cc
@@ -143,7 +143,7 @@
           backoff > max_backoff + kTransmissionDelay) {
         passed = false;
       }
-      response->add_backoff_ms(static_cast<gpr_int32>(backoff));
+      response->add_backoff_ms(static_cast<int32_t>(backoff));
       expected_backoff *= kBackoffMultiplier;
       expected_backoff =
           expected_backoff > kMaxBackoffMs ? kMaxBackoffMs : expected_backoff;
diff --git a/test/cpp/interop/server_helper.cc b/test/cpp/interop/server_helper.cc
index 5138a38..9a28409 100644
--- a/test/cpp/interop/server_helper.cc
+++ b/test/cpp/interop/server_helper.cc
@@ -68,7 +68,7 @@
   return grpc_call_test_only_get_compression_algorithm(context_.call_);
 }
 
-gpr_uint32 InteropServerContextInspector::GetEncodingsAcceptedByClient() const {
+uint32_t InteropServerContextInspector::GetEncodingsAcceptedByClient() const {
   return grpc_call_test_only_get_encodings_accepted_by_peer(context_.call_);
 }
 
diff --git a/test/cpp/interop/server_helper.h b/test/cpp/interop/server_helper.h
index dc0ae1d..57337e5 100644
--- a/test/cpp/interop/server_helper.h
+++ b/test/cpp/interop/server_helper.h
@@ -53,7 +53,7 @@
   std::shared_ptr<const AuthContext> GetAuthContext() const;
   bool IsCancelled() const;
   grpc_compression_algorithm GetCallCompressionAlgorithm() const;
-  gpr_uint32 GetEncodingsAcceptedByClient() const;
+  uint32_t GetEncodingsAcceptedByClient() const;
 
  private:
   const ::grpc::ServerContext& context_;
diff --git a/test/cpp/util/cli_call.cc b/test/cpp/util/cli_call.cc
index 9a76984..0de388d 100644
--- a/test/cpp/util/cli_call.cc
+++ b/test/cpp/util/cli_call.cc
@@ -46,7 +46,7 @@
 namespace grpc {
 namespace testing {
 namespace {
-void* tag(int i) { return (void*)(gpr_intptr)i; }
+void* tag(int i) { return (void*)(intptr_t)i; }
 }  // namespace
 
 Status CliCall::Call(std::shared_ptr<grpc::Channel> channel,