diff options
Diffstat (limited to 'includes/computer.h')
-rw-r--r-- | includes/computer.h | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/includes/computer.h b/includes/computer.h new file mode 100644 index 00000000..f8589d77 --- /dev/null +++ b/includes/computer.h @@ -0,0 +1,186 @@ +/* + * HardInfo - Displays System Information + * Copyright (C) 2003-2007 L. A. F. Pereira <l@tia.mat.br> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 2 or later. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __COMPUTER_H__ +#define __COMPUTER_H__ + +#include "hardinfo.h" +#include "x_util.h" + +typedef struct _Computer Computer; +typedef struct _OperatingSystem OperatingSystem; +typedef struct _MemoryInfo MemoryInfo; +typedef struct _UptimeInfo UptimeInfo; +typedef struct _LoadInfo LoadInfo; +typedef struct _DisplayInfo DisplayInfo; +typedef struct _Distro Distro; + +typedef struct _AlsaInfo AlsaInfo; +typedef struct _AlsaCard AlsaCard; + +typedef struct _FileSystem FileSystem; +typedef struct _FileSystemEntry FileSystemEntry; + +struct _AlsaCard { + gchar *alsa_name; + gchar *friendly_name; +/* + gchar *board; + gchar revision, compat_class; + gint subsys_vendorid, subsys_id; + + gint cap_dac_res, cap_adc_res; + gboolean cap_3d_enh; + + gint curr_mic_gain; + gboolean curr_3d_enh, + curr_loudness, + curr_simstereo; + gchar *curr_mic_select; +*/ +}; + +struct _AlsaInfo { + GSList *cards; +}; + +struct _DisplayInfo { + /* old stuff */ + gint width, height; + + /* new stuff */ + xinfo *xi; /* x info */ + wl_info *wl; /* wayland info */ + + gchar *display_server; + + /* don't free */ + const gchar *vendor; /* X vendor; points to xrr->xi->vendor */ + const gchar *session_type; /* points to wl->xdg_session_type */ +}; + +struct _LoadInfo { + float load1, load5, load15; +}; + +struct _UptimeInfo { + int days, hours, minutes; +}; + +struct _Computer { + MemoryInfo *memory; + OperatingSystem *os; + DisplayInfo *display; + AlsaInfo *alsa; + + gchar *date_time; +}; + +#include "distro_flavors.h" + +struct _OperatingSystem { + gchar *kernel; + gchar *kcmdline; + gchar *libc; + gchar *distrocode; + gchar *distroid; + gchar *distro; + gchar *hostname; + gchar *language; + gchar *homedir; + gchar *kernel_version; + + gchar *languages; + + gchar *desktop; + gchar *username; + + gchar *boots; + + gchar *entropy_avail; + + const DistroFlavor* distro_flavor; +}; + +struct _MemoryInfo { + gint total, used, free, cached; + gfloat ratio; +}; + +struct _Distro { + gchar *distro; + gchar *codename; + gchar *id; +}; + +#define get_str(field_name,ptr) \ + if (g_str_has_prefix(tmp[0], field_name)) { \ + ptr = g_strdup(tmp[1]); \ + g_strfreev(tmp); \ + continue; \ + } +#define get_int(field_name,ptr) \ + if (g_str_has_prefix(tmp[0], field_name)) { \ + ptr = atoi(tmp[1]); \ + g_strfreev(tmp); \ + continue; \ + } +#define get_float(field_name,ptr) \ + if (g_str_has_prefix(tmp[0], field_name)) { \ + ptr = atof(tmp[1]); \ + g_strfreev(tmp); \ + continue; \ + } + +extern gchar *users; +extern gchar *groups; +extern gchar *fs_list; +extern GHashTable *_module_hash_table; +extern Computer *computer; +extern gchar *module_list; + +gchar *computer_get_formatted_loadavg(); +gchar *computer_get_formatted_uptime(); +gchar *computer_get_alsacards(Computer * computer); +gchar *computer_get_entropy_avail(void); +gchar *computer_get_aslr(void); +gchar *computer_get_dmesg_status(void); +const gchar *computer_get_selinux(void); +gchar *computer_get_lsm(void); + +OperatingSystem *computer_get_os(void); +AlsaInfo *computer_get_alsainfo(void); +MemoryInfo *computer_get_memory(void); +UptimeInfo *computer_get_uptime(void); +DisplayInfo *computer_get_display(void); +void computer_free_display(DisplayInfo *di); + +void scan_modules_do(void); +void scan_filesystems(void); +void scan_users_do(void); + +/* Memory Usage */ +extern GHashTable *memlabels; +void init_memory_labels(void); +void scan_memory_do(void); +void scan_boots_real(void); +void scan_languages(OperatingSystem *os); +void scan_groups_do(void); + +void kernel_module_icon_init(void); + +#endif /* __COMPUTER_H__ */ |