00001 00002 /* 00003 lkmonitor (Linux Kernel Monitor) 00004 00005 Application for monitoring and tuning a Linux kernel. 00006 00007 Copyright (C) 2005-2008 Fernando ApesteguĂa 00008 00009 This program is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU General Public License 00011 as published by the Free Software Foundation; either version 2 00012 of the License, or (at your option) any later version. 00013 00014 This program is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 GNU General Public License for more details. 00018 00019 You should have received a copy of the GNU General Public License 00020 along with this program; if not, write to the Free Software 00021 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00022 */ 00023 00024 /* Header for procinfo */ 00025 #include <gtk/gtk.h> 00026 00027 #define DEF_SZ 15 00028 00034 struct procinfo{ 00035 int pid; 00036 GString *env; 00037 GString *maps; 00038 GString *cmdline; 00039 char size[DEF_SZ]; 00040 char locked[DEF_SZ]; 00041 char rss[DEF_SZ]; 00042 char data[DEF_SZ]; 00043 char stack[DEF_SZ]; 00044 char exe[DEF_SZ]; 00045 char lib[DEF_SZ]; 00046 char state[DEF_SZ+5]; 00047 char sleepavg[DEF_SZ]; 00048 char threads[DEF_SZ]; 00049 }; 00050 00055 struct mm_details{ 00056 char size[DEF_SZ]; 00057 char rss[DEF_SZ]; 00058 char sh_clean[DEF_SZ]; 00059 char sh_dirty[DEF_SZ]; 00060 char priv_clean[DEF_SZ]; 00061 char priv_dirty[DEF_SZ]; 00062 }; 00063 00064 int get_process_info(const int pid, struct procinfo *pi,struct dirent ***file_list,int *numfiles); 00065 int get_mm_details(const int pid, struct mm_details *details,const char *mmregion);