def generate_translation_utils_c(fields): skeleton = read_template(TEMPLATES_DIR + "/of12_translation_utils.c.template") header = fields[0]['header'] code0 = EXPERIMENTAL_INCLUDES_SKELETON % (header, header) code1 = "" for field in fields_iterator(fields): code1 += MATCH_TRANSLATION_SKELETON % field code2 = "" for field in fields_iterator(fields): code2 += MATCH_SET_SKELETON % field code3 = "" for field in fields: if field.get('action') in ('push', 'pop'): code3 += ACTION_SET_SKELETON % field code4 = "" for field in fields_iterator(fields): code4 += REVERSE_MATCH_SKELETON % field code5 = "" for field in fields: if field.get('action') in ('push', 'pop'): code5 += REVERSE_ACTION_SKELETON % field code6 = "" for field in fields_iterator(fields): code6+= MAP_REVERSE_PACKET_MATCH_SKELETON % field return skeleton % (code0, code1, code2, code3, code4, code5, code6)
def generate_common_protocol_frame_h(fields): skeleton = read_template(TEMPLATES_DIR + "/frame.h.template") skeleton_attrs = copy.copy(fields[0]) skeleton_attrs['fields'] = "" for field in fields: skeleton_attrs['fields'] += "\t\tuint%(length)s_t %(field)s;\n" % field skeleton_attrs['fields_getters'] = "" for field in fields_iterator(fields): skeleton_attrs['fields_getters'] += "\tuint%(length)s_t get_%(field)s();\n" % field skeleton_attrs['fields_setters'] = "" for field in fields_iterator(fields): skeleton_attrs['fields_setters'] += "\tvoid set_%(field)s(uint%(length)s_t %(field)s);\n" % field return skeleton % skeleton_attrs
def generate_common_protocol_frame_c(fields): skeleton = read_template(TEMPLATES_DIR + "/frame.c.template") skeleton_attrs = copy.copy(fields[0]) skeleton_attrs['field_printed_list'] = "" for field in fields_iterator(fields): skeleton_attrs['field_printed_list'] += "%(field)s[%%d] " % field skeleton_attrs['fields_to_be_printed'] = "" for field in fields_iterator(fields): skeleton_attrs['fields_to_be_printed'] += "\t\t\tbe%(length)stoh(%(header)s_hdr->%(field)s),\n" % field skeleton_attrs['fields_getters'] = "" for field in fields_iterator(fields): skeleton_attrs['fields_getters'] += FIELD_GETTER % field skeleton_attrs['fields_setters'] = "" for field in fields_iterator(fields): skeleton_attrs['fields_setters'] += FIELD_SETTER % field return skeleton % skeleton_attrs