+#include <babeltrace/format.h>
+
+static
+struct definition *_float_definition_new(struct declaration *declaration,
+ struct definition_scope *parent_scope,
+ GQuark field_name, int index);
+static
+void _float_definition_free(struct definition *definition);
+
+void float_copy(struct stream_pos *destp,
+ const struct format *fdest,
+ struct stream_pos *srcp,
+ const struct format *fsrc,
+ struct definition *definition)
+{
+ struct definition_float *_float =
+ container_of(definition, struct definition_float, p);
+ struct declaration_float *float_declaration = _float->declaration;
+ long double v;
+
+ v = fsrc->ldouble_read(srcp, float_declaration);
+ _float->value = v;
+ if (fdest)
+ fdest->ldouble_write(destp, float_declaration, v);
+}
+
+static
+void _float_declaration_free(struct declaration *declaration)
+{
+ struct declaration_float *float_declaration =
+ container_of(declaration, struct declaration_float, p);