/home/fernape/Projects/lkmonitor/src/update.h File Reference

Go to the source code of this file.

Functions

void update_cpu ()
 Update cpu pane.
void update_cpu_mhz ()
 Update mhz variable in cpu pane.
void update_mem ()
 Update mem pane.
void update_devs ()
 Update devices pane.
void update_settings ()
 Update settings pane.
void update_misc ()
 Update misc pane.
void update_process ()
 Update the process panel.
void update_cmd_ver ()
 Update cmdline and version info.
void update_channels ()
 Update communication channels panel.
void update_net_info ()
 Update networking information.
void update_fs_info ()
 Update filesystems information.
void update_modules_info ()
 Update modules information.


Function Documentation

void update_channels (  ) 

Update communication channels panel.

Updates communication channels tab

Definition at line 640 of file update.c.

References cn_info, channels_info::dma, get_channels_info(), channels_info::iomem, channels_info::ioports, lookup_widget(), and window1.

Referenced by main(), and on_btn_comm_reload_clicked().

00641 {
00642 
00643 /* IMPORTANT:
00644                 We should not lock with gdk_threads_enter because this function is 
00645                 called from a callback and callbacks are already running inside a gdk
00646                 lock.
00647                 In addition, this function is called from main thread before the collector
00648                 thread is created, so we don't need to prevent the access from the other
00649                 thread.
00650 */
00651         
00652         GtkTextView *gtextv;
00653         GtkTextBuffer *gtbuffer;
00654 
00655         /* Getting information */
00656    if(get_channels_info(&cn_info)==-1){
00657                 /* Values after calling get_channels info are safe
00658                         We don't need to do anything here.
00659                 */
00660         }
00661    
00662 
00663         gtextv=GTK_TEXT_VIEW(lookup_widget(window1, "gtextv_ioports"));
00664         gtbuffer=gtk_text_view_get_buffer(gtextv);
00665         gtk_text_buffer_set_text(gtbuffer,cn_info.ioports->str,cn_info.ioports->len);
00666         
00667         gtextv=GTK_TEXT_VIEW(lookup_widget(window1, "gtextv_iomem"));
00668         gtbuffer=gtk_text_view_get_buffer(gtextv);
00669         gtk_text_buffer_set_text(gtbuffer,cn_info.iomem->str,cn_info.iomem->len);
00670         
00671         gtextv=GTK_TEXT_VIEW(lookup_widget(window1, "gtextv_dma"));
00672         gtbuffer=gtk_text_view_get_buffer(gtextv);
00673         gtk_text_buffer_set_text(gtbuffer,cn_info.dma->str,cn_info.dma->len);
00674    
00675 }

void update_cmd_ver (  ) 

Update cmdline and version info.

Updates command line and version information in the window

Definition at line 614 of file update.c.

References cmd_ver::cmd, cmdversion, get_cmd_ver_info(), lookup_widget(), cmd_ver::version, and window1.

Referenced by main().

00615 {
00616   GtkLabel *lbl;
00617 
00618         /* Get the information */
00619   if(get_cmd_ver_info(&cmdversion)==-1){
00620                 /* We don't need to do anything. The cmdversion structure
00621                         has the default values.
00622                 */
00623   }
00624 
00625   gdk_threads_enter();
00626 
00627   lbl=GTK_LABEL(lookup_widget(window1,"lbl_cmd"));
00628   gtk_label_set_text(lbl,cmdversion.cmd->str);
00629 
00630   lbl=GTK_LABEL(lookup_widget(window1,"lbl_version"));
00631   gtk_label_set_text(lbl,cmdversion.version->str);
00632 
00633   gdk_threads_leave();
00634 
00635 }

void update_cpu (  ) 

Update cpu pane.

Update gtk widgets for cpu panel This function updates labels to show recent values. Before, it calls to get_cpu_info to collect data

Definition at line 166 of file update.c.

