Compare commits
	
		
			3 Commits
		
	
	
		
			2.39.90
			...
			LIBGTOP_2_
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 3765989cde | ||
|  | 8308952bdf | ||
|  | 3bf5087ae8 | 
							
								
								
									
										95
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										95
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,95 +0,0 @@ | ||||
| *.a | ||||
| *.bak | ||||
| *.core | ||||
| *.diff | ||||
| *.gmo | ||||
| *.header | ||||
| *.in | ||||
| *.la | ||||
| *.lo | ||||
| *.new | ||||
| *.o | ||||
| *.old | ||||
| *.out | ||||
| *.patch | ||||
| *.pot | ||||
| *.s | ||||
| *.sed | ||||
| *.sin | ||||
| *.stamp | ||||
| *.swp | ||||
| *~ | ||||
| .deps | ||||
| .libs | ||||
| ABOUT-NLS | ||||
| INSTALL | ||||
| Makefile | ||||
| Makevars.template | ||||
| Rules-quot | ||||
| \#*\# | ||||
| aclocal.m4 | ||||
| autom4te.cache/ | ||||
| compile | ||||
| config.guess | ||||
| config.h | ||||
| config.log | ||||
| config.status | ||||
| config.sub | ||||
| configure | ||||
| depcomp | ||||
| doc/libgtop2.info | ||||
| doc/mdate-sh | ||||
| doc/reference/html/ | ||||
| doc/reference/libgtop-decl-list.txt | ||||
| doc/reference/libgtop-decl.txt | ||||
| doc/reference/libgtop-undeclared.txt | ||||
| doc/reference/libgtop-undocumented.txt | ||||
| doc/reference/libgtop-unused.txt | ||||
| doc/reference/libgtop.args | ||||
| doc/reference/libgtop.hierarchy | ||||
| doc/reference/libgtop.interfaces | ||||
| doc/reference/libgtop.prerequisites | ||||
| doc/reference/libgtop.signals | ||||
| doc/reference/tmpl/ | ||||
| doc/reference/version.xml | ||||
| doc/reference/xml/ | ||||
| doc/stamp-vti | ||||
| doc/texinfo.tex | ||||
| doc/version.texi | ||||
| examples/affinity | ||||
| examples/df | ||||
| examples/diskio | ||||
| examples/first | ||||
| examples/free | ||||
| examples/mountlist | ||||
| examples/netlist | ||||
| examples/netload | ||||
| examples/openfiles | ||||
| examples/pprint | ||||
| examples/procargs | ||||
| examples/proclist | ||||
| examples/procmap | ||||
| examples/second | ||||
| examples/smp | ||||
| examples/sysdeps | ||||
| examples/timings | ||||
| examples/wd | ||||
| gtk-doc.make | ||||
| install-sh | ||||
| lib/GTop-2.0.gir | ||||
| lib/GTop-2.0.typelib | ||||
| lib/lib.c | ||||
| libgtop-2.0.pc | ||||
| libgtop.spec | ||||
| libgtopconfig.h | ||||
| libtool | ||||
| ltmain.sh | ||||
| m4/ | ||||
| missing | ||||
| po/POTFILES | ||||
| po/stamp-it | ||||
| src/daemon/libgtop_daemon2 | ||||
| src/daemon/libgtop_server2 | ||||
| stamp-h1 | ||||
| stamp-po | ||||
| tmp-* | ||||
							
								
								
									
										3
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -1,4 +1,3 @@ | ||||
| Martin Baulig (martin@home-of-linux.org) | ||||
| Drazen Kacar (dave@srce.hr) | ||||
| Benoît Dejean (bdejean@gmail.com) | ||||
| Robert Roth (robert.roth.off@gmail.com) | ||||
| Benoît Dejean (tazforever@dlfp.org) | ||||
|   | ||||
							
								
								
									
										340
									
								
								COPYING
									
									
									
									
									
								
							
							
						
						
									
										340
									
								
								COPYING
									
									
									
									
									
								
							| @@ -1,340 +0,0 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||||
|      51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
| 			    Preamble | ||||
|  | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| License is intended to guarantee your freedom to share and change free | ||||
| software--to make sure the software is free for all its users.  This | ||||
| General Public License applies to most of the Free Software | ||||
| Foundation's software and to any other program whose authors commit to | ||||
| using it.  (Some other Free Software Foundation software is covered by | ||||
| the GNU Library General Public License instead.)  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| this service if you wish), that you receive source code or can get it | ||||
| if you want it, that you can change the software or use pieces of it | ||||
| in new free programs; and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to make restrictions that forbid | ||||
| anyone to deny you these rights or to ask you to surrender the rights. | ||||
| These restrictions translate to certain responsibilities for you if you | ||||
| distribute copies of the software, or if you modify it. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must give the recipients all the rights that | ||||
| you have.  You must make sure that they, too, receive or can get the | ||||
| source code.  And you must show them these terms so they know their | ||||
| rights. | ||||
|  | ||||
|   We protect your rights with two steps: (1) copyright the software, and | ||||
| (2) offer you this license which gives you legal permission to copy, | ||||
| distribute and/or modify the software. | ||||
|  | ||||
|   Also, for each author's protection and ours, we want to make certain | ||||
| that everyone understands that there is no warranty for this free | ||||
| software.  If the software is modified by someone else and passed on, we | ||||
| want its recipients to know that what they have is not the original, so | ||||
| that any problems introduced by others will not reflect on the original | ||||
| authors' reputations. | ||||
|  | ||||
|   Finally, any free program is threatened constantly by software | ||||
| patents.  We wish to avoid the danger that redistributors of a free | ||||
| program will individually obtain patent licenses, in effect making the | ||||
| program proprietary.  To prevent this, we have made it clear that any | ||||
| patent must be licensed for everyone's free use or not licensed at all. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
|  | ||||
|   0. This License applies to any program or other work which contains | ||||
| a notice placed by the copyright holder saying it may be distributed | ||||
| under the terms of this General Public License.  The "Program", below, | ||||
| refers to any such program or work, and a "work based on the Program" | ||||
| means either the Program or any derivative work under copyright law: | ||||
| that is to say, a work containing the Program or a portion of it, | ||||
| either verbatim or with modifications and/or translated into another | ||||
| language.  (Hereinafter, translation is included without limitation in | ||||
| the term "modification".)  Each licensee is addressed as "you". | ||||
|  | ||||
| Activities other than copying, distribution and modification are not | ||||
| covered by this License; they are outside its scope.  The act of | ||||
| running the Program is not restricted, and the output from the Program | ||||
| is covered only if its contents constitute a work based on the | ||||
| Program (independent of having been made by running the Program). | ||||
| Whether that is true depends on what the Program does. | ||||
|  | ||||
|   1. You may copy and distribute verbatim copies of the Program's | ||||
| source code as you receive it, in any medium, provided that you | ||||
| conspicuously and appropriately publish on each copy an appropriate | ||||
| copyright notice and disclaimer of warranty; keep intact all the | ||||
| notices that refer to this License and to the absence of any warranty; | ||||
| and give any other recipients of the Program a copy of this License | ||||
| along with the Program. | ||||
|  | ||||
| You may charge a fee for the physical act of transferring a copy, and | ||||
| you may at your option offer warranty protection in exchange for a fee. | ||||
|  | ||||
|   2. You may modify your copy or copies of the Program or any portion | ||||
| of it, thus forming a work based on the Program, and copy and | ||||
| distribute such modifications or work under the terms of Section 1 | ||||
| above, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) You must cause the modified files to carry prominent notices | ||||
|     stating that you changed the files and the date of any change. | ||||
|  | ||||
|     b) You must cause any work that you distribute or publish, that in | ||||
|     whole or in part contains or is derived from the Program or any | ||||
|     part thereof, to be licensed as a whole at no charge to all third | ||||
|     parties under the terms of this License. | ||||
|  | ||||
|     c) If the modified program normally reads commands interactively | ||||
|     when run, you must cause it, when started running for such | ||||
|     interactive use in the most ordinary way, to print or display an | ||||
|     announcement including an appropriate copyright notice and a | ||||
|     notice that there is no warranty (or else, saying that you provide | ||||
|     a warranty) and that users may redistribute the program under | ||||
|     these conditions, and telling the user how to view a copy of this | ||||
|     License.  (Exception: if the Program itself is interactive but | ||||
|     does not normally print such an announcement, your work based on | ||||
|     the Program is not required to print an announcement.) | ||||
|  | ||||
| These requirements apply to the modified work as a whole.  If | ||||
| identifiable sections of that work are not derived from the Program, | ||||
| and can be reasonably considered independent and separate works in | ||||
| themselves, then this License, and its terms, do not apply to those | ||||
| sections when you distribute them as separate works.  But when you | ||||
| distribute the same sections as part of a whole which is a work based | ||||
| on the Program, the distribution of the whole must be on the terms of | ||||
| this License, whose permissions for other licensees extend to the | ||||
| entire whole, and thus to each and every part regardless of who wrote it. | ||||
|  | ||||
| Thus, it is not the intent of this section to claim rights or contest | ||||
| your rights to work written entirely by you; rather, the intent is to | ||||
| exercise the right to control the distribution of derivative or | ||||
| collective works based on the Program. | ||||
|  | ||||
| In addition, mere aggregation of another work not based on the Program | ||||
| with the Program (or with a work based on the Program) on a volume of | ||||
| a storage or distribution medium does not bring the other work under | ||||
| the scope of this License. | ||||
|  | ||||
|   3. You may copy and distribute the Program (or a work based on it, | ||||
| under Section 2) in object code or executable form under the terms of | ||||
| Sections 1 and 2 above provided that you also do one of the following: | ||||
|  | ||||
|     a) Accompany it with the complete corresponding machine-readable | ||||
|     source code, which must be distributed under the terms of Sections | ||||
|     1 and 2 above on a medium customarily used for software interchange; or, | ||||
|  | ||||
|     b) Accompany it with a written offer, valid for at least three | ||||
|     years, to give any third party, for a charge no more than your | ||||
|     cost of physically performing source distribution, a complete | ||||
|     machine-readable copy of the corresponding source code, to be | ||||
|     distributed under the terms of Sections 1 and 2 above on a medium | ||||
|     customarily used for software interchange; or, | ||||
|  | ||||
|     c) Accompany it with the information you received as to the offer | ||||
|     to distribute corresponding source code.  (This alternative is | ||||
|     allowed only for noncommercial distribution and only if you | ||||
|     received the program in object code or executable form with such | ||||
|     an offer, in accord with Subsection b above.) | ||||
|  | ||||
| The source code for a work means the preferred form of the work for | ||||
| making modifications to it.  For an executable work, complete source | ||||
| code means all the source code for all modules it contains, plus any | ||||
| associated interface definition files, plus the scripts used to | ||||
| control compilation and installation of the executable.  However, as a | ||||
| special exception, the source code distributed need not include | ||||
| anything that is normally distributed (in either source or binary | ||||
| form) with the major components (compiler, kernel, and so on) of the | ||||
| operating system on which the executable runs, unless that component | ||||
| itself accompanies the executable. | ||||
|  | ||||
| If distribution of executable or object code is made by offering | ||||
| access to copy from a designated place, then offering equivalent | ||||
| access to copy the source code from the same place counts as | ||||
| distribution of the source code, even though third parties are not | ||||
| compelled to copy the source along with the object code. | ||||
|  | ||||
|   4. You may not copy, modify, sublicense, or distribute the Program | ||||
| except as expressly provided under this License.  Any attempt | ||||
| otherwise to copy, modify, sublicense or distribute the Program is | ||||
| void, and will automatically terminate your rights under this License. | ||||
| However, parties who have received copies, or rights, from you under | ||||
| this License will not have their licenses terminated so long as such | ||||
| parties remain in full compliance. | ||||
|  | ||||
|   5. You are not required to accept this License, since you have not | ||||
| signed it.  However, nothing else grants you permission to modify or | ||||
| distribute the Program or its derivative works.  These actions are | ||||
| prohibited by law if you do not accept this License.  Therefore, by | ||||
| modifying or distributing the Program (or any work based on the | ||||
| Program), you indicate your acceptance of this License to do so, and | ||||
| all its terms and conditions for copying, distributing or modifying | ||||
| the Program or works based on it. | ||||
|  | ||||
|   6. Each time you redistribute the Program (or any work based on the | ||||
| Program), the recipient automatically receives a license from the | ||||
| original licensor to copy, distribute or modify the Program subject to | ||||
| these terms and conditions.  You may not impose any further | ||||
| restrictions on the recipients' exercise of the rights granted herein. | ||||
| You are not responsible for enforcing compliance by third parties to | ||||
| this License. | ||||
|  | ||||
|   7. If, as a consequence of a court judgment or allegation of patent | ||||
| infringement or for any other reason (not limited to patent issues), | ||||
| conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot | ||||
| distribute so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you | ||||
| may not distribute the Program at all.  For example, if a patent | ||||
| license would not permit royalty-free redistribution of the Program by | ||||
| all those who receive copies directly or indirectly through you, then | ||||
| the only way you could satisfy both it and this License would be to | ||||
| refrain entirely from distribution of the Program. | ||||
|  | ||||
| If any portion of this section is held invalid or unenforceable under | ||||
| any particular circumstance, the balance of the section is intended to | ||||
| apply and the section as a whole is intended to apply in other | ||||
| circumstances. | ||||
|  | ||||
| It is not the purpose of this section to induce you to infringe any | ||||
| patents or other property right claims or to contest validity of any | ||||
| such claims; this section has the sole purpose of protecting the | ||||
| integrity of the free software distribution system, which is | ||||
| implemented by public license practices.  Many people have made | ||||
| generous contributions to the wide range of software distributed | ||||
| through that system in reliance on consistent application of that | ||||
| system; it is up to the author/donor to decide if he or she is willing | ||||
| to distribute software through any other system and a licensee cannot | ||||
| impose that choice. | ||||
|  | ||||
| This section is intended to make thoroughly clear what is believed to | ||||
| be a consequence of the rest of this License. | ||||
|  | ||||
|   8. If the distribution and/or use of the Program is restricted in | ||||
| certain countries either by patents or by copyrighted interfaces, the | ||||
| original copyright holder who places the Program under this License | ||||
| may add an explicit geographical distribution limitation excluding | ||||
| those countries, so that distribution is permitted only in or among | ||||
| countries not thus excluded.  In such case, this License incorporates | ||||
| the limitation as if written in the body of this License. | ||||
|  | ||||
|   9. The Free Software Foundation may publish revised and/or new versions | ||||
| of the General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
| Each version is given a distinguishing version number.  If the Program | ||||
| specifies a version number of this License which applies to it and "any | ||||
| later version", you have the option of following the terms and conditions | ||||
| either of that version or of any later version published by the Free | ||||
| Software Foundation.  If the Program does not specify a version number of | ||||
| this License, you may choose any version ever published by the Free Software | ||||
| Foundation. | ||||
|  | ||||
|   10. If you wish to incorporate parts of the Program into other free | ||||
| programs whose distribution conditions are different, write to the author | ||||
| to ask for permission.  For software which is copyrighted by the Free | ||||
| Software Foundation, write to the Free Software Foundation; we sometimes | ||||
| make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
|  | ||||
| 			    NO WARRANTY | ||||
|  | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | ||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | ||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||||
| REPAIR OR CORRECTION. | ||||
|  | ||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| convey the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     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; either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
|  | ||||
|     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 Street, Fifth Floor, Boston, MA  02110-1301  USA | ||||
|  | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
| If the program is interactive, make it output a short notice like this | ||||
| when it starts in an interactive mode: | ||||
|  | ||||
|     Gnomovision version 69, Copyright (C) year  name of author | ||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, the commands you use may | ||||
| be called something other than `show w' and `show c'; they could even be | ||||
| mouse-clicks or menu items--whatever suits your program. | ||||
|  | ||||
| You should also get your employer (if you work as a programmer) or your | ||||
| school, if any, to sign a "copyright disclaimer" for the program, if | ||||
| necessary.  Here is a sample; alter the names: | ||||
|  | ||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||||
|  | ||||
|   <signature of Ty Coon>, 1 April 1989 | ||||
|   Ty Coon, President of Vice | ||||
|  | ||||
| This General Public License does not permit incorporating your program into | ||||
| proprietary programs.  If your program is a subroutine library, you may | ||||
| consider it more useful to permit linking proprietary applications with the | ||||
| library.  If this is what you want to do, use the GNU Library General | ||||
| Public License instead of this License. | ||||
							
								
								
									
										53
									
								
								ChangeLog
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								ChangeLog
									
									
									
									
									
								
							| @@ -1,57 +1,8 @@ | ||||
