+ file << " *data, ";
+ cpp_output_name(file, sym);
+ file << " **link)\n"
+ << indent << "{\n";
+
+ indent.indent_level++;
+
+ file << indent << "__attribute__((unused)) ";
+ cpp_output_name(file, sym);
+ file << " *sptr;\n"
+ << indent << "void *ptr;\n"
+ << indent << "size_t len;\n"
+ << indent << "__attribute__((unused)) size_t i = 0;\n";
+
+ align_type(sym);
+ file << indent << "*link = (";
+ cpp_output_name(file, sym);
+ file << " *)ctx.buf.count;\n";
+ file << indent << "len = sizeof(*data);\n";
+ grow_buf();
+
+ file << indent << "memcpy(ptr, data, len);\n"
+ << indent << "sptr = (";
+ cpp_output_name(file, sym);
+ file << " *)ptr;\n";
+
+ marshall_members(sym);
+ indent.indent_level--;
+
+ file << indent << "\treturn 0;\n"
+ << indent << "}\n\n";