References cpu_info::bogomips, cpu_info::cache, cpu, cpu_info::cpu_family, cpu_info::cpuid_level, cpu_info::flags, cpu_info::fpu, cpu_info::fpu_exception, get_cpu_info(), lookup_widget(), cpu_info::Mhz, cpu_info::model, cpu_info::model_name, cpu_info::processor, cpu_info::stepping, cpu_info::vendor_id, window1, and cpu_info::wp.

Referenced by main().

00167 {
00168 
00169   get_cpu_info (&cpu);
00170 
00171   GtkLabel *widget;
00172 
00173   /*Not updated so, we don't need thread locking*/
00174         
00175   widget = GTK_LABEL( lookup_widget (window1, "lbl_processor"));
00176   gtk_label_set_text (widget, (gchar *) cpu.processor);
00177 
00178   widget = GTK_LABEL( lookup_widget (window1, "lbl_vendor"));
00179   gtk_label_set_text (widget, (gchar *) cpu.vendor_id);
00180 
00181   widget = GTK_LABEL( lookup_widget (window1, "lbl_family"));
00182   gtk_label_set_text (widget, (gchar *) cpu.cpu_family);
00183 
00184 
00185   widget = GTK_LABEL( lookup_widget (window1, "lbl_model"));
00186   gtk_label_set_text (widget, (gchar *) cpu.model);
00187 
00188   widget = GTK_LABEL(lookup_widget (window1, "lbl_model_name"));
00189   gtk_label_set_text (widget, (gchar *) cpu.model_name);
00190 
00191   widget = GTK_LABEL( lookup_widget (window1, "lbl_stepping"));
00192   gtk_label_set_text (widget, (gchar *) cpu.stepping);
00193 
00194   widget = GTK_LABEL( lookup_widget (window1, "lbl_Mhz"));
00195   gtk_label_set_text (widget, (gchar *) cpu.Mhz);
00196 
00197   widget = GTK_LABEL( lookup_widget (window1, "lbl_cache"));
00198   gtk_label_set_text (widget, (gchar *) cpu.cache);
00199 
00200   widget = GTK_LABEL( lookup_widget (window1, "lbl_fpu"));
00201   gtk_label_set_text (widget, (gchar *) cpu.fpu);
00202 
00203   widget = GTK_LABEL( lookup_widget (window1, "lbl_fpu_exception"));
00204   gtk_label_set_text (widget, (gchar *) cpu.fpu_exception);
00205 
00206   widget = GTK_LABEL( lookup_widget (window1, "lbl_cpu_id_level"));
00207   gtk_label_set_text (widget, (gchar *) cpu.cpuid_level);
00208 
00209   widget = GTK_LABEL( lookup_widget (window1, "lbl_wp"));
00210   gtk_label_set_text (widget, (gchar *) cpu.wp);
00211 
00212   widget = GTK_LABEL( lookup_widget (window1, "lbl_bogomips"));
00213   gtk_label_set_text (widget, (gchar *) cpu.bogomips);
00214 
00215   widget = GTK_LABEL( lookup_widget (window1, "lbl_flags"));
00216   gtk_label_set_text (widget, (gchar *) cpu.flags);
00217 
00218  
00219 }

void update_cpu_mhz ( void   ) 

Update mhz variable in cpu pane.

Update MHz label in cpu pane This is the only dynamic feature in cpu pane.

Definition at line 224 of file update.c.

References get_mhz_info(), lookup_widget(), and window1.

Referenced by refresh().

00225 {
00226         GtkLabel *mhz_label;
00227         char str[10];
00228         
00229         get_mhz_info(str);
00230         
00231         gdk_threads_enter();
00232         
00233         mhz_label=GTK_LABEL(lookup_widget(window1,"lbl_Mhz"));
00234         gtk_label_set_text(mhz_label,str);
00235         
00236         gdk_threads_leave();
00237 }

void update_devs (  ) 

Update devices pane.

Update treeviews for devices pane This is called from a callback

Definition at line 242 of file update.c.

References dev_info::blocks, dev_info::characters, devs, get_devs_info(), lkmonitor_fill_tv(), lookup_widget(), TV_DEVS, and window1.

Referenced by main(), and on_btn_dev_load_clicked().

