/* This file was generated by generate-wire.py */ /* Do not modify this file! Modify the _csv file it was generated from. */ /* Original template can be found at tools/gen/header_template */ #ifndef LIGHTNING_${idem} #define LIGHTNING_${idem} #include #include #include % for i in includes: ${i} % endfor ## Enum sets for wire messages & tlvs % for enum_set in enum_sets: enum ${enum_set['name']} { % for msg in enum_set['set']: % for comment in msg.msg_comments: /* ${comment} */ % endfor ${msg.enum_name()} = ${msg.number}, % endfor }; %endfor ## The 'name' functions for the enums % for enum_set in enum_sets: const char *${enum_set['name']}_name(int e); % endfor ## Structs for subtypes + tlv messages % for struct in structs: struct ${struct.struct_name()} { % for f in struct.fields.values(): % for c in f.field_comments: /* ${c} */ % endfor % if bool(f.len_field_of): <% continue %> % endif % if f.is_varlen() and f.type_obj.is_varsize(): ${f.type_obj.type_name()} **${f.name}; % elif f.is_varlen(): ${f.type_obj.type_name()} *${f.name}; % elif f.is_array(): ${f.type_obj.type_name()} ${f.name}[${f.count}]; % else: ${f.type_obj.type_name()} ${f.name}; % endif % endfor }; % endfor ## Structs for TLVs % for tlv in tlvs.values(): struct ${tlv.struct_name()} { % for msg in tlv.messages.values(): struct ${msg.struct_name()} *${msg.name}; % endfor }; % endfor % for tlv in tlvs.values(): struct ${tlv.struct_name()} *${tlv.struct_name()}_new(const tal_t *ctx); % if tlv.name in options.expose_tlv_type: #define TLVS_${tlv.name.upper()}_ARRAY_SIZE ${len(tlv.messages)} extern const struct tlv_record_type tlvs_${tlv.name}[]; % endif % endfor % if options.expose_subtypes and bool(subtypes): % for subtype in subtypes: /* SUBTYPE: ${subtype.name.upper()} */ % for c in subtype.type_comments: /* ${c} */ % endfor void towire_${subtype.name}(u8 **p, const ${subtype.type_name()} *${subtype.name}); % if subtype.is_varsize(): ${subtype.type_name()} * fromwire_${subtype.name}(const tal_t *ctx, const u8 **cursor, size_t *plen); % else: void fromwire_${subtype.name}(const u8 **cursor, size_t *plen, ${subtype.type_name()} *${subtype.name}); % endif % endfor % endif % for msg in messages: /* WIRE: ${msg.name.upper()} */ % for c in msg.msg_comments: /* ${c} */ % endfor u8 *towire_${msg.name}(const tal_t *ctx${''.join([f.arg_desc_to() for f in msg.fields.values()])}); bool fromwire_${msg.name}(${'const tal_t *ctx, ' if msg.needs_context() else ''}const void *p${''.join([f.arg_desc_from() for f in msg.fields.values()])}); % endfor #endif /* LIGHTNING_${idem} */