aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/transport/metadata.h
diff options
context:
space:
mode:
authorGravatar Hope Casey-Allen <hcaseyal@google.com>2018-09-10 19:23:05 -0700
committerGravatar Hope Casey-Allen <hcaseyal@google.com>2018-09-10 19:23:05 -0700
commit009d828341a272e05401daf32907d8f400b19a90 (patch)
treef900ba159da4462eb071f8b284c012ecedc18574 /src/core/lib/transport/metadata.h
parentc004a8e2593bfd4f493d35bfc995b895b51c261b (diff)
WIP. Modifying grpc_mdelem to store the static hpack table idnex
Diffstat (limited to 'src/core/lib/transport/metadata.h')
-rw-r--r--src/core/lib/transport/metadata.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/lib/transport/metadata.h b/src/core/lib/transport/metadata.h
index 4fde0130c0..5c34f7323b 100644
--- a/src/core/lib/transport/metadata.h
+++ b/src/core/lib/transport/metadata.h
@@ -92,17 +92,20 @@ struct grpc_mdelem {
/* a grpc_mdelem_data* generally, with the two lower bits signalling memory
ownership as per grpc_mdelem_data_storage */
uintptr_t payload;
+ /* The static index of this mdelem. This is equivalent to the
+ mdelem's index into the hpack static table. 0 if unused. */
+ uint8_t static_index;
};
#define GRPC_MDELEM_DATA(md) ((grpc_mdelem_data*)((md).payload & ~(uintptr_t)3))
#define GRPC_MDELEM_STORAGE(md) \
((grpc_mdelem_data_storage)((md).payload & (uintptr_t)3))
#ifdef __cplusplus
-#define GRPC_MAKE_MDELEM(data, storage) \
- (grpc_mdelem{((uintptr_t)(data)) | ((uintptr_t)storage)})
+#define GRPC_MAKE_MDELEM(data, storage, index) \
+ (grpc_mdelem{((uintptr_t)(data)) | ((uintptr_t)storage), index})
#else
-#define GRPC_MAKE_MDELEM(data, storage) \
- ((grpc_mdelem){((uintptr_t)(data)) | ((uintptr_t)storage)})
+#define GRPC_MAKE_MDELEM(data, storage, index) \
+ ((grpc_mdelem){((uintptr_t)(data)) | ((uintptr_t)storage), index})
#endif
#define GRPC_MDELEM_IS_INTERNED(md) \
((grpc_mdelem_data_storage)((md).payload & \