| 2007-05-19  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* features.def: | ||||
| 	* include/glibtop/proclist.h: | ||||
|  | ||||
| 	Small API change. | ||||
| 	get_proclist returns pid_t instead of unsigned for consistency. | ||||
| 	I have checked many archs and this doesn't break the ABI. | ||||
|  | ||||
| 2007-05-17  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* configure.in: | ||||
|  | ||||
| 	Bumped version number. | ||||
|  | ||||
| 2007-05-14  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* include/glibtop/Makefile.am: | ||||
| 	* lib/Makefile.am: | ||||
|  | ||||
| 	Fixed dist. | ||||
|  | ||||
| 2007-05-13  Benoît Dejean  <benoit@placenet.org> | ||||
| 2007-05-08  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* NEWS: | ||||
| 	* configure.in: | ||||
| 	 | ||||
| 	Released 2.19.2. | ||||
|  | ||||
| 2007-05-10  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* lib/libgtop.sym: | ||||
|  | ||||
| 	Added missing *_p symbols. | ||||
|  | ||||
| 2007-05-07  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* configure.in: | ||||
| 	* lib/Makefile.am: | ||||
| 	* lib/libgtop.sym: | ||||
|  | ||||
| 	Updated libtool version. | ||||
| 	Now uses a symbol list instead of a regex. | ||||
|  | ||||
| 2007-05-07  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* New API to get cwd, root and exe path | ||||
| 	of a process. API not frozen yet. | ||||
|  | ||||
| 2007-04-27  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	Got rid of InodeDB. | ||||
| 	This feature was optionnal and i have never heard of anyone using | ||||
| 	it. I have never touched it so it may be broken since 2.6. | ||||
| 	Released 2.14.9. | ||||
|  | ||||
| 2007-04-11  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
|   | ||||
| @@ -1,4 +1 @@ | ||||
| Benoît Dejean | ||||
| E-mail: benoit@placenet.org | ||||
| Userid: bdejean | ||||
|  | ||||
| Benoît Dejean (benoit@placenet.org) | ||||
|   | ||||
							
								
								
									
										13
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -1,4 +1,3 @@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
|  | ||||
| if EXAMPLES | ||||
| EXAMPLES_DIR = examples | ||||
| @@ -15,8 +14,14 @@ EXTRA_DIST = autogen.sh libgtop.spec.in copyright.txt \ | ||||
| 	 features.def libgtopconfig.h.in \ | ||||
| 	libgtop-sysdeps.m4 README \ | ||||
| 	 libgtop-2.0.pc.in acinclude.m4 \ | ||||
| 	libgtop.doap \ | ||||
| 	m4/introspection.m4 | ||||
| 	intltool-extract.in \ | ||||
| 	intltool-merge.in \ | ||||
| 	intltool-update.in | ||||
|  | ||||
| DISTCLEANFILES = \ | ||||
| 	intltool-extract \ | ||||
| 	intltool-merge \ | ||||
| 	intltool-update | ||||
|  | ||||
| dist-hook: | ||||
| 	cp libgtop.spec $(distdir) | ||||
| @@ -27,4 +32,4 @@ pkgconfig_DATA = libgtop-2.0.pc | ||||
| libgtop-features.def: features.def | ||||
| 	@LN_S@ $< $@ | ||||
|  | ||||
| DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-introspection | ||||
| DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc | ||||
|   | ||||
							
								
								
									
										353
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										353
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,356 +1,7 @@ | ||||
| 04 February 2019: Overview of changes in 2.39.90 | ||||
| ================================================ | ||||
|  | ||||
| * Updated translations | ||||
| * FreeBSD: | ||||
|   - added support for laundry memory | ||||
|   - added support for ZFS ARC | ||||
| * Fixed compile warnings | ||||
| * Fix build on FreeBSD and darwin | ||||
| * Linux: | ||||
|   - get procmap doesn't need suid | ||||
|  | ||||
| 11 September 2017: Overview of changes in 2.38.0 | ||||
| ================================================ | ||||
|  | ||||
| * Updated translations | ||||
|  | ||||
| 04 September 2017: Overview of changes in 2.37.92 | ||||
| ================================================ | ||||
|  | ||||
| * Updated translations | ||||
| * Code cleanup | ||||
|  | ||||
| 07 August 2017: Overview of changes in 2.37.90 | ||||
| ================================================ | ||||
|  | ||||
| * Added reserved fields to the sysdeps struct | ||||
| * Updated translations | ||||
| * Fixed build failure in FreeBSD 11 | ||||
|  | ||||
| 22 May 2017: Overview of changes in 2.37.2 | ||||
| ================================================ | ||||
|  | ||||
| * Added support for per-process io monitoring | ||||
|   * Linux | ||||
|   * FreeBSD | ||||
| * Updated translations | ||||
| * Added nullpointer check | ||||
| * Use unicode in translatable strings | ||||
|  | ||||
| 20 March 2017: Overview of changes in 2.36.0 | ||||
| ================================================ | ||||
|  | ||||
| * Version bumped | ||||
|  | ||||
| 13 March 2017: Overview of changes in 2.35.92 | ||||
| ================================================ | ||||
|  | ||||
| * Better output format for arrays | ||||
|  | ||||
| 13 February 2017: Overview of changes in 2.35.90 | ||||
| ================================================ | ||||
|  | ||||
| * Linux: | ||||
|   - Use dynamically allocated cpu buffer | ||||
|   - Do not cache getpagesize() | ||||
|   - Use faster g_ascii_isspace in tokenization | ||||
|   - Ignore paragraphs not describing a CPU/core | ||||
|  | ||||
| * Updated translations | ||||
| * Added more gettext options | ||||
|  | ||||
| 16 January 2017: Overview of changes in 2.34.2 | ||||
| ================================================ | ||||
|  | ||||
| * Linux: | ||||
|   - fill last_processor member | ||||
|  | ||||
| * Updated translations | ||||
| * Added more gettext options | ||||
|  | ||||
| 20 August 2016: Overview of changes in 2.34.1 | ||||
| ================================================ | ||||
|  | ||||
| * FreeBSD: | ||||
|   - rewrite netload to use official APIs | ||||
|   - mark wireless interfaces as such | ||||
|  | ||||
| * All | ||||
|   - rename --with-libgtop-examples to --with-examples | ||||
|   - use gettext instead of intltool/glib-gettext | ||||
|   - added Language headers to the translations | ||||
|  | ||||
|  | ||||
| Special thanks to Gleb Smirnoff, Antoine Brodin, Koop Mast and Ting-Wei Lan for | ||||
| the FreeBSD fixes, to Javier Jardón for the gettext migration and to Piotr Drąg | ||||
| for adding the Language headers. | ||||
|  | ||||
| 22 March 2016: Overview of changes in 2.34.0 | ||||
| ================================================ | ||||
|  | ||||
| * Stable release | ||||
|  | ||||
| 29 February 2016: Overview of changes in 2.33.91 | ||||
|  | ||||
| * Updated translations | ||||
| * Fix building on must-libc | ||||
|  | ||||
| 18 January 2016: Overview of changes in 2.33.4 | ||||
|  | ||||
| * On OpenBSD only PID 1 is special | ||||
| * Call setlocale in main | ||||
|  | ||||
| 14 December: Overview of changes in 2.33.3 | ||||
|  | ||||
| * Fixed borken compilation on OpenBSD  | ||||
| * Updated translations. | ||||
|  | ||||
| 21 September 2015: Overview of changes in 2.32.0 | ||||
|  | ||||
| * Stable release | ||||
|  | ||||
| 14 September 2015: Overview of changes in 2.31.91 | ||||
| ================================================ | ||||
| * Darwin: | ||||
|   - Fixed build. | ||||
|  | ||||
| * All | ||||
|   - GI docs fixes | ||||
|   - include fixes | ||||
|   - Updated translations | ||||
|  | ||||
| 16 August 2015: Overview of changes in 2.31.90 | ||||
| ============================================= | ||||
| * ABI changes: | ||||
|   - ABI was inconsistent on platforms like FreeBSD which make use of | ||||
|     glibtop_machine. The ABI was actually different between the | ||||
|     library and the server. Fixed this by simply always defining | ||||
|     glibtop_machine in glibtop struct. | ||||
|   - Add Pss and Swap members in glibtop_proc_mem. | ||||
|   - This is the second ABI breakage in since 2.28 (the first one was | ||||
|     bumping NCPU), there were no release for 2.30. | ||||
|  | ||||
| * FreeBSD: | ||||
|   - proclist: exclude the "idle" kernel process when GLIBTOP_EXCLUDE_IDLE. | ||||
|   - Remove extraneous glibtop_init() calls. | ||||
|  | ||||
| * Linux: | ||||
|   - proc_mem: implement Pss and Swap. | ||||
|   - Remove extraneous glibtop_init() calls. | ||||
|  | ||||
| * All: | ||||
|   - Propagate the change that machine in struct glibtop is now a | ||||
|     pointer. Hope that change doesn't break build on other platforms, | ||||
|     I can only test Linux and FreeBSD. | ||||
|  | ||||
|  | ||||
| 5 August 2015: Overview of changes in 2.31.4 | ||||
| ============================================= | ||||
| * 71 commits ! | ||||
| * Implement a proper --enable-debug mode. | ||||
| * FreeBSD: | ||||
| 	- procstate: set process name for kernel (pid=0) | ||||
| 	- procmap: get dev/inode for ZFS (no filename yet) | ||||
| 	- mem: rework memory usage to something more meaningful | ||||
| 	- proclist: don't report threads | ||||
| 	- proctime: fix CPU times | ||||
| * Linux: | ||||
| 	- mem: use MemAvailable when available | ||||
| 	- mem: match `free`, report Slab as Cached. | ||||
| 	- support for x.y versionsmemory to match `free` | ||||
| * Fix a lot of GI tags: it now works without crashing. | ||||
| * Server and daemon binaries are now dynamically linked against their libgtop. | ||||
| * Update a lot of examples/. | ||||
| * Clean up some very old code. | ||||
| * Updated translations. | ||||
|  | ||||
| Special thanks to Ting-Wei Lan for providing patches and feedback on FreeBSD. | ||||
|  | ||||
| 22 June 2015: Overview of changes in 2.31.3 | ||||
| ============================================= | ||||
| * Numerous OpenBSD backend fixes. | ||||
| * Fixed FreeBSD build issues. | ||||
| * Implemented procaffinity support for NetBSD. | ||||
| * Updated translations | ||||
|  | ||||
| 19 August 2013: Overview of changes in 2.28.5 | ||||
| ============================================= | ||||
| * Fix numerous bugs in the OpenBSD backend. | ||||
| * Updated translations. | ||||
|  | ||||
| 30 August 2011: Overview of changes in 2.28.4 | ||||
| ============================================= | ||||
| * Fix numerous bugs in the FreeBSD backend. | ||||
| * Split off OpenBSD code in its own backend, and fixes. | ||||
| * Updated translations. | ||||
|  | ||||
| 25 March 2011: Overview of changes in 2.28.3 | ||||
| ================================================ | ||||
| * Fix build issue for strict linkers. | ||||
| * Add Introspection support | ||||
| * Cygwin fixes. | ||||
| * FreeBSD: Fix get_mem() on 64-bit systems. | ||||
| * Updated translations. | ||||
|  | ||||
| 28 September 2010: Overview of changes in 2.28.2 | ||||
| ================================================ | ||||
| * Updated translations. | ||||
|  | ||||
| 30 March 2010: Overview of changes in 2.28.1 | ||||
| ============================================ | ||||
| * Updated translations. | ||||
|  | ||||
| 21 September 2009: Overview of changes in 2.28.0 | ||||
| ================================================ | ||||
| * Updated translations. | ||||
|  | ||||
| 25 May 2009: Overview of changes in 2.27.3 | ||||
| ========================================== | ||||
| * linux: | ||||
|   - fixed format error. | ||||
|  | ||||
| 3 May 2009: Overview of changes in 2.27.2 | ||||
| 8 May 2007: Overview of changes in 2.14.9 | ||||
| ========================================= | ||||
| * linux: | ||||
|   - glibtop_get_proc_map: oops, fixed segfault. | ||||
|  | ||||
| 3 May 2009: Overview of changes in 2.27.1 | ||||
| ========================================= | ||||
| * linux: | ||||
|   - glibtop_get_proc_map is ~40% faster. This should be noticeable | ||||
|     in system-monitor. | ||||
| * New cygwin support. | ||||
|  | ||||
| 13 April 2009: Overview of changes in 2.26.1 | ||||
| ============================================ | ||||
| * linux: | ||||
|   - glibtop_get_mounlist(...): also hide "none" fs. | ||||
|  | ||||
| 1 Mars 2009: Overview of changes in 2.26.0 | ||||
| ========================================== | ||||
| * Nothing. | ||||
|  | ||||
| 17 February 2009: Overview of changes in 2.25.91 | ||||
| ================================================ | ||||
| * Synced with gnome-2-24. | ||||
|  | ||||
| 19 January 2009: Overview of changes in 2.24.4 | ||||
| ============================================== | ||||
| * Fixed license: libgtop is GPL-2. | ||||
|  | ||||
| 12 January 2009: Overview of changes in 2.24.3 | ||||
| ============================================== | ||||
| * linux: | ||||
|   - fixed potential memory leak. Vincent Untz. | ||||
|   - fixed read(2) usage. Should fix the missing cpus bug in system-monitor. | ||||
| * darwin: | ||||
|   - fixed build. "paul". | ||||
|  | ||||
| 22 Septembre 2008: Overview of changes in 2.24.0 | ||||
| ================================================ | ||||
| * Translation updates. | ||||
|  | ||||
| 18 August 2008: Overview of changes in 2.23.90 | ||||
| ============================================== | ||||
| * freebsd: | ||||
|   - updated port by Joe Marcus Clarke. | ||||
|  | ||||
| 23 June 2008: Overview of changes in 2.23.4 | ||||
| =========================================== | ||||
| * linux: | ||||
|   - Fixed and improved glibtop_get_fsusage with kernel >= 2.6.25. | ||||
|     Closes #539360. | ||||
|  | ||||
| 24 May 2008: Overview of changes in 2.23.2 | ||||
| ========================================== | ||||
| * glibtop_get_proc_open_files API can also lists IPv6 TCP sockets. | ||||
| * glibtop_get_proc_affinity : new API to retrieve process CPU affinity. | ||||
|  | ||||
| (Let's hope one day i'll find the gtk-doc documentation ...) | ||||
|  | ||||
| * linux: | ||||
|   - fixed parsing of big /proc/stat for uptime. | ||||
|  | ||||
| 04 April 2008: Overview of changes in 2.22.1 | ||||
| ============================================ | ||||
| * Fixed compilation/dist for !linux. | ||||
|   Closes #525953. | ||||
|  | ||||
| 10 Mars 2008: Overview of changes in 2.22.0 | ||||
| =========================================== | ||||
| * linux: | ||||
|   - fixed proc_kernel. | ||||
|   | ||||
| 25 February 2008: Overview of changes in 2.21.92 | ||||
| ================================================ | ||||
| * linux: | ||||
|   - fixed smaps parsing on >= 2.6.24.x. | ||||
|  | ||||
| 14 January 2008: Overview of changes in 2.21.5 | ||||
| ============================================== | ||||
| * freebsd: | ||||
|   - fixed build on GNU/kfreebsd. Petr Salinger. | ||||
|   - fixed procmem units. Kuang-che Wu. | ||||
|  | ||||
| 28 October 2007: Overview of changes in 2.21.1 | ||||
| ============================================== | ||||
| * don't export _p/_s private symbols anymore. This is not an API/ABI breakage. | ||||
| * darwin implementation by Benjamin Reed. | ||||
| * linux: | ||||
|   - splitted fsusage and mountlist implementations; | ||||
|   - smarter mountlist(allfs = False); | ||||
|   - fixed some compile warning on 64bit; | ||||
| * solaris: | ||||
|   - fixed netload build by Henry Zhang. | ||||
|  | ||||
| 16 September 2007: Overview of changes in 2.20.0 | ||||
| ================================================ | ||||
| * Updated translations. | ||||
|  | ||||
| 27 August 2007: Overview of changes in 2.19.92 | ||||
| ============================================== | ||||
| * Fixed stupid hardwired path in linux/sysinfo.c | ||||
|  | ||||
| 26 August 2007: Overview of changes in 2.19.91 | ||||
| ============================================== | ||||
| * Translations updates. | ||||
| * linux: | ||||
|   - Small internal improvement. Might fix sysinfo when having more than | ||||
|   8 CPUS. | ||||
|  | ||||
| 9 July 2007: Overview of changes in 2.19.5 | ||||
| ========================================== | ||||
| * linux: | ||||
|   - fixed proc_map for >= 2.6.22 | ||||
| * freebsd: | ||||
|   - implemented procwd and procopenfiles | ||||
|     Joe Marcus Clarke | ||||
|  | ||||
| 18 June 2007: Overview of changes in 2.19.4 | ||||
| =========================================== | ||||
| * solaris: | ||||
|   - fixed build. Damien Carbery. | ||||
|  | ||||
| 3 June 2007: Overview of changes in 2.19.3 | ||||
| ========================================== | ||||
| * Small API change. get_proclist returns pid_t instead of unsigned | ||||
|   for consistency. | ||||
| * linux: | ||||
|   - fixed an typo bug in open_files. | ||||
|   - got rid of useless glibtop_init_s calls. | ||||
| * Enable example build by defaut. | ||||
| * Dropped G_GNUC_INTERNAL attributes no longer needed. | ||||
|   This will please people trying to implement G_GNUC macro with a non | ||||
|   GNU Compiler. | ||||
|  | ||||
| 13 May 2007: Overview of changes in 2.19.2 | ||||
| ========================================== | ||||
| * This is the first release of the 2.19.x series. | ||||
| * Got rid of inodedb (you don't even know what it is ;) | ||||
| * New unstable API glibtop_get_proc_wd to get working directories of | ||||
|   a process. | ||||
| * Fixed OpenBSD build. Jasper Lievisse Adriaanse. | ||||
| * Misc. cleanups. | ||||
|  | ||||
| 25 February 2007: Overview of changes in 2.14.8 | ||||
| =============================================== | ||||
|   | ||||
| @@ -4,7 +4,9 @@ | ||||
| srcdir=`dirname $0` | ||||
| test -z "$srcdir" && srcdir=. | ||||
|  | ||||
| (test -f $srcdir/configure.ac \ | ||||
| PKG_NAME="Gnome Top Library" | ||||
|  | ||||
| (test -f $srcdir/configure.in \ | ||||
|   && test -f $srcdir/copyright.txt \ | ||||
|   && test -d $srcdir/sysdeps) || { | ||||
|     echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" | ||||
|   | ||||
| @@ -3,16 +3,16 @@ dnl Configure script for the Gnome library | ||||
| dnl | ||||
| 
 | ||||
| m4_define([libgtop_major_version], [2]) | ||||
| m4_define([libgtop_minor_version], [39]) | ||||
| m4_define([libgtop_micro_version], [90]) | ||||
| m4_define([libgtop_minor_version], [14]) | ||||
| m4_define([libgtop_micro_version], [9]) | ||||
| m4_define([libgtop_version], [libgtop_major_version.libgtop_minor_version.libgtop_micro_version]) | ||||
| 
 | ||||
| dnl  increment if the interface has additions, changes, removals. | ||||
| m4_define([libgtop_current], [11]) | ||||
| m4_define([libgtop_current], [7]) | ||||
| 
 | ||||
| dnl  increment any time the source changes; set to | ||||
| dnl  0 if you increment CURRENT | ||||
| m4_define([libgtop_revision], [1]) | ||||
| m4_define([libgtop_revision], [0]) | ||||
| 
 | ||||
| dnl  increment if any interfaces have been added; set to 0 | ||||
| dnl  if any interfaces have been removed. removal has | ||||
| @@ -25,19 +25,15 @@ m4_define([libgtop_server_version], [5]) | ||||
| # Version code calculation | ||||
| m4_define([libgtop_version_code], [m4_eval(libgtop_major_version * 1000000 + libgtop_minor_version * 1000 + libgtop_micro_version)]) | ||||
| 
 | ||||
| AC_PREREQ(2.62) | ||||
| AC_PREREQ(2.59) | ||||
| AC_INIT([libgtop], [libgtop_version], | ||||
|         [http://bugzilla.gnome.org/enter_bug.cgi?product=libgtop]) | ||||
| AC_CONFIG_SRCDIR(copyright.txt) | ||||
| AC_CONFIG_HEADERS(config.h) | ||||
| 
 | ||||
| AC_CANONICAL_HOST | ||||
| 
 | ||||
| AM_INIT_AUTOMAKE([-Wno-portability tar-ustar no-dist-gzip dist-xz]) | ||||
| AM_SILENT_RULES([yes]) | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
| GOBJECT_INTROSPECTION_CHECK([0.6.7]) | ||||
| AC_CANONICAL_SYSTEM | ||||
| 
 | ||||
| AM_INIT_AUTOMAKE | ||||
| AC_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}]) | ||||
| 
 | ||||
| AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version]) | ||||
| @@ -91,13 +87,39 @@ AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = xyes) | ||||
| GNOME_LIBGTOP_SYSDEPS | ||||
| GNOME_LIBGTOP_TYPES | ||||
| 
 | ||||
| GLIB_REQUIRED=2.6.0 | ||||
| GOBJECT_REQUIRED=2.26.0 | ||||
| AC_ARG_WITH(libgtop-inodedb, | ||||
|             AS_HELP_STRING([--with-libgtop-inodedb], | ||||
|                            [Build the inodedb stuff @<:@default=no@:>@]), | ||||
|             [build_inodedb="$withval"], | ||||
|             [build_inodedb=no]) | ||||
| 
 | ||||
| PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GOBJECT_REQUIRED) | ||||
| LIBGTOP_EXTRA_LIBS= | ||||
| 
 | ||||
| if test x$build_inodedb = xyes ; then | ||||
|   AC_CHECK_LIB(gdbm, gdbm_open, LIBGTOP_EXTRA_LIBS='-lgdbm', build_inodedb=no) | ||||
| fi | ||||
| 
 | ||||
| AM_CONDITIONAL(INODEDB, test x$build_inodedb = xyes) | ||||
| 
 | ||||
| if test x$build_inodedb = xyes ; then | ||||
|   AC_DEFINE(GLIBTOP_INODEDB, 1, | ||||
|             [Define if the libgtop inodedb should be built]) | ||||
| fi | ||||
| 
 | ||||
| GLIB_REQUIRED=2.6.0 | ||||
| 
 | ||||
| PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED) | ||||
| AC_SUBST(GLIB_CFLAGS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
| 
 | ||||
| AC_CHECK_HEADER(popt.h,[POPT=yes],[POPT=no]) | ||||
| AC_MSG_CHECKING(for popt.h) | ||||
| if test x$POPT = xyes ; then | ||||
|    AC_MSG_RESULT(yes) | ||||
| else | ||||
|    AC_MSG_ERROR([libgtop requires the popt development libraries]) | ||||
| fi | ||||
| 
 | ||||
| AC_CHECK_HEADER(ifaddrs.h, [HAVE_IFADDRS_H=yes], [HAVE_IFADDRS_H=no]) | ||||
| if test x$HAVE_IFADDRS_H = xyes ; then | ||||
| 	AC_DEFINE(HAVE_IFADDRS_H, 1, [defined if you have ifaddrs.h]) | ||||
| @@ -215,14 +237,16 @@ AC_TYPE_SIGNAL | ||||
| AC_FUNC_STRFTIME | ||||
| AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname) | ||||
| 
 | ||||
| AM_GNU_GETTEXT_VERSION([0.19.4]) | ||||
| AM_GNU_GETTEXT([external]) | ||||
| IT_PROG_INTLTOOL([0.35.0]) | ||||
| 
 | ||||
| GETTEXT_PACKAGE=libgtop-2.0 | ||||
| AC_SUBST(GETTEXT_PACKAGE) | ||||
| AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", | ||||
|                    [Define to the gettext package used by the library]) | ||||
| 
 | ||||
| AM_GLIB_GNU_GETTEXT | ||||
| GLIB_DEFINE_LOCALEDIR([GTOPLOCALEDIR]) | ||||
| 
 | ||||
| AC_PATH_XTRA | ||||
| 
 | ||||
| dnl For Solaris | ||||
| @@ -261,8 +285,7 @@ dnl Debugging | ||||
| AC_ARG_ENABLE(debug, | ||||
|               AS_HELP_STRING([--enable-debug], | ||||
|                              [Turn on debugging @<:@default=no@:>@]), | ||||
|               AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging]), | ||||
|               AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 0, [Define to disable debugging])) | ||||
|               AC_DEFINE(LIBGTOP_ENABLE_DEBUG, 1, [Define to enable debugging])) | ||||
| AC_ARG_ENABLE(fatal-warnings, | ||||
|               AS_HELP_STRING([--enable-fatal-warnings], | ||||
|                              [Make all warnings fatal @<:@debug=no@:>@]), | ||||
| @@ -273,6 +296,18 @@ dnl These definitions are expanded in make. | ||||
| LIBGTOP_LIBS='-L$(libdir)' | ||||
| LIBGTOP_INCS='-I$(includedir)/libgtop-2.0' | ||||
| 
 | ||||
| if test x$libgtop_use_machine_h = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_GLIBTOP_MACHINE_H" | ||||
| fi | ||||
| 
 | ||||
| if test x$build_inodedb = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DGLIBTOP_INODEDB" | ||||
| fi | ||||
| 
 | ||||
| if test x$libgtop_smp = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SMP" | ||||
| fi | ||||
| 
 | ||||
| if test x$libgtop_have_sysinfo = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO" | ||||
| fi | ||||
| @@ -301,17 +336,24 @@ LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS" | ||||
| 
 | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS" | ||||
| 
 | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS"  | ||||
| 
 | ||||
| machine_incs="-I\$(top_srcdir)/sysdeps/$sysdeps_dir" | ||||
| 
 | ||||
| AC_SUBST(machine_incs) | ||||
| 
 | ||||
| if test "$GCC" = "yes" ; then | ||||
|         CFLAGS="\ | ||||
| 	-Winline \ | ||||
| 	-Wall \ | ||||
| 	-std=gnu89 \ | ||||
| 	-Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes \ | ||||
| 	-Wnested-externs -Wpointer-arith \ | ||||
| 	-Wcast-align -Wsign-compare \ | ||||
| 	$CFLAGS" | ||||
| fi | ||||
| 
 | ||||
| AM_CPPFLAGS="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS" | ||||
| INCLUDES="-I\$(top_builddir) -I\$(top_srcdir) -I\$(top_srcdir)/sysdeps/$sysdeps_dir -I\$(top_srcdir)/include $GLIB_CFLAGS $X_CFLAGS" | ||||
| 
 | ||||
| # Add various defines to the config.h file ... | ||||
| AH_VERBATIM([_GNU_SOURCE], | ||||
| @@ -330,7 +372,7 @@ AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code], | ||||
| AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"], | ||||
|                    [The path to the libgtop server]) | ||||
| 
 | ||||
| AC_SUBST(AM_CPPFLAGS) | ||||
| AC_SUBST(INCLUDES) | ||||
| 
 | ||||
