gchar *callback_summary() { gchar *processor_name, *alsa_cards; gchar *input_devices, *printers; gchar *storage_devices, *summary; gchar *virt; processor_name = module_call_method("devices::getProcessorName"); alsa_cards = computer_get_alsacards(computer); input_devices = module_call_method("devices::getInputDevices"); printers = module_call_method("devices::getPrinters"); storage_devices = module_call_method("devices::getStorageDevices"); virt = computer_get_virtualization(); summary = g_strdup_printf("[$ShellParam$]\n" "UpdateInterval$Memory=1000\n" "UpdateInterval$Date/Time=1000\n" "#ReloadInterval=5000\n" "[Computer]\n" "Processor=%s\n" "Memory=...\n" "Machine Type=%s\n" "Operating System=%s\n" "User Name=%s\n" "Date/Time=...\n" "[Display]\n" "Resolution=%dx%d pixels\n" "OpenGL Renderer=%s\n" "X11 Vendor=%s\n" "\n%s\n" "[Input Devices]\n%s\n" "\n%s\n" "\n%s\n", processor_name, virt, computer->os->distro, computer->os->username, computer->display->width, computer->display->height, computer->display->ogl_renderer, computer->display->vendor, alsa_cards, input_devices, printers, storage_devices); g_free(processor_name); g_free(alsa_cards); g_free(input_devices); g_free(printers); g_free(storage_devices); g_free(virt); return summary; }
void scan_memory_do(void) { gchar **keys, *tmp; static gint offset = -1; gint i; if (offset == -1) { /* gah. linux 2.4 adds three lines of data we don't need in /proc/meminfo */ gchar *os_kernel = module_call_method("computer::getOSKernel"); if (os_kernel) { offset = strstr(os_kernel, "Linux 2.4") ? 3 : 0; g_free(os_kernel); } else { offset = 0; } } g_file_get_contents("/proc/meminfo", &meminfo, NULL, NULL); keys = g_strsplit(meminfo, "\n", 0); g_free(meminfo); g_free(lginterval); meminfo = g_strdup(""); lginterval = g_strdup(""); for (i = offset; keys[i]; i++) { gchar **newkeys = g_strsplit(keys[i], ":", 0); if (!newkeys[0]) { g_strfreev(newkeys); break; } g_strstrip(newkeys[1]); if ((tmp = g_hash_table_lookup(memlabels, newkeys[0]))) { g_free(newkeys[0]); newkeys[0] = g_strdup(tmp); } g_hash_table_replace(moreinfo, g_strdup(newkeys[0]), g_strdup(newkeys[1])); tmp = g_strconcat(meminfo, newkeys[0], "=", newkeys[1], "\n", NULL); g_free(meminfo); meminfo = tmp; tmp = g_strconcat(lginterval, "UpdateInterval$", newkeys[0], "=1000\n", NULL); g_free(lginterval); lginterval = tmp; g_strfreev(newkeys); } g_strfreev(keys); }
bench_machine *bench_machine_this() { bench_machine *m = NULL; char *tmp; m = bench_machine_new(); if (m) { m->board = module_call_method("devices::getMotherboard"); m->cpu_name = module_call_method("devices::getProcessorName"); m->cpu_desc = module_call_method("devices::getProcessorDesc"); m->cpu_config = module_call_method("devices::getProcessorFrequencyDesc"); m->gpu_desc = module_call_method("devices::getGPUList"); m->ogl_renderer = module_call_method("computer::getOGLRenderer"); tmp = module_call_method("devices::getMemoryTotal"); m->memory_kiB = atoi(tmp); free(tmp); cpu_procs_cores_threads(&m->processors, &m->cores, &m->threads); gen_machine_id(m); } return m; }