00243 {
00244         if(get_devs_info(&devs)==-1){
00245                 /*File doesn't exist. Don't do anything*/
00246                 return;
00247         }
00248         
00249         GtkListStore *model;
00250         GtkTreeView *gtv;
00251         GtkTreeIter iter;
00252 
00253         /* IMPORTANT:
00254                 We should not lock with gdk_threads_enter because this function is 
00255                 called from a callback and callbacks are already running inside a gdk
00256                 lock.
00257                 In addition, this function is called from main thread before the collector
00258                 thread is created, so we don't need to prevent the access from the other
00259                 thread.
00260         */
00261 
00262         /* We want the model of the GtkTreeView for char devices */
00263         gtv=GTK_TREE_VIEW(lookup_widget(window1,"gtv_char"));
00264         model=GTK_LIST_STORE(gtk_tree_view_get_model(gtv));
00265 
00266         gtk_tree_view_set_model(gtv,NULL);
00267         gtk_list_store_clear(model);
00268         lkmonitor_fill_tv(model,gtv,iter,devs.characters->str,TV_DEVS);
00269         gtk_tree_view_set_model(gtv,GTK_TREE_MODEL(model));
00270 
00271         /* We want the model of the GtkTreeView for block devices */
00272         gtv=GTK_TREE_VIEW(lookup_widget(window1,"gtv_block"));
00273         model=GTK_LIST_STORE(gtk_tree_view_get_model(gtv));
00274         gtk_tree_view_set_model(gtv,NULL);
00275         gtk_list_store_clear(model);
00276         lkmonitor_fill_tv(model,gtv,iter,devs.blocks->str,TV_DEVS);
00277         gtk_tree_view_set_model(gtv,GTK_TREE_MODEL(model));
00278 
00279 }

void update_fs_info (  ) 

Update filesystems information.

Updates filesystems tab

Definition at line 759 of file update.c.

References fs_info::devs, fsinfo, get_fs_info(), lookup_widget(), fs_info::nodevs, and window1.

Referenced by refresh().

00760 {
00761 
00762   GtkTextBuffer *gtbuffer;
00763   GtkTextView *gtextv;
00764   int ret;
00765 
00766   /* Get information */
00767   ret = get_fs_info(&fsinfo);
00768 
00769   if(ret == -1){
00770         /* Return values in fsinfo are safe. Don't need do anything here*/
00771   }
00772 
00773   gdk_threads_enter();
00774 
00775   /* Show in the window*/
00776 
00777   gtextv=GTK_TEXT_VIEW(lookup_widget(window1,"gtextv_fs"));
00778   gtbuffer=gtk_text_view_get_buffer(gtextv);
00779   gtk_text_buffer_set_text(gtbuffer,fsinfo.devs->str,fsinfo.devs->len);
00780   
00781 
00782   gtextv=GTK_TEXT_VIEW(lookup_widget(window1,"gtextv_pfs"));
00783   gtbuffer=gtk_text_view_get_buffer(gtextv);
00784   gtk_text_buffer_set_text(gtbuffer,fsinfo.nodevs->str,fsinfo.nodevs->len);
00785 
00786   gdk_threads_leave();
00787 
00788   
00789 }

void update_mem (  ) 

Update mem pane.

Update gtk widgets for memory panel This function updates labels, progress bar and other widgets to show the most recent values. Before, it calls to get_mem_info to collect data

Definition at line 66 of file update.c.

References mem_info::active, mem_info::buffers, mem_info::cached, mem_info::dirty, mem_info::free, get_mem_info(), mem_info::high_free, mem_info::high_total, mem_info::hugepages_free, mem_info::hugepages_size, mem_info::hugepages_total, mem_info::inactive, lookup_widget(), mem_info::low_free, mem_info::low_total, mem, mem_info::swap_cached, mem_info::swap_free, mem_info::swap_total, mem_info::total, and window1.

Referenced by refresh().

