int OPENCL_DEVICE_PROP::parse(XML_PARSER& xp, const char* end_tag) { int n; unsigned long long ull; while (!xp.get_tag()) { if (xp.match_tag(end_tag)) { get_device_version_int(); get_opencl_driver_revision(); return 0; } if (xp.parse_str("name", name, sizeof(name))) continue; if (xp.parse_str("vendor", vendor, sizeof(vendor))) continue; if (xp.parse_ulonglong("vendor_id", ull)) { vendor_id = ull; continue; } if (xp.parse_int("available", n)) { available = n; continue; } if (xp.parse_ulonglong("half_fp_config", ull)) { half_fp_config = ull; continue; } if (xp.parse_ulonglong("single_fp_config", ull)) { single_fp_config = ull; continue; } if (xp.parse_ulonglong("double_fp_config", ull)) { double_fp_config = ull; continue; } if (xp.parse_int("endian_little", n)) { endian_little = n; continue; } if (xp.parse_ulonglong("execution_capabilities", ull)) { execution_capabilities = ull; continue; } if (xp.parse_str("extensions", extensions, sizeof(extensions) )) { continue; } if (xp.parse_ulonglong("global_mem_size", ull)) { global_mem_size = ull; continue; } if (xp.parse_ulonglong("local_mem_size", ull)) { local_mem_size = ull; continue; } if (xp.parse_int("max_clock_frequency", n)) { max_clock_frequency = n; continue; } if (xp.parse_int("max_compute_units", n)) { max_compute_units = n; continue; } if (xp.parse_str("opencl_platform_version", opencl_platform_version, sizeof(opencl_platform_version) )) { continue; } if (xp.parse_str("opencl_device_version", opencl_device_version, sizeof(opencl_device_version) )) { continue; } if (xp.parse_str("opencl_driver_version", opencl_driver_version, sizeof(opencl_driver_version) )) { continue; } // The following are used only in the // COPROC_INFO_FILENAME temporary file if (xp.parse_int("is_used", n)) { is_used = (COPROC_USAGE)n; continue; } if (xp.parse_int("device_num", n)) { device_num = n; continue; } if (xp.parse_double("peak_flops", peak_flops)) continue; if (xp.parse_double("opencl_available_ram", opencl_available_ram)) continue; if (xp.parse_int("opencl_device_index", n)) { opencl_device_index = n; continue; } } return ERR_XML_PARSE; }
int OPENCL_DEVICE_PROP::parse(XML_PARSER& xp) { int n; unsigned long long ull; while (!xp.get_tag()) { if (xp.match_tag("/coproc_opencl")) { get_device_version_int(); return 0; } if (xp.parse_str("name", name, sizeof(name))) continue; if (xp.parse_str("vendor", vendor, sizeof(vendor))) continue; if (xp.parse_int("available", n)) { available = n; continue; } if (xp.parse_ulonglong("half_fp_config", ull)) { half_fp_config = ull; continue; } if (xp.parse_ulonglong("single_fp_config", ull)) { single_fp_config = ull; continue; } if (xp.parse_ulonglong("double_fp_config", ull)) { double_fp_config = ull; continue; } if (xp.parse_int("endian_little", n)) { endian_little = n; continue; } if (xp.parse_ulonglong("execution_capabilities", ull)) { execution_capabilities = ull; continue; } if (xp.parse_str("extensions", extensions, sizeof(extensions) )) { continue; } if (xp.parse_ulonglong("global_mem_size", ull)) { global_mem_size = ull; continue; } if (xp.parse_ulonglong("local_mem_size", ull)) { local_mem_size = ull; continue; } if (xp.parse_int("max_clock_frequency", n)) { max_clock_frequency = n; continue; } if (xp.parse_int("max_compute_units", n)) { max_compute_units = n; continue; } if (xp.parse_str("opencl_platform_version", opencl_platform_version, sizeof(opencl_platform_version) )) { continue; } if (xp.parse_str("opencl_device_version", opencl_device_version, sizeof(opencl_device_version) )) { continue; } if (xp.parse_str("opencl_driver_version", opencl_driver_version, sizeof(opencl_driver_version) )) { continue; } } return ERR_XML_PARSE; }