#include #include #include #include #include #ifdef BTT_WITH_LIBXML2 #include static xmlChar __buffer[255]; xmlNodePtr bt_data2xml(xmlNodePtr parent, bt_xml_node description, void* data) { if(!strcmp(description.format, "%s")) { strcpy((char*)__buffer, (char*)data); } else if(!strcmp(description.format, "%llu")) { sprintf((char*)__buffer, description.format, *((u_int64_t*)data)); } else if(!strcmp(description.format, "%lu")) { sprintf((char*)__buffer, description.format, *((time_t*)data)); } else if(!strcmp(description.format, "%u")) { sprintf((char*)__buffer, description.format, *((u_int32_t*)data)); } return xmlNewTextChild(parent, NULL, description.name, __buffer); } void bt_struct2xml(xmlNodePtr parent, bt_xml_node* items, void* start) { int i; for(i=0;items[i].name;i++) { bt_data2xml(parent, items[i], start + items[i].offset); } return; } #endif /* BTT_WITH_LIBXML2 */