00067 {
00068 
00069   GtkLabel *widget;
00070   GtkProgressBar *progreso;
00071   gfloat total, free;
00072 
00073   get_mem_info (&mem);
00074         
00075   //Get Gtk thread lock
00076   gdk_threads_enter();
00077 
00078 
00079   widget = GTK_LABEL(lookup_widget (window1, "lbl_total"));
00080   gtk_label_set_text (widget, (gchar *) mem.total);
00081 
00082   widget = GTK_LABEL( lookup_widget (window1, "lbl_free"));
00083   gtk_label_set_text (widget, (gchar *) mem.free);
00084 
00085   widget = GTK_LABEL(lookup_widget (window1, "lbl_buffers"));
00086   gtk_label_set_text (widget, (gchar *) mem.buffers);
00087 
00088   widget = GTK_LABEL( lookup_widget (window1, "lbl_cached"));
00089   gtk_label_set_text (widget, (gchar *) mem.cached);
00090 
00091   widget = GTK_LABEL( lookup_widget (window1, "lbl_swap_cached"));
00092   gtk_label_set_text (widget, (gchar *) mem.swap_cached);
00093 
00094   widget = GTK_LABEL( lookup_widget (window1, "lbl_active"));
00095   gtk_label_set_text (widget, (gchar *) mem.active);
00096 
00097   widget = GTK_LABEL( lookup_widget (window1, "lbl_inactive"));
00098   gtk_label_set_text (widget, (gchar *) mem.inactive);
00099 
00100   widget = GTK_LABEL( lookup_widget (window1, "lbl_dirty"));
00101   gtk_label_set_text (widget, (gchar *) mem.dirty);
00102 
00103   widget = GTK_LABEL( lookup_widget (window1, "lbl_hp_total"));
00104   gtk_label_set_text (widget, (gchar *) mem.hugepages_total);
00105 
00106   widget = GTK_LABEL( lookup_widget (window1, "lbl_hp_free"));
00107   gtk_label_set_text (widget, (gchar *) mem.hugepages_free);
00108 
00109   widget = GTK_LABEL( lookup_widget (window1, "lbl_hp_size"));
00110   gtk_label_set_text (widget, (gchar *) mem.hugepages_size);
00111 
00112   widget = GTK_LABEL( lookup_widget (window1, "lbl_high_total"));
00113   gtk_label_set_text (widget, (gchar *) mem.high_total);
00114 
00115   widget = GTK_LABEL( lookup_widget (window1, "lbl_high_free"));
00116   gtk_label_set_text (widget, (gchar *) mem.high_free);
00117 
00118   widget = GTK_LABEL( lookup_widget (window1, "lbl_low_total"));
00119   gtk_label_set_text (widget, (gchar *) mem.low_total);
00120 
00121 
00122   widget = GTK_LABEL( lookup_widget (window1, "lbl_low_free"));
00123   gtk_label_set_text (widget, (gchar *) mem.low_free);
00124 
00125   widget = GTK_LABEL( lookup_widget (window1, "lbl_swap_total"));
00126   gtk_label_set_text (widget, (gchar *) mem.swap_total);
00127 
00128   widget = GTK_LABEL( lookup_widget (window1, "lbl_swap_free"));
00129   gtk_label_set_text (widget, (gchar *) mem.swap_free);
00130 
00131   /*Compute percentage of memory use*/
00132   total = atoi (strtok (mem.total, " "));
00133   free = atoi (strtok (mem.free, " "));
00134 
00135   g_assert(total!=0);
00136   
00137   progreso = GTK_PROGRESS_BAR(lookup_widget (window1, "pb_mem"));
00138   gtk_progress_bar_set_fraction (progreso, 
00139                                                         (gfloat) CLAMP(((total - free) / total),0,1));
00140 
00141 
00142   /*Compute percentage of swap use. Reuse variables.*/
00143 
00144 
00145   total = atoi (strtok (mem.swap_total, " "));
00146   free = atoi (strtok (mem.swap_free, " "));
00147   
00148   progreso = GTK_PROGRESS_BAR (lookup_widget (window1, "pb_swap"));
00149   
00150   if(total!=0){
00151     gtk_progress_bar_set_fraction (progreso, 
00152                                                         (gfloat) CLAMP(((total - free) / total),0,1));
00153           }
00154   else
00155     gtk_progress_bar_set_text(progreso, (gchar *)_("Not present"));
00156   
00157   gdk_threads_leave();
00158 }                               