| AC_SUBST(LIBGTOP_EXTRA_LIBS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
| @@ -369,11 +411,9 @@ sysdeps/freebsd/Makefile | ||||
| sysdeps/solaris/Makefile | ||||
| sysdeps/aix/Makefile | ||||
| sysdeps/bsd/Makefile | ||||
| sysdeps/darwin/Makefile | ||||
| sysdeps/cygwin/Makefile | ||||
| sysdeps/openbsd/Makefile | ||||
| src/Makefile | ||||
| src/daemon/Makefile | ||||
| src/inodedb/Makefile | ||||
| lib/Makefile | ||||
| examples/Makefile | ||||
| doc/Makefile | ||||
| @@ -16,7 +16,7 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							| @@ -10,7 +10,7 @@ | ||||
| i=$(shell pwd)/debian/tmp | ||||
| b=$(shell pwd)/debian/build | ||||
|  | ||||
| configure: configure.ac | ||||
| configure: configure.in | ||||
| 	@echo "--- Making configure script and configuring" | ||||
| 	chmod +x autogen.sh | ||||
| 	./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \ | ||||
|   | ||||
| @@ -743,7 +743,7 @@ The description above is taken from the manual page of the @file{/proc} | ||||
| filesystem under Linux and is a little bit confusing, so I make this clear | ||||
| here.  | ||||
|  | ||||
| @strong{A word for people porting LibGTop to other systems:} | ||||
| @strong{Note for people porting LibGTop to other systems:} | ||||
| Every operating system has its own idea about the memory usage of a process | ||||
| and also system utilities like @code{ps} show different things on different | ||||
| systems. | ||||
|   | ||||
| @@ -46,9 +46,9 @@ HTML_IMAGES= | ||||
| # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. | ||||
| # Only needed if you are using gtkdoc-scangobj to dynamically query widget | ||||
| # signals and properties. | ||||
| # e.g. AM_CPPFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) | ||||
| # e.g. INCLUDES=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) | ||||
| # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) | ||||
| AM_CPPFLAGS= | ||||
| INCLUDES= | ||||
| GTKDOC_LIBS= | ||||
|  | ||||
| # This includes the standard gtk-doc make rules, copied by gtkdocize. | ||||
|   | ||||
| @@ -36,8 +36,8 @@ | ||||
|       Documentation License</citetitle> from the Free Software | ||||
|       Foundation by visiting <ulink type="http" | ||||
|       url="http://www.fsf.org">their Web site</ulink> or by writing | ||||
|       to: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|       Boston, MA 02110-1301, USA.</para> | ||||
|       to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|       Boston, MA 02111-1307, USA.</para> | ||||
|  | ||||
|       <para>Many of the names used by companies to distinguish their | ||||
|       products and services are claimed as trademarks. Where those | ||||
| @@ -171,6 +171,7 @@ rather than using the server.</para> | ||||
|     <xi:include href="xml/close.xml"/> | ||||
|     <xi:include href="xml/command.xml"/> | ||||
|     <xi:include href="xml/glibtop-server.xml"/> | ||||
|     <xi:include href="xml/inodedb.xml"/> | ||||
|     <xi:include href="xml/netload.xml"/> | ||||
|     <xi:include href="xml/ppp.xml"/> | ||||
|     <xi:include href="xml/shm_limits.xml"/> | ||||
|   | ||||
| @@ -73,6 +73,24 @@ glibtop_server_ref | ||||
| glibtop_server_unref | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/inodedb.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>inodedb</FILE> | ||||
| <TITLE>Inode DB</TITLE> | ||||
| GLIBTOP_INODEDB_SYSTEM | ||||
| GLIBTOP_INODEDB_USER | ||||
| GLIBTOP_INODEDB_CACHE | ||||
| GLIBTOP_INODEDB_ALL | ||||
| glibtop_inodedb | ||||
| glibtop_inodedb_key | ||||
| glibtop_inodedb_open | ||||
| glibtop_inodedb_lookup | ||||
| glibtop_inodedb_close | ||||
| glibtop_inodedb_open_s | ||||
| glibtop_inodedb_lookup_s | ||||
| glibtop_inodedb_close_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/netload.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>netload</FILE> | ||||
| @@ -219,8 +237,17 @@ glibtop_set_parameter_l | ||||
| <INCLUDE>glibtop/procargs.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procargs</FILE> | ||||
| GLIBTOP_PROC_ARGS_SIZE | ||||
| GLIBTOP_MAX_PROC_ARGS | ||||
| glibtop_proc_args | ||||
| glibtop_get_proc_args_l | ||||
| glibtop_get_proc_args | ||||
| glibtop_get_proc_args_r | ||||
| glibtop_init_proc_args_p | ||||
| glibtop_get_proc_args_p | ||||
| glibtop_init_proc_args_s | ||||
| glibtop_get_proc_args_s | ||||
| glibtop_get_proc_argv_l | ||||
| glibtop_get_proc_argv | ||||
| </SECTION> | ||||
|  | ||||
| @@ -411,8 +438,26 @@ glibtop_get_proc_uid_s | ||||
| <INCLUDE>glibtop/proctime.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>proctime</FILE> | ||||
| GLIBTOP_PROC_TIME_START_TIME | ||||
| GLIBTOP_PROC_TIME_RTIME | ||||
| GLIBTOP_PROC_TIME_UTIME | ||||
| GLIBTOP_PROC_TIME_STIME | ||||
| GLIBTOP_PROC_TIME_CUTIME | ||||
| GLIBTOP_PROC_TIME_CSTIME | ||||
| GLIBTOP_PROC_TIME_TIMEOUT | ||||
| GLIBTOP_PROC_TIME_IT_REAL_VALUE | ||||
| GLIBTOP_PROC_TIME_FREQUENCY | ||||
| GLIBTOP_PROC_TIME_XCPU_UTIME | ||||
| GLIBTOP_PROC_TIME_XCPU_STIME | ||||
| GLIBTOP_MAX_PROC_TIME | ||||
| glibtop_proc_time | ||||
| glibtop_get_proc_time | ||||
| glibtop_get_proc_time_r | ||||
| glibtop_get_proc_time_l | ||||
| glibtop_init_proc_time_p | ||||
| glibtop_get_proc_time_p | ||||
| glibtop_init_proc_time_s | ||||
| glibtop_get_proc_time_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/signal.h</INCLUDE> | ||||
| @@ -488,6 +533,10 @@ glibtop_send_version | ||||
| <INCLUDE>glibtop/proclist.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>proclist</FILE> | ||||
| GLIBTOP_PROCLIST_NUMBER | ||||
| GLIBTOP_PROCLIST_TOTAL | ||||
| GLIBTOP_PROCLIST_SIZE | ||||
| GLIBTOP_MAX_PROCLIST | ||||
| GLIBTOP_KERN_PROC_ALL | ||||
| GLIBTOP_KERN_PROC_PID | ||||
| GLIBTOP_KERN_PROC_PGRP | ||||
| @@ -501,6 +550,12 @@ GLIBTOP_EXCLUDE_SYSTEM | ||||
| GLIBTOP_EXCLUDE_NOTTY | ||||
| glibtop_proclist | ||||
| glibtop_get_proclist | ||||
| glibtop_get_proclist_r | ||||
| glibtop_get_proclist_l | ||||
| glibtop_init_proclist_p | ||||
| glibtop_get_proclist_p | ||||
| glibtop_init_proclist_s | ||||
| glibtop_get_proclist_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/sem_limits.h</INCLUDE> | ||||
|   | ||||
| @@ -1,11 +1,3 @@ | ||||
| 2007-05-19  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* Makefile.am: | ||||
| 	* mem.c: (main): | ||||
| 	* wd.c: (main): | ||||
|  | ||||
| 	Fixed wd and new simple mem example. | ||||
|  | ||||
| 2006-02-27  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_proc_mem), (main): | ||||
|   | ||||
| @@ -1,17 +1,14 @@ | ||||
| ## Process this file with automake to produce Makefile.in | ||||
|  | ||||
| AM_CPPFLAGS = \ | ||||
| 	-I$(top_srcdir) \ | ||||
| 	-I$(top_srcdir)/include \ | ||||
| 	-I$(top_srcdir)/sysdeps/$(sysdeps_dir) \ | ||||
| 	-DGTOPLOCALEDIR=\"$(localedir)\" \ | ||||
| 	$(GLIB_CFLAGS) | ||||
| LINK			= $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@ | ||||
|  | ||||
| AM_LDFLAGS			= $(LIBGTOP_EXTRA_LIBS) | ||||
| INCLUDES		= @INCLUDES@ | ||||
|  | ||||
| DEFS			= @DEFS@ | ||||
|  | ||||
| noinst_PROGRAMS	= 	first second pprint procargs df netlist \ | ||||
| 			  mountlist procmap netload sysdeps timings \ | ||||
| 			  openfiles smp proclist free wd affinity diskio | ||||
| 			  openfiles smp proclist | ||||
|  | ||||
| first_SOURCES		= first.c | ||||
| first_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| @@ -43,7 +40,6 @@ pprint_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
| procargs_SOURCES	  = procargs.c | ||||
| procargs_LDADD		  = $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
|  | ||||
| df_SOURCES	  = df.c | ||||
| df_LDADD		  = $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| @@ -55,15 +51,3 @@ openfiles_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| proclist_SOURCES	= proclist.c | ||||
| proclist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| wd_SOURCES	= wd.c | ||||
| wd_LDADD	= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| free_SOURCE	= mem.c | ||||
| free_LDADD	= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| affinity_SOURCES	= affinity.c | ||||
| affinity_LDADD	= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| diskio_SOURCES	  = diskio.c | ||||
| diskio_LDADD	  = $(top_builddir)/lib/libgtop-2.0.la | ||||
|   | ||||
| @@ -1,34 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procaffinity.h> | ||||
|  | ||||
| #include <glib.h> | ||||
| #include <unistd.h> | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
| 	pid_t pid; | ||||
| 	glibtop_proc_affinity buf; | ||||
| 	guint16 *cpus; | ||||
| 	size_t i; | ||||
|  | ||||
| 	if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0))) | ||||
| 		pid = getpid(); | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	cpus = glibtop_get_proc_affinity(&buf, pid); | ||||
|  | ||||
| 	g_print("Process %u:\n" | ||||
| 		" - all: %d\n", | ||||
| 		(unsigned)pid, buf.all); | ||||
|  | ||||
| 	for (i = 0; i != buf.number; ++i) | ||||
| 		g_print(" - CPU#%u is set\n", cpus[i]); | ||||
|  | ||||
| 	g_free(cpus); | ||||
|  | ||||
| 	glibtop_close(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @@ -13,62 +13,37 @@ static void print_fsusage(const char *mountpoint) | ||||
| { | ||||
|   glibtop_fsusage buf; | ||||
|  | ||||
|   enum { SIZE, USED, FREE, AVAIL, READ, WRITE, MAX }; | ||||
|   char **a = g_new0(char*, MAX); | ||||
|  | ||||
|   glibtop_get_fsusage(&buf, mountpoint); | ||||
|  | ||||
|  | ||||
| #define I(X) a[(X)] | ||||
|   I(SIZE)  = g_format_size_full(buf.blocks * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); | ||||
|   I(USED)  = g_format_size_full((buf.blocks - buf.bavail)  * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); | ||||
|   I(FREE)  = g_format_size_full(buf.bfree * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); | ||||
|   I(AVAIL) = g_format_size_full(buf.bavail * buf.block_size, G_FORMAT_SIZE_IEC_UNITS); | ||||
|   I(READ)  = g_format_size_full(buf.read, G_FORMAT_SIZE_IEC_UNITS); | ||||
|   I(WRITE) = g_format_size_full(buf.write, G_FORMAT_SIZE_IEC_UNITS); | ||||
|  | ||||
|   printf("%#7x %10s %10s %10s %10s %5.1f%% %10s %10s %8lu %8lu %s\n", | ||||
|     (unsigned)buf.flags, | ||||
|     I(SIZE), | ||||
|     I(USED), | ||||
|     I(FREE), | ||||
|     I(AVAIL), | ||||
|     (buf.blocks - buf.bavail) * 100.0 / (buf.blocks ? buf.blocks : 1.0), | ||||
|     I(READ), | ||||
|     I(WRITE), | ||||
|     (unsigned long)buf.files, | ||||
|     (unsigned long)buf.ffree, | ||||
|     mountpoint | ||||
|     ); | ||||
|  | ||||
|   g_strfreev(a); | ||||
|   printf("%-20s %-10llu %-10llu %-10llu %.1f\n", | ||||
| 	 mountpoint, | ||||
| 	 buf.blocks * buf.block_size >> 20, | ||||
| 	 (buf.blocks - buf.bavail) * buf.block_size >> 20, | ||||
| 	 buf.bavail * buf.block_size >> 20, | ||||
| 	 (buf.blocks - buf.bavail) * 100.0 / buf.blocks | ||||
| 	 ); | ||||
| } | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
|  | ||||
| int main() | ||||
| { | ||||
|   glibtop_mountlist buf; | ||||
|   glibtop_mountentry *entries; | ||||
|   size_t i; | ||||
|  | ||||
|   glibtop_init(); | ||||
|  | ||||
|   printf("%-6s %10s %10s %10s %10s %5s %10s %10s %10s %10s %s\n", | ||||
| 	 "(flags)", "Size", "Used", "Free", "Avail", "Use%", "Read", "Write", "Files", "Files Free", "Mountpoint"); | ||||
|   printf("%-20s %-10s %-10s %-10s %-10s\n", | ||||
| 	 "Filesystem", "Size", "Used", "Avail", "Use%"); | ||||
|  | ||||
|   if (argc > 1) { | ||||
|     while (*++argv) | ||||
|       print_fsusage(*argv); | ||||
|   } else { | ||||
|     glibtop_mountentry *entries; | ||||
|     size_t i; | ||||
|   entries = glibtop_get_mountlist(&buf, FALSE); | ||||
|  | ||||
|     entries = glibtop_get_mountlist(&buf, TRUE); | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|     { | ||||
|       print_fsusage(entries[i].mountdir); | ||||
|     } | ||||
|  | ||||
|     for(i = 0; i < buf.number; ++i) | ||||
|       { | ||||
| 	print_fsusage(entries[i].mountdir); | ||||
|       } | ||||
|  | ||||
|     g_free(entries); | ||||
|   } | ||||
|   g_free(entries); | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   | ||||
| @@ -1,39 +0,0 @@ | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procio.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| static void show_diskio(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_io io; | ||||
|  | ||||
|   glibtop_get_proc_io (&io, pid); | ||||
|  | ||||
|   printf("<%ld>\t", (long)pid); | ||||
|  | ||||
|   printf("flags: %08lx disk_rchar : %lu, disk_wchar : %lu, disk_read_bytes : %lu, disk_write_bytes : %lu\n", (unsigned long)io.flags, io.disk_rchar, io.disk_wchar, io.disk_rbytes, io.disk_wbytes); | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   while(*++argv) | ||||
|     { | ||||
|       pid_t pid = strtol(*argv, NULL, 10); | ||||
|       show_diskio(pid); | ||||
|     } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -47,9 +47,9 @@ main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_union data; | ||||
| 	glibtop_sysdeps sysdeps; | ||||
| 	unsigned c, method, count, port, i; | ||||
| 	unsigned c, method, count, port, i, *ptr; | ||||
| 	char buffer [BUFSIZ]; | ||||
| 	pid_t pid, ppid, *ptr; | ||||
| 	pid_t pid, ppid; | ||||
| 	char *args; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
|   | ||||
| @@ -1,44 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/mem.h> | ||||
| #include <glibtop/swap.h> | ||||
|  | ||||
| #include <glib.h> | ||||
| #include <unistd.h> | ||||
|  | ||||
| static unsigned mb(guint64 n) | ||||
| { | ||||
|         return n >> 20; | ||||
| } | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|         glibtop_mem mem; | ||||
|         glibtop_swap swap; | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
|         glibtop_get_mem(&mem); | ||||
|         glibtop_get_swap(&swap); | ||||
|  | ||||
|         printf("              total        used        free      shared  buff/cache   available\n"); | ||||
|  | ||||
|         printf("%-7s %11u %11u %11u %11u %11u %11u\n", | ||||
|                "Mem:", | ||||
|                 mb(mem.total), | ||||
|                 mb(mem.used - mem.buffer - mem.cached), | ||||
|                 mb(mem.free), | ||||
|                 mb(mem.shared), | ||||
|                 mb(mem.buffer + mem.cached), | ||||
|                 mb(mem.total - mem.user)); | ||||
|  | ||||
|         printf("%-7s %11u %11u %11u\n", | ||||
|                "Swap:", | ||||
|                 mb(swap.total), | ||||
|                 mb(swap.used), | ||||
|                 mb(swap.free)); | ||||
|  | ||||
| 	glibtop_close(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -99,7 +99,7 @@ main (int argc, char *argv []) | ||||
| 		glibtop_get_fsusage (&fsusage, | ||||
| 				     mount_entries [index].mountdir); | ||||
|  | ||||
| 		printf ("%-16s %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9" G_GUINT64_FORMAT " %9d\n", | ||||
| 		printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", | ||||
| 			mount_entries [index].mountdir, | ||||
| 			fsusage.blocks, fsusage.bfree, | ||||
| 			fsusage.bavail, fsusage.files, | ||||
|   | ||||
| @@ -14,8 +14,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -51,7 +51,7 @@ static char* hwaddress_format_for_display(glibtop_netload *buf) | ||||
|  | ||||
| 	for(i = 0; i < sizeof buf->hwaddress; ++i) | ||||
| 		g_string_append_printf(repr, "%02X:", | ||||
| 				       ((unsigned char*)buf->hwaddress)[i]); | ||||
| 				       (unsigned) ((char*)buf->hwaddress)[i]); | ||||
|  | ||||
| 	repr->str [ repr->len - 1] = ' '; | ||||
| 	str = g_string_free(repr, FALSE); | ||||
| @@ -118,22 +118,22 @@ main (int argc, char *argv []) | ||||
| 		"\tAddress:\t\t0x%08x - %s\n" | ||||
| 		"\tSubnet:\t\t\t0x%08x - %s\n\n" | ||||
| 		"\tMTU:\t\t\t%d\n" | ||||
| 		"\tCollisions:\t\t%" G_GUINT64_FORMAT "\n\n" | ||||
| 		"\tPackets In:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tPackets Out:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tPackets Total:\t\t%" G_GUINT64_FORMAT "\n\n" | ||||
| 		"\tBytes In:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tBytes Out:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tBytes Total:\t\t%" G_GUINT64_FORMAT "\n\n" | ||||
| 		"\tErrors In:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tErrors Out:\t\t%" G_GUINT64_FORMAT "\n" | ||||
| 		"\tErrors Total:\t\t%" G_GUINT64_FORMAT "\n\n" | ||||
| 		"\tCollisions:\t\t%llu\n\n" | ||||
| 		"\tPackets In:\t\t%llu\n" | ||||
| 		"\tPackets Out:\t\t%llu\n" | ||||
| 		"\tPackets Total:\t\t%llu\n\n" | ||||
| 		"\tBytes In:\t\t%llu\n" | ||||
| 		"\tBytes Out:\t\t%llu\n" | ||||
| 		"\tBytes Total:\t\t%llu\n\n" | ||||
| 		"\tErrors In:\t\t%llu\n" | ||||
| 		"\tErrors Out:\t\t%llu\n" | ||||
| 		"\tErrors Total:\t\t%llu\n\n" | ||||
| 		"\tAddress6:\t\t%s\n" | ||||
| 		"\tPrefix6:\t\t%s\n" | ||||
| 		"\tScope6:\t\t\t%#03x\n\n" | ||||
| 		"\tHarware Address:\t%s\n\n", | ||||
| 		(unsigned long long)netload.flags, | ||||
| 		(unsigned long long)netload.if_flags, | ||||
| 		netload.flags, | ||||
| 		netload.if_flags, | ||||
| 		(guint32) netload.address, address_string, | ||||
| 		(guint32) netload.subnet,  subnet_string, | ||||
| 		netload.mtu, | ||||
|   | ||||
| @@ -37,16 +37,9 @@ static void show_open_files(pid_t pid) | ||||
| 		  printf("socket %s:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_INET6SOCKET: | ||||
| 		  printf("socket [%s]:%d\n", files[i].info.sock.dest_host, files[i].info.sock.dest_port); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_LOCALSOCKET: | ||||
| 		  printf("localsocket %s\n", files[i].info.localsock.name); | ||||
| 		  break; | ||||
|  | ||||
| 	  default: | ||||
| 		  printf("unknown type\n"); | ||||
| 	  } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,6 @@ | ||||
| #endif | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/sysinfo.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| @@ -18,68 +17,21 @@ | ||||
| #define HEADER_PPRINT(FUNC) printf("### " #FUNC " ###\nsizeof *buf = %lu B\n", \ | ||||
| (unsigned long) sizeof buf) | ||||
|  | ||||
| #define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = %" FORMAT "\n", \ | ||||
| #define PPRINT(DATA, FORMAT) printf("\t%4lu B %3lu " #DATA " = " FORMAT "\n", \ | ||||
| (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), buf.DATA) | ||||
|  | ||||
| #define PPRINT_GUINT64(DATA) PPRINT(DATA, G_GUINT64_FORMAT) | ||||
|  | ||||
| #define PPRINT_FLAGS(DATA) printf("\t%4lu B %3lu " "flags" " = " "%#llx" "\n", \ | ||||
| (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), (unsigned long long)buf.DATA) | ||||
|  | ||||
| #define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do {				\ | ||||
|     size_t i;								\ | ||||
|     printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ",			\ | ||||
| 	   (unsigned long) sizeof buf.ARRAY,				\ | ||||
| 	   (unsigned long) buf_offsetof(ARRAY),				\ | ||||
| 	   (unsigned long) G_N_ELEMENTS(buf.ARRAY));			\ | ||||
|     for (i = 0; i < (SIZE); ++i) {					\ | ||||
|       if (!buf.ARRAY[i] && i < (SIZE - 1) && !buf.ARRAY[i + 1]) {	\ | ||||
| 	do { i++; } while (i < SIZE && !buf.ARRAY[i]);			\ | ||||
| 	printf("..., ");						\ | ||||
|       } else {								\ | ||||
| 	printf(".%zd = %" FORMAT ", ", i, buf.ARRAY[i]);			\ | ||||
|       }									\ | ||||
|     }									\ | ||||
|     printf("}\n");							\ | ||||
|   } while(0) | ||||
|  | ||||
| #define PPRINT_ENTRY_ARRAY(ARRAY, SIZE) do { \ | ||||
| #define PPRINT_ARRAY(ARRAY, SIZE, FORMAT) do { \ | ||||
| size_t i; \ | ||||
| printf("\t%4lu B " #ARRAY "[%lu/%lu] = { \n", \ | ||||
| (unsigned long) sizeof buf->ARRAY, (unsigned long)(SIZE),	\ | ||||
| (unsigned long) G_N_ELEMENTS(buf->ARRAY)); \ | ||||
| for(i = 0; i < SIZE; ++i) { \ | ||||
|   if (buf->ARRAY[i].values) {			\ | ||||
|     printf ("\t[ ");				\ | ||||
|     PPRINT_HASHTABLE(buf->ARRAY[i].values);	\ | ||||
|     printf ("]\n");				\ | ||||
|   }						\ | ||||
| } \ | ||||
| printf("} "); \ | ||||
| } while(0) | ||||
|  | ||||
| #define PPRINT_HASHTABLE(HASHTABLE) do { \ | ||||
| g_hash_table_foreach (HASHTABLE, (GHFunc)pprint_hashtable_item, NULL); \ | ||||
| printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \ | ||||
| (unsigned long) sizeof buf.ARRAY, (unsigned long) buf_offsetof(ARRAY),\ | ||||
| (unsigned long) G_N_ELEMENTS(buf.ARRAY)); \ | ||||
| for(i = 0; i < (SIZE - 1); ++i) printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]); \ | ||||
| printf(".%u = " FORMAT " }\n", SIZE - 1 , buf.ARRAY[SIZE - 1]); \ | ||||
| } while(0) | ||||
|  | ||||
| #define FOOTER_PPRINT() putchar('\n'); | ||||
|  | ||||
| static void pprint_hashtable_item(gchar* key, gchar* value, gpointer user_data)  | ||||
| { | ||||
|   printf ("'%s': '%s', ", key, value); | ||||
| } | ||||
| static void pprint_get_sysinfo(void) | ||||
| { | ||||
|   const glibtop_sysinfo *buf; | ||||
|  | ||||
|   buf = glibtop_get_sysinfo(); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_sysinfo); | ||||
|   //PPRINT_FLAGS(flags); | ||||
|   // PPRINT_GUINT64(ncpu); | ||||
|   PPRINT_ENTRY_ARRAY(cpuinfo, buf->ncpu); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| static void pprint_get_cpu(void) | ||||
| { | ||||
| @@ -88,25 +40,25 @@ static void pprint_get_cpu(void) | ||||
|   glibtop_get_cpu(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_cpu); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(total); | ||||
|   PPRINT_GUINT64(user); | ||||
|   PPRINT_GUINT64(nice); | ||||
|   PPRINT_GUINT64(sys); | ||||
|   PPRINT_GUINT64(idle); | ||||
|   PPRINT_GUINT64(iowait); | ||||
|   PPRINT_GUINT64(irq); | ||||
|   PPRINT_GUINT64(softirq); | ||||
|   PPRINT_GUINT64(frequency); | ||||
|   PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, G_GUINT64_FORMAT); | ||||
|   PPRINT_FLAGS(xcpu_flags); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(user, "%llu"); | ||||
|   PPRINT(nice, "%llu"); | ||||
|   PPRINT(sys, "%llu"); | ||||
|   PPRINT(idle, "%llu"); | ||||
|   PPRINT(iowait, "%llu"); | ||||
|   PPRINT(irq, "%llu"); | ||||
|   PPRINT(softirq, "%llu"); | ||||
|   PPRINT(frequency, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_total, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_user, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_nice, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_sys, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_idle, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_iowait, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_irq, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT_ARRAY(xcpu_softirq, GLIBTOP_NCPU, "%llu"); | ||||
|   PPRINT(xcpu_flags, "%llx"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -120,15 +72,15 @@ static void pprint_get_fsusage(const char *mountpoint) | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_fsusage); | ||||
|   printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(blocks); | ||||
|   PPRINT_GUINT64(bfree); | ||||
|   PPRINT_GUINT64(bavail); | ||||
|   PPRINT_GUINT64(files); | ||||
|   PPRINT_GUINT64(ffree); | ||||
|   PPRINT(block_size, "u"); | ||||
|   PPRINT_GUINT64(read); | ||||
|   PPRINT_GUINT64(write); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(blocks, "%llu"); | ||||
|   PPRINT(bfree, "%llu"); | ||||
|   PPRINT(bavail, "%llu"); | ||||
|   PPRINT(files, "%llu"); | ||||
|   PPRINT(ffree, "%llu"); | ||||
|   PPRINT(block_size, "%u"); | ||||
|   PPRINT(read, "%llu"); | ||||
|   PPRINT(write, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -141,11 +93,11 @@ static void pprint_get_loadavg(void) | ||||
|   glibtop_get_loadavg(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_loadavg); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_ARRAY(loadavg, 3, "f"); | ||||
|   PPRINT_GUINT64(nr_running); | ||||
|   PPRINT_GUINT64(nr_tasks); | ||||
|   PPRINT_GUINT64(last_pid); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT_ARRAY(loadavg, 3, "%f"); | ||||
|   PPRINT(nr_running, "%llu"); | ||||
|   PPRINT(nr_tasks, "%llu"); | ||||
|   PPRINT(last_pid, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -158,15 +110,15 @@ static void pprint_get_mem(void) | ||||
|   glibtop_get_mem(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mem); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(total); | ||||
|   PPRINT_GUINT64(used); | ||||
|   PPRINT_GUINT64(free); | ||||
|   PPRINT_GUINT64(shared); | ||||
|   PPRINT_GUINT64(buffer); | ||||
|   PPRINT_GUINT64(cached); | ||||
|   PPRINT_GUINT64(user); | ||||
|   PPRINT_GUINT64(locked); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(used, "%llu"); | ||||
|   PPRINT(free, "%llu"); | ||||
|   PPRINT(shared, "%llu"); | ||||
|   PPRINT(buffer, "%llu"); | ||||
|   PPRINT(cached, "%llu"); | ||||
|   PPRINT(user, "%llu"); | ||||
|   PPRINT(locked, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -182,12 +134,12 @@ static void pprint_get_mountlist(gboolean allfs) | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mountlist); | ||||
|   printf("glibtop_get_mountlist (allfs = %d)\n", allfs); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(number); | ||||
|   PPRINT_GUINT64(total); | ||||
|   PPRINT_GUINT64(size); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(number, "%llu"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(size, "%llu"); | ||||
|  | ||||
|   printf("\t%4" G_GUINT64_FORMAT " B entries[%" G_GUINT64_FORMAT "] = \n\t\t{\n", buf.total, buf.number); | ||||
|   printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|     { | ||||
| @@ -195,7 +147,7 @@ static void pprint_get_mountlist(gboolean allfs) | ||||
| 	     " .devname = \"%s\"," | ||||
| 	     " .mountir = \"%s\"," | ||||
| 	     " .type = \"%s\" }\n", | ||||
| 	     (unsigned long) i, (unsigned long long)entries[i].dev, | ||||
| 	     (unsigned long) i, entries[i].dev, | ||||
| 	     entries[i].devname, | ||||
| 	     entries[i].mountdir, | ||||
| 	     entries[i].type); | ||||
| @@ -216,14 +168,14 @@ static void pprint_get_msg_limits(void) | ||||
|   glibtop_get_msg_limits(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_msg_limits); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(msgpool); | ||||
|   PPRINT_GUINT64(msgmap); | ||||
|   PPRINT_GUINT64(msgmax); | ||||
|   PPRINT_GUINT64(msgmnb); | ||||
|   PPRINT_GUINT64(msgmni); | ||||
|   PPRINT_GUINT64(msgssz); | ||||
|   PPRINT_GUINT64(msgtql); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(msgpool, "%llu"); | ||||
|   PPRINT(msgmap, "%llu"); | ||||
|   PPRINT(msgmax, "%llu"); | ||||
|   PPRINT(msgmnb, "%llu"); | ||||
|   PPRINT(msgmni, "%llu"); | ||||
|   PPRINT(msgssz, "%llu"); | ||||
|   PPRINT(msgtql, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -237,7 +189,7 @@ static void pprint_get_netload(const char *iface) | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_netload); | ||||
|   printf("glibtop_get_netload (iface = \"%s\")\n", iface); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -271,12 +223,12 @@ static void pprint_get_swap(void) | ||||
|   glibtop_get_swap(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_swap); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(total); | ||||
|   PPRINT_GUINT64(used); | ||||
|   PPRINT_GUINT64(free); | ||||
|   PPRINT_GUINT64(pagein); | ||||
|   PPRINT_GUINT64(pageout); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(used, "%llu"); | ||||
|   PPRINT(free, "%llu"); | ||||
|   PPRINT(pagein, "%llu"); | ||||
|   PPRINT(pageout, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -289,10 +241,10 @@ static void pprint_get_uptime(void) | ||||
|   glibtop_get_uptime(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_uptime); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT(uptime, "f"); | ||||
|   PPRINT(idletime, "f"); | ||||
|   PPRINT_GUINT64(boot_time); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(uptime, "%f"); | ||||
|   PPRINT(idletime, "%f"); | ||||
|   PPRINT(boot_time, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -306,12 +258,12 @@ static void pprint_get_proc_kernel(pid_t pid) | ||||
|   glibtop_get_proc_kernel(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_kernel); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(k_flags); | ||||
|   PPRINT_GUINT64(min_flt); | ||||
|   PPRINT_GUINT64(maj_flt); | ||||
|   PPRINT_GUINT64(cmin_flt); | ||||
|   PPRINT_GUINT64(cmaj_flt); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(k_flags, "%llu"); | ||||
|   PPRINT(min_flt, "%llu"); | ||||
|   PPRINT(maj_flt, "%llu"); | ||||
|   PPRINT(cmin_flt, "%llu"); | ||||
|   PPRINT(cmaj_flt, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| @@ -323,45 +275,22 @@ static void pprint_get_proc_mem(pid_t pid) | ||||
|   glibtop_get_proc_mem(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_mem); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT_GUINT64(size); | ||||
|   PPRINT_GUINT64(vsize); | ||||
|   PPRINT_GUINT64(resident); | ||||
|   PPRINT_GUINT64(share); | ||||
|   PPRINT_GUINT64(rss); | ||||
|   PPRINT_GUINT64(rss_rlim); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(size, "%llu"); | ||||
|   PPRINT(vsize, "%llu"); | ||||
|   PPRINT(resident, "%llu"); | ||||
|   PPRINT(share, "%llu"); | ||||
|   PPRINT(rss, "%llu"); | ||||
|   PPRINT(rss_rlim, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void pprint_get_proc_affinity(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_affinity buf; | ||||
|   guint32 i; | ||||
|   guint16* cpus; | ||||
|  | ||||
|   cpus = glibtop_get_proc_affinity(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_affinity); | ||||
|   PPRINT_FLAGS(flags); | ||||
|   PPRINT(number, "u"); | ||||
|   PPRINT(all, "d"); | ||||
|  | ||||
|   printf("\taffinity="); | ||||
|   for (i = 0; i < buf.number; i++) { | ||||
|     printf("%d, ", cpus[i]); | ||||
|   } | ||||
|   putchar('\n'); | ||||
|  | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main() | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   pprint_get_sysinfo(); | ||||
|   pprint_get_cpu(); | ||||
|  | ||||
|   pprint_get_fsusage("/"); | ||||
| @@ -388,7 +317,6 @@ int main() | ||||
|  | ||||
|   pprint_get_proc_kernel(getpid()); | ||||
|   pprint_get_proc_mem(getpid()); | ||||
|   pprint_get_proc_affinity(getpid()); | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   | ||||
| @@ -1,8 +1,5 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/proclist.h> | ||||
| #include <glibtop/procstate.h> | ||||
| #include <glibtop/proctime.h> | ||||
| #include <glibtop/procuid.h> | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| @@ -14,34 +11,20 @@ | ||||
|  | ||||
| static void print_pids(guint64 which, guint64 arg) | ||||
| { | ||||
| 	pid_t *pids; | ||||
| 	unsigned *pids; | ||||
| 	unsigned i; | ||||
| 	glibtop_proclist buf; | ||||
|  | ||||
| 	pids = glibtop_get_proclist(&buf, which, arg); | ||||
|  | ||||
| 	for (i = 0; i < buf.number; ++i) { | ||||
| 		glibtop_proc_time ptime; | ||||
| 		glibtop_proc_uid puid; | ||||
| 		glibtop_proc_state pstate; | ||||
| 	printf("glibtop_get_proclist(%#llx, %llu) -> %lu processes\n", | ||||
| 	       which, arg, (unsigned long)buf.number); | ||||
|  | ||||
| 		pid_t p = pids[i]; | ||||
| 	for (i = 0; i < buf.number; ++i) | ||||
| 		printf("%u ", pids[i]); | ||||
|  | ||||
| 		glibtop_get_proc_time(&ptime, p); | ||||
| 		glibtop_get_proc_uid(&puid, p); | ||||
| 		glibtop_get_proc_state(&pstate, p); | ||||
|  | ||||
| 		/* almost equivalent to ps -x -o user,pid,time,usertime,systime,start,command */ | ||||
| 		printf("%u pid=%u real=%.2f user=%.2f sys=%.2f start=%lu %s (%lx)\n", | ||||
| 		       puid.uid, | ||||
| 		       p, | ||||
| 		       (double)ptime.rtime / ptime.frequency, | ||||
| 		       (double)ptime.utime / ptime.frequency, | ||||
| 		       (double)ptime.stime / ptime.frequency, | ||||
| 		       (unsigned long)ptime.start_time, | ||||
| 		       pstate.cmd, | ||||
| 		       (long)ptime.flags); | ||||
| 	} | ||||
| 	putchar('\n'); | ||||
| 	putchar('\n'); | ||||
|  | ||||
| 	g_free(pids); | ||||
| } | ||||
| @@ -51,6 +34,7 @@ int main() | ||||
| { | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	print_pids(GLIBTOP_KERN_PROC_ALL, 0); | ||||
| 	print_pids(GLIBTOP_KERN_PROC_UID, getuid()); | ||||
|  | ||||
| 	glibtop_close(); | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -35,43 +35,23 @@ | ||||
|  | ||||
| #include <glibtop/procmap.h> | ||||
|  | ||||
| #ifdef GLIBTOP_INODEDB | ||||
| #include <glibtop/inodedb.h> | ||||
| #endif | ||||
|  | ||||
| #include <sys/resource.h> | ||||
| #include <sys/mman.h> | ||||
|  | ||||
| #include <fcntl.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT	1 | ||||
| #endif | ||||
|  | ||||
| static void | ||||
| try_mmap(const char *path) | ||||
| { | ||||
| 	struct stat buf; | ||||
| 	int fd; | ||||
|  | ||||
| 	if ((fd = open(path, O_RDONLY)) < 0) | ||||
| 		goto out; | ||||
|  | ||||
| 	if (fstat(fd, &buf) < 0) | ||||
| 		goto out; | ||||
|  | ||||
| 	if (mmap(NULL, buf.st_size, PROT_READ, MAP_PRIVATE, fd, 0) == MAP_FAILED) | ||||
| 		goto out; | ||||
|  | ||||
| 	close(fd); | ||||
|  | ||||
| 	return; | ||||
|  | ||||
| out: | ||||
| 	fprintf(stderr, "Failed to test mmap with '%s'\n", path); | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| #ifdef GLIBTOP_INODEDB | ||||
| 	glibtop_inodedb *inodedb; | ||||
| #endif | ||||
| 	glibtop_proc_map procmap; | ||||
| 	glibtop_map_entry *maps; | ||||
| 	unsigned method, count, port, i; | ||||
| @@ -104,18 +84,12 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	if (argc == 1) { | ||||
| 		pid = getpid(); | ||||
| 	} | ||||
| 	else if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1)) | ||||
| 		g_error ("Usage: %s [pid]", argv [0]); | ||||
| 	if ((argc != 2) || (sscanf (argv [1], "%d", (int *) &pid) != 1)) | ||||
| 		g_error ("Usage: %s pid", argv [0]); | ||||
|  | ||||
| 	if (pid == getpid()) { | ||||
| 		/* let's map something for a try */ | ||||
| 		try_mmap("/etc/passwd"); | ||||
| 		try_mmap("/etc/resolv.conf"); | ||||
| 		try_mmap(argv[0]); | ||||
| 	} | ||||
| #ifdef GLIBTOP_INODEDB | ||||
| 	inodedb = glibtop_inodedb_open (0, 0); | ||||
| #endif | ||||
|  | ||||
| 	fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid); | ||||
|  | ||||
| @@ -123,13 +97,18 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	for (i = 0; i < procmap.number; i++) { | ||||
| 		const char *filename = NULL; | ||||
| 		char * format; | ||||
| 		unsigned device, device_major, device_minor; | ||||
| 		char perm [5]; | ||||
|  | ||||
| 		if (maps [i].flags & (1L << GLIBTOP_MAP_ENTRY_FILENAME)) | ||||
| 			filename = maps [i].filename; | ||||
|  | ||||
| #ifdef GLIBTOP_INODEDB | ||||
| 		if (inodedb && !filename) | ||||
| 			filename = glibtop_inodedb_lookup | ||||
| 				(inodedb, maps [i].device, maps [i].inode); | ||||
| #endif | ||||
|  | ||||
| 		perm [0] = (maps [i].perm & GLIBTOP_MAP_PERM_READ) ? 'r' : '-'; | ||||
| 		perm [1] = (maps [i].perm & GLIBTOP_MAP_PERM_WRITE) ? 'w' : '-'; | ||||
| 		perm [2] = (maps [i].perm & GLIBTOP_MAP_PERM_EXECUTE) ? 'x' : '-'; | ||||
| @@ -140,32 +119,47 @@ main (int argc, char *argv []) | ||||
| 		device_minor = (device & 255); | ||||
| 		device_major = ((device >> 8) & 255); | ||||
|  | ||||
| 		if (sizeof (void*) == 8) | ||||
| 			format = "%016lx-%016lx +%016lx (%8lu bytes mapped) - " | ||||
| 				 "%02x:%02x % 8lu - %.*s"; | ||||
| 		else | ||||
| 			format = "%08lx-%08lx +%08lx (%8lu bytes mapped) - " | ||||
| 				 "%02x:%02x % 8lu - %.*s"; | ||||
|  | ||||
| 		fprintf (stderr, format, | ||||
| 			 (unsigned long) maps [i].start, | ||||
| 			 (unsigned long) maps [i].end, | ||||
| 			 (unsigned long) maps [i].offset, | ||||
| 			 (unsigned long) (maps [i].end - (maps [i].start + maps [i].offset)), | ||||
| 			 device_major, device_minor, | ||||
| 			 (unsigned long) maps [i].inode, | ||||
| 			 sizeof perm, perm); | ||||
|  | ||||
| 		if (filename) { | ||||
| 			fprintf(stderr, " - %s", filename); | ||||
| 			char *format; | ||||
|  | ||||
| 			if (sizeof (void*) == 8) | ||||
| 				format = "%016lx-%016lx %016lx - " | ||||
| 					 "%02x:%02x %08lu - %4s - %s\n"; | ||||
| 			else | ||||
| 				format = "%08lx-%08lx %08lx - " | ||||
| 					 "%02x:%02x %08lu - %4s - %s\n"; | ||||
|  | ||||
| 			fprintf (stderr, format, | ||||
| 				 (unsigned long) maps [i].start, | ||||
| 				 (unsigned long) maps [i].end, | ||||
| 				 (unsigned long) maps [i].offset, | ||||
| 				 device_major, device_minor, | ||||
| 				 (unsigned long) maps [i].inode, | ||||
| 				 perm, filename); | ||||
| 		} else { | ||||
| 			char * format; | ||||
|  | ||||
| 			if (sizeof (void*) == 8) | ||||
| 				format = "%016lx-%016lx %016lx - " | ||||
| 					 "%02x:%02x %08lu - %4s\n"; | ||||
| 			else | ||||
| 				format = "%08lx-%08lx %08lx - " | ||||
| 					 "%02x:%02x %08lu - %4s\n"; | ||||
|  | ||||
| 			fprintf (stderr, format, | ||||
| 				 (unsigned long) maps [i].start, | ||||
| 				 (unsigned long) maps [i].end, | ||||
| 				 (unsigned long) maps [i].offset, | ||||
| 				 device_major, device_minor, | ||||
| 				 (unsigned long) maps [i].inode, | ||||
| 				 perm); | ||||
| 		} | ||||
|  | ||||
| 		fputc('\n', stderr); | ||||
|  | ||||
| 		g_print("smaps flags:%#llx size:%" G_GUINT64_FORMAT "KiB rss:%" G_GUINT64_FORMAT "KiB " | ||||
| 			"shared_clean:%" G_GUINT64_FORMAT "Kib shared_dirty:%" G_GUINT64_FORMAT "KiB " | ||||
| 			"private_clean:%" G_GUINT64_FORMAT "KiB private_dirty: %" G_GUINT64_FORMAT "KiB\n", | ||||
| 			(unsigned long long)maps[i].flags, | ||||
| 		g_print("smaps flags:%#llx size:%llu rss:%llu " | ||||
| 			"shared_clean:%llu shared_dirty:%llu " | ||||
| 			"private_clean:%llu private_dirty: %llu\n", | ||||
| 			maps[i].flags, | ||||
| 			maps[i].size >> 10, | ||||
| 			maps[i].rss >> 10, | ||||
| 			maps[i].shared_clean >> 10, | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -42,12 +42,14 @@ output (pid_t pid) | ||||
| 	char *args; | ||||
| 	unsigned i; | ||||
|  | ||||
| #if HAVE_LIBGTOP_SMP | ||||
| 	unsigned long total; | ||||
| 	double p_total, p_utime, p_stime; | ||||
| 	double b_total, b_utime, b_stime; | ||||
| 	double s_total, s_utime, s_stime; | ||||
| 	double my_utime, my_stime; | ||||
| 	unsigned int ncpu; | ||||
| #endif | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| @@ -156,6 +158,7 @@ output (pid_t pid) | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| #if HAVE_LIBGTOP_SMP | ||||
| 	ncpu = glibtop_global_server->ncpu; | ||||
|  | ||||
| 	glibtop_get_proc_time (&data.proc_time, pid); | ||||
| @@ -228,6 +231,7 @@ output (pid_t pid) | ||||
| 		s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime); | ||||
|  | ||||
| 	printf ("\n"); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| int | ||||
| @@ -235,8 +239,7 @@ main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_proclist proclist; | ||||
| 	glibtop_sysdeps sysdeps; | ||||
| 	unsigned i; | ||||
| 	pid_t *ptr, pid; | ||||
| 	unsigned *ptr, pid, i; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -92,10 +92,9 @@ main (int argc, char *argv []) | ||||
| 		"\tproc_time:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_signal:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_kernel:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_segment:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_segment:\t%d\t0x%08lx\n\n" | ||||
| 		"\tproc_args:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_map:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_io:\t%d\t0x%08lx\n\n" | ||||
| 		"\tproc_map:\t%d\t0x%08lx\n\n" | ||||
| 		"\tmountlist:\t%d\t0x%08lx\n" | ||||
| 		"\tfsusage:\t%d\t0x%08lx\n\n" | ||||
| 		"\tnetload:\t%d\t0x%08lx\n" | ||||
| @@ -138,8 +137,6 @@ main (int argc, char *argv []) | ||||
| 		(unsigned long) sysdeps.proc_args, | ||||
| 		FEATURE_CHECK(PROC_MAP), | ||||
| 		(unsigned long) sysdeps.proc_map, | ||||
| 		FEATURE_CHECK(PROC_IO), | ||||
| 		(unsigned long) sysdeps.proc_io, | ||||
| 		FEATURE_CHECK(MOUNTLIST), | ||||
| 		(unsigned long) sysdeps.mountlist, | ||||
| 		FEATURE_CHECK(FSUSAGE), | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| @@ -44,7 +44,7 @@ | ||||
| #endif | ||||
|  | ||||
| #ifndef PROFILE_COUNT_EXPENSIVE | ||||
| #define PROFILE_COUNT_EXPENSIVE		(PROFILE_COUNT / 10) | ||||
| #define PROFILE_COUNT_EXPENSIVE		10000L | ||||
| #endif | ||||
|  | ||||
| #define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 +	(unsigned long) elapsed_utime.tv_usec) | ||||
| @@ -69,47 +69,29 @@ | ||||
| 		}							\ | ||||
| 	} while (0) | ||||
|  | ||||
|  | ||||
| static void display_self_times(void) | ||||
| { | ||||
| 	printf("-- Overview using `ps` --------------------" | ||||
| 	       "---------------\n"); | ||||
| 	printf("-- this client is %8u ----------------" | ||||
| 	       "---------------\n", (unsigned)getpid()); | ||||
| 	printf("-- this server is %8u ----------------" | ||||
| 	       "---------------\n", (unsigned)glibtop_global_server->pid); | ||||
| 	system("ps xjf | egrep 'timings|libgtop_server'"); | ||||
| 	printf("-------------------------------------------" | ||||
| 	       "---------------\n"); | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_union data; | ||||
| 	unsigned c; | ||||
| 	unsigned c, count, *ptr; | ||||
| 	struct rusage total_start, total_end; | ||||
| 	struct rusage rusage_start, rusage_end; | ||||
| 	struct timeval elapsed_utime, elapsed_stime; | ||||
| 	pid_t pid; | ||||
|  | ||||
| 	pid = getpid (); | ||||
| 	count = PROFILE_COUNT; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	display_self_times(); | ||||
|  | ||||
| 	printf ("%-12s (%-10s): %7s - %9s - %9s\n", | ||||
| 		"Feature", "Flags", "Count", "utime", "stime"); | ||||
| 	printf ("-------------------------------------------" | ||||
| 		"---------------\n"); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &total_start); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
| @@ -202,10 +184,12 @@ main (int argc, char *argv []) | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) { | ||||
| 		pid_t* ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
| 		ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
| 		g_free (ptr); | ||||
| 	} | ||||
|  | ||||
| @@ -223,26 +207,9 @@ main (int argc, char *argv []) | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
| 	pid = getpid (); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) { | ||||
| 		char** ptr = glibtop_get_netlist (&data.netlist); | ||||
| 		g_strfreev (ptr); | ||||
| 	} | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_end); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime, | ||||
| 			  &elapsed_utime); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime, | ||||
| 			  &elapsed_stime); | ||||
|  | ||||
| 	printf ("Netlist      (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proclist.flags, | ||||
| 		PROFILE_COUNT_EXPENSIVE, | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE); | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| @@ -300,27 +267,6 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT_EXPENSIVE; c++) { | ||||
| 		glibtop_map_entry* entries; | ||||
| 		entries = glibtop_get_proc_map (&data.proc_map, pid); | ||||
| 		g_free (entries); | ||||
| 	} | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_end); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime, | ||||
| 			  &elapsed_utime); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime, | ||||
| 			  &elapsed_stime); | ||||
|  | ||||
| 	printf ("Proc_Map     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_map.flags, PROFILE_COUNT_EXPENSIVE, | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT_EXPENSIVE, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT_EXPENSIVE); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_segment (&data.proc_segment, pid); | ||||
|  | ||||
| @@ -339,27 +285,6 @@ main (int argc, char *argv []) | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) { | ||||
| 		char** argv; | ||||
| 		argv = glibtop_get_proc_argv (&data.proc_args, pid, 0); | ||||
| 		g_strfreev(argv); | ||||
| 	} | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_end); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime, | ||||
| 			  &elapsed_utime); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime, | ||||
| 			  &elapsed_stime); | ||||
|  | ||||
| 	printf ("Proc_Args    (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_args.flags, PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_time (&data.proc_time, pid); | ||||
|  | ||||
| @@ -412,26 +337,6 @@ main (int argc, char *argv []) | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT); | ||||
|  | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_io (&data.proc_io, pid); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_end); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_utime, &rusage_start.ru_utime, | ||||
| 			  &elapsed_utime); | ||||
|  | ||||
| 	libgtop_timersub (&rusage_end.ru_stime, &rusage_start.ru_stime, | ||||
| 			  &elapsed_stime); | ||||
|  | ||||
| 	printf ("Proc_Io  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_io.flags, PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_UTIME / PROFILE_COUNT, | ||||
| 		(long double) ELAPSED_STIME / PROFILE_COUNT); | ||||
|  | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &total_end); | ||||
|  | ||||
| 	libgtop_timersub (&total_end.ru_utime, &total_start.ru_utime, | ||||
| @@ -449,8 +354,6 @@ main (int argc, char *argv []) | ||||
| 	printf ("All timings are in clock ticks " | ||||
| 		"(1000000 ticks per second).\n\n"); | ||||
|  | ||||
| 	display_self_times(); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
|   | ||||
| @@ -1,35 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procwd.h> | ||||
|  | ||||
| #include <glib.h> | ||||
| #include <unistd.h> | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
| 	pid_t pid; | ||||
| 	glibtop_proc_wd buf; | ||||
| 	char **dirs, **dir; | ||||
|  | ||||
| 	if (argc < 2 || !(pid = strtoul(argv[1], NULL, 0))) | ||||
| 		pid = getpid(); | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	dirs = glibtop_get_proc_wd(&buf, pid); | ||||
|  | ||||
| 	g_print("Process %u:\n" | ||||
| 		" - root: '%s'\n" | ||||
| 		" - exe: '%s'\n" | ||||
| 		" - working directories:\n", | ||||
| 		(unsigned)pid, buf.root, buf.exe); | ||||
|  | ||||
| 	for (dir = dirs; *dir; ++dir) | ||||
| 		g_print("   - '%s'\n", *dir); | ||||
|  | ||||
| 	g_strfreev(dirs); | ||||
|  | ||||
| 	glibtop_close(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
							
								
								
									
										51
									
								
								features.def
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								features.def
									
									
									
									
									
								
							| @@ -1,28 +1,25 @@ | ||||
| void|cpu | ||||
| void|mem | ||||
| void|swap | ||||
| void|uptime | ||||
| void|loadavg | ||||
| void|shm_limits | ||||
| void|msg_limits | ||||
| void|sem_limits | ||||
| pid_t*|proclist|long(which,arg) | ||||
| void|proc_state|pid_t(pid) | ||||
| void|proc_uid|pid_t(pid) | ||||
| void|proc_mem|pid_t(pid) | ||||
| void|proc_time|pid_t(pid) | ||||
| void|proc_signal|pid_t(pid) | ||||
| void|proc_kernel|pid_t(pid) | ||||
| void|proc_segment|pid_t(pid) | ||||
| char *|proc_args|pid_t(pid):unsigned(max_len) | ||||
| glibtop_map_entry *|proc_map|pid_t(pid) | ||||
| glibtop_open_files_entry *|proc_open_files|pid_t(pid) | ||||
| glibtop_mountentry *|@mountlist|int(all_fs) | ||||
| void|@fsusage|string|mount_dir | ||||
| void|netload|string|interface | ||||
| void|ppp|ushort(device) | ||||
| char **|netlist | ||||
| char **|proc_wd|pid_t(pid) | ||||
| guint16*|proc_affinity|pid_t(pid) | ||||
| void|proc_io|pid_t(pid) | ||||
| void|cpu|ulong(total,user,nice,sys,idle,iowait,irq,softirq,frequency,xcpu_total[4],xcpu_user[4],xcpu_nice[4],xcpu_sys[4],xcpu_idle[4],xcpu_iowait[4],xcpu_irq[4],xcpu_softirq[4]) | ||||
| void|mem|ulong(total,used,free,shared,buffer,cached,user,locked) | ||||
| void|swap|ulong(total,used,free,pagein,pageout) | ||||
| void|uptime|double(uptime,idletime) | ||||
| void|loadavg|double(loadavg[3]):ulong(nr_running,nr_tasks,last_pid) | ||||
| void|shm_limits|ulong(shmmax,shmmin,shmmni,shmseg,shmall) | ||||
| void|msg_limits|ulong(msgpool,msgmap,msgmax,msgmnb,msgmni,msgssz,msgtql) | ||||
| void|sem_limits|ulong(semmap,semmni,semmns,semmnu,semmsl,semopm,semume,semusz,semvmx,semaem) | ||||
| unsigned *|proclist|ulong(number,size,total)|long(which,arg) | ||||
| void|proc_state|str(cmd):char(state):ulong(uid,gid)|pid_t(pid) | ||||
| void|proc_uid|long(uid,euid,gid,egid,pid,ppid,pgrp,session,tty,tpgid,priority,nice)|pid_t(pid) | ||||
| void|proc_mem|long(size,vsize,resident,share,rss,rss_rlim)|pid_t(pid) | ||||
| void|proc_time|long(start_time,rtime,utime,stime,cutime,cstime,timeout,it_real_value,frequency,xcpu_utime[4],xcpu_stime[4])|pid_t(pid) | ||||
| void|proc_signal|ulong(signal[2],blocked[2],sigignore[2],sigcatch[2])|pid_t(pid) | ||||
| void|proc_kernel|ulong(k_flags,min_flt,maj_flt,cmin_flt,cmaj_flt,kstk_esp,kstk_eip,nwchan):str(wchan)|pid_t(pid) | ||||
| void|proc_segment|ulong(text_rss,shlib_rss,data_rss,stack_rss,dirty_size,start_code,end_code,start_stack)|pid_t(pid) | ||||
| char *|proc_args|ulong(size)|pid_t(pid):unsigned(max_len) | ||||
| glibtop_map_entry *|proc_map|ulong(number,size,total)|pid_t(pid) | ||||
| glibtop_open_files_entry *|proc_open_files|ulong(number)|pid_t(pid) | ||||
| glibtop_mountentry *|@mountlist|ulong(number,size,total)|int(all_fs) | ||||
| void|@fsusage|ulong(blocks,bfree,bavail,files,ffree)|string|mount_dir | ||||
| void|netload|ulong(if_flags,mtu,subnet,address,packets_in,packets_out,packets_total,bytes_in,bytes_out,bytes_total,errors_in,errors_out,errors_total,collisions)|string|interface | ||||
| void|ppp|ulong(state,bytes_in,bytes_out)|ushort(device) | ||||
| char **|netlist|unsigned(number) | ||||
|  | ||||
|   | ||||
							
								
								
									
										78
									
								
								glibtop.h
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								glibtop.h
									
									
									
									
									
								
							| @@ -15,24 +15,18 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_H__ | ||||
| #define __GLIBTOP_H__ | ||||
|  | ||||
| /* for pid_t, uid_t, gid_t */ | ||||
| #include <sys/types.h> | ||||
|  | ||||
|  | ||||
| #include <glib.h> | ||||
| #include <glib-object.h> | ||||
| #include <glib/gmacros.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop		glibtop; | ||||
| typedef struct _glibtop_machine	glibtop_machine; | ||||
|  | ||||
| /** | ||||
|  *  LIBGTOP_CHECK_VERSION | ||||
| @@ -60,6 +54,10 @@ LIBGTOP_MICRO_VERSION >= (micro))) | ||||
|  | ||||
| #include <glibtop_server.h> | ||||
|  | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
| #include <glibtop_machine.h> | ||||
| #endif | ||||
|  | ||||
| #ifndef GLIBTOP_MOUNTENTRY_LEN | ||||
| #define GLIBTOP_MOUNTENTRY_LEN	79 | ||||
| #endif | ||||
| @@ -70,6 +68,34 @@ LIBGTOP_MICRO_VERSION >= (micro))) | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
|  | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
|  | ||||
| struct _glibtop | ||||
| { | ||||
| 	unsigned flags; | ||||
| 	unsigned method;		/* Server Method */ | ||||
| 	unsigned error_method;		/* Error Method */ | ||||
| 	glibtop_machine machine;	/* Machine dependent data */ | ||||
| 	int input [2];			/* Pipe client <- server */ | ||||
| 	int output [2];			/* Pipe client -> server */ | ||||
| 	int socket;			/* Accepted connection of a socket */ | ||||
| 	int ncpu;			/* Number of CPUs, zero if single-processor */ | ||||
| 	int real_ncpu;			/* Real number of CPUs. Only ncpu are monitored */ | ||||
| 	unsigned long os_version_code;	/* Version code of the operating system */ | ||||
| 	const char *name;		/* Program name for error messages */ | ||||
| 	const char *server_command;	/* Command used to invoke server */ | ||||
| 	const char *server_host;	/* Host the server should run on */ | ||||
| 	const char *server_user;	/* Name of the user on the target host */ | ||||
| 	const char *server_rsh;		/* Command used to connect to the target host */ | ||||
| 	unsigned long features;		/* Server is required for this features */ | ||||
| 	unsigned long server_port;	/* Port on which daemon is listening */ | ||||
| 	glibtop_sysdeps sysdeps;	/* Detailed feature list */ | ||||
| 	glibtop_sysdeps required;	/* Required feature list */ | ||||
| 	pid_t pid;			/* PID of the server */ | ||||
| }; | ||||
|  | ||||
| #else /* !HAVE_GLIBTOP_MACHINE_H */ | ||||
|  | ||||
| struct _glibtop | ||||
| { | ||||
| 	unsigned flags; | ||||
| @@ -91,57 +117,27 @@ struct _glibtop | ||||
| 	glibtop_sysdeps sysdeps;	/* Detailed feature list */ | ||||
| 	glibtop_sysdeps required;	/* Required feature list */ | ||||
| 	pid_t pid;			/* PID of the server */ | ||||
|  | ||||
| 	uid_t uid; | ||||
| 	uid_t euid; | ||||
| 	gid_t gid; | ||||
| 	gid_t egid; | ||||
|  | ||||
| 	glibtop_machine *machine;	/* Machine dependent data */ | ||||
| }; | ||||
|  | ||||
| #endif /* HAVE_GLIBTOP_MACHINE_H */ | ||||
|  | ||||
| extern glibtop *glibtop_global_server; | ||||
|  | ||||
| extern const unsigned long glibtop_server_features; | ||||
|  | ||||
| /** | ||||
|  * glibtop_init: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
| glibtop * | ||||
| glibtop_init (void); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_init_r: | ||||
|  * @server_ptr: (out): | ||||
|  * @features: | ||||
|  * @flags: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
| glibtop * | ||||
| glibtop_init_r (glibtop **server_ptr, | ||||
| 		unsigned long features, | ||||
| 		unsigned flags); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_init_s: | ||||
|  * @server_ptr: (out): | ||||
|  * @features: | ||||
|  * @flags: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
| glibtop * | ||||
| glibtop_init_s (glibtop **server_ptr, | ||||
| 		unsigned long features, | ||||
| 		unsigned flags); | ||||
|  | ||||
| GType     glibtop_get_type (void) G_GNUC_CONST; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -2,16 +2,12 @@ glibtopdir		= $(includedir)/libgtop-2.0/glibtop | ||||
|  | ||||
| glibtop_HEADERS		= close.h loadavg.h prockernel.h procstate.h \ | ||||
| 			  sem_limits.h uptime.h command.h mem.h proclist.h \ | ||||
| 			  proctime.h shm_limits.h cpu.h msg_limits.h \ | ||||
| 			  proctime.h shm_limits.h version.h cpu.h msg_limits.h \ | ||||
| 			  procmem.h procuid.h swap.h \ | ||||
| 			  procsegment.h sysdeps.h global.h \ | ||||
| 			  procsignal.h union.h gnuserv.h \ | ||||
| 			  parameter.h mountlist.h fsusage.h procmap.h signal.h \ | ||||
| 			  sysinfo.h ppp.h procargs.h netload.h \ | ||||
| 			  procwd.h procaffinity.h \ | ||||
|               procio.h \ | ||||
| 			  inodedb.h sysinfo.h ppp.h procargs.h netload.h \ | ||||
| 			  netlist.h procopenfiles.h open.h | ||||
|  | ||||
| noinst_HEADERS		= error.h write.h read_data.h read.h init_hooks.h machine.h \ | ||||
| 			  version.h | ||||
|  | ||||
| noinst_HEADERS		= error.h write.h read_data.h read.h init_hooks.h | ||||
|   | ||||
| @@ -19,8 +19,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CALL_VECTOR_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CLOSE_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_COMMAND_H__ | ||||
| @@ -57,11 +57,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_CMND_PPP		23 | ||||
| #define GLIBTOP_CMND_NETLIST		24 | ||||
| #define GLIBTOP_CMND_PROC_OPEN_FILES	25 | ||||
| #define GLIBTOP_CMND_PROC_WD		26 | ||||
| #define GLIBTOP_CMND_PROC_AFFINITY	27 | ||||
| #define GLIBTOP_CMND_PROC_IO	28 | ||||
|  | ||||
| #define GLIBTOP_MAX_CMND		29 | ||||
| #define GLIBTOP_MAX_CMND		26 | ||||
|  | ||||
| #define _GLIBTOP_PARAM_SIZE		16 | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CPU_H__ | ||||
| @@ -54,7 +54,7 @@ G_BEGIN_DECLS | ||||
|    Yes we are :) | ||||
|    Nobody should really be using more than 32 processors. | ||||
| */ | ||||
| #define GLIBTOP_NCPU		1024 | ||||
| #define GLIBTOP_NCPU		32 | ||||
|  | ||||
| typedef struct _glibtop_cpu	glibtop_cpu; | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
|  | ||||
| @@ -31,32 +31,20 @@ | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| void glibtop_error_vr (glibtop *server, const char *format, va_list args) G_GNUC_NORETURN; | ||||
| void glibtop_warn_vr (glibtop *server, const char *format, va_list args); | ||||
| void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args); | ||||
| void glibtop_error_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN; | ||||
| void glibtop_warn_vr (glibtop *server, const char *format, va_list args) G_GNUC_INTERNAL; | ||||
| void glibtop_error_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_vr (glibtop *server, const char *format, int, va_list args) G_GNUC_INTERNAL; | ||||
|  | ||||
| void glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io_r (glibtop *server, const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(2, 3); | ||||
|  | ||||
| void glibtop_error (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn (const char *format, ...) G_GNUC_PRINTF(1, 2); | ||||
| void glibtop_error_io (const char *format, ...) G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io (const char *format, ...) G_GNUC_PRINTF(1, 2); | ||||
|  | ||||
| /* FIXME: C99 */ | ||||
| #define glibtop_debug_r(server, fmt, ...)				\ | ||||
| 	G_STMT_START {							\ | ||||
| 	if (LIBGTOP_ENABLE_DEBUG)					\ | ||||
| 		glibtop_debug_r_real(server, "%s:%d %s(): " fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \ | ||||
| 	} G_STMT_END | ||||
|  | ||||
| #define glibtop_debug(...) glibtop_debug_r(glibtop_global_server, __VA_ARGS__) | ||||
|  | ||||
| void glibtop_debug_vr (glibtop *server, const char *format, va_list args); | ||||
| void glibtop_debug_r_real (glibtop *server, const char *format, ...) G_GNUC_PRINTF(2, 3); | ||||
| void glibtop_error (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2); | ||||
| void glibtop_error_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2) G_GNUC_NORETURN; | ||||
| void glibtop_warn_io (const char *format, ...) G_GNUC_INTERNAL G_GNUC_PRINTF(1, 2); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
|   | ||||
| @@ -14,8 +14,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_FSUSAGE_H__ | ||||
|   | ||||
							
								
								
									
										68
									
								
								include/glibtop/glibtop-server.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								include/glibtop/glibtop-server.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 2.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SERVER_H__ | ||||
| #define __GLIBTOP_SERVER_H__ | ||||
|  | ||||
| #include <glibtop/global.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_server		glibtop_server; | ||||
| typedef struct _glibtop_server_info	glibtop_server_info; | ||||
|  | ||||
| typedef struct _glibtop_closure		glibtop_closure; | ||||
|  | ||||
| struct _glibtop_server_info | ||||
| { | ||||
|     int ncpu;			/* Number of CPUs, zero if single-processor */ | ||||
|     unsigned long features;	/* Server is required for this features */ | ||||
|     glibtop_sysdeps sysdeps;	/* Detailed feature list */ | ||||
|     glibtop_sysdeps required;	/* Required feature list */ | ||||
|     glibtop_sysdeps wanted;	/* We only want this features */ | ||||
| }; | ||||
|  | ||||
| struct	_glibtop_server | ||||
| { | ||||
|     glibtop_server_info *info; | ||||
|  | ||||
|     int refcount; | ||||
|     unsigned flags; | ||||
|     const char *name; | ||||
|  | ||||
|     void *_priv; | ||||
| }; | ||||
|  | ||||
| glibtop_server * | ||||
| glibtop_server_new (void); | ||||
|  | ||||
| void | ||||
| glibtop_server_ref (glibtop_server *server); | ||||
|  | ||||
| void | ||||
| glibtop_server_unref (glibtop_server *server); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_GLOBAL_H__ | ||||
|   | ||||
							
								
								
									
										67
									
								
								include/glibtop/inodedb.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								include/glibtop/inodedb.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_INODEDB_H__ | ||||
| #define __GLIBTOP_INODEDB_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <gdbm.h> | ||||
|  | ||||
| #define GLIBTOP_INODEDB_SYSTEM		1 | ||||
| #define GLIBTOP_INODEDB_USER		2 | ||||
| #define GLIBTOP_INODEDB_CACHE		4 | ||||
|  | ||||
| #define GLIBTOP_INODEDB_ALL		7 | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_inodedb		glibtop_inodedb; | ||||
|  | ||||
| typedef struct _glibtop_inodedb_key	glibtop_inodedb_key; | ||||
|  | ||||
| struct _glibtop_inodedb_key | ||||
| { | ||||
| 	guint64 device, inode; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_inodedb | ||||
| { | ||||
| 	GDBM_FILE system_dbf, user_dbf; | ||||
| }; | ||||
|  | ||||
| #define glibtop_inodedb_open(p1,p2)	glibtop_inodedb_open_s(glibtop_global_server, p1, p2) | ||||
| #define glibtop_inodedb_lookup(p1,p2,p3) glibtop_inodedb_lookup_s(glibtop_global_server, p1, p2, p3) | ||||
| #define glibtop_inodedb_close(p1)	glibtop_inodedb_close_s(glibtop_global_server) | ||||
|  | ||||
| glibtop_inodedb * | ||||
| glibtop_inodedb_open_s (glibtop *server, unsigned databases, unsigned long cache_size); | ||||
|  | ||||
| const char * | ||||
| glibtop_inodedb_lookup_s (glibtop *server, | ||||
| 			  glibtop_inodedb *inodedb, | ||||
| 			  guint64 device, guint64 inode); | ||||
|  | ||||
| void | ||||
| glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_LOADAVG_H__ | ||||
|   | ||||
| @@ -1,22 +0,0 @@ | ||||
| #ifndef GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041 | ||||
| #define GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041 | ||||
|  | ||||
| #include <glib.h> | ||||
| #include <glibtop_machine.h> | ||||
|  | ||||
| /* private */ | ||||
| static inline void | ||||
| glibtop_machine_new(glibtop *server) | ||||
| { | ||||
| 	server->machine = g_new0(glibtop_machine, 1); | ||||
| } | ||||
|  | ||||
| /* private */ | ||||
| static inline void | ||||
| glibtop_machine_delete(glibtop *server) | ||||
| { | ||||
| 	g_free(server->machine); | ||||
| 	server->machine = NULL; | ||||
| } | ||||
|  | ||||
| #endif /* GLIBTOP_SYSDEPS_COMMON_MACHINE_H_1437506041 */ | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MEM_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MOUNTLIST_H__ | ||||
| @@ -53,38 +53,6 @@ struct _glibtop_mountlist | ||||
| 	guint64 size;			/* GLIBTOP_MOUNTLIST_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_mountlist: | ||||
|  * @buf: | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer full): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_mountlist_r: | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_mountlist_s: | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_mountlist_l: | ||||
|  * @buf: (out): | ||||
|  * @all_fs: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| glibtop_mountentry * | ||||
| glibtop_get_mountlist(glibtop_mountlist *buf, int all_fs); | ||||
|  | ||||
| @@ -96,8 +64,6 @@ glibtop_get_mountlist_l (glibtop *server, glibtop_mountlist *buf, int all_fs); | ||||
| glibtop_mountentry * | ||||
| glibtop_get_mountlist_s (glibtop *server, glibtop_mountlist *buf, int all_fs); | ||||
|  | ||||
| GType     glibtop_mountlist_get_type (void) G_GNUC_CONST; | ||||
| GType     glibtop_mountentry_get_type (void) G_GNUC_CONST; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MSG_LIMITS_H__ | ||||
|   | ||||
| @@ -13,8 +13,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_NETLIST_H__ | ||||
| @@ -31,23 +31,12 @@ G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_netlist	glibtop_netlist; | ||||
|  | ||||
| /** | ||||
|  * glibtop_netlist: | ||||
|  * @number: Number of entries in the returned list. | ||||
|  */ | ||||
| struct _glibtop_netlist | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	guint32 number; | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_netlist: | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist(glibtop_netlist *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLIST | ||||
| @@ -56,39 +45,13 @@ char** glibtop_get_netlist(glibtop_netlist *buf); | ||||
| #define glibtop_get_netlist_r		glibtop_get_netlist_s | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_netlist_l: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_l (glibtop *server, glibtop_netlist *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLIST | ||||
| void _glibtop_init_netlist_p (glibtop *server); | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_netlist_p: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_p (glibtop *server, glibtop_netlist *buf); | ||||
| #else | ||||
| void _glibtop_init_netlist_s (glibtop *server); | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_netlist_s: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_netlist | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of network | ||||
|  *          interface names. | ||||
|  */ | ||||
| char** glibtop_get_netlist_s (glibtop *server, glibtop_netlist *buf); | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_NETLOAD_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_OPEN_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PARAMETER_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PPP_H__ | ||||
|   | ||||
| @@ -1,62 +0,0 @@ | ||||
| /* Copyright (C) 2007 Benoît Dejean | ||||
|    This file is part of LibGTop 2. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCAFFINITY_H__ | ||||
| #define __GLIBTOP_PROCAFFINITY_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_proc_affinity	glibtop_proc_affinity; | ||||
|  | ||||
| #define GLIBTOP_PROC_AFFINITY_NUMBER	0 | ||||
| #define GLIBTOP_PROC_AFFINITY_ALL	1 | ||||
| #define GLIBTOP_MAX_PROC_AFFINITY	2 | ||||
|  | ||||
| struct _glibtop_proc_affinity | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint32 number; | ||||
| 	gboolean all; | ||||
| }; | ||||
|  | ||||
|  | ||||
| guint16 * glibtop_get_proc_affinity(glibtop_proc_affinity *buf, pid_t pid); | ||||
| guint16 * glibtop_get_proc_affinity_l(glibtop *server, glibtop_proc_affinity *buf, pid_t pid); | ||||
|  | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_AFFINITY | ||||
|  | ||||
| #define glibtop_get_proc_affinity_r glibtop_get_proc_affinity_p | ||||
| void _glibtop_init_proc_affinity_p(glibtop *server); | ||||
| guint16 * glibtop_get_proc_affinity_p(glibtop *server, glibtop_proc_affinity *buf, pid_t pid); | ||||
|  | ||||
| #else | ||||
|  | ||||
| #define glibtop_get_proc_affinity_r glibtop_get_proc_affinity_s | ||||
| void _glibtop_init_proc_affinity_s(glibtop *server); | ||||
| guint16 * glibtop_get_proc_affinity_s(glibtop *server, glibtop_proc_affinity *buf, pid_t pid); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_ARGS_H__ | ||||
| @@ -79,15 +79,6 @@ char ** | ||||
| glibtop_get_proc_argv_l (glibtop *server, glibtop_proc_args *buf, | ||||
| 			 pid_t pid, unsigned max_len); | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_argv: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * @max_len: | ||||
|  * | ||||
|  * Returns: (transfer full): | ||||
|  */ | ||||
|  | ||||
| char ** | ||||
| glibtop_get_proc_argv (glibtop_proc_args *buf, pid_t pid, unsigned max_len); | ||||
|  | ||||
|   | ||||
| @@ -1,91 +0,0 @@ | ||||
| /* Copyright (C) 2017 Robert Roth | ||||
|    This file is part of LibGTop. | ||||
|  | ||||
|    Contributed by Robert Roth <robert.roth.off@gmail.com>, February 2017. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCIO_H__ | ||||
| #define __GLIBTOP_PROCIO_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_IO_DISK_RCHAR	0 | ||||
| #define GLIBTOP_PROC_IO_DISK_WCHAR	1 | ||||
| #define GLIBTOP_PROC_IO_DISK_RBYTES	2 | ||||
| #define GLIBTOP_PROC_IO_DISK_WBYTES	3 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_IO		3 | ||||
|  | ||||
| typedef struct _glibtop_proc_io	glibtop_proc_io; | ||||
|  | ||||
| /* Time section */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_proc_io: | ||||
|  * @disk_rchar: The number of bytes which this task has caused to be read from storage. This | ||||
|  * is simply the sum of bytes which this process passed to read() and pread(), also including tty IO, | ||||
|  * and it is unaffected by whether or not actual physical disk IO was required. | ||||
|  * @disk_wchar: The number of bytes which this task has caused, or shall cause to be written | ||||
|  * to disk. Similar caveats apply here as with rchar. | ||||
|  * @disk_rbytes: Attempt to count the number of bytes which this process really did cause to | ||||
|  * be fetched from the storage layer. Done at the submit_bio() level, so it is | ||||
|  * accurate for block-backed filesystems. | ||||
|  * @disk_wbytes: Attempt to count the number of bytes which this process caused to be sent to | ||||
|  * the storage layer. This is done at page-dirtying time. | ||||
|  * | ||||
|  * Process disk io data filled by glibtop_get_proc_io(). | ||||
|  * | ||||
|  */ | ||||
| struct _glibtop_proc_io | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 disk_rchar; | ||||
| 	guint64 disk_wchar; | ||||
| 	guint64 disk_rbytes; | ||||
| 	guint64 disk_wbytes; | ||||
|  | ||||
|     /* reserved for future extensions, e.g. per-process netio */ | ||||
|     guint64 reserved[10]; | ||||
| }; | ||||
|  | ||||
|  | ||||
| void glibtop_get_proc_io (glibtop_proc_io *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_IO | ||||
| #define glibtop_get_proc_io_r	glibtop_get_proc_io_p | ||||
| #else | ||||
| #define glibtop_get_proc_io_r	glibtop_get_proc_io_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_io_l (glibtop *server, glibtop_proc_io *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_IO | ||||
| void _glibtop_init_proc_io_p (glibtop *server); | ||||
| void glibtop_get_proc_io_p (glibtop *server, glibtop_proc_io *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_io_s (glibtop *server); | ||||
| void glibtop_get_proc_io_s (glibtop *server, glibtop_proc_io *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCKERNEL_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCLIST_H__ | ||||
| @@ -36,89 +36,22 @@ G_BEGIN_DECLS | ||||
| /* You can use the folowing constants as the `which' member of | ||||
|  * glibtop_get_proclist () to specify which processes to fetch. */ | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_ALL: | ||||
|  * | ||||
|  * Return information about all processes | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_ALL		0 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_PID: | ||||
|  * | ||||
|  * Return all processes with the pid which is passed in @arg. You can use this to find out whether some process still exists. | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_ALL		0	/* all processes */ | ||||
| #define GLIBTOP_KERN_PROC_PID		1 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_PGRP: | ||||
|  * | ||||
|  * Return all processes in the process group passed in @arg.  | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_PGRP		2 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_SESSION: | ||||
|  * | ||||
|  * Return all processes in the session passed in @arg.  | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_SESSION	3 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_TTY: | ||||
|  * | ||||
|  * Return all processes which have the controlling tty passed in @arg | ||||
|  * (which is interpreted as the device number).  | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_TTY		4 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_UID: | ||||
|  * | ||||
|  * Return all processes with the effective uid passed in @arg.  | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_UID		5 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_KERN_PROC_RUID: | ||||
|  * | ||||
|  * Return all processes with the real uid passed in @arg.  | ||||
|  **/ | ||||
| #define GLIBTOP_KERN_PROC_RUID		6 | ||||
|  | ||||
| #define GLIBTOP_KERN_PROC_MASK		15 | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_EXCLUDE_IDLE: | ||||
|  * | ||||
|  * Exclude idle processes.  | ||||
|  **/ | ||||
| #define GLIBTOP_EXCLUDE_IDLE		0x1000 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_EXCLUDE_SYSTEM: | ||||
|  * | ||||
|  * Exclude system (on most UNIXes root's) processes. | ||||
|  **/ | ||||
| #define GLIBTOP_EXCLUDE_SYSTEM		0x2000 | ||||
|  | ||||
| /** | ||||
|  * GLIBTOP_EXCLUDE_NOTTY: | ||||
|  * | ||||
|  * Exclude processes without a controlling terminal. | ||||
|  **/ | ||||
| #define GLIBTOP_EXCLUDE_NOTTY		0x4000 | ||||
|  | ||||
| typedef struct _glibtop_proclist	glibtop_proclist; | ||||
|  | ||||
| /** | ||||
|  * glibtop_proclist: | ||||
|  * @number: Number of entries in the returned list. | ||||
|  * @total: Total size of the returned list (this equals @number * @size). | ||||
|  * @size: Size of a single entry in the returned list  | ||||
|  * (this equals <type>sizeof(unsigned)</type>). | ||||
|  */ | ||||
| struct _glibtop_proclist | ||||
| { | ||||
| 	guint64	flags; | ||||
| @@ -127,16 +60,7 @@ struct _glibtop_proclist | ||||
| 	guint64 size;			/* GLIBTOP_PROCLIST_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proclist: | ||||
|  * @buf: a #glibtop_proclist | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| unsigned * | ||||
| glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROCLIST | ||||
| @@ -145,50 +69,20 @@ glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
| #define glibtop_get_proclist_r		glibtop_get_proclist_s | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proclist_l: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_proclist | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| unsigned * | ||||
| glibtop_get_proclist_l (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROCLIST | ||||
| void _glibtop_init_proclist_p (glibtop *server); | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proclist_p: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_proclist | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| unsigned * | ||||
| glibtop_get_proclist_p (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| #else | ||||
| void _glibtop_init_proclist_s (glibtop *server); | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proclist_s: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_proclist | ||||
|  * @which: a #GLIBTOP_* constant specifying process type | ||||
|  * @arg: an argument specific for the process type | ||||
|  * | ||||
|  * Returns: (array zero-terminated=1) (transfer none): an array of process | ||||
|  *     ids | ||||
|  */ | ||||
| pid_t* | ||||
| unsigned * | ||||
| glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| #endif | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_MAP_H__ | ||||
| @@ -48,10 +48,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_MAP_ENTRY_SHARED_DIRTY		10 | ||||
| #define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN		11 | ||||
| #define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY		12 | ||||
| #define GLIBTOP_MAP_ENTRY_PSS			13 | ||||
| #define GLIBTOP_MAP_ENTRY_SWAP			14 | ||||
|  | ||||
| #define GLIBTOP_MAX_MAP_ENTRY		15 | ||||
| #define GLIBTOP_MAX_MAP_ENTRY		13 | ||||
|  | ||||
| #define GLIBTOP_MAP_FILENAME_LEN	215 | ||||
|  | ||||
| @@ -80,8 +78,6 @@ struct _glibtop_map_entry | ||||
| 	guint64 shared_dirty; | ||||
| 	guint64 private_clean;  | ||||
| 	guint64 private_dirty; | ||||
| 	guint64 pss; | ||||
| 	guint64 swap; | ||||
| 	char filename [GLIBTOP_MAP_FILENAME_LEN+1]; | ||||
| }; | ||||
|  | ||||
| @@ -92,46 +88,10 @@ struct _glibtop_proc_map | ||||
| 	guint64 total;			/* GLIBTOP_PROC_MAP_TOTAL	*/ | ||||
| 	guint64 size;			/* GLIBTOP_PROC_MAP_SIZE	*/ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_map: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid); | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_map_l: | ||||
|  * @server: | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_map_p: | ||||
|  * @server: | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_map_s: | ||||
|  * @server: | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MAP | ||||
| #define glibtop_get_proc_map_r		glibtop_get_proc_map_p | ||||
| #else | ||||
| @@ -153,8 +113,6 @@ glibtop_map_entry * | ||||
| glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| GType     glibtop_map_entry_get_type (void) G_GNUC_CONST; | ||||
| GType     glibtop_proc_map_get_type (void) G_GNUC_CONST; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCMEM_H__ | ||||
| @@ -53,12 +53,6 @@ struct _glibtop_proc_mem | ||||
| 				 * of the process; usually 2,147,483,647 */ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_mem: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  */ | ||||
| void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MEM | ||||
|   | ||||
| @@ -18,8 +18,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_OPEN_FILES_H__ | ||||
| @@ -53,8 +53,7 @@ enum glibtop_file_type { | ||||
| 	GLIBTOP_FILE_TYPE_FILE		= 1, | ||||
| 	GLIBTOP_FILE_TYPE_PIPE		= 2, | ||||
| 	GLIBTOP_FILE_TYPE_INETSOCKET	= 4, | ||||
| 	GLIBTOP_FILE_TYPE_LOCALSOCKET	= 8, | ||||
| 	GLIBTOP_FILE_TYPE_INET6SOCKET	= 16 | ||||
| 	GLIBTOP_FILE_TYPE_LOCALSOCKET	= 8 | ||||
| }; | ||||
|  | ||||
| typedef struct _glibtop_open_files_entry glibtop_open_files_entry; | ||||
| @@ -66,8 +65,7 @@ struct _glibtop_open_files_entry | ||||
| 	int fd; | ||||
| 	guint16 type; /* An "enum glibtop_file_type" value. */ | ||||
| 	union { | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_INETSOCKET or | ||||
| 		 * when type == GLIBTOP_FILE_TYPE_INET6SOCKET */ | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_INETSOCKET */ | ||||
| 		struct { | ||||
| 			char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1]; | ||||
| 			int dest_port; | ||||
| @@ -94,49 +92,21 @@ struct _glibtop_proc_open_files | ||||
| 	guint64 size;			/* GLIBTOP_PROC_OPEN_FILES_SIZE   */ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_open_files: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_OPEN_FILES | ||||
| #if GLIBTOP_SUID_PROC_FILE | ||||
| #define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_p | ||||
| #else | ||||
| #define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_s | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_open_files_l: | ||||
|  * @server: | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_OPEN_FILES | ||||
| #if GLIBTOP_SUID_PROC_FILE | ||||
| void _glibtop_init_proc_open_files_p (glibtop *server); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_open_files_p: | ||||
|  * @server: | ||||
|  * @buf: (out): | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer none): | ||||
|  */ | ||||
|  | ||||
| glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
| #else | ||||
| @@ -146,9 +116,6 @@ glibtop_open_files_entry * | ||||
| glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
| GType     glibtop_open_files_entry_get_type (void) G_GNUC_CONST; | ||||
| GType     glibtop_proc_open_files_get_type (void) G_GNUC_CONST; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSEGMENT_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSIGNAL_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSTATE_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCTIME_H__ | ||||
| @@ -46,50 +46,26 @@ typedef struct _glibtop_proc_time	glibtop_proc_time; | ||||
|  | ||||
| /* Time section */ | ||||
|  | ||||
| /** | ||||
|  * glibtop_proc_time: | ||||
|  * @start_time: Start time of process in seconds since the epoch. | ||||
|  * @rtime: Real time accumulated by process (should be @utime + @stime). | ||||
|  * @utime: User-mode CPU time accumulated by process. | ||||
|  * @stime: Kernel-mode CPU time accumulated by process. | ||||
|  * @cutime: Cumulative utime of process and reaped children. | ||||
|  * @cstime: Cumulative stime of process and reaped children. | ||||
|  * @timeout: The time (in jiffies) of the process’s next timeout. | ||||
|  * @it_real_value: The time (in jiffies) before the next <type>SIGALRM</type> | ||||
|  * is sent to the process due to an interval timer. | ||||
|  * @frequency: Tick frequency. | ||||
|  * @xcpu_utime: SMP user-mode CPU time accumulated by process. | ||||
|  * @xcpu_stime: SMP kernel-mode CPU time accumulated by process  | ||||
|  * | ||||
|  * Process time data filled by glibtop_get_proc_time(). | ||||
|  * | ||||
|  * Under Linux the @start_time value may be wrong due to the information | ||||
|  * available from the kernel. | ||||
|  *  | ||||
|  * The Linux kernel defines <type>INITIAL_JIFFIES</type> which implies a time | ||||
|  * shift. Because <type>INITIAL_JIFFIES</type> is not user-space defined, | ||||
|  * we cannot use it to compute an accurate @start_time. On Linux 2.6, | ||||
|  * <type>INITIAL_JIFFIES</type> is 300 so @start_time is  | ||||
|  * always 3s different from the real start time of the given process. You  | ||||
|  * may also get shift results if your system clock is not synchronised  | ||||
|  * with your hardware clock. See <command>man hwclock</command>. | ||||
|  */ | ||||
| struct _glibtop_proc_time | ||||
| { | ||||
|     /*< private >*/ | ||||
| 	guint64	flags; | ||||
| 	/*< public >*/ | ||||
| 	guint64 start_time; | ||||
| 	guint64 rtime; | ||||
| 	guint64 utime; | ||||
| 	guint64 stime; | ||||
| 	guint64 cutime; | ||||
| 	guint64 cstime; | ||||
| 	guint64 timeout; | ||||
| 	guint64 it_real_value; | ||||
| 	guint64 frequency; | ||||
| 	guint64 xcpu_utime [GLIBTOP_NCPU]; | ||||
| 	guint64 xcpu_stime [GLIBTOP_NCPU]; | ||||
| 	guint64 start_time;	/* start time of process -- | ||||
| 				 * seconds since 1-1-70 */ | ||||
| 	guint64 rtime;		/* real time accumulated by process */ | ||||
| 	guint64 utime;		/* user-mode CPU time accumulated by process */ | ||||
| 	guint64 stime;		/* kernel-mode CPU time accumulated by process */ | ||||
| 	guint64 cutime;		/* cumulative utime of process and | ||||
| 				 * reaped children */ | ||||
| 	guint64 cstime;		/* cumulative stime of process and | ||||
| 				 * reaped children */ | ||||
| 	guint64 timeout;	/* The time (in jiffies) of the process's | ||||
| 				 * next timeout */ | ||||
| 	guint64 it_real_value;	/* The time (in jiffies) before the | ||||
| 				 * next SIGALRM is sent to the process | ||||
| 				 * due to an interval timer. */ | ||||
| 	guint64 frequency;	/* Tick frequency. */ | ||||
| 	guint64 xcpu_utime [GLIBTOP_NCPU];	/* utime and stime for all CPUs on */ | ||||
| 	guint64 xcpu_stime [GLIBTOP_NCPU];	/* SMP machines. */ | ||||
| }; | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCUID_H__ | ||||
|   | ||||
| @@ -1,76 +0,0 @@ | ||||
| /* Copyright (C) 2007 Benoît Dejean | ||||
|    This file is part of LibGTop 2. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCWD_H__ | ||||
| #define __GLIBTOP_PROCWD_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_proc_wd	glibtop_proc_wd; | ||||
|  | ||||
| #define GLIBTOP_PROC_WD_NUMBER	0 | ||||
| #define GLIBTOP_PROC_WD_ROOT	1 | ||||
| #define GLIBTOP_PROC_WD_EXE	2 | ||||
| #define GLIBTOP_MAX_PROC_WD	3 | ||||
|  | ||||
| #define GLIBTOP_PROC_WD_ROOT_LEN 215 | ||||
| #define GLIBTOP_PROC_WD_EXE_LEN 215 | ||||
|  | ||||
| struct _glibtop_proc_wd | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint32 number; | ||||
| 	char root[GLIBTOP_PROC_WD_ROOT_LEN+1]; | ||||
| 	char exe[GLIBTOP_PROC_WD_EXE_LEN+1]; | ||||
| }; | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_wd: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  * Returns: (transfer full): | ||||
|  */ | ||||
| char ** glibtop_get_proc_wd(glibtop_proc_wd *buf, pid_t pid); | ||||
| char ** glibtop_get_proc_wd_l(glibtop *server, glibtop_proc_wd *buf, pid_t pid); | ||||
|  | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_WD | ||||
|  | ||||
| #define glibtop_get_proc_wd_r glibtop_get_proc_wd_p | ||||
| void _glibtop_init_proc_wd_p(glibtop *server); | ||||
| char ** glibtop_get_proc_wd_p(glibtop *server, glibtop_proc_wd *buf, pid_t pid); | ||||
|  | ||||
| #else | ||||
|  | ||||
| #define glibtop_get_proc_wd_r glibtop_get_proc_wd_s | ||||
| void _glibtop_init_proc_wd_s(glibtop *server); | ||||
| char ** glibtop_get_proc_wd_s(glibtop *server, glibtop_proc_wd *buf, pid_t pid); | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_READ_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_READ_DATA_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SEM_LIMITS_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SHM_LIMITS_H__ | ||||
| @@ -37,9 +37,6 @@ G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop_shm_limits	glibtop_shm_limits; | ||||
|  | ||||
| /** | ||||
|  * glibtop_shm_limits: | ||||
|  */ | ||||
| struct _glibtop_shm_limits | ||||
| { | ||||
| 	guint64	flags; | ||||
| @@ -50,10 +47,6 @@ struct _glibtop_shm_limits | ||||
| 	guint64 shmall;		/* GLIBTOP_IPC_SHMALL	*/ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_shm_limits: | ||||
|  * @buf: a #glibtop_shm_limits | ||||
|  */ | ||||
| void glibtop_get_shm_limits(glibtop_shm_limits *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_SHM_LIMITS | ||||
| @@ -62,28 +55,13 @@ void glibtop_get_shm_limits(glibtop_shm_limits *buf); | ||||
| #define glibtop_get_shm_limits_r	glibtop_get_shm_limits_s | ||||
| #endif | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_shm_limits_l: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_shm_limits | ||||
|  */ | ||||
| void glibtop_get_shm_limits_l (glibtop *server, glibtop_shm_limits *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_SHM_LIMITS | ||||
| void _glibtop_init_shm_limits_p (glibtop *server); | ||||
| /** | ||||
|  * glibtop_get_shm_limits_p: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_shm_limits | ||||
|  */ | ||||
| void glibtop_get_shm_limits_p (glibtop *, glibtop_shm_limits *buf); | ||||
| #else | ||||
| void _glibtop_init_shm_limits_s (glibtop *server); | ||||
| /** | ||||
|  * glibtop_get_shm_limits_s: | ||||
|  * @server: a #glibtop server | ||||
|  * @buf: a #glibtop_shm_limits | ||||
|  */ | ||||
| void glibtop_get_shm_limits_s (glibtop *server, glibtop_shm_limits *buf); | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SIGNAL_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SWAP_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SYSDEPS_H__ | ||||
| @@ -51,14 +51,8 @@ G_BEGIN_DECLS | ||||
| #define GLIBTOP_SYSDEPS_PPP		22 | ||||
| #define GLIBTOP_SYSDEPS_NETLIST		23 | ||||
| #define GLIBTOP_SYSDEPS_PROC_OPEN_FILES	24 | ||||
| #define GLIBTOP_SYSDEPS_PROC_WD		25 | ||||
| #define GLIBTOP_SYSDEPS_PROC_AFFINITY	26 | ||||
| #define GLIBTOP_SYSDEPS_PROC_IO	27 | ||||
|  | ||||
| #define GLIBTOP_MAX_SYSDEPS		28 | ||||
|  | ||||
| /* The 'features' args to glibtop_init_* is an unsigned long */ | ||||
| G_STATIC_ASSERT((1UL << (GLIBTOP_MAX_SYSDEPS - 1)) <= ULONG_MAX); | ||||
| #define GLIBTOP_MAX_SYSDEPS		25 | ||||
|  | ||||
| #define GLIBTOP_SYSDEPS_ALL		((1 << GLIBTOP_MAX_SYSDEPS) - 1) | ||||
|  | ||||
| @@ -92,17 +86,6 @@ struct _glibtop_sysdeps | ||||
| 	guint64 netlist;		/* glibtop_netlist	*/ | ||||
| 	guint64 netload;		/* glibtop_netload	*/ | ||||
| 	guint64 ppp;			/* glibtop_ppp		*/ | ||||
| 	guint64	proc_wd;		/* glibtop_proc_wd	*/ | ||||
| 	guint64	proc_affinity;		/* glibtop_proc_affinity */ | ||||
| 	guint64	proc_io;		/* glibtop_proc_io */ | ||||
| 	guint64	reserved0; | ||||
| 	guint64	reserved1; | ||||
| 	guint64	reserved2; | ||||
| 	guint64	reserved3; | ||||
| 	guint64	reserved4; | ||||
| 	guint64	reserved5; | ||||
| 	guint64	reserved6; | ||||
| 	guint64	reserved7; | ||||
| }; | ||||
|  | ||||
| void glibtop_get_sysdeps (glibtop_sysdeps *buf); | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_SYSINFO_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_UNION_H__ | ||||
| @@ -42,9 +42,6 @@ | ||||
| #include <glibtop/procargs.h> | ||||
| #include <glibtop/procmap.h> | ||||
| #include <glibtop/procopenfiles.h> | ||||
| #include <glibtop/procwd.h> | ||||
| #include <glibtop/procaffinity.h> | ||||
| #include <glibtop/procio.h> | ||||
|  | ||||
| #include <glibtop/mountlist.h> | ||||
| #include <glibtop/fsusage.h> | ||||
| @@ -83,9 +80,6 @@ union _glibtop_union | ||||
| 	glibtop_netload		netload; | ||||
| 	glibtop_ppp		ppp; | ||||
| 	glibtop_proc_open_files proc_open_files; | ||||
| 	glibtop_proc_wd		proc_wd; | ||||
| 	glibtop_proc_affinity	proc_affinity; | ||||
| 	glibtop_proc_io	proc_io; | ||||
| }; | ||||
|  | ||||
| G_END_DECLS | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_UPTIME_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_VERSION_H__ | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_WRITE_H__ | ||||
|   | ||||
| @@ -1,13 +1,13 @@ | ||||
|  | ||||
| AM_CPPFLAGS			= @AM_CPPFLAGS@ | ||||
| INCLUDES			= @INCLUDES@ | ||||
|  | ||||
| lib_LTLIBRARIES			= libgtop-2.0.la | ||||
|  | ||||
| libgtop_2_0_la_SOURCES		= init.c open.c close.c command.c read.c \ | ||||
| 				  read_data.c write.c lib.c parameter.c \ | ||||
| 				  sysdeps.c boxed.c | ||||
| 				  sysdeps.c | ||||
|  | ||||
| libgtop_2_0_la_LDFLAGS		= $(LT_VERSION_INFO) -export-symbols $(srcdir)/libgtop.sym -no-undefined | ||||
| libgtop_2_0_la_LDFLAGS		= $(LT_VERSION_INFO) -export-symbols-regex "^[^_].*" | ||||
| libgtop_2_0_la_LIBADD		= $(GLIB_LIBS) $(top_builddir)/sysdeps/common/libgtop_common-2.0.la $(top_builddir)/sysdeps/@sysdeps_dir@/libgtop_sysdeps-2.0.la $(sysdeps_suid_lib) | ||||
|  | ||||
| BUILT_SOURCES			= lib.c | ||||
| @@ -16,40 +16,7 @@ lib.c: lib.pl $(top_builddir)/config.h $(top_srcdir)/features.def | ||||
| 	$(PERL) $(srcdir)/lib.pl < $(top_srcdir)/features.def > lib-t | ||||
| 	mv lib-t lib.c | ||||
|  | ||||
| EXTRA_DIST			= lib.pl libgtop.sym | ||||
| EXTRA_DIST			= lib.pl | ||||
|  | ||||
| CLEANFILES			= lib.c | ||||
|  | ||||
| -include $(INTROSPECTION_MAKEFILE) | ||||
| INTROSPECTION_GIRS = | ||||
| INTROSPECTION_SCANNER_ARGS = --accept-unprefixed --warn-all | ||||
| INTROSPECTION_COMPILER_ARGS = | ||||
|  | ||||
| if HAVE_INTROSPECTION | ||||
| introspection_sources = $(libgtop_2_0_la_SOURCES) lib.c ../glibtop.h ../libgtopconfig.h \ | ||||
| 			../include/glibtop/close.h ../include/glibtop/loadavg.h ../include/glibtop/prockernel.h ../include/glibtop/procstate.h \ | ||||
| 			../include/glibtop/sem_limits.h ../include/glibtop/uptime.h ../include/glibtop/command.h ../include/glibtop/mem.h ../include/glibtop/proclist.h \ | ||||
| 			../include/glibtop/proctime.h ../include/glibtop/shm_limits.h ../include/glibtop/cpu.h ../include/glibtop/msg_limits.h \ | ||||
| 			../include/glibtop/procmem.h ../include/glibtop/procuid.h ../include/glibtop/swap.h \ | ||||
| 			../include/glibtop/procsegment.h ../include/glibtop/sysdeps.h ../include/glibtop/global.h \ | ||||
| 			../include/glibtop/procsignal.h ../include/glibtop/union.h ../include/glibtop/gnuserv.h \ | ||||
| 			../include/glibtop/parameter.h ../include/glibtop/mountlist.h ../include/glibtop/fsusage.h ../include/glibtop/procmap.h ../include/glibtop/signal.h \ | ||||
| 			../include/glibtop/sysinfo.h ../include/glibtop/ppp.h ../include/glibtop/procargs.h ../include/glibtop/netload.h \ | ||||
| 			../include/glibtop/procwd.h ../include/glibtop/procaffinity.h ../include/glibtop/procio.h \ | ||||
| 			../include/glibtop/netlist.h ../include/glibtop/procopenfiles.h ../include/glibtop/open.h | ||||
|  | ||||
| GTop-2.0.gir: libgtop-2.0.la | ||||
| GTop_2_0_gir_AM_CPPFLAGS = GObject-2.0 | ||||
| GTop_2_0_gir_CFLAGS = $(AM_CPPFLAGS) | ||||
| GTop_2_0_gir_LIBS = libgtop-2.0.la | ||||
| GTop_2_0_gir_FILES = $(introspection_sources) | ||||
| INTROSPECTION_GIRS += GTop-2.0.gir | ||||
|  | ||||
| girdir = $(datadir)/gir-1.0 | ||||
| gir_DATA = $(INTROSPECTION_GIRS) | ||||
|  | ||||
| typelibdir = $(libdir)/girepository-1.0 | ||||
| typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib) | ||||
|  | ||||
| CLEANFILES += $(gir_DATA) $(typelib_DATA) | ||||
| endif | ||||
|   | ||||
							
								
								
									
										47
									
								
								lib/boxed.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								lib/boxed.c
									
									
									
									
									
								
							| @@ -1,47 +0,0 @@ | ||||
| /* Copyright (C) 2011 Red Hat | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Jasper St. Pierre <jstpierre@mecheye.net>, November 2011 | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/mountlist.h> | ||||
| #include <glibtop/procmap.h> | ||||
| #include <glibtop/procopenfiles.h> | ||||
|  | ||||
| #define DEFINE_BOXED(type)                              \ | ||||
|     static type *                                       \ | ||||
|     type##_copy (type *p)                               \ | ||||
|     {                                                   \ | ||||
|         type *n = g_new (type, 1);                      \ | ||||
|         memcpy (n, p, sizeof (type));                   \ | ||||
|         return n;                                       \ | ||||
|     }                                                   \ | ||||
|                                                         \ | ||||
|     G_DEFINE_BOXED_TYPE (type,                          \ | ||||
|                          type,                          \ | ||||
|                          type##_copy,                   \ | ||||
|                          g_free) | ||||
|  | ||||
| DEFINE_BOXED (glibtop); | ||||
| DEFINE_BOXED (glibtop_map_entry); | ||||
| DEFINE_BOXED (glibtop_proc_map); | ||||
| DEFINE_BOXED (glibtop_open_files_entry); | ||||
| DEFINE_BOXED (glibtop_proc_open_files); | ||||
| DEFINE_BOXED (glibtop_mountentry); | ||||
| DEFINE_BOXED (glibtop_mountlist); | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|   | ||||
| @@ -15,12 +15,11 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <glibtop/error.h> | ||||
| #include <glibtop/read.h> | ||||
| #include <glibtop/write.h> | ||||
| #include <glibtop/read_data.h> | ||||
| @@ -36,44 +35,6 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size, | ||||
|  | ||||
| 	glibtop_init_r (&server, 0, 0); | ||||
|  | ||||
| 	g_assert(command >= GLIBTOP_CMND_QUIT && command < GLIBTOP_MAX_CMND); | ||||
|  | ||||
| 	switch (command) { | ||||
| #define CHECK_CMND(CMND) case (CMND): glibtop_debug("CALL: command %s sending %lu bytes", #CMND, (unsigned long)send_size); break | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_QUIT); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_SYSDEPS); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_CPU); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_MEM); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_SWAP); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_UPTIME); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_LOADAVG); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_SHM_LIMITS); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_MSG_LIMITS); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_SEM_LIMITS); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROCLIST); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_STATE); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_UID); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_MEM); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_TIME); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_SIGNAL); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_KERNEL); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_SEGMENT); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_ARGS); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_MAP); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_MOUNTLIST); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_FSUSAGE); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_NETLOAD); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PPP); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_NETLIST); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_OPEN_FILES); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_WD); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_AFFINITY); | ||||
| 	  CHECK_CMND(GLIBTOP_CMND_PROC_IO); | ||||
| 	default: | ||||
| 	  glibtop_error_r(server, "CALL: command UNKNOWN(%d) sending %lu bytes", command, (unsigned long)send_size); break; | ||||
| 	} | ||||
| #undef CHECK_CMND | ||||
|  | ||||
| 	cmnd.command = command; | ||||
|  | ||||
| 	/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we | ||||
| @@ -91,8 +52,10 @@ glibtop_call_l (glibtop *server, unsigned command, size_t send_size, | ||||
|  | ||||
| 	glibtop_read_l (server, sizeof (glibtop_response), &response); | ||||
|  | ||||
| 	glibtop_debug ("RESPONSE: offset=%lu - data_size=%lu", | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "RESPONSE: %lu - %d\n", | ||||
| 		 response.offset, response.data_size); | ||||
| #endif | ||||
|  | ||||
| 	if (recv_buf) | ||||
| 		memcpy (recv_buf, ((char *) &response) + response.offset, | ||||
|   | ||||
							
								
								
									
										173
									
								
								lib/error.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										173
									
								
								lib/error.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,173 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|  | ||||
| #include <glibtop/error.h> | ||||
|  | ||||
| #include <glib/gstrfuncs.h> | ||||
| #include <errno.h> | ||||
|  | ||||
| #define DEFAULT_NAME	"LibGTop-Server" | ||||
|  | ||||
| /* Prints error message and exits. */ | ||||
|  | ||||
| static void | ||||
| print_server_name (glibtop_server *server) | ||||
| { | ||||
|     fprintf (stderr, "%s: ", server ? | ||||
| 	     (server->name ? server->name : DEFAULT_NAME) | ||||
| 	     : DEFAULT_NAME); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_vr (glibtop_server *server, char *format, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, "\n"); | ||||
|  | ||||
| #ifdef LIBGTOP_ENABLE_DEBUG | ||||
|     abort (); | ||||
| #else | ||||
|     exit (1); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_vr (glibtop_server *server, char *format, int error, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, ": %s\n", g_strerror (error)); | ||||
|  | ||||
| #ifdef LIBGTOP_ENABLE_DEBUG | ||||
|     abort (); | ||||
| #else | ||||
|     exit (1); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_vr (glibtop_server *server, char *format, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, "\n"); | ||||
|  | ||||
| #ifdef LIBGTOP_FATAL_WARNINGS | ||||
|     abort (); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_vr (glibtop_server *server, char *format, int error, va_list args) | ||||
| { | ||||
|     print_server_name (server); | ||||
|     vfprintf (stderr, format, args); | ||||
|     fprintf (stderr, ": %s\n", g_strerror (error)); | ||||
|  | ||||
| #ifdef LIBGTOP_FATAL_WARNINGS | ||||
|     abort (); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_vr (server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_vr (server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_error_io_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_error_io_vr (server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_warn_io_r (glibtop_server *server, char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|  | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_io_vr (server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| #ifndef  __GNUC__ | ||||
|  | ||||
| static void | ||||
| glibtop_error (char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|     va_start (args, format); | ||||
|     glibtop_error_vr (glibtop_global_server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_warn (char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_vr (glibtop_global_server, format, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_error_io (char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|     va_start (args, format); | ||||
|     glibtop_error_io_vr (glibtop_global_server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| static void | ||||
| glibtop_warn_io (char *format, ...) | ||||
| { | ||||
|     va_list args; | ||||
|     va_start (args, format); | ||||
|     glibtop_warn_io_vr (glibtop_global_server, format, errno, args); | ||||
|     va_end (args); | ||||
| } | ||||
|  | ||||
| #endif /* no __GNUC__ */ | ||||
| @@ -1,4 +1,6 @@ | ||||
| /* Copyright (C) 2014 Ryan Lortie <desrt@desrt.ca>
 | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
| 
 | ||||
| /* Copyright (C) 1998-99 Martin Baulig
 | ||||
|    This file is part of LibGTop 1.0. | ||||
| 
 | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
| @@ -19,13 +21,16 @@ | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
| 
 | ||||
| #include <config.h> | ||||
| #include <glibtop/sysinfo.h> | ||||
| #ifndef __GLIBTOP_SERVER_PRIVATE_H__ | ||||
| #define __GLIBTOP_SERVER_PRIVATE_H__ | ||||
| 
 | ||||
| static glibtop_sysinfo sysinfo = { .flags = 0 }; | ||||
| #include <glib.h> | ||||
| 
 | ||||
| const glibtop_sysinfo * | ||||
| glibtop_get_sysinfo_s (glibtop *server) | ||||
| typedef struct _glibtop_server_private glibtop_server_private; | ||||
| 
 | ||||
| struct _glibtop_server_private | ||||
| { | ||||
| 	return &sysinfo; | ||||
| } | ||||
|     GSList *backend_list; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
| @@ -1,5 +1,7 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
| 
 | ||||
| /* Copyright (C) 1998-99 Martin Baulig
 | ||||
|    This file is part of LibGTop 1.0. | ||||
|    This file is part of LibGTop 2.0. | ||||
| 
 | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
| 
 | ||||
| @@ -15,29 +17,41 @@ | ||||
| 
 | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
| 
 | ||||
| #include <config.h> | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/prockernel.h> | ||||
| #include <glibtop-server-private.h> | ||||
| 
 | ||||
| static const unsigned long _glibtop_sysdeps_proc_kernel = 0; | ||||
| 
 | ||||
| /* Init function. */ | ||||
| 
 | ||||
| void | ||||
| _glibtop_init_proc_kernel_s (glibtop *server) | ||||
| glibtop_server * | ||||
| glibtop_server_new (void) | ||||
| { | ||||
| 	server->sysdeps.proc_kernel = _glibtop_sysdeps_proc_kernel; | ||||
|     glibtop_server *retval; | ||||
| 
 | ||||
|     retval = g_new0 (glibtop_server, 1); | ||||
|     retval->info = g_new0 (glibtop_server_info, 1); | ||||
|     retval->_priv = g_new0 (glibtop_server_private, 1); | ||||
|     retval->refcount = 1; | ||||
| 
 | ||||
|     return retval; | ||||
| } | ||||
| 
 | ||||
| /* Provides detailed information about a process. */ | ||||
| void | ||||
| glibtop_server_ref (glibtop_server *server) | ||||
| { | ||||
|     server->refcount++; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, | ||||
| 			   pid_t pid) | ||||
| glibtop_server_unref (glibtop_server *server) | ||||
| { | ||||
| 	memset (buf, 0, sizeof (glibtop_proc_kernel)); | ||||
|     server->refcount--; | ||||
| 
 | ||||
|     if (server->refcount <= 0) { | ||||
| 	g_free (server->_priv); | ||||
| 	g_free (server->info); | ||||
| 	g_free (server); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										17
									
								
								lib/init.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								lib/init.c
									
									
									
									
									
								
							| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -26,14 +26,12 @@ | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/parameter.h> | ||||
| #include <glibtop/init_hooks.h> | ||||
| #include <glibtop/machine.h> | ||||
|  | ||||
|  | ||||
| #ifndef DEFAULT_PORT | ||||
| #define DEFAULT_PORT 42800 | ||||
| #endif | ||||
|  | ||||
| static glibtop _glibtop_global_server; | ||||
| static glibtop _glibtop_global_server = { 0 }; | ||||
| glibtop *glibtop_global_server = &_glibtop_global_server; | ||||
|  | ||||
| static void | ||||
| @@ -143,7 +141,7 @@ _init_server (glibtop *server, const unsigned features) | ||||
|  | ||||
| 		/* Open pipe to server. */ | ||||
| 		server->method = GLIBTOP_METHOD_PIPE; | ||||
| 		server->server_command = g_strdup(LIBGTOP_SERVER); | ||||
|  | ||||
| 	} else { | ||||
|  | ||||
| 		glibtop_error_r (server, "Unknown server method '%s'", | ||||
| @@ -175,9 +173,6 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags) | ||||
| 	/* Do the initialization, but only if not already initialized. */ | ||||
|  | ||||
| 	if ((server->flags & _GLIBTOP_INIT_STATE_INIT) == 0) { | ||||
|  | ||||
| 		glibtop_machine_new (server); | ||||
|  | ||||
| 		if (flags & GLIBTOP_FEATURES_EXCEPT) | ||||
| 			features = ~features & GLIBTOP_SYSDEPS_ALL; | ||||
|  | ||||
| @@ -214,7 +209,7 @@ glibtop_init_r (glibtop **server_ptr, unsigned long features, unsigned flags) | ||||
| 	/* Open server, but only if not already opened. */ | ||||
|  | ||||
| 	if ((server->flags & _GLIBTOP_INIT_STATE_OPEN) == 0) | ||||
| 		glibtop_open_l (server, "glibtop", | ||||
| 		glibtop_open_l (glibtop_global_server, "glibtop", | ||||
| 				features, flags); | ||||
|  | ||||
| 	return server; | ||||
| @@ -226,8 +221,6 @@ glibtop_init_s (glibtop **server_ptr, unsigned long features, unsigned flags) | ||||
| 	glibtop *server; | ||||
| 	const _glibtop_init_func_t *init_fkt; | ||||
|  | ||||
| 	glibtop_debug("init_s with features=%#0lx and flags=%#0x", features, flags); | ||||
|  | ||||
| 	if (server_ptr == NULL) | ||||
| 		return NULL; | ||||
|  | ||||
|   | ||||
							
								
								
									
										115
									
								
								lib/inodedb.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								lib/inodedb.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    LibGTop 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; either version 2 of the License, | ||||
|    or (at your option) any later version. | ||||
|  | ||||
|    LibGTop 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 LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/error.h> | ||||
| #include <glibtop/inodedb.h> | ||||
|  | ||||
| #include <pwd.h> | ||||
| #include <gdbm.h> | ||||
|  | ||||
| #ifndef SYSTEM_INODEDB | ||||
| #define SYSTEM_INODEDB "/usr/var/libgtop/inodedb.db" | ||||
| #endif | ||||
|  | ||||
| glibtop_inodedb * | ||||
| glibtop_inodedb_open_s (glibtop *server, unsigned databases, | ||||
| 			unsigned long cachesize) | ||||
| { | ||||
| 	glibtop_inodedb *inodedb; | ||||
| 	char filename [BUFSIZ]; | ||||
| 	struct passwd *pwd; | ||||
| 	struct stat statb; | ||||
|  | ||||
| 	if (!databases) | ||||
| 		databases = GLIBTOP_INODEDB_ALL; | ||||
|  | ||||
| 	inodedb = g_malloc (sizeof (glibtop_inodedb)); | ||||
|  | ||||
| 	if (stat (SYSTEM_INODEDB, &statb)) | ||||
| 		databases &= ~GLIBTOP_INODEDB_SYSTEM; | ||||
|  | ||||
| 	if (databases & GLIBTOP_INODEDB_SYSTEM) { | ||||
| 		inodedb->system_dbf = gdbm_open | ||||
| 			(SYSTEM_INODEDB, 0, GDBM_READER, 0, 0); | ||||
| 		if (!inodedb->system_dbf) | ||||
| 			glibtop_error_io_r | ||||
| 				(server, "gdbm_open (%s)", SYSTEM_INODEDB); | ||||
| 	} | ||||
|  | ||||
| 	pwd = getpwuid (getuid ()); | ||||
| 	if (!pwd) glibtop_error_io_r (server, "getpwuid"); | ||||
|  | ||||
| 	sprintf (filename, "%s/var/libgtop/inodedb.db", pwd->pw_dir); | ||||
|  | ||||
| 	if (stat (filename, &statb)) | ||||
| 		databases &= ~GLIBTOP_INODEDB_USER; | ||||
|  | ||||
| 	if (databases & GLIBTOP_INODEDB_USER) { | ||||
| 		inodedb->user_dbf = gdbm_open | ||||
| 			(filename, 0, GDBM_READER, 0, 0); | ||||
| 		if (!inodedb->user_dbf) | ||||
| 			glibtop_error_io_r | ||||
| 				(server, "gdbm_open (%s)", filename); | ||||
| 	} | ||||
|  | ||||
| 	return inodedb; | ||||
| } | ||||
|  | ||||
| const char * | ||||
| glibtop_inodedb_lookup_s (glibtop *server, | ||||
| 			  glibtop_inodedb *inodedb, | ||||
| 			  guint64 device, guint64 inode) | ||||
| { | ||||
| 	glibtop_inodedb_key key; | ||||
| 	datum d_key, d_content; | ||||
|  | ||||
| 	d_key.dptr = (void *) &key; | ||||
| 	d_key.dsize = sizeof (key); | ||||
|  | ||||
| 	key.device = device; | ||||
| 	key.inode = inode; | ||||
|  | ||||
| 	if (inodedb->system_dbf) { | ||||
| 		d_content = gdbm_fetch (inodedb->system_dbf, d_key); | ||||
| 		if (d_content.dptr) return d_content.dptr; | ||||
| 	} | ||||
|  | ||||
| 	if (inodedb->user_dbf) { | ||||
| 		d_content = gdbm_fetch (inodedb->user_dbf, d_key); | ||||
| 		if (d_content.dptr) return d_content.dptr; | ||||
| 	} | ||||
|  | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
| void | ||||
| glibtop_inodedb_close_s (glibtop *server, glibtop_inodedb *inodedb) | ||||
| { | ||||
| 	if (inodedb->system_dbf) | ||||
| 		gdbm_close (inodedb->system_dbf); | ||||
|  | ||||
| 	if (inodedb->user_dbf) | ||||
| 		gdbm_close (inodedb->user_dbf); | ||||
|  | ||||
| 	g_free (inodedb); | ||||
| } | ||||
							
								
								
									
										70
									
								
								lib/lib.pl
									
									
									
									
									
								
							
							
						
						
									
										70
									
								
								lib/lib.pl
									
									
									
									
									
								
							| @@ -1,8 +1,21 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| print '/* lib.c */'; | ||||
| print "/* This is a generated file.  Please modify `lib.pl' */"; | ||||
| print ''; | ||||
| @@ -73,9 +86,9 @@ while (<>) { | ||||
| sub output { | ||||
|     local($line) = @_; | ||||
|     @line_fields = split(/\|/, $line, 9999); | ||||
|     $retval = $line_fields[0]; | ||||
|     $feature = $line_fields[1]; | ||||
|     $param_def = $line_fields[2]; | ||||
|     $retval = $line_fields[1]; | ||||
|     $feature = $line_fields[2]; | ||||
|     $param_def = $line_fields[4]; | ||||
|  | ||||
|     $orig = $feature; | ||||
|     $feature =~ s/^@//; | ||||
| @@ -93,16 +106,16 @@ sub output { | ||||
|     } | ||||
|  | ||||
|     if ($param_def eq 'string') { | ||||
| 	$call_param = ', ' . $line_fields[3]; | ||||
| 	$call_param = ', ' . $line_fields[5]; | ||||
| 	$param_buf = ''; | ||||
| 	$buf_set = ''; | ||||
| 	$param_decl = ",\n            " . $space . '    const char *' . | ||||
|  | ||||
| 	  $line_fields[3]; | ||||
| 	$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[3] . ';'; | ||||
| 	  $line_fields[5]; | ||||
| 	$send_ptr = "\n\tconst void *send_ptr = " . $line_fields[5] . ';'; | ||||
| 	$send_size = "\n\tconst size_t send_size =\n\t\tstrlen (" . | ||||
|  | ||||
| 	  $line_fields[3] . ') + 1;'; | ||||
| 	  $line_fields[5] . ') + 1;'; | ||||
|     } | ||||
|     else { | ||||
| 	$call_param = ''; | ||||
| @@ -113,9 +126,9 @@ sub output { | ||||
| 	$buf_set = ''; | ||||
| 	$nr_params = (@params = split(/:/, $param_def, 9999)); | ||||
| 	if ($nr_params) { | ||||
| 	    $param_buf = "\t\tstruct {\n"; | ||||
| 	    $param_buf = "\n\tstruct {\n"; | ||||
| 	} | ||||
| 	for ($param = 0; $param < $nr_params; $param++) { | ||||
| 	for ($param = 1; $param <= $nr_params; $param++) { | ||||
| 	    $list = $params[$param]; | ||||
| 	    $type = $params[$param]; | ||||
| 	    $type =~ s/\(.*//; | ||||
| @@ -124,13 +137,13 @@ sub output { | ||||
| 	    $count = (@fields = split(/,/, $list, 9999)); | ||||
|  | ||||
| 	    if ($count > 0) { | ||||
| 		for ($field = 0; $field < $count; $field++) { | ||||
| 		    $param_buf .= "\t\t\t$convert{$type} buf_$fields[$field];\n"; | ||||
| 		    $buf_set .= "\t\tparam_buf.buf_$fields[$field] = $fields[$field];\n"; | ||||
| 		for ($field = 1; $field <= $count; $field++) { | ||||
| 		    $param_buf .= "\t\t$convert{$type} buf_$fields[$field];\n"; | ||||
| 		    $buf_set .= "\tparam_buf.buf_$fields[$field] = $fields[$field];\n"; | ||||
| 		} | ||||
| 	    } | ||||
|  | ||||
| 	    for ($field = 0; $field < $count; $field++) { | ||||
| 	    for ($field = 1; $field <= $count; $field++) { | ||||
| 		if ($param_decl eq '') { | ||||
| 		    $param_decl = ",\n            " . $space . '    '; | ||||
| 		} | ||||
| @@ -142,19 +155,19 @@ sub output { | ||||
| 		  $fields[$field]; | ||||
| 		$call_param = $call_param . ', ' . $fields[$field]; | ||||
| 		if ($send_ptr eq '') { | ||||
| 		    $send_ptr = "\t\tconst void *send_ptr = ¶m_buf;"; | ||||
| 		    $send_ptr = "\n\tconst void *send_ptr = ¶m_buf;"; | ||||
| 		} | ||||
| 	    } | ||||
| 	} | ||||
| 	if ($nr_params) { | ||||
| 	    $param_buf .= "\t\t} param_buf;\n"; | ||||
| 	    $send_size  = "\t\tconst size_t send_size = sizeof param_buf;"; | ||||
| 	    $param_buf .= "\t} param_buf;"; | ||||
| 	    $send_size  = "\n\tconst size_t send_size = sizeof param_buf;"; | ||||
| 	} | ||||
| 	else { | ||||
| 	    $send_size = "\t\tconst size_t send_size = 0;"; | ||||
| 	    $send_size = "\n\tconst size_t send_size = 0;"; | ||||
| 	} | ||||
| 	if ($send_ptr eq '') { | ||||
| 	    $send_ptr = "\t\tconst void *send_ptr = NULL;"; | ||||
| 	    $send_ptr = "\n\tconst void *send_ptr = NULL;"; | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| @@ -162,15 +175,17 @@ sub output { | ||||
|  | ||||
|       $feature . ' *buf' . $param_decl . ')'; | ||||
|  | ||||
|     print "{"; | ||||
|     print "{" . $param_buf; | ||||
|  | ||||
|     print $send_ptr . '' . $send_size; | ||||
|     if ($retval !~ /^void$/) { | ||||
| 	print "\t" . $retval . ' retval = (' . $retval . ') 0;'; | ||||
|     } | ||||
|     print $buf_set; | ||||
|  | ||||
|     print "\tglibtop_init_r (&server, (1 << GLIBTOP_SYSDEPS_" . | ||||
|  | ||||
|       uc($feature) . '), 0);'; | ||||
|       &toupper($feature) . '), 0);'; | ||||
|  | ||||
|     print ''; | ||||
|     print "\t/* If neccessary, we ask the server for the requested"; | ||||
| @@ -180,21 +195,12 @@ sub output { | ||||
|     print "\tif ((server->flags & _GLIBTOP_INIT_STATE_SERVER) &&"; | ||||
|     print "\t    (server->features & (1 << GLIBTOP_SYSDEPS_" . | ||||
|  | ||||
|       uc($feature) . ')))'; | ||||
|       &toupper($feature) . ')))'; | ||||
|     print "\t{"; | ||||
|  | ||||
|     if ($param_buf) { | ||||
|         print $param_buf; | ||||
|         print $buf_set; | ||||
|     } | ||||
|  | ||||
|     print $send_ptr; | ||||
|     print $send_size; | ||||
|     print ''; | ||||
|  | ||||
|     print "\t\t" . $prefix . 'glibtop_call_l (server, GLIBTOP_CMND_' . | ||||
|  | ||||
|       uc($feature) . ','; | ||||
|       &toupper($feature) . ','; | ||||
|     print "\t\t\t\t" . $prefix_space . 'send_size, send_ptr,'; | ||||
|     print "\t\t\t\t" . $prefix_space . 'sizeof (glibtop_' . $feature . | ||||
|  | ||||
| @@ -203,7 +209,7 @@ sub output { | ||||
|     print "\t} else {"; | ||||
|  | ||||
|     if ($orig !~ /^@/) { | ||||
| 	print '#if (!GLIBTOP_SUID_' . uc($feature) . ')'; | ||||
| 	print '#if (!GLIBTOP_SUID_' . &toupper($feature) . ')'; | ||||
|     } | ||||
|     print "\t\t" . $prefix . 'glibtop_get_' . $feature . '_s (server, buf' . | ||||
|  | ||||
|   | ||||
| @@ -1,79 +0,0 @@ | ||||
| glibtop_call_l | ||||
| glibtop_close | ||||
| glibtop_close_r | ||||
| glibtop_get_cpu | ||||
| glibtop_get_cpu_l | ||||
| glibtop_get_fsusage | ||||
| glibtop_get_fsusage_l | ||||
| glibtop_get_loadavg | ||||
| glibtop_get_loadavg_l | ||||
| glibtop_get_mem | ||||
| glibtop_get_mem_l | ||||
| glibtop_get_mountlist | ||||
| glibtop_get_mountlist_l | ||||
| glibtop_get_msg_limits | ||||
| glibtop_get_msg_limits_l | ||||
| glibtop_get_netlist | ||||
| glibtop_get_netlist_l | ||||
| glibtop_get_netload | ||||
| glibtop_get_netload_l | ||||
| glibtop_get_parameter_l | ||||
| glibtop_get_ppp | ||||
| glibtop_get_ppp_l | ||||
| glibtop_get_proc_args | ||||
| glibtop_get_proc_args_l | ||||
| glibtop_get_proc_argv | ||||
| glibtop_get_proc_argv_l | ||||
| glibtop_get_proc_kernel | ||||
| glibtop_get_proc_kernel_l | ||||
| glibtop_get_proclist | ||||
| glibtop_get_proclist_l | ||||
| glibtop_get_proc_map | ||||
| glibtop_get_proc_map_l | ||||
| glibtop_get_proc_mem | ||||
| glibtop_get_proc_mem_l | ||||
| glibtop_get_proc_open_files | ||||
| glibtop_get_proc_open_files_l | ||||
| glibtop_get_proc_segment | ||||
| glibtop_get_proc_segment_l | ||||
| glibtop_get_proc_signal | ||||
| glibtop_get_proc_signal_l | ||||
| glibtop_get_proc_state | ||||
| glibtop_get_proc_state_l | ||||
| glibtop_get_proc_time | ||||
| glibtop_get_proc_time_l | ||||
| glibtop_get_proc_uid | ||||
| glibtop_get_proc_uid_l | ||||
| glibtop_get_proc_wd | ||||
| glibtop_get_proc_wd_l | ||||
| glibtop_get_sem_limits | ||||
| glibtop_get_sem_limits_l | ||||
| glibtop_get_shm_limits | ||||
| glibtop_get_shm_limits_l | ||||
| glibtop_get_proc_affinity | ||||
| glibtop_get_proc_affinity_l | ||||
| glibtop_get_proc_io | ||||
| glibtop_get_proc_io_l | ||||
| glibtop_get_swap | ||||
| glibtop_get_swap_l | ||||
| glibtop_get_sysdeps | ||||
| glibtop_get_sysdeps_r | ||||
| glibtop_get_sysinfo | ||||
| glibtop_get_uptime | ||||
| glibtop_get_uptime_l | ||||
| glibtop_global_server | ||||
| glibtop_init | ||||
| glibtop_init_r | ||||
| glibtop_internet_addr | ||||
| glibtop_make_connection | ||||
| glibtop_open_l | ||||
| glibtop_server_features | ||||
| glibtop_set_parameter_l | ||||
| glibtop_sys_siglist | ||||
| glibtop_mountlist_get_type | ||||
| glibtop_mountentry_get_type | ||||
| glibtop_open_files_entry_get_type | ||||
| glibtop_proc_open_files_get_type | ||||
| glibtop_map_entry_get_type | ||||
| glibtop_proc_map_get_type | ||||
| glibtop_get_type | ||||
							
								
								
									
										44
									
								
								lib/open.c
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								lib/open.c
									
									
									
									
									
								
							| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -47,44 +47,56 @@ glibtop_open_l (glibtop *server, const char *program_name, | ||||
|  | ||||
| 	server->error_method = GLIBTOP_ERROR_METHOD_DEFAULT; | ||||
|  | ||||
| 	glibtop_debug ("SIZEOF: %zu - %zu - %zu - %zu - %zu - %zu", | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "SIZEOF: %u - %u - %u - %u - %u - %u\n", | ||||
| 		 sizeof (glibtop_command), sizeof (glibtop_response), | ||||
| 		 sizeof (glibtop_mountentry), sizeof (glibtop_union), | ||||
| 		 sizeof (glibtop_sysdeps), sizeof (glibtop_response_union)); | ||||
| #endif | ||||
|  | ||||
| 	switch (server->method) { | ||||
| 	case GLIBTOP_METHOD_DIRECT: | ||||
| 		server->features = 0; | ||||
| 		break; | ||||
| 	case GLIBTOP_METHOD_INET: | ||||
| 		glibtop_debug ("Connecting to '%s' port %ld.", | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Connecting to '%s' port %ld.\n", | ||||
| 			 server->server_host, server->server_port); | ||||
| #endif | ||||
|  | ||||
| 		connect_type = glibtop_make_connection | ||||
| 			(server->server_host, server->server_port, | ||||
| 			 &server->socket); | ||||
|  | ||||
| 		glibtop_debug ("Connect Type is %d.", connect_type); | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Connect Type is %d.\n", connect_type); | ||||
| #endif | ||||
|  | ||||
| 		server->flags |= _GLIBTOP_INIT_STATE_SERVER; | ||||
|  | ||||
| 		server->features = -1; | ||||
| 		break; | ||||
| 	case GLIBTOP_METHOD_UNIX: | ||||
| 		glibtop_debug ("Connecting to Unix Domain Socket."); | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Connecting to Unix Domain Socket.\n"); | ||||
| #endif | ||||
|  | ||||
| 		connect_type = glibtop_make_connection | ||||
| 			("unix", 0, &server->socket); | ||||
|  | ||||
| 		glibtop_debug ("Connect Type is %d.", connect_type); | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Connect Type is %d.\n", connect_type); | ||||
| #endif | ||||
|  | ||||
| 		server->flags |= _GLIBTOP_INIT_STATE_SERVER; | ||||
|  | ||||
| 		server->features = -1; | ||||
| 		break; | ||||
| 	case GLIBTOP_METHOD_PIPE: | ||||
| 		glibtop_debug ("Opening pipe to server (%s).", | ||||
| 			 server->server_command); | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Opening pipe to server (%s).\n", | ||||
| 			 LIBGTOP_SERVER); | ||||
| #endif | ||||
|  | ||||
| 		if (pipe (server->input) || pipe (server->output)) | ||||
| 			glibtop_error_io_r (server, "cannot make a pipe"); | ||||
| @@ -98,9 +110,9 @@ glibtop_open_l (glibtop *server, const char *program_name, | ||||
| 			close (server->input [0]); close (server->output [1]); | ||||
| 			dup2 (server->input [1], 1); | ||||
| 			dup2 (server->output [0], 0); | ||||
| 			execl (server->server_command, "libgtop-server", NULL); | ||||
| 			execl (LIBGTOP_SERVER, "libgtop-server", NULL); | ||||
| 			glibtop_error_io_r (server, "execl (%s)", | ||||
| 					    server->server_command); | ||||
| 					    LIBGTOP_SERVER); | ||||
| 			_exit (2); | ||||
| 		} | ||||
|  | ||||
| @@ -136,7 +148,7 @@ glibtop_open_l (glibtop *server, const char *program_name, | ||||
| 		if (nbytes != size) | ||||
| 			glibtop_error_r (server, | ||||
| 					 "Requested %u bytes but got %u.", | ||||
| 					 (unsigned)size, (unsigned)nbytes); | ||||
| 					 size, nbytes); | ||||
|  | ||||
| 		glibtop_read_l (server, nbytes, buffer); | ||||
|  | ||||
| @@ -153,14 +165,18 @@ glibtop_open_l (glibtop *server, const char *program_name, | ||||
|  | ||||
| 		memcpy (&server->sysdeps, &sysdeps, sizeof (glibtop_sysdeps)); | ||||
|  | ||||
| 		glibtop_debug ("Server features are %#0lx.", | ||||
| #ifdef DEBUG | ||||
| 		fprintf (stderr, "Server features are %lu.\n", | ||||
| 			 server->features); | ||||
| #endif | ||||
| 	} | ||||
|  | ||||
| 	/* In any case, we call the open functions of our own sysdeps | ||||
| 	 * directory. */ | ||||
|  | ||||
| 	glibtop_debug ("Calling sysdeps open function."); | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "Calling sysdeps open function.\n"); | ||||
| #endif | ||||
|  | ||||
| 	glibtop_init_s (&server, features, flags); | ||||
| } | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -33,7 +33,9 @@ glibtop_read_l (glibtop *server, size_t size, void *buf) | ||||
| 	int fd; | ||||
| 	glibtop_init_r (&server, 0, 0); | ||||
|  | ||||
| 	glibtop_debug("LIBRARY: really reading %d bytes.", (int)size); | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "LIBRARY: really reading %d bytes.\n", (int)size); | ||||
| #endif | ||||
|  | ||||
| 	fd = server->socket ? server->socket : server->input[0]; | ||||
|  | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -36,8 +36,10 @@ glibtop_read_data_l (glibtop *server) | ||||
|  | ||||
| 	glibtop_init_r (&server, 0, 0); | ||||
|  | ||||
| 	glibtop_debug ("LIBRARY: reading %lu data bytes.", | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "LIBRARY: reading %lu data bytes.\n", | ||||
| 		 (unsigned long) sizeof (size_t)); | ||||
| #endif | ||||
|  | ||||
| 	if (server->socket) { | ||||
| 		ret = recv (server->socket, &size, sizeof (size_t), 0); | ||||
| @@ -48,8 +50,10 @@ glibtop_read_data_l (glibtop *server) | ||||
| 	if (ret < 0) | ||||
| 		glibtop_error_io_r (server, _("read data size")); | ||||
|  | ||||
| 	glibtop_debug ("LIBRARY: really reading %lu data bytes (ret = %d).", | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "LIBRARY: really reading %lu data bytes (ret = %d).\n", | ||||
| 		 (unsigned long) size, ret); | ||||
| #endif | ||||
|  | ||||
| 	if (!size) return NULL; | ||||
|  | ||||
|   | ||||
							
								
								
									
										104
									
								
								lib/structures.pl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								lib/structures.pl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| die "Usage: $0 features.def structures.def" unless $#ARGV == 2; | ||||
|  | ||||
| $[ = 1;			# set array base to 1 | ||||
| $, = ' ';		# set output field separator | ||||
| $\ = "\n";		# set output record separator | ||||
|  | ||||
| sub toupper { | ||||
|     local($_) = @_; | ||||
|     tr/a-z/A-Z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| sub tolower { | ||||
|     local($_) = @_; | ||||
|     tr/A-Z/a-z/; | ||||
|     return $_; | ||||
| } | ||||
|  | ||||
| $structures{$structure_count++} = 'glibtop'; | ||||
|  | ||||
| open FEATURESDEF, $ARGV[1] or | ||||
|   die "open ($ARGV[1]): $!"; | ||||
|  | ||||
| while (<FEATURESDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_features_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close FEATURESDEF; | ||||
|  | ||||
| open STRUCTDEF, $ARGV[2] or | ||||
|   die "open ($ARGV[2]): $!"; | ||||
|  | ||||
| while (<STRUCTDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_structure_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close STRUCTDEF; | ||||
|  | ||||
| $init_structures_code = sprintf | ||||
|   (qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_GLIBTOP] = scm_make_structure_type\n\t\t("glibtop", sizeof (glibtop));\n]); | ||||
|  | ||||
| for ($nr = 0; $nr < $structure_count; $nr++) { | ||||
|   $structure = $structures{$nr}; | ||||
|  | ||||
|   $init_structures_code .= sprintf | ||||
|     (qq[\tscm_glibtop_structure_tags [GLIBTOP_STRUCTURE_%s] = scm_make_structure_type\n\t\t("%s", sizeof (%s));\n], | ||||
|      toupper($structure), $structure, $structure); | ||||
| } | ||||
|  | ||||
| print qq[/* structures.h */]; | ||||
| print qq[/* This is a generated file.  Please modify \`guile.pl\' */]; | ||||
| print ''; | ||||
| print qq[\#ifndef __GLIBTOP_STRUCTURES_H__]; | ||||
| print qq[\#define __GLIBTOP_STRUCTURES_H__]; | ||||
| print ''; | ||||
| print qq[\#include <glibtop.h>]; | ||||
| print ''; | ||||
| print qq[G_BEGIN_DECLS]; | ||||
| print ''; | ||||
|  | ||||
| for ($nr = 0; $nr < $structure_count; $nr++) { | ||||
|   $structure = $structures{$nr}; | ||||
|  | ||||
|   printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_STRUCTURE_'.&toupper($structure), $nr); | ||||
| } | ||||
|  | ||||
| print ''; | ||||
| printf (qq[\#define %-40s\t%d\n], 'GLIBTOP_MAX_STRUCTURES', $structure_count); | ||||
| print ''; | ||||
| print qq[G_END_DECLS]; | ||||
| print ''; | ||||
| print qq[\#endif /* __GLIBTOP_STRUCTURES_H__ */]; | ||||
|  | ||||
| sub parse_features_def { | ||||
|   local($line) = @_; | ||||
|   @line_fields = split(/\|/, $line, 9999); | ||||
|   $retval = $line_fields[1]; | ||||
|   $element_def = $line_fields[3]; | ||||
|   $feature = $line_fields[2]; | ||||
|   $param_def = $line_fields[4]; | ||||
|    | ||||
|   $feature =~ s/^@//; | ||||
|   $features{$feature} = $feature; | ||||
|  | ||||
|   $structures{$structure_count++} = 'glibtop_'.$feature; | ||||
| } | ||||
|  | ||||
| sub parse_structure_def { | ||||
|   local($line) = @_; | ||||
|   @line_fields = split(/\|/, $line, 9999); | ||||
|   $name = $line_fields[1]; | ||||
|  | ||||
|   $structures{$structure_count++} = $name; | ||||
| } | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -44,13 +44,9 @@ GLIBTOP_SUID_PROC_KERNEL + | ||||
| GLIBTOP_SUID_PROC_SEGMENT + | ||||
| GLIBTOP_SUID_PROC_ARGS + | ||||
| GLIBTOP_SUID_PROC_MAP + | ||||
| GLIBTOP_SUID_PROC_OPEN_FILES + | ||||
| GLIBTOP_SUID_NETLOAD + | ||||
| GLIBTOP_SUID_NETLIST + | ||||
| GLIBTOP_SUID_PROC_WD + | ||||
| GLIBTOP_SUID_PROC_AFFINITY + | ||||
| GLIBTOP_SUID_PPP + | ||||
| GLIBTOP_SUID_PROC_IO; | ||||
| GLIBTOP_SUID_PPP; | ||||
|  | ||||
| const _glibtop_init_func_t _glibtop_init_hook_s [] = { | ||||
| #if !GLIBTOP_SUID_CPU | ||||
| @@ -113,20 +109,8 @@ const _glibtop_init_func_t _glibtop_init_hook_s [] = { | ||||
| #if !GLIBTOP_SUID_NETLIST | ||||
| 	_glibtop_init_netlist_s, | ||||
| #endif | ||||
| #if !GLIBTOP_SUID_PROC_WD | ||||
| 	_glibtop_init_proc_wd_s, | ||||
| #endif | ||||
| #if !GLIBTOP_SUID_PROC_AFFINITY | ||||
| 	_glibtop_init_proc_affinity_s, | ||||
| #endif | ||||
| #if !GLIBTOP_SUID_PPP | ||||
| 	_glibtop_init_ppp_s, | ||||
| #endif | ||||
| #if !GLIBTOP_SUID_PROC_IO | ||||
| 	_glibtop_init_proc_io_s, | ||||
| #endif | ||||
| #if !GLIBTOP_SUID_PROC_OPEN_FILES | ||||
| 	_glibtop_init_proc_open_files_s, | ||||
| #endif | ||||
| 	NULL | ||||
| }; | ||||
| @@ -192,20 +176,8 @@ const _glibtop_init_func_t _glibtop_init_hook_p [] = { | ||||
| #if GLIBTOP_SUID_NETLIST | ||||
| 	_glibtop_init_netlist_p, | ||||
| #endif | ||||
| #if GLIBTOP_SUID_PROC_WD | ||||
| 	_glibtop_init_proc_wd_p, | ||||
| #endif | ||||
| #if GLIBTOP_SUID_PROC_AFFINITY | ||||
| 	_glibtop_init_proc_affinity_p, | ||||
| #endif | ||||
| #if GLIBTOP_SUID_PPP | ||||
| 	_glibtop_init_ppp_p, | ||||
| #endif | ||||
| #if GLIBTOP_SUID_PROC_IO | ||||
| 	_glibtop_init_proc_io_p, | ||||
| #endif | ||||
| #if GLIBTOP_SUID_PROC_OPEN_FILES | ||||
| 	_glibtop_init_proc_open_files_p, | ||||
| #endif | ||||
| 	NULL | ||||
| }; | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
|  | ||||
|    You should have received a copy of the GNU General Public License | ||||
|    along with LibGTop; see the file COPYING. If not, write to the | ||||
|    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
|    Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||||
|    Boston, MA 02111-1307, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
| @@ -37,7 +37,9 @@ glibtop_write_l (glibtop *server, size_t size, void *buf) | ||||
|  | ||||
| 	if (size == 0) return; | ||||
|  | ||||
| 	glibtop_debug("LIBRARY: really writing %d bytes.", (int)size); | ||||
| #ifdef DEBUG | ||||
| 	fprintf (stderr, "LIBRARY: really writing %d bytes.\n", (int)size); | ||||
| #endif | ||||
|  | ||||
| 	fd = server->socket ? server->socket : server->output[1]; | ||||
|  | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user