void update_misc (  ) 

Update misc pane.

Update misc panel Updates labels and spinbuttons

Definition at line 379 of file update.c.

References acpi, acpi_info::battery, battery_info::cap, battery_info::cap_low, battery_info::cap_warning, stats_info::cpu, stats_info::ctxt, get_acpi_info(), get_stats_info(), battery_info::last_cap, lookup_widget(), battery_info::rem, stats, acpi_info::temp, acpi_info::temp_critical, battery_info::type, and window1.

Referenced by refresh().

00380 {
00381         GtkLabel *lbl;
00382         GtkProgressBar *pb;
00383         gfloat total,free;
00384         static float old_total,old_use;
00385         float use;
00386         gchar percent[4];
00387         gchar user[10];
00388         gchar nice[10];
00389         gchar system[10];
00390         gchar idle[10];
00391         gchar iowait[10];
00392         gchar irq[10];
00393         gchar softirq[10];
00394         int ret_stats, ret_acpi;        
00395 
00396 
00397         ret_acpi = get_acpi_info(&acpi);
00398         
00399         ret_stats = get_stats_info(&stats);
00400         sscanf(stats.cpu->str,"%s %s %s %s %s %s %s",user,nice,system,idle,iowait,\
00401                                                                                                         irq,softirq);
00402         gdk_threads_enter();
00403         
00404   if(ret_stats!=-1){
00405         lbl=GTK_LABEL(lookup_widget(window1,"lbl_user"));
00406         gtk_label_set_text(lbl,user);
00407         lbl=GTK_LABEL(lookup_widget(window1,"lbl_nice"));
00408         gtk_label_set_text(lbl,nice);
00409         lbl=GTK_LABEL(lookup_widget(window1,"lbl_system"));
00410         gtk_label_set_text(lbl,system);
00411         lbl=GTK_LABEL(lookup_widget(window1,"lbl_idle"));
00412         gtk_label_set_text(lbl,idle);
00413         lbl=GTK_LABEL(lookup_widget(window1,"lbl_iowait"));
00414         gtk_label_set_text(lbl,iowait);
00415         lbl=GTK_LABEL(lookup_widget(window1,"lbl_irq"));
00416         gtk_label_set_text(lbl,irq);
00417         lbl=GTK_LABEL(lookup_widget(window1,"lbl_softirq"));
00418         gtk_label_set_text(lbl,softirq);
00419         
00420         lbl=GTK_LABEL(lookup_widget(window1,"lbl_context"));
00421         gtk_label_set_text(lbl,stats.ctxt->str);
00422         
00423         total=atof(user)+atof(nice)+atof(system)+atof(idle)+atof(iowait)+
00424                         atof(irq)+atof(softirq);
00425                         
00426         free=atof(idle)+atof(iowait)+atof(irq)+atof(softirq);
00427         use=total-free;
00428                         
00429         pb=GTK_PROGRESS_BAR(lookup_widget(window1,"pb_cpu"));
00430         gtk_progress_bar_set_fraction(pb,CLAMP((use-old_use)/(total-old_total),0,1));
00431         sprintf(percent,"%.0f%s",CLAMP((use-old_use),0,100),"%");
00432         gtk_progress_bar_set_text(pb,percent);
00433         
00434         old_use=use;
00435         old_total=total;
00436 
00437         }
00438 
00439         /*Update ACPI*/
00440 
00441   if(ret_acpi != -1){
00442 
00443         lbl=GTK_LABEL(lookup_widget(window1,"lbl_cap"));
00444         gtk_label_set_text(lbl,acpi.battery.cap->str);
00445         lbl=GTK_LABEL(lookup_widget(window1,"lbl_last_cap"));
00446         gtk_label_set_text(lbl,acpi.battery.last_cap->str);
00447         lbl=GTK_LABEL(lookup_widget(window1,"lbl_cap_warning"));
00448         gtk_label_set_text(lbl,acpi.battery.cap_warning->str);
00449         lbl=GTK_LABEL(lookup_widget(window1,"lbl_cap_low"));
00450         gtk_label_set_text(lbl,acpi.battery.cap_low->str);
00451         lbl=GTK_LABEL(lookup_widget(window1,"lbl_batt_type"));
00452         gtk_label_set_text(lbl,acpi.battery.type->str);
00453         
00454         if(strcmp(acpi.temp->str,"")!=0){
00455                 total=atof(acpi.temp_critical->str);
00456                 free=atof(acpi.temp->str);
00457         
00458                 pb=GTK_PROGRESS_BAR(lookup_widget(window1,"pb_temp"));
00459                 gtk_progress_bar_set_fraction(pb,free/total);
00460                 gtk_progress_bar_set_text(pb,acpi.temp->str);
00461         }else{
00462                 pb=GTK_PROGRESS_BAR(lookup_widget(window1,"pb_temp"));
00463                 gtk_progress_bar_set_text(pb,_("Unknown"));
00464         }
00465 
00466         if(strcmp(acpi.battery.rem->str,"")!=0){
00467                 total=atof(acpi.battery.cap->str);
00468                 free=atof(acpi.battery.rem->str);
00469         
00470                 pb=GTK_PROGRESS_BAR(lookup_widget(window1,"pb_batt"));
00471                 gtk_progress_bar_set_fraction(pb,free/total);
00472                 gtk_progress_bar_set_text(pb,acpi.battery.rem->str);
00473         }else{
00474                 pb=GTK_PROGRESS_BAR(lookup_widget(window1,"pb_batt"));
00475                 gtk_progress_bar_set_text(pb,_("Unknown"));
00476         }
00477   
00478  }  
00479         
00480   gdk_threads_leave();
00481 }

void update_modules_info (  ) 

Update modules information.

Updates modules tab

Definition at line 795 of file update.c.

References modules_info::contents, get_mod_info(), lkmonitor_fill_tv(), lookup_widget(), modinfo, TV_MODS, and window1.

Referenced by main(), and on_modules_refresh_clicked().

00796 {
00797 
00798         GtkListStore *model;
00799         GtkTreeView *gtv;
00800         GtkTreeIter iter;
00801         int ret;
00802 
00803         /* Get information */
00804         ret = get_mod_info(&modinfo);
00805 
00806         /* IMPORTANT:
00807                 We should not lock with gdk_threads_enter because this function is 
00808                 called from a callback and callbacks are already running inside a gdk
00809                 lock.
00810                 In addition, this function is called from main thread before the collector
00811                 thread is created, so we don't need to prevent the access from the other
00812                 thread.
00813         */
00814 
00815   if(ret != -1){
00816         /* We want the model of the GtkTreeView */
00817         gtv=GTK_TREE_VIEW(lookup_widget(window1,"gtv_modules"));
00818         model=GTK_LIST_STORE(gtk_tree_view_get_model(gtv));
00819 
00820         gtk_tree_view_set_model(gtv,NULL);
00821         gtk_list_store_clear(model);
00822         lkmonitor_fill_tv(model,gtv,iter,modinfo.contents->str,TV_MODS);
00823         gtk_tree_view_set_model(gtv,GTK_TREE_MODEL(model));
00824   }
00825 
00826 }

void update_net_info (  ) 

Update networking information.

Updates net tab

Definition at line 679 of file update.c.

References net_dev_info::bytes, net_dev_info::compressed, net_dev_info::drop, net_dev_info::errs, net_dev_info::fifo, get_net_info(), lkmonitor_itoa(), lookup_widget(), netinfo, net_dev_info::packets, net_dev_info::r_frame, net_dev_info::r_multicast, net_dev_info::t_carrier, net_dev_info::t_colls, and window1.

Referenced by main(), and refresh().

00680 {
00681   GtkComboBox *gcb_netdevs;
00682   GtkLabel *lbl;
00683   int ret;
00684  
00685         /* Get device list */
00686   gdk_threads_enter();
00687   gcb_netdevs=GTK_COMBO_BOX(lookup_widget(window1,"cb_net_devs"));
00688   gdk_threads_leave();
00689 
00690 if(GTK_WIDGET_IS_SENSITIVE(gcb_netdevs)){
00691   /* Get info for the active device */ 
00692   ret = get_net_info(&netinfo,gtk_combo_box_get_active(gcb_netdevs));
00693   
00694  if(ret != -1){
00695   gdk_threads_enter();
00696 
00697   /* Show in the window... */  
00698   
00699   /* Bytes */
00700   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_bytes"));
00701   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.bytes[0]));
00702   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_bytes"));
00703   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.bytes[1]));
00704 
00705   /* Packets */
00706   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_packets"));
00707   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.packets[0]));
00708   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_packets"));
00709   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.packets[1]));
00710 
00711   /* Errors */
00712   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_errors"));
00713   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.errs[0]));
00714   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_errors"));
00715   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.errs[1]));
00716 
00717   /* Drop */
00718   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_drop"));
00719   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.drop[0]));
00720   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_drop"));
00721   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.drop[1]));
00722   
00723   /* Fifo */
00724   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_fifo"));
00725   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.fifo[0]));
00726   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_fifo"));
00727   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.fifo[1]));
00728 
00729   /* Compressed */
00730   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_compressed"));
00731   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.compressed[0]));
00732   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_compressed"));
00733   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.compressed[1]));
00734 
00735 
00736   /* Receiving specific data */
00737   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_frame"));
00738   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.r_frame));
00739   lbl=GTK_LABEL(lookup_widget(window1,"lbl_r_multicast"));
00740   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.r_multicast));
00741 
00742   /* Transmiting specific data */
00743   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_colls"));
00744   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.t_colls));
00745   lbl=GTK_LABEL(lookup_widget(window1,"lbl_t_carrier"));
00746   gtk_label_set_text(lbl,(gchar *)lkmonitor_itoa(netinfo.t_carrier));
00747 
00748   gdk_threads_leave();
00749 
00750  }
00751 
00752 }
00753 
00754 }

void update_process (  ) 

Update the process panel.

Update the process tab

Definition at line 580 of file update.c.

References cmdversion, get_loadavg_info(), cmd_ver::loadavg, lookup_widget(), lnode::pid, and window1.

Referenced by refresh().

00581 {
00582   GtkLabel *lbl;
00583   GString *text;
00584   float one,five,fifteen;
00585   int pid,ret;
00586   char executing[15];   /*big enough to read that value*/
00587   
00588 
00589         /* First the process list */
00590   update_process_list();
00591 
00592   /*Now we want to update the load average information*/
00593   ret = get_loadavg_info(&cmdversion);  
00594 
00595   sscanf(cmdversion.loadavg->str,"%f %f %f %s %d",&one,&five,&fifteen, executing,&pid);
00596   text=g_string_new("");
00597   if(ret != -1)
00598         g_string_printf(text,"%.2f %.2f %.2f",one,five,fifteen);
00599 
00600   gdk_threads_enter();
00601     
00602   lbl=GTK_LABEL(lookup_widget(window1,"lbl_load"));
00603   gtk_label_set_text(lbl,text->str);
00604 
00605   lbl=GTK_LABEL(lookup_widget(window1,"lbl_entities"));
00606   gtk_label_set_text(lbl,executing);
00607 
00608   gdk_threads_leave();
00609 
00610 }

void update_settings (  ) 

Update settings pane.

Update gtk widgets for settings panel Called from a callback

Definition at line 284 of file update.c.

References settings_info::domain, settings_info::fdasig, settings_info::fdfreed, settings_info::fdmax, get_settings_info(), settings_info::host, settings_info::inasig, settings_info::inmax, lookup_widget(), settings_info::max_opcall, settings_info::max_seminset, settings_info::max_semsets, settings_info::max_semsys, settings_info::page_max, settings_info::posix_mpq, settings_info::posix_mq, settings_info::posix_ms, settings_info::seg_max, settings_info::seg_size, settings, settings_info::threads, and window1.

Referenced by main(), on_btn_load_clicked(), and on_btn_write_clicked().

00285 {
00286         GtkSpinButton *spb;
00287         GtkLabel *lbl;
00288         GtkEntry *ent;
00289         gchar str[10]; /* For numeric conversion. */
00290         
00291         if(get_settings_info(&settings)==1){
00292                 /* I leave this section just in case. Should the code in get_settings_info
00293                         doesn't find the date, default values are set. We can safely update
00294                         the gtk widgets.
00295                 */
00296         }
00297 
00298         /* IMPORTANT:
00299                 We should not lock with gdk_threads_enter because this function is 
00300                 called from a callback and callbacks are already running inside a gdk
00301                 lock.
00302                 In addition, this function is called from main thread before the collector
00303                 thread is created, so we don't need to prevent the access from the other
00304                 thread.
00305         */
00306         
00307         /* Identification */
00308         ent=GTK_ENTRY(lookup_widget(window1,"ent_hostname"));
00309         gtk_entry_set_text(ent,settings.host->str);
00310         
00311         ent=GTK_ENTRY(lookup_widget(window1,"ent_domainname"));
00312         gtk_entry_set_text(ent,settings.domain->str);
00313         
00314         
00315         /* threads */
00316         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_maxthreads"));
00317         gtk_spin_button_set_value(spb,(gdouble)settings.threads);
00318         
00319         /* files */
00320         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_fdmax"));
00321         gtk_spin_button_set_value(spb,(gdouble)settings.fdmax);
00322         
00323         lbl=GTK_LABEL(lookup_widget(window1,"lbl_inmax"));
00324         sprintf(str,"%d",settings.inmax);
00325         gtk_label_set_text(lbl,str);
00326         
00327         lbl=GTK_LABEL(lookup_widget(window1,"lbl_fda"));
00328         sprintf(str,"%d",settings.fdasig);
00329         gtk_label_set_text(lbl,str);
00330         
00331         lbl=GTK_LABEL(lookup_widget(window1,"lbl_ufd"));
00332         sprintf(str,"%d",settings.fdfreed);
00333         gtk_label_set_text(lbl,str);
00334         
00335         lbl=GTK_LABEL(lookup_widget(window1,"lbl_ina"));
00336         sprintf(str,"%d",settings.inasig);
00337         gtk_label_set_text(lbl,str);
00338         
00339         /* RT POSIX Signals */
00340         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_mq"));
00341         gtk_spin_button_set_value(spb,(gdouble)settings.posix_mq);
00342         
00343         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_max_mpq"));
00344         gtk_spin_button_set_value(spb,(gdouble)settings.posix_mpq);
00345         
00346         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_max_ms"));
00347         gtk_spin_button_set_value(spb,(gdouble)settings.posix_ms);
00348         
00349         /* Shared Memory */
00350         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_max_pages"));
00351         gtk_spin_button_set_value(spb,(gdouble)settings.page_max);
00352         
00353         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_max_segs"));
00354         gtk_spin_button_set_value(spb,(gdouble)settings.seg_max);
00355         
00356         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_seg_size"));
00357         gtk_spin_button_set_value(spb,(gdouble)settings.seg_size);
00358         
00359         /* Semaphores */
00360         
00361         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_sem_per_id"));
00362         gtk_spin_button_set_value(spb,(gdouble)settings.max_seminset);
00363         
00364         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_sem_val"));
00365         gtk_spin_button_set_value(spb,(gdouble)settings.max_semsys);
00366         
00367         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_ops"));
00368         gtk_spin_button_set_value(spb,(gdouble)settings.max_opcall);
00369         
00370         spb=GTK_SPIN_BUTTON(lookup_widget(window1,"spb_sem_id"));
00371         gtk_spin_button_set_value(spb,(gdouble)settings.max_semsets);
00372         
00373         
00374 }


Generated on Tue Apr 1 22:52:58 2008 for lkmonitor by  doxygen 1.5.1