Compare commits
	
		
			5 Commits
		
	
	
		
			2.32.0
			...
			master-UNN
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 9c6c2948ee | ||
|  | 006b0b71dc | ||
|  | fb7ef7ac8d | ||
|  | 2655ed9696 | ||
|  | 061ba4a61a | 
							
								
								
									
										85
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,85 +0,0 @@ | ||||
| *~ | ||||
| *.bak | ||||
| *.o | ||||
| *.out | ||||
| *.a | ||||
| *.gmo | ||||
| *.lo | ||||
| *.la | ||||
| *.core | ||||
| *.s | ||||
| *.stamp | ||||
| .libs | ||||
| .deps | ||||
| Makefile | ||||
| Makefile.in | ||||
| src/daemon/libgtop_daemon2 | ||||
| src/daemon/libgtop_server2 | ||||
| stamp-h1 | ||||
| po/stamp-it | ||||
| po/POTFILES | ||||
| po/Makefile.in.in | ||||
| missing | ||||
| m4/ | ||||
| ltmain.sh | ||||
| libtool | ||||
| libgtopconfig.h | ||||
| libgtop.spec | ||||
| libgtop-2.0.pc | ||||
| lib/lib.c | ||||
| lib/GTop-2.0.gir | ||||
| lib/GTop-2.0.typelib | ||||
| INSTALL | ||||
| aclocal.m4 | ||||
| autom4te.cache/ | ||||
| config.guess | ||||
| config.h | ||||
| config.h.in | ||||
| config.log | ||||
| config.status | ||||
| config.sub | ||||
| configure | ||||
| compile | ||||
| 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/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 | ||||
| intltool-extract.in | ||||
| intltool-merge.in | ||||
| intltool-update.in | ||||
|  | ||||
							
								
								
									
										3
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| Martin Baulig (martin@home-of-linux.org) | ||||
| Drazen Kacar (dave@srce.hr) | ||||
| 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. | ||||
							
								
								
									
										25
									
								
								LIBGTOP-VERSION
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								LIBGTOP-VERSION
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| # Making releases: | ||||
| #   LIBGTOP_MICRO_VERSION += 1; | ||||
| #   LIBGTOP_INTERFACE_AGE += 1; | ||||
| #   LIBGTOP_BINARY_AGE += 1; | ||||
| # if any functions have been added, set LIBGTOP_INTERFACE_AGE to 0. | ||||
| # if backwards compatibility has been broken, | ||||
| # set LIBGTOP_BINARY_AGE and LIBGTOP_INTERFACE_AGE to 0. | ||||
| # | ||||
| LIBGTOP_MAJOR_VERSION=1 | ||||
| LIBGTOP_MINOR_VERSION=0 | ||||
| LIBGTOP_MICRO_VERSION=2 | ||||
|  | ||||
| LIBGTOP_INTERFACE_AGE=1 | ||||
| LIBGTOP_BINARY_AGE=1 | ||||
|  | ||||
| # Increase each time you change the client/server protocol. | ||||
| LIBGTOP_SERVER_VERSION=5 | ||||
|  | ||||
| # Don't change this | ||||
| LIBGTOP_VERSION=$LIBGTOP_MAJOR_VERSION.$LIBGTOP_MINOR_VERSION.$LIBGTOP_MICRO_VERSION | ||||
| LIBGTOP_VERSION_CODE=`echo "$LIBGTOP_MAJOR_VERSION 1000000 * $LIBGTOP_MINOR_VERSION 1000 * + $LIBGTOP_MICRO_VERSION + p q" | dc` | ||||
|  | ||||
| # For automake. | ||||
| VERSION=$LIBGTOP_VERSION | ||||
| PACKAGE=libgtop | ||||
| @@ -1,4 +0,0 @@ | ||||
| Benoît Dejean | ||||
| E-mail: benoit@placenet.org | ||||
| Userid: bdejean | ||||
|  | ||||
							
								
								
									
										38
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -1,38 +0,0 @@ | ||||
| ACLOCAL_AMFLAGS = -I m4 | ||||
|  | ||||
| if EXAMPLES | ||||
| EXAMPLES_DIR = examples | ||||
| else | ||||
| EXAMPLES_DIR =  | ||||
| endif | ||||
|  | ||||
| SUBDIRS = po misc include sysdeps lib src $(EXAMPLES_DIR) doc | ||||
|  | ||||
| libgtopinclude_HEADERS = glibtop.h libgtopconfig.h | ||||
| libgtopincludedir = $(includedir)/libgtop-2.0 | ||||
|  | ||||
| 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 \ | ||||
| 	intltool-extract.in \ | ||||
| 	intltool-merge.in \ | ||||
| 	libgtop.doap \ | ||||
| 	intltool-update.in \ | ||||
| 	m4/introspection.m4 | ||||
|  | ||||
| DISTCLEANFILES = \ | ||||
| 	intltool-extract \ | ||||
| 	intltool-merge \ | ||||
| 	intltool-update | ||||
|  | ||||
| dist-hook: | ||||
| 	cp libgtop.spec $(distdir) | ||||
|  | ||||
| pkgconfigdir = $(libdir)/pkgconfig | ||||
| pkgconfig_DATA = libgtop-2.0.pc | ||||
|  | ||||
| libgtop-features.def: features.def | ||||
| 	@LN_S@ $< $@ | ||||
|  | ||||
| DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-introspection | ||||
							
								
								
									
										541
									
								
								NEWS
									
									
									
									
									
								
							
							
						
						
									
										541
									
								
								NEWS
									
									
									
									
									
								
							| @@ -1,541 +0,0 @@ | ||||
| 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 | ||||
| ========================================= | ||||
| * 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. | ||||
|  | ||||
| 25 February 2007: Overview of changes in 2.14.8 | ||||
| =============================================== | ||||
| * bsd implementations have been splitted by Joe Marcus Clarke | ||||
|   and Alexander Nedotsukov. (k)freeBSD now has a separate implementation. | ||||
|  | ||||
| February 10, 2007: Overview of changes in 2.14.7 | ||||
| ================================================ | ||||
| * bsd: | ||||
|   - massive kfreeBSD and FreeBSD updates by Roy Marples and Petr Salinger. | ||||
| * mountlist can now ignore objfs and ctfs filesystems. | ||||
| * fsusage won't return bavail > bfree anymore. | ||||
|  | ||||
| January 14, 2007: Overview of changes in 2.14.6 | ||||
| =============================================== | ||||
| * linux: | ||||
|   - fixed stack overflow in glibtop_get_proc_map | ||||
|   - fixed handling of long filenames in glibtop_get_proc_map and glibtop_get_proc_open_files. | ||||
|   - micro-optimization | ||||
|  | ||||
| December 3, 2006: Overview of changes in 2.14.5 | ||||
| =============================================== | ||||
| * Added kfreebsd support (Petr Salinger <Petr.Salinger@seznam.cz>). | ||||
| * Added solaris glibtop_get_proc_open_files (Henry Zhang <hua.zhang@sun.com>). | ||||
| * Migrated to gtk-doc (Germán Poó-Caamaño <gpoo@ubiobio.cl>). | ||||
| * glibtop_get_mountlist can now ignore nsfd FS.  | ||||
|  | ||||
| September 16, 2006: Overview of changes in 2.14.4 | ||||
| ================================================= | ||||
| * Fixed linux maps/smaps parsing on 64bit kernel. | ||||
|  | ||||
| September 5, 2006: Overview of changes in 2.14.3 | ||||
| ================================================ | ||||
| * Fixed build with --as-needed. | ||||
| * Added missing G_BEGIN_DECLS/G_END_DECLS. | ||||
|  | ||||
| July 27, 2006: Overview of changes in 2.14.2 | ||||
| ============================================ | ||||
| * Updated solaris support (hua.zhang@sun.com) | ||||
| * Small linux updates and improvments. | ||||
|  | ||||
| April 10, 2006: Overview of changes in 2.14.1 | ||||
| ============================================= | ||||
| * Updated translations. | ||||
| * Fixed NetBSD port (Julio M. Merino Vidal  <jmmv@NetBSD.org>). | ||||
| * Fixed some warnings. | ||||
|  | ||||
| Mars 13, 2006: Overview of changes in 2.14.0 | ||||
| ============================================ | ||||
| * Updated translations. | ||||
|  | ||||
| February 27, 2006: Overview of changes in 2.13.92 | ||||
| ================================================= | ||||
| * Fixed proc_state documentation. | ||||
| * Updated mountlist ignore list. | ||||
|  | ||||
| January 23, 2006: Overview of changes in 2.13.3 | ||||
| =============================================== | ||||
| * linux: | ||||
| 	- fixe get_procmap for linux < 2.6.14. | ||||
|  | ||||
| January 2, 2006: Overview of changes in 2.13.2 | ||||
| ============================================== | ||||
| * Fixed libtool versioning (James Henstridge) | ||||
|  | ||||
| December 15, 2005: Overview of changes in 2.13.1 | ||||
| ================================================ | ||||
| * linux: | ||||
|     - fixed proclist | ||||
|     - implemented server->real_ncpu | ||||
|  | ||||
| December 13, 2005: Overview of changes in 2.13.0 | ||||
| ================================================ | ||||
| * Requires automake-1.9 (James Henstridge) | ||||
| * Supports up to 32 CPU | ||||
| * Supports Linux smaps | ||||
| * linux: fixed SMP detection | ||||
|  | ||||
| This release is not ABI compatible with previous releases. Sorry. | ||||
|  | ||||
| November 29, 2005: Overview of changes from 2.12.0 to 2.12.1 | ||||
| ============================================================ | ||||
| * Dropped dead files | ||||
| * linux: 1-line cleanup. | ||||
|  | ||||
| September 4, 2005: Overview of changes from 2.11.92 to 2.12.0 | ||||
| ============================================================= | ||||
| * Updated translations. | ||||
|  | ||||
| August 22, 2005: Overview of changes from 2.11.91 to 2.11.92 | ||||
| ============================================================ | ||||
| * Linux: | ||||
|   - fixed for 2.6 without /sys | ||||
|   - glibtop_get_cpu() : Do not add irq, softirq and iowait to idle. | ||||
|  | ||||
| August 9, 2005: Overview of changes from 2.11.90 to 2.11.91 | ||||
| =========================================================== | ||||
| * All: | ||||
|   - cleaned some headers. | ||||
|   - removed static examples. | ||||
| * Linux: | ||||
|   - fixed some issues with 2.6 without /sys | ||||
|  | ||||
| July 24, 2005: Overview of changes from 2.11.2 to 2.11.90 | ||||
| ========================================================= | ||||
| * Linux: | ||||
|   - fixed glibtop_uptime .flags. | ||||
|  | ||||
| July &3, 2005: Overview of changes from 2.11.1 to 2.11.2 | ||||
| ======================================================== | ||||
| * Linux: | ||||
|   - little improvements for 2.6. | ||||
|  | ||||
| July 3, 2005: Overview of changes from 2.11.0 to 2.11.1 | ||||
| ======================================================= | ||||
| * Linux: | ||||
|   - glibtop_get_swap : added page(in|out) for linux 2.6. | ||||
|  | ||||
| June 8, 2005: Overview of changes from 2.10.x to 2.11.0 | ||||
| ======================================================= | ||||
| * Replaced a lot of macros by functions | ||||
| * Got rid of dozens of useless files. | ||||
| * libgtop 2.11.x are and will stay API and ABI compatible with 2.10.x, i swear. | ||||
|  | ||||
| April 10, 2005: Overview of changes from 2.10.0 to 2.10.1 | ||||
| ========================================================= | ||||
| * Updated i18n. | ||||
| * Little cleanup and fixed gcc-4.0 compilation. | ||||
| * linux: fixed loadavg and uptime if locale != C. | ||||
|   Updated siglist. | ||||
| * Tighter libgtop-2.0.pc. | ||||
|  | ||||
| Mars 7, 2005: Overview of Changes from 2.9.92 to 2.10.0 | ||||
| ======================================================= | ||||
| * Updated i18n. | ||||
|  | ||||
| February 28, 2005: Overview of Changes from 2.9.90 to 2.9.92 | ||||
| ============================================================ | ||||
| * *BSD updated by marcus@freebsd.org (Joe Marcus Clarke). | ||||
| * Removed a lot of dead files :) | ||||
| * Don't build&install libgtop_daemon when it's never used. | ||||
|  | ||||
| February 6, 2004: Overview of Changes from 2.9.90 to 2.9.91 | ||||
| ========================================================== | ||||
| * Fixed typo in stub. | ||||
| * Updated i18n. | ||||
|  | ||||
| January 24, 2004: Overview of Changes from 2.9.4 to 2.9.90 | ||||
| ========================================================== | ||||
| * Updated Linux support. | ||||
|  | ||||
| January 10, 2004: Overview of Changes from 2.9.3 to 2.9.4 | ||||
| ========================================================= | ||||
| * New glibtop_proc_open_files nick@reloco.com.ar (Nicolás Lichtmaier). | ||||
| * Updated AIX support (Christophe Belle). | ||||
|  | ||||
| December 20, 2004: Overview of Changes from 2.9.0 to 2.9.3 | ||||
| ========================================================== | ||||
| * Removed libgtop_names. | ||||
| * Fixed Argument passing between library and server. #139809. | ||||
| * *BSD updated by marcus@freebsd.org (Joe Marcus Clarke). | ||||
| * glibtop_get_mountlist(False) now ignores 'unknown' fs. | ||||
|  | ||||
|  | ||||
| November 30, 2004: Overview of Changes from 2.8.1 to 2.9.0 | ||||
| ========================================================= | ||||
| * glibtop_get_netload : Fixed segfault on linux with ppp devices. | ||||
| * NEW glibtop_get_netlist : retrieves the list of all available interfaces. | ||||
| * NEW LIBGTOP_CHECK_VERSION(major, minor, micro) | ||||
| * Removed dead kernel patch and implementation. | ||||
| * Cleanups on Linux and Solaris. | ||||
|  | ||||
| October 11, 2004: Overview of Changes from 2.8.0 to 2.8.1 | ||||
| ========================================================= | ||||
| * Improved Solaris and AIX support. | ||||
|  | ||||
|  | ||||
| August 13, 2004: Overview of Changes from 2.7.92 to 2.8.0 | ||||
| ========================================================= | ||||
| * No changes | ||||
|  | ||||
|  | ||||
| August 30, 2004: | ||||
| =============== | ||||
| * Applied some *BSD patches. | ||||
| * Removed old files. | ||||
|  | ||||
|  | ||||
| August 15, 2004: | ||||
| =============== | ||||
| * Fixed compilation with C89-only compilers and old libc. | ||||
|  | ||||
|  | ||||
| August 3, 2004: | ||||
| ============== | ||||
| * Some cleanups. | ||||
| * Fixed the behaviour of some linux proc_*() functions. | ||||
| * Updated the documentation. | ||||
|  | ||||
|  | ||||
| July 19, 2004: Overview of Changes from 2.6.1 to 2.7.4 | ||||
| ====================================================== | ||||
| * Plenty of code cleanups. Uninlined a lot of functions. ~5-10KB object size | ||||
|   reduction. | ||||
| * Glibify a bit more. | ||||
| * API changes: | ||||
|  - glibtop_fsusage provides total read and writes since boot_time. | ||||
|  - glibtop_netload provides hardware address. IPv6 enable. | ||||
|  - Added glibtop_get_proc_argv. | ||||
|  | ||||
| Work in progress : | ||||
| * Finish glibtop_fsusage implementation for Linux. | ||||
| * Some fuctions don't conform to the documentation, e.g. proctime. | ||||
|  | ||||
| March 11, 2004: | ||||
| =============== | ||||
|  | ||||
| * Released LibGTop 2.5.99 "Gross Work", dedicated to people who do push-ups | ||||
|   in the loos. | ||||
|  | ||||
|   - plenty of code cleanups | ||||
|  | ||||
|   - removed the dependency on libgnome, only glib required now | ||||
|  | ||||
|   - Linux 2.6 support, NetBSD support and better FreeBSD support | ||||
|  | ||||
|   - Make the block size available for filesystem statistics | ||||
|  | ||||
| February 27, 2001: | ||||
| ================= | ||||
|  | ||||
| * Released LibGTop 1.0.12 "Gerolzhofen". | ||||
|  | ||||
|   - fix for Solaris 8 from Laszlo PETER (msg_limits, sem_limits). | ||||
|  | ||||
|   - fix for FreeBSD 4.2 from Rolf Grossmann (FreeBSD now uses | ||||
|     `_KERNEL' instead of `KERNEL'). Bug #51334. | ||||
|  | ||||
|   - for BSDI, comment out `subnet' field in netload; this should make | ||||
|     it compile, but there may be other problems. Bug #13345. | ||||
|  | ||||
|   This release is for GNOME 1.4 Beta2. | ||||
|  | ||||
| February 14, 2001: | ||||
| ================= | ||||
|  | ||||
| * Released LibGTop 1.0.11 "Jasmin": | ||||
|  | ||||
|   [The release which was supposed to be called "Gerolzhofen".] | ||||
|  | ||||
|   - merged in the Solaris code from LIBGTOP_1_1_2_PATCHES. | ||||
|  | ||||
|   - minor OpenBSD fixes. | ||||
|  | ||||
|   - again a bunch of updated translations. | ||||
|  | ||||
|   Please test the Solaris stuff and report and bugs and | ||||
|   problems as soon as possible; I'll make a new release | ||||
|   for the 2nd beta of GNOME 1.4 if necessary. | ||||
|  | ||||
| November 20, 2000: | ||||
| ================= | ||||
|  | ||||
| * Released LibGTop 1.0.10 "November Rain": | ||||
|  | ||||
|   - this release contains a bunch of updated translations. | ||||
|  | ||||
| May 25, 2000: | ||||
| ============ | ||||
|  | ||||
| * Released LibGTop 1.0.9 "Stuttgart". | ||||
|  | ||||
|   (LibGTop 1.0.8 "Frankfurt" was not publically released.) | ||||
|  | ||||
| February 15, 2000: | ||||
| ================= | ||||
|  | ||||
| * Released LibGTop 1.0.7 "Copenhagen": | ||||
|  | ||||
|   - this is a bug fix release for the GUADEC CD-ROM; | ||||
|     it contains fixes in both the Linux and *BSD sysdeps | ||||
|     directory. | ||||
|  | ||||
| October 18, 1999: | ||||
| ================ | ||||
|  | ||||
| * Released LibGTop 1.0.6 "October LibGTop": | ||||
|  | ||||
|   - compilation fixes for FreeBSD. | ||||
|   - updated reference manual. | ||||
|  | ||||
| September 29, 1999: | ||||
| ================== | ||||
|  | ||||
| * Released LibGTop 1.0.5. | ||||
|  | ||||
							
								
								
									
										20
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								README
									
									
									
									
									
								
							| @@ -1,20 +0,0 @@ | ||||
| LATEST NEWS: | ||||
| =========== | ||||
|  | ||||
| Please look also in the file 'NEWS' for latest news. | ||||
|   | ||||
| Martin | ||||
|  | ||||
|  | ||||
| ChangeLogs: | ||||
| ========== | ||||
|  | ||||
| LibGTop has many ChangeLogs files. The following files are the the | ||||
| most important : | ||||
|  | ||||
| - ChangeLog is the main ChangeLog. | ||||
| - sysdeps/<arch>/ChangeLog is the ChangeLog for arch specific changes. | ||||
| - sysdeps/common/ChangeLog is the ChangeLog for common changes (shared | ||||
|   implementation between archs). | ||||
|  | ||||
| Benoît | ||||
							
								
								
									
										525
									
								
								acinclude.m4
									
									
									
									
									
								
							
							
						
						
									
										525
									
								
								acinclude.m4
									
									
									
									
									
								
							| @@ -1,525 +0,0 @@ | ||||
| dnl This is just copied m4s from need-declaration.m4 gnome-fileutils.m4 | ||||
| dnl gnome-supprt-checks.m4 and a little from gnome-libgtop-check.m4 | ||||
| dnl and finally libgtop-sysdeps.m4 | ||||
|  | ||||
| dnl | ||||
| dnl LIBGTOP_CHECK_TYPE | ||||
| dnl | ||||
| dnl Improved version of AC_CHECK_TYPE which takes into account | ||||
| dnl that we need to #include some other header files on some | ||||
| dnl systems to get some types. | ||||
|  | ||||
| dnl AC_LIBGTOP_CHECK_TYPE(TYPE, DEFAULT) | ||||
| AC_DEFUN([AC_LIBGTOP_CHECK_TYPE], | ||||
| [AC_REQUIRE([AC_HEADER_STDC])dnl | ||||
| AC_MSG_CHECKING(for $1) | ||||
| AC_CACHE_VAL(ac_cv_type_$1, | ||||
| [AC_EGREP_CPP(dnl | ||||
| changequote(<<,>>)dnl | ||||
| <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl | ||||
| changequote([,]), [#include <sys/types.h> | ||||
| #if STDC_HEADERS | ||||
| #include <stdlib.h> | ||||
| #include <stddef.h> | ||||
| #endif | ||||
|  | ||||
| /* For Tru64 */ | ||||
| #ifdef HAVE_SYS_BITYPES_H | ||||
| #include <sys/bitypes.h> | ||||
| #endif | ||||
| ], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl | ||||
| AC_MSG_RESULT($ac_cv_type_$1) | ||||
| if test $ac_cv_type_$1 = no; then | ||||
|   AC_DEFINE($1, $2, [Define to $2 if <sys/types.h> does not define.]) | ||||
| fi | ||||
| ]) | ||||
|  | ||||
| dnl | ||||
| dnl GNOME_LIBGTOP_TYPES | ||||
| dnl | ||||
| dnl some typechecks for libgtop. | ||||
| dnl | ||||
|  | ||||
| AC_DEFUN([GNOME_LIBGTOP_TYPES], | ||||
| [ | ||||
|         AC_CHECK_HEADERS(sys/bitypes.h) | ||||
| ]) | ||||
|  | ||||
| dnl See whether we need a declaration for a function. | ||||
| dnl GCC_NEED_DECLARATION(FUNCTION [, EXTRA-HEADER-FILES]) | ||||
| AC_DEFUN([GCC_NEED_DECLARATION], | ||||
| [AC_MSG_CHECKING([whether $1 must be declared]) | ||||
| AC_CACHE_VAL(gcc_cv_decl_needed_$1, | ||||
| [AC_TRY_COMPILE([ | ||||
| #include <stdio.h> | ||||
| #ifdef HAVE_STRING_H | ||||
| #include <string.h> | ||||
| #else | ||||
| #ifdef HAVE_STRINGS_H | ||||
| #include <strings.h> | ||||
| #endif | ||||
| #endif | ||||
| #ifdef HAVE_STDLIB_H | ||||
| #include <stdlib.h> | ||||
| #endif | ||||
| #ifdef HAVE_UNISTD_H | ||||
| #include <unistd.h> | ||||
| #endif | ||||
| $2], | ||||
| [char *(*pfn) = (char *(*)) $1], | ||||
| eval "gcc_cv_decl_needed_$1=no", eval "gcc_cv_decl_needed_$1=yes")]) | ||||
| if eval "test \"`echo '$gcc_cv_decl_needed_'$1`\" = yes"; then | ||||
|   AC_MSG_RESULT(yes) | ||||
|   gcc_need_declarations="$gcc_need_declarations $1" | ||||
|   gcc_tr_decl=NEED_DECLARATION_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` | ||||
|   AC_DEFINE_UNQUOTED($gcc_tr_decl, 1, [Define if $1 () must be declared.]) | ||||
| else | ||||
|   AC_MSG_RESULT(no) | ||||
| fi | ||||
| ])dnl | ||||
|  | ||||
| dnl Check multiple functions to see whether each needs a declaration. | ||||
| dnl GCC_NEED_DECLARATIONS(FUNCTION... [, EXTRA-HEADER-FILES]) | ||||
| AC_DEFUN([GCC_NEED_DECLARATIONS], | ||||
| [for ac_func in $1 | ||||
| do | ||||
| GCC_NEED_DECLARATION($ac_func, $2) | ||||
| done | ||||
| ] | ||||
| ) | ||||
|  | ||||
| dnl | ||||
| dnl GNOME_FILEUTILS_CHECKS | ||||
| dnl | ||||
| dnl checks that are needed for the diskusage applet. | ||||
| dnl | ||||
|  | ||||
| AC_DEFUN([GNOME_FILEUTILS_CHECKS], | ||||
| [ | ||||
| AC_CHECK_HEADERS(fcntl.h sys/param.h sys/statfs.h sys/fstyp.h \ | ||||
| mnttab.h mntent.h sys/statvfs.h sys/vfs.h sys/mount.h \ | ||||
| sys/filsys.h sys/fs_types.h sys/fs/s5param.h) | ||||
|  | ||||
| AC_CHECK_FUNCS(bcopy endgrent endpwent fchdir ftime ftruncate \ | ||||
| getcwd getmntinfo gettimeofday isascii lchown \ | ||||
| listmntent memcpy mkfifo strchr strerror strrchr vprintf) | ||||
|  | ||||
| dnl Set some defaults when cross-compiling | ||||
|  | ||||
| if test x$cross_compiling = xyes ; then | ||||
|         case "$host_os" in | ||||
|         linux*) | ||||
|           fu_cv_sys_mounted_getmntent1=yes | ||||
|           fu_cv_sys_stat_statfs2_bsize=yes | ||||
|           ;; | ||||
|         sunos*) | ||||
|           fu_cv_sys_stat_statfs4=yes | ||||
|           ;; | ||||
|         freebsd*) | ||||
|           fu_cv_sys_stat_statfs2_bsize=yes | ||||
|           ;; | ||||
|         osf*) | ||||
|           fu_cv_sys_stat_statfs3_osf1=yes | ||||
|           ;; | ||||
|         esac | ||||
| fi | ||||
|  | ||||
| # Determine how to get the list of mounted filesystems. | ||||
| list_mounted_fs= | ||||
|  | ||||
| # If the getmntent function is available but not in the standard library, | ||||
| # make sure LIBS contains -lsun (on Irix4) or -lseq (on PTX). | ||||
| AC_FUNC_GETMNTENT | ||||
|  | ||||
| # This test must precede the ones for getmntent because Unicos-9 is | ||||
| # reported to have the getmntent function, but its support is incompatible | ||||
| # with other getmntent implementations. | ||||
|  | ||||
| # NOTE: Normally, I wouldn't use a check for system type as I've done for | ||||
| # `CRAY' below since that goes against the whole autoconf philosophy.  But | ||||
| # I think there is too great a chance that some non-Cray system has a | ||||
| # function named listmntent to risk the false positive. | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # Cray UNICOS 9 | ||||
| AC_MSG_CHECKING([for listmntent of Cray/Unicos-9]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_cray_listmntent, | ||||
| [fu_cv_sys_mounted_cray_listmntent=no | ||||
| AC_EGREP_CPP(yes, | ||||
| [#ifdef _CRAY | ||||
| yes | ||||
| #endif | ||||
| ], [test $ac_cv_func_listmntent = yes \ | ||||
| && fu_cv_sys_mounted_cray_listmntent=yes] | ||||
| ) | ||||
| ] | ||||
| ) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_cray_listmntent) | ||||
| if test $fu_cv_sys_mounted_cray_listmntent = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_LISTMNTENT, 1, | ||||
|           [Define if there is a function named listmntent that can be used to list all mounted filesystems. [UNICOS]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $ac_cv_func_getmntent = yes; then | ||||
|  | ||||
| # This system has the getmntent function. | ||||
| # Determine whether it's the one-argument variant or the two-argument one. | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # 4.3BSD, SunOS, HP-UX, Dynix, Irix | ||||
| AC_MSG_CHECKING([for one-argument getmntent function]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_getmntent1, | ||||
| [test $ac_cv_header_mntent_h = yes \ | ||||
| && fu_cv_sys_mounted_getmntent1=yes \ | ||||
| || fu_cv_sys_mounted_getmntent1=no]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_getmntent1) | ||||
| if test $fu_cv_sys_mounted_getmntent1 = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_GETMNTENT1, 1, | ||||
|           [Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes a single argument. [4.3BSD, SunOS, HP-UX, Dynix, Irix]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # SVR4 | ||||
| AC_MSG_CHECKING([for two-argument getmntent function]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_getmntent2, | ||||
| [AC_EGREP_HEADER(getmntent, sys/mnttab.h, | ||||
| fu_cv_sys_mounted_getmntent2=yes, | ||||
| fu_cv_sys_mounted_getmntent2=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_getmntent2) | ||||
| if test $fu_cv_sys_mounted_getmntent2 = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_GETMNTENT2, 1, | ||||
|           [Define if there is a function named getmntent for reading the list of mounted filesystems, and that function takes two arguments.  [SVR4]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) | ||||
| fi | ||||
|  | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # DEC Alpha running OSF/1. | ||||
| AC_MSG_CHECKING([for getfsstat function]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_getsstat, | ||||
| [AC_TRY_LINK([ | ||||
| #include <sys/types.h> | ||||
| #include <sys/mount.h> | ||||
| #include <sys/fs_types.h>], | ||||
| [struct statfs *stats; | ||||
| int numsys = getfsstat ((struct statfs *)0, 0L, MNT_WAIT); ], | ||||
| fu_cv_sys_mounted_getsstat=yes, | ||||
| fu_cv_sys_mounted_getsstat=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_getsstat) | ||||
| if test $fu_cv_sys_mounted_getsstat = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_GETFSSTAT, 1, | ||||
|           [Define if there is a function named getfsstat for reading the list of mounted filesystems.  [DEC Alpha running OSF/1]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # AIX. | ||||
| AC_MSG_CHECKING([for mntctl function and struct vmount]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_vmount, | ||||
| [AC_TRY_CPP([#include <fshelp.h>], | ||||
| fu_cv_sys_mounted_vmount=yes, | ||||
| fu_cv_sys_mounted_vmount=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_vmount) | ||||
| if test $fu_cv_sys_mounted_vmount = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_VMOUNT, 1, | ||||
|           [Define if there is a function named mntctl that can be used to read the list of mounted filesystems, and there is a system header file that declares `struct vmount.'  [AIX]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # SVR3 | ||||
| AC_MSG_CHECKING([for FIXME existence of three headers]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_fread_fstyp, | ||||
| [AC_TRY_CPP([ | ||||
| #include <sys/statfs.h> | ||||
| #include <sys/fstyp.h> | ||||
| #include <mnttab.h>], | ||||
| fu_cv_sys_mounted_fread_fstyp=yes, | ||||
| fu_cv_sys_mounted_fread_fstyp=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_fread_fstyp) | ||||
| if test $fu_cv_sys_mounted_fread_fstyp = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_FREAD_FSTYP, 1, | ||||
|           [Define if (like SVR2) there is no specific function for reading the list of mounted filesystems, and your system has these header files: <sys/fstyp.h> and <sys/statfs.h>.  [SVR3]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # 4.4BSD and DEC OSF/1. | ||||
| AC_MSG_CHECKING([for getmntinfo function]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_getmntinfo, | ||||
| [ | ||||
| ok= | ||||
| if test $ac_cv_func_getmntinfo = yes; then | ||||
| AC_EGREP_HEADER(f_type;, sys/mount.h, | ||||
| ok=yes) | ||||
| fi | ||||
| test -n "$ok" \ | ||||
| && fu_cv_sys_mounted_getmntinfo=yes \ | ||||
| || fu_cv_sys_mounted_getmntinfo=no | ||||
| ]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_getmntinfo) | ||||
| if test $fu_cv_sys_mounted_getmntinfo = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_GETMNTINFO, 1, | ||||
|           [Define if there is a function named getmntinfo for reading the list of mounted filesystems.  [4.4BSD]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| # FIXME: add a test for netbsd-1.1 here | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # Ultrix | ||||
| AC_MSG_CHECKING([for getmnt function]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_getmnt, | ||||
| [AC_TRY_CPP([ | ||||
| #include <sys/fs_types.h> | ||||
| #include <sys/mount.h>], | ||||
| fu_cv_sys_mounted_getmnt=yes, | ||||
| fu_cv_sys_mounted_getmnt=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_getmnt) | ||||
| if test $fu_cv_sys_mounted_getmnt = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_GETMNT, 1, | ||||
|           [Define if there is a function named getmnt for reading the list of mounted filesystems.  [Ultrix]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| # SVR2 | ||||
| AC_MSG_CHECKING([whether it is possible to resort to fread on /etc/mnttab]) | ||||
| AC_CACHE_VAL(fu_cv_sys_mounted_fread, | ||||
| [AC_TRY_CPP([#include <mnttab.h>], | ||||
| fu_cv_sys_mounted_fread=yes, | ||||
| fu_cv_sys_mounted_fread=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_mounted_fread) | ||||
| if test $fu_cv_sys_mounted_fread = yes; then | ||||
| list_mounted_fs=found | ||||
| AC_DEFINE(MOUNTED_FREAD, 1, | ||||
|           [Define if there is no specific function for reading the list of mounted filesystems.  fread will be used to read /etc/mnttab.  [SVR2]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test -z "$list_mounted_fs"; then | ||||
| AC_MSG_ERROR([could not determine how to read list of mounted filesystems]) | ||||
| # FIXME -- no need to abort building the whole package | ||||
| # Cannot build mountlist.c or anything that needs its functions | ||||
| fi | ||||
|  | ||||
| AC_CHECKING(how to get filesystem space usage) | ||||
| space=no | ||||
|  | ||||
| # Perform only the link test since it seems there are no variants of the | ||||
| # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs) | ||||
| # because that got a false positive on SCO OSR5.  Adding the declaration | ||||
| # of a `struct statvfs' causes this test to fail (as it should) on such | ||||
| # systems.  That system is reported to work fine with STAT_STATFS4 which | ||||
| # is what it gets when this test fails. | ||||
| if test $space = no; then | ||||
| # SVR4 | ||||
| AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, | ||||
| [AC_TRY_LINK([#include <sys/types.h> | ||||
| #include <sys/statvfs.h>], | ||||
| [struct statvfs fsd; statvfs (0, &fsd);], | ||||
| fu_cv_sys_stat_statvfs=yes, | ||||
| fu_cv_sys_stat_statvfs=no)]) | ||||
| if test $fu_cv_sys_stat_statvfs = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATVFS, 1, | ||||
|           [Define if there is a function named statvfs.  [SVR4]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # DEC Alpha running OSF/1 | ||||
| AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) | ||||
| AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, | ||||
| [AC_TRY_RUN([ | ||||
| #include <sys/param.h> | ||||
| #include <sys/types.h> | ||||
| #include <sys/mount.h> | ||||
| int main () | ||||
| { | ||||
| struct statfs fsd; | ||||
| fsd.f_fsize = 0; | ||||
| return (statfs (".", &fsd, sizeof (struct statfs))); | ||||
| }], | ||||
| fu_cv_sys_stat_statfs3_osf1=yes, | ||||
| fu_cv_sys_stat_statfs3_osf1=no, | ||||
| fu_cv_sys_stat_statfs3_osf1=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) | ||||
| if test $fu_cv_sys_stat_statfs3_osf1 = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATFS3_OSF1, 1, | ||||
|           [Define if  statfs takes 3 args.  [DEC Alpha running OSF/1]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # AIX | ||||
| AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl | ||||
| member (AIX, 4.3BSD)]) | ||||
| AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, | ||||
| [AC_TRY_RUN([ | ||||
| #ifdef HAVE_SYS_PARAM_H | ||||
| #include <sys/param.h> | ||||
| #endif | ||||
| #ifdef HAVE_SYS_MOUNT_H | ||||
| #include <sys/mount.h> | ||||
| #endif | ||||
| #ifdef HAVE_SYS_VFS_H | ||||
| #include <sys/vfs.h> | ||||
| #endif | ||||
| int main () | ||||
| { | ||||
| struct statfs fsd; | ||||
| fsd.f_bsize = 0; | ||||
| return (statfs (".", &fsd)); | ||||
| }], | ||||
| fu_cv_sys_stat_statfs2_bsize=yes, | ||||
| fu_cv_sys_stat_statfs2_bsize=no, | ||||
| fu_cv_sys_stat_statfs2_bsize=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) | ||||
| if test $fu_cv_sys_stat_statfs2_bsize = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATFS2_BSIZE, 1, | ||||
|           [Define if statfs takes 2 args and struct statfs has a field named f_bsize. [4.3BSD, SunOS 4, HP-UX, AIX PS/2]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # SVR3 | ||||
| AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) | ||||
| AC_CACHE_VAL(fu_cv_sys_stat_statfs4, | ||||
| [AC_TRY_RUN([#include <sys/types.h> | ||||
| #include <sys/statfs.h> | ||||
| int main () | ||||
| { | ||||
| struct statfs fsd; | ||||
| return (statfs (".", &fsd, sizeof fsd, 0)); | ||||
| }], | ||||
| fu_cv_sys_stat_statfs4=yes, | ||||
| fu_cv_sys_stat_statfs4=no, | ||||
| fu_cv_sys_stat_statfs4=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_stat_statfs4) | ||||
| if test $fu_cv_sys_stat_statfs4 = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATFS4, 1, | ||||
|           [Define if statfs takes 4 args.  [SVR3, Dynix, Irix, Dolphin]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # 4.4BSD and NetBSD | ||||
| AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl | ||||
| member (4.4BSD and NetBSD)]) | ||||
| AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, | ||||
| [AC_TRY_RUN([#include <sys/types.h> | ||||
| #ifdef HAVE_SYS_PARAM_H | ||||
| #include <sys/param.h> | ||||
| #endif | ||||
| #ifdef HAVE_SYS_MOUNT_H | ||||
| #include <sys/mount.h> | ||||
| #endif | ||||
| int main () | ||||
| { | ||||
| struct statfs fsd; | ||||
| fsd.f_fsize = 0; | ||||
| return (statfs (".", &fsd)); | ||||
| }], | ||||
| fu_cv_sys_stat_statfs2_fsize=yes, | ||||
| fu_cv_sys_stat_statfs2_fsize=no, | ||||
| fu_cv_sys_stat_statfs2_fsize=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) | ||||
| if test $fu_cv_sys_stat_statfs2_fsize = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATFS2_FSIZE, 1, | ||||
|           [Define if statfs takes 2 args and struct statfs has a field named f_fsize. [4.4BSD, NetBSD]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # Ultrix | ||||
| AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) | ||||
| AC_CACHE_VAL(fu_cv_sys_stat_fs_data, | ||||
| [AC_TRY_RUN([#include <sys/types.h> | ||||
| #ifdef HAVE_SYS_PARAM_H | ||||
| #include <sys/param.h> | ||||
| #endif | ||||
| #ifdef HAVE_SYS_MOUNT_H | ||||
| #include <sys/mount.h> | ||||
| #endif | ||||
| #ifdef HAVE_SYS_FS_TYPES_H | ||||
| #include <sys/fs_types.h> | ||||
| #endif | ||||
| int main () | ||||
| { | ||||
| struct fs_data fsd; | ||||
| /* Ultrix's statfs returns 1 for success, | ||||
| 0 for not mounted, -1 for failure.  */ | ||||
| return (statfs (".", &fsd) != 1); | ||||
| }], | ||||
| fu_cv_sys_stat_fs_data=yes, | ||||
| fu_cv_sys_stat_fs_data=no, | ||||
| fu_cv_sys_stat_fs_data=no)]) | ||||
| AC_MSG_RESULT($fu_cv_sys_stat_fs_data) | ||||
| if test $fu_cv_sys_stat_fs_data = yes; then | ||||
| space=yes | ||||
| AC_DEFINE(STAT_STATFS2_FS_DATA, 1, | ||||
|           [Define if statfs takes 2 args and the second argument has type struct fs_data.  [Ultrix]]) | ||||
| fi | ||||
| fi | ||||
|  | ||||
| if test $space = no; then | ||||
| # SVR2 | ||||
| AC_TRY_CPP([#include <sys/filsys.h>], | ||||
| AC_DEFINE(STAT_READ_FILSYS, 1, | ||||
|           [Define if there is no specific function for reading filesystems usage information and you have the <sys/filsys.h> header file.  [SVR2]]) | ||||
| space=yes) | ||||
| fi | ||||
|  | ||||
| if test -n "$list_mounted_fs" && test $space != no; then | ||||
| DF_PROG="df" | ||||
| # AC_LIBOBJ(fsusage) | ||||
| # AC_LIBOBJ(mountlist) | ||||
| fi | ||||
|  | ||||
| # Check for SunOS statfs brokenness wrt partitions 2GB and larger. | ||||
| # If <sys/vfs.h> exists and struct statfs has a member named f_spare, | ||||
| # enable the work-around code in fsusage.c. | ||||
| AC_MSG_CHECKING([for statfs that truncates block counts]) | ||||
| AC_CACHE_VAL(fu_cv_sys_truncating_statfs, | ||||
| [AC_TRY_COMPILE([ | ||||
| #if !defined(sun) && !defined(__sun) | ||||
| choke -- this is a workaround for a Sun-specific problem | ||||
| #endif | ||||
| #include <sys/types.h> | ||||
| #include <sys/vfs.h>], | ||||
| [struct statfs t; long c = *(t.f_spare);], | ||||
| fu_cv_sys_truncating_statfs=yes, | ||||
| fu_cv_sys_truncating_statfs=no, | ||||
| )]) | ||||
| if test $fu_cv_sys_truncating_statfs = yes; then | ||||
| AC_DEFINE(STATFS_TRUNCATES_BLOCK_COUNTS, 1, | ||||
|           [Define if the block counts reported by statfs may be truncated to 2GB and the correct values may be stored in the f_spare array. [SunOS 4.1.2, 4.1.3, and 4.1.3_U1 are reported to have this problem. SunOS 4.1.1 seems not to be affected.]]) | ||||
| fi | ||||
| AC_MSG_RESULT($fu_cv_sys_truncating_statfs) | ||||
|  | ||||
| AC_CHECKING(for AFS) | ||||
| test -d /afs && AC_DEFINE(AFS, 1, [Define if you have the Andrew File System.]) | ||||
| ]) | ||||
|  | ||||
|  | ||||
| m4_include([libgtop-sysdeps.m4]) | ||||
							
								
								
									
										22
									
								
								autogen.sh
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								autogen.sh
									
									
									
									
									
								
							| @@ -1,22 +0,0 @@ | ||||
| #!/bin/sh | ||||
| # Run this to generate all the initial makefiles, etc. | ||||
|  | ||||
| srcdir=`dirname $0` | ||||
| test -z "$srcdir" && srcdir=. | ||||
|  | ||||
| PKG_NAME="Gnome Top Library" | ||||
|  | ||||
| (test -f $srcdir/configure.ac \ | ||||
|   && test -f $srcdir/copyright.txt \ | ||||
|   && test -d $srcdir/sysdeps) || { | ||||
|     echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" | ||||
|     echo " top-level gnome directory" | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| which gnome-autogen.sh || { | ||||
|     echo "You need to install gnome-common from the GNOME CVS" | ||||
|     exit 1 | ||||
| } | ||||
| REQUIRED_AUTOMAKE_VERSION=1.9 | ||||
| . gnome-autogen.sh | ||||
							
								
								
									
										388
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										388
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -1,388 +0,0 @@ | ||||
| dnl | ||||
| dnl Configure script for the Gnome library | ||||
| dnl | ||||
|  | ||||
| m4_define([libgtop_major_version], [2]) | ||||
| m4_define([libgtop_minor_version], [32]) | ||||
| m4_define([libgtop_micro_version], [0]) | ||||
| 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], [10]) | ||||
|  | ||||
| dnl  increment any time the source changes; set to | ||||
| dnl  0 if you increment CURRENT | ||||
| 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 | ||||
| dnl  precedence over adding, so set to 0 if both happened. | ||||
| m4_define([libgtop_age], [0]) | ||||
|  | ||||
| # Increase each time you change the client/server protocol. | ||||
| 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_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_SUBST(ACLOCAL_AMFLAGS, [\${ACLOCAL_FLAGS}]) | ||||
|  | ||||
| AC_SUBST(LIBGTOP_MAJOR_VERSION, [libgtop_major_version]) | ||||
| AC_SUBST(LIBGTOP_MINOR_VERSION, [libgtop_minor_version]) | ||||
| AC_SUBST(LIBGTOP_MICRO_VERSION, [libgtop_micro_version]) | ||||
| AC_SUBST(LIBGTOP_SERVER_VERSION, [libgtop_server_version]) | ||||
| AC_SUBST(LIBGTOP_VERSION, [libgtop_version]) | ||||
| AC_SUBST(LIBGTOP_VERSION_CODE, [libgtop_version_code]) | ||||
|  | ||||
| # libtool versioning | ||||
| AC_SUBST(LT_VERSION_INFO, | ||||
|          ["-version-info libgtop_current:libgtop_revision:libgtop_age"]) | ||||
|  | ||||
| ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I ." | ||||
|  | ||||
| AC_ISC_POSIX | ||||
| AC_PROG_CC | ||||
| AC_STDC_HEADERS | ||||
| dnl AC_ARG_PROGRAM | ||||
|  | ||||
| dnl We need this at some places. | ||||
| libgtop_top_builddir=`pwd` | ||||
| AC_SUBST(libgtop_top_builddir) | ||||
|  | ||||
| dnl We don't use `AC_PROG_AWK' since it checks for mawk first which | ||||
| dnl does not work for libgtop. | ||||
| AC_CHECK_PROGS(AWK, gawk awk, ) | ||||
| test -z "$AWK" && AC_MSG_ERROR([Sorry, you need a working awk interpreter.]) | ||||
|  | ||||
| dnl Most people should have a working perl interpreter on their system | ||||
| AC_CHECK_PROGS(PERL, perl5 perl) | ||||
| test -z "$PERL" && AC_MSG_ERROR([You need to have a working perl interpreter.]) | ||||
|  | ||||
| AC_CHECK_TOOL(CC,gcc) | ||||
| AC_CHECK_TOOL(RANLIB,ranlib) | ||||
| AC_CHECK_TOOL(AS,as) | ||||
| AC_CHECK_TOOL(AR,ar) | ||||
|  | ||||
| export CC CXX RANLIB LD AS AR | ||||
|  | ||||
| AC_PROG_INSTALL | ||||
| AC_PROG_LN_S | ||||
| AC_PROG_MAKE_SET | ||||
|  | ||||
| export cross_compiling | ||||
|  | ||||
| AM_PROG_LIBTOOL | ||||
|  | ||||
| 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 | ||||
|  | ||||
| PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GOBJECT_REQUIRED) | ||||
| AC_SUBST(GLIB_CFLAGS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
|  | ||||
| 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]) | ||||
| fi | ||||
|  | ||||
| dnl Checks for typedefs, structures, and compiler characteristics. | ||||
| AC_C_CONST | ||||
| AC_C_INLINE | ||||
| AC_TYPE_OFF_T | ||||
| AC_TYPE_PID_T | ||||
| AC_TYPE_SIZE_T | ||||
| AC_STRUCT_ST_RDEV | ||||
| AC_HEADER_TIME | ||||
| AC_STRUCT_TM | ||||
| AC_TYPE_UID_T | ||||
|  | ||||
| dnl For SunOS | ||||
| AC_CHECK_TYPE(ssize_t, int) | ||||
| AC_CHECK_HEADERS(memory.h) | ||||
| AC_CHECK_HEADERS(string.h strings.h, break) | ||||
| AC_REPLACE_FUNCS(strerror) | ||||
|  | ||||
| dnl dlopen() and dlsym() | ||||
| DL_LIB= | ||||
| AC_CHECK_FUNCS(dlopen,,[ | ||||
|   AC_CHECK_LIB(dl, dlopen, DL_LIB="-ldl", [ | ||||
|     AC_CHECK_LIB(dld, shl_load, DL_LIB="-ldld", [ | ||||
|       AC_CHECK_FUNCS(dlopen, DL_LIB="", DL_LIB="") | ||||
|     ]) | ||||
|   ]) | ||||
| ]) | ||||
| oLIBS="$LIBS" | ||||
| LIBS="$LIBS $DL_LIB" | ||||
| AC_CHECK_FUNCS(dlerror,,) | ||||
| LIBS="$oLIBS" | ||||
| AC_SUBST(DL_LIB) | ||||
|  | ||||
| dnl Linux | ||||
| AC_CHECK_HEADER(linux/isdn.h,[HAVE_ISDN_H=yes],[HAVE_ISDN_H=no]) | ||||
| if test x$HAVE_ISDN_H = xyes ; then | ||||
| 	AC_DEFINE(HAVE_ISDN_H, 1, [defined if you have linux/isdn.h]) | ||||
| fi | ||||
|  | ||||
| dnl AIX | ||||
| AC_CHECK_LIB(perfstat, vmgetinfo, | ||||
|     AC_DEFINE(HAVE_VMGETINFO, 1, | ||||
|         [Define to 1 if you have the 'vmgetinfo' function in libperfstat])) | ||||
|  | ||||
| dnl Solaris | ||||
| case "$host_os" in | ||||
|      solaris*) | ||||
|      AC_CHECK_LIB(kstat, kstat_open) | ||||
|      AC_CHECK_FUNCS(getloadavg swapctl) | ||||
|      AC_CHECK_HEADERS(procfs.h sys/procfs.h, break) | ||||
|  | ||||
|  | ||||
|     dnl Some versions of Solaris require -lelf for -lkvm | ||||
|     case $host_os in | ||||
|     solaris[[8-9]] | solaris2.[[0-9]].*) | ||||
|     AC_CHECK_LIB(kvm, kvm_open,[ | ||||
|       LIBS="-lkvm $LIBS" | ||||
|     ],[AC_MSG_CHECKING(for kvm_open in -lkvm with -lelf) | ||||
|        AC_CACHE_VAL(ac_cv_lib_kvm_with_elf, | ||||
|        [ac_save_LIBS="$LIBS" | ||||
|         LIBS="-lkvm -lelf $LIBS" | ||||
|         AC_TRY_LINK([char kvm_open();], [kvm_open()], | ||||
|                     ac_cv_lib_kvm_with_elf=yes, ac_cv_lib_kvm_with_elf=no) | ||||
|         LIBS="$ac_save_LIBS" | ||||
|        ]) | ||||
|        if test "$ac_cv_lib_kvm_with_elf" = "yes"; then | ||||
|          AC_MSG_RESULT(yes) | ||||
|          LIBS="-lkvm -lelf $LIBS" | ||||
|        else | ||||
|          AC_MSG_RESULT(no) | ||||
|        fi | ||||
|     ]) | ||||
|      ;; | ||||
|      esac | ||||
|      ;; | ||||
| esac | ||||
|  | ||||
| dnl For DEC OSF1 | ||||
| AC_CHECK_LIB(mach, vm_statistics) | ||||
|  | ||||
| dnl For some broken libc5 systems (Debian 1.3) | ||||
| saved_CFLAGS=$CFLAGS | ||||
| CFLAGS="$CFLAGS -D_GNU_SOURCE" | ||||
| GCC_NEED_DECLARATION(program_invocation_name, [                            | ||||
| #include <errno.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| ]) | ||||
|  | ||||
| CFLAGS=$saved_CFLAGS | ||||
|  | ||||
| AC_CHECK_FUNC(socket, | ||||
|  [AC_CHECK_HEADER(netinet/in.h, | ||||
|    [AC_CHECK_HEADER(arpa/inet.h, [ | ||||
|   AC_DEFINE(HAVE_SOCKETS, 1, [Define if BSD sockets are supported]) | ||||
|       AC_MSG_CHECKING("for sun_len member in struct sockaddr_un") | ||||
|       AC_TRY_LINK([ | ||||
| #include <sys/types.h> | ||||
| #include <sys/socket.h> | ||||
| #include <sys/un.h> | ||||
|       ], | ||||
|       [static struct sockaddr_un x; x.sun_len = 1;], | ||||
|       [AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOCKADDR_SUN_LEN, 1, [Define if struct sockaddr_un has a sun_len member])], | ||||
|       [AC_MSG_RESULT(no)])])])]) | ||||
|  | ||||
| dnl Checks for library functions. | ||||
| AC_FUNC_ALLOCA | ||||
| AC_FUNC_MMAP | ||||
| AC_TYPE_SIGNAL | ||||
| AC_FUNC_STRFTIME | ||||
| AC_CHECK_FUNCS(getcwd gettimeofday getwd putenv strdup strtoul uname) | ||||
|  | ||||
| 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 | ||||
| dnl Please don't move this before AC_PATH_XTRA | ||||
| AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) | ||||
| AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)]) | ||||
| AC_CHECK_FUNC(inet_aton,,[AC_CHECK_LIB(resolv,inet_aton)]) | ||||
|  | ||||
| dnl The construct foo=`echo $w1 $w2 $w3` fails on some systems if $w1 = -e or -n | ||||
| dnl So we use the following instead. | ||||
| dnl XE_SPACE(var, words) | ||||
| define([XE_SPACE],[ | ||||
| T="" | ||||
| for W in $2; do if test -z "$T"; then T="$W"; else T="$T $W"; fi; done | ||||
| $1="$T" | ||||
| ])dnl | ||||
|  | ||||
| dnl Autodetect Xauth | ||||
| dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs | ||||
| saved_CPPFLAGS="$CPPFLAGS" | ||||
| CPPFLAGS="$CPPFLAGS $X_CFLAGS" | ||||
| test -z "$with_xauth" && { AC_CHECK_HEADER(X11/Xauth.h,          ,with_xauth=no) } | ||||
| test -z "$with_xauth" && { AC_CHECK_LIB(Xau, XauGetAuthByAddr,[:],with_xauth=no, $X_LIBS) } | ||||
| test -z "$with_xauth" && with_xauth=yes | ||||
| if test "$with_xauth" = "yes"; then | ||||
|   AC_DEFINE(HAVE_XAUTH, 1, [Define if Xauth is supported]) | ||||
|   XE_SPACE(libs_xauth, $X_LIBS -lXau) | ||||
| fi | ||||
| CPPFLAGS="$saved_CPPFLAGS" | ||||
| AC_SUBST(libs_xauth) | ||||
|  | ||||
| dnl For diskusage stuff | ||||
| GNOME_FILEUTILS_CHECKS | ||||
|  | ||||
| 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_ARG_ENABLE(fatal-warnings, | ||||
|               AS_HELP_STRING([--enable-fatal-warnings], | ||||
|                              [Make all warnings fatal @<:@debug=no@:>@]), | ||||
|               AC_DEFINE(LIBGTOP_FATAL_WARNINGS, 1, | ||||
|                         [Define to enable fatal warnings])) | ||||
|  | ||||
| dnl These definitions are expanded in make. | ||||
| LIBGTOP_LIBS='-L$(libdir)' | ||||
| LIBGTOP_INCS='-I$(includedir)/libgtop-2.0' | ||||
|  | ||||
| if test x$libgtop_have_sysinfo = xyes ; then | ||||
|   LIBGTOP_INCS="$LIBGTOP_INCS -DHAVE_LIBGTOP_SYSINFO" | ||||
| fi | ||||
|  | ||||
| LIBGTOP_INCS="$LIBGTOP_INCS $GLIB_CFLAGS" | ||||
|  | ||||
| libgtop_save_prefix="$prefix" | ||||
| libgtop_save_exec_prefix="$exec_prefix" | ||||
| test "x$prefix" = xNONE && prefix=$ac_default_prefix | ||||
| test "x$exec_prefix" = xNONE && exec_prefix=$prefix | ||||
| LIBGTOP_BINDIR=`eval echo "${bindir}"` | ||||
| LIBGTOP_SERVER=`eval echo "${bindir}/libgtop_server2"` | ||||
| prefix="$libgtop_save_prefix" | ||||
| exec_prefix="$libgtop_save_exec_prefix" | ||||
|  | ||||
| sysdeps_dir="$libgtop_sysdeps_dir" | ||||
| AC_SUBST(sysdeps_dir) | ||||
|  | ||||
| if test -z "$LIBGTOP_EXTRA_LIBS" ; then | ||||
|   LIBGTOP_EXTRA_LIBS="$libs_xauth" | ||||
| else | ||||
|   LIBGTOP_EXTRA_LIBS="$LIBGTOP_EXTRA_LIBS $libs_xauth" | ||||
| fi | ||||
|  | ||||
| LIBGTOP_EXTRA_LIBS="$GLIB_LIBS $LIBGTOP_EXTRA_LIBS" | ||||
|  | ||||
| LIBGTOP_LIBS="$LIBGTOP_LIBS" | ||||
|  | ||||
| if test "$GCC" = "yes" ; then | ||||
|         CFLAGS="\ | ||||
| 	-Winline \ | ||||
| 	-Wall \ | ||||
| 	-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" | ||||
|  | ||||
| # Add various defines to the config.h file ... | ||||
| AH_VERBATIM([_GNU_SOURCE], | ||||
| [/* Enable GNU extensions on systems that have them.  */ | ||||
| #ifndef _GNU_SOURCE | ||||
| #  define _GNU_SOURCE | ||||
| #endif]) | ||||
| AC_DEFINE([_IN_LIBGTOP], 1, | ||||
|           [Note that we are building libgtop rather than using it]) | ||||
| AC_DEFINE([LIBGTOP_VERSION], ["libgtop_version"], | ||||
|           [The libgtop version number]) | ||||
| AC_DEFINE([LIBGTOP_SERVER_VERSION], ["libgtop_server_version"], | ||||
|           [The libgtop server version]) | ||||
| AC_DEFINE([LIBGTOP_VERSION_CODE], [libgtop_version_code], | ||||
|           [The libgtop version number as an integer]) | ||||
| AC_DEFINE_UNQUOTED([LIBGTOP_SERVER], ["$LIBGTOP_SERVER"], | ||||
|                    [The path to the libgtop server]) | ||||
|  | ||||
| AC_SUBST(AM_CPPFLAGS) | ||||
|  | ||||
| AC_SUBST(LIBGTOP_EXTRA_LIBS) | ||||
| AC_SUBST(GLIB_LIBS) | ||||
| AC_SUBST(LIBGTOP_LIBS) | ||||
| AC_SUBST(LIBGTOP_INCS) | ||||
| AC_SUBST(LIBGTOP_BINDIR) | ||||
| AC_SUBST(LIBGTOP_SERVER) | ||||
|  | ||||
| if test x$libgtop_need_server = xyes ; then | ||||
|    sysdeps_suid_lib="\$(top_builddir)/sysdeps/\$(sysdeps_dir)/libgtop_sysdeps_suid-2.0.la" | ||||
|    server_programs='libgtop_server2' | ||||
| else | ||||
|    sysdeps_suid_lib= | ||||
|    server_programs= | ||||
| fi | ||||
| AC_SUBST(sysdeps_suid_lib) | ||||
| AC_SUBST(server_programs) | ||||
|  | ||||
| GTK_DOC_CHECK(1.4) | ||||
|  | ||||
| AC_CONFIG_FILES([ | ||||
| Makefile | ||||
| libgtop.spec | ||||
| po/Makefile.in | ||||
| misc/Makefile | ||||
| include/Makefile | ||||
| include/glibtop/Makefile | ||||
| sysdeps/Makefile | ||||
| sysdeps/common/Makefile | ||||
| sysdeps/stub/Makefile | ||||
| sysdeps/stub_suid/Makefile | ||||
| sysdeps/sun4/Makefile | ||||
| sysdeps/osf1/Makefile | ||||
| sysdeps/linux/Makefile | ||||
| 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 | ||||
| lib/Makefile | ||||
| examples/Makefile | ||||
| doc/Makefile | ||||
| doc/reference/Makefile | ||||
| doc/reference/version.xml | ||||
| libgtop-2.0.pc | ||||
| libgtopconfig.h | ||||
| ]) | ||||
|  | ||||
| AC_OUTPUT | ||||
| @@ -1,22 +0,0 @@ | ||||
| /* 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. | ||||
|    Contributed by Benoît Dejean <TazForEver@dlfp.org>, 2004. | ||||
|     | ||||
|    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. | ||||
| */ | ||||
|  | ||||
							
								
								
									
										9
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								debian/README.Debian
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +0,0 @@ | ||||
| LibGTop CVS snapshots for Debian | ||||
| -------------------------------- | ||||
|  | ||||
| This is a debian package made from a stable release of LibGTop, but it | ||||
| should be considered "unofficial" since I'm not a Debian Maintainer. | ||||
|  | ||||
|  | ||||
| Martin Baulig <martin@home-of-linux.org>, Wed, 16 Feb 2000 16:40:50 +0100 | ||||
|  | ||||
							
								
								
									
										121
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										121
									
								
								debian/changelog
									
									
									
									
										vendored
									
									
								
							| @@ -1,121 +0,0 @@ | ||||
| libgtop (1.0.7-1) unstable; urgency=low | ||||
|   * New upstream source (1.0.7 "Copenhagen" release) | ||||
|   * Non-maintainer upload; since I'm not a Debian maintainer, this is some | ||||
|     kind of "unofficial" debian package for LibGTop 1.0.7 - but I think it | ||||
|     can be considered stable and working. | ||||
|  | ||||
|  -- Martin Baulig <martin@home-of-linux.org>  Wed, 16 Feb 2000 16:40:50 +0100 | ||||
|  | ||||
| libgtop (1.0.6-1) unstable; urgency=low | ||||
|   * New upstream source | ||||
|  | ||||
|  -- Ian Lynagh (wibble) <igloo@debian.org>  Wed, 20 Oct 1999 16:16:27 +0100 | ||||
|  | ||||
| libgtop (1.0.4.5pre1-1) frozen unstable; urgency=low | ||||
|   * New upstream source (1.0.5 pre release) | ||||
|   * Maintainer e-mail address changed to igloo@debian.org | ||||
|  | ||||
|  -- Ian Lynagh (wibble) <igloo@debian.org>  Thu, 30 Sep 1999 22:37:33 +0100 | ||||
|  | ||||
| libgtop (1.0.4-1) frozen unstable; urgency=low | ||||
|   * New upstream source | ||||
|   * Removed nasty sed stuff from the rules in favour of make install prefix=... | ||||
|   * Added .la files to libgtop-dev | ||||
|   * Added info to the copyright file | ||||
|   * Wrote simple man page for libgtop-config. | ||||
|   * Recompiled with later debhelper so docs go to /usr/share/doc as per FHS | ||||
|   * changed infodir to /usr/share/info | ||||
|  | ||||
|  -- Ian Lynagh (wibble) <igloo@debian.org>  Mon, 20 Sep 1999 00:06:16 +0100 | ||||
|  | ||||
| libgtop (1.0.1-2) frozen unstable; urgency=low | ||||
|  | ||||
|   * Didn't actually use wildcards in libgtop-dev.files because tar complained | ||||
|   * Set section names properly | ||||
|  | ||||
|  -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  7 Mar 1999 00:53:50 +0000 | ||||
|  | ||||
| libgtop (1.0.1-1) frozen unstable; urgency=low | ||||
|  | ||||
|   * SONAME changed back to 1. Fun fun fun. | ||||
|   * Added RELNOTES-1.0 to debian/libgtop1.docs and debian/rules | ||||
|   * Changed libgtop1.README.Debian to at least make sense | ||||
|   * Used wildcards in libgtop-dev.files | ||||
|  | ||||
|  -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  7 Mar 1999 00:53:50 +0000 | ||||
|  | ||||
| libgtop (1.0.1-0.1) unstable; urgency=low | ||||
|  | ||||
|   * Non-maintainer upload for GNOME 1.0 | ||||
|  | ||||
|  -- Jules Bean <jules@debian.org>  Thu,  4 Mar 1999 22:34:12 +0000 | ||||
|  | ||||
| libgtop (0.99.2-0.2) unstable; urgency=low | ||||
|  | ||||
|   * Oops, forgot some files. | ||||
|  | ||||
|  -- Jim Pick <jim@jimpick.com>  Sun, 24 Jan 1999 02:12:24 -0800 | ||||
|  | ||||
| libgtop (0.99.2-0.1) unstable; urgency=low | ||||
|  | ||||
|   * Non-maintainer upload. | ||||
|   * New upstream source. | ||||
|   * SONAME is now 0 again.  Hmmm. | ||||
|  | ||||
|  -- Jim Pick <jim@jimpick.com>  Sat, 23 Jan 1999 20:21:38 -0800 | ||||
|  | ||||
| libgtop (0.26.2-4) frozen unstable; urgency=low | ||||
|  | ||||
|   * Upstream changelog installed as changelog | ||||
|   * debian/shlibs.local removed in favour of the LD_LIBRARY_PATH line | ||||
|  | ||||
|  -- Ian Lynagh <ian@lynagh.demon.co.uk>  Thu, 26 Nov 1998 17:20:24 +0000 | ||||
|  | ||||
| libgtop (0.26.2-3.1) frozen unstable; urgency=low | ||||
|  | ||||
|   * Non-maintainer upload. | ||||
|   * Upload to frozen, corrects Bug #29110, Bug #29111, which were | ||||
|     already fixed. | ||||
|   * Noticed that guile option is no longer being used, so I removed | ||||
|     the dependency. | ||||
|   * Added changelog (to fix lintian error). | ||||
|   * Changed control file to use macro substitutions.  This is a much | ||||
|     less error-prone way of building dependencies than doing them by | ||||
|     hand. | ||||
|   * Added -V option to dh_makeshlibs to put version number on shlibs | ||||
|     file. | ||||
|   * Added shlibs.local file with null entry for "libgtop 1" (and | ||||
|     others) so libgtop1 doesn't declare a relationship on itself. | ||||
|  | ||||
|  -- Jim Pick <jim@jimpick.com>  Wed, 25 Nov 1998 12:03:12 -0800 | ||||
|  | ||||
| libgtop (0.26.2-3) frozen unstable; urgency=low | ||||
|  | ||||
|   * libgtop0 changed to libgtop1 | ||||
|   * Added an #ifndef strstr around the prototype of strstr in | ||||
|     sysdeps/common/mountlist.c as this is a macro under glibc 2.1. | ||||
|  | ||||
|  -- Ian Lynagh <ian@lynagh.demon.co.uk>  Sun,  8 Nov 1998 12:06:09 +0000 | ||||
|  | ||||
| libgtop (0.26.2-2) frozen unstable; urgency=low | ||||
|  | ||||
|   * Fixes minor bugs in debian/rules | ||||
|  | ||||
|  -- Ian Lynagh <ian@lynagh.demon.co.uk>  Fri, 16 Oct 1998 05:30:16 +0200 | ||||
|  | ||||
| libgtop (0.26.2-1) unstable; urgency=low | ||||
|  | ||||
|   * New upstream version | ||||
|   * Non-maintainer release | ||||
|  | ||||
|  -- Martin Schulze <joey@finlandia.infodrom.north.de>  Fri, 16 Oct 1998 05:30:16 +0200 | ||||
|  | ||||
| libgtop (0.26.0-1) unstable; urgency=low | ||||
|  | ||||
|   * Initial Release. | ||||
|  | ||||
|  -- Jim Pick <jim@jimpick.com>  Thu, 24 Sep 1998 18:42:48 -0700 | ||||
|  | ||||
| Local variables: | ||||
| mode: debian-changelog | ||||
| End: | ||||
							
								
								
									
										33
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								debian/control.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,33 +0,0 @@ | ||||
| Source: libgtop@SUFFIX@ | ||||
| Maintainer: Martin Baulig <martin@home-of-linux.org> | ||||
| Section: libs | ||||
| Priority: optional | ||||
| Standards-Version: 3.0.0 | ||||
|  | ||||
| Package: libgtop1@SUFFIX@ | ||||
| Architecture: any | ||||
| Section: libs | ||||
| Depends: ${shlibs:Depends} | ||||
| Description: Portable system access library (part of Gnome) | ||||
|  Gnome is the "GNU Network Object Model Environment" | ||||
|  . | ||||
|  It is a project to build a complete, user-friendly desktop based | ||||
|  entirely on free software. | ||||
|  . | ||||
|  This package contains the gtop libraries which read information about | ||||
|  processes and the running systems. | ||||
|  | ||||
| Package: libgtop-dev@SUFFIX@ | ||||
| Architecture: any | ||||
| Section: devel | ||||
| Depends: libgtop1@SUFFIX@ (= ${Source-Version}) | ||||
| Description: Dev libraries for the portable system access library (part of Gnome) | ||||
|  Gnome is the "GNU Network Object Model Environment" | ||||
|  . | ||||
|  It is a project to build a complete, user-friendly desktop based | ||||
|  entirely on free software. | ||||
|  . | ||||
|  This package contains the include files and static library for the | ||||
|  gtop libraries which read information about processes and the running | ||||
|  systems. | ||||
|  | ||||
							
								
								
									
										109
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										109
									
								
								debian/debconfigure
									
									
									
									
										vendored
									
									
								
							| @@ -1,109 +0,0 @@ | ||||
| #! /bin/sh | ||||
| # | ||||
| # debconfigure | ||||
| # | ||||
| # A script to generate a debian/rules file, with options. | ||||
| # | ||||
| # By Jim Pick <jim@jimpick.com>, GPL'd of course. | ||||
| # Adjusted for LibGTop by Martin Baulig <martin@home-of-linux.org> | ||||
| # | ||||
|  | ||||
| if [ ! -r rules.in ]; then | ||||
| 	echo "Please run the debconfigure script in the debian directory" 1>&2 | ||||
| 	exit 1 | ||||
| fi | ||||
|  | ||||
| debtype='official' | ||||
| prefix='/usr' | ||||
| gnomeprefix='/usr' | ||||
| localstatedir='/var/lib' | ||||
| pkgsuffix='' | ||||
|  | ||||
| for dc_option | ||||
| do | ||||
|     case "$dc_option" in | ||||
| 	-*=*) dc_optarg=`echo "$dc_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; | ||||
| 	*) dc_optarg= ;; | ||||
|     esac | ||||
|  | ||||
|     case "$dc_option" in | ||||
|  | ||||
| 	--clean) | ||||
| 	    rm -f control rules *~ core *files *menu *substvars *.postinst *.debhelper | ||||
| 	    exit ;; | ||||
|  | ||||
| 	--prefix=*) | ||||
| 	    prefix="$dc_optarg" ;; | ||||
|  | ||||
|         --localstatedir=*) | ||||
| 	    prefix="$dc_optarg" ;; | ||||
|  | ||||
| 	--pkgsuffix=*) | ||||
| 	    pkgsuffix="$dc_optarg" ;; | ||||
|  | ||||
| 	--gnome-prefix=*) | ||||
| 	    gnomeprefix="$dc_optarg" ;; | ||||
|  | ||||
| 	--debtype=*) | ||||
| 	    debtype="$dc_optarg" ;; | ||||
|  | ||||
| 	*) | ||||
| 	    cat <<EOF 1>&2 | ||||
| Usage: debconfigure [options] | ||||
| Options: [defaults in brackets after descriptions] | ||||
|   --help                  print this message | ||||
|   --clean		  remove generated files | ||||
|   --prefix=PREFIX         install files under under PREFIX dir [/usr] | ||||
|   --gnome-prefix=PREFIX   look for GNOME under PREFIX dir [/usr] | ||||
|   --localstatedir=DIR     directory for things like game scores [/var/lib] | ||||
|   --pkgsuffix=SUFFIX      append SUFFIX onto package names [] | ||||
|   --debtype=DEBTYPE       enable macros with the name of DEBTYPE [official] | ||||
| EOF | ||||
| 	    exit ;; | ||||
|  | ||||
|     esac | ||||
| done | ||||
|  | ||||
| # Strip leading slash | ||||
| prefix=`expr $prefix : '/\(.*\)'` | ||||
| gnomeprefix=`expr $gnomeprefix : '/\(.*\)'` | ||||
| localstatedir=`expr $localstatedir : '/\(.*\)'` | ||||
|  | ||||
| for infile in `ls control.in rules.in` | ||||
| do | ||||
|     tofile=`expr $infile : '\(.*\)\.in'` | ||||
|     cat $infile | \ | ||||
|        sed "s,@SUFFIX@,$pkgsuffix,g" | \ | ||||
|        sed "s,@PREFIX@,$prefix,g" | \ | ||||
|        sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \ | ||||
|        sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \ | ||||
|        sed "s,%$debtype>,," | sed '/^%/d' > $tofile | ||||
| done | ||||
| chmod +x rules | ||||
|  | ||||
| for filesfile in `ls *.files.in` | ||||
| do | ||||
|     tofile=`expr $filesfile : '\(.*\)\.files\.in'` | ||||
|     tofile=`echo $tofile$pkgsuffix.files` | ||||
|     cat $filesfile | \ | ||||
|        sed "s,@SUFFIX@,$pkgsuffix,g" | \ | ||||
|        sed "s,@PREFIX@,$prefix,g" | \ | ||||
|        sed "s,@GNOMEPREFIX@,$gnomeprefix,g" | \ | ||||
|        sed "s,@LOCALSTATEDIR@,$localstatedir,g" | \ | ||||
|        sed "s,%$debtype>,," | sed '/^%/d' > $tofile | ||||
| done | ||||
|  | ||||
| for postinst in libgtop1$pkgsuffix | ||||
| do | ||||
|  | ||||
| cat > $postinst.postinst <<EOF | ||||
| #! /bin/sh | ||||
|  | ||||
| set -e | ||||
| ldconfig | ||||
|  | ||||
| #DEBHELPER# | ||||
| EOF | ||||
|  | ||||
| done | ||||
|  | ||||
							
								
								
									
										34
									
								
								debian/libgtop-config.1
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										34
									
								
								debian/libgtop-config.1
									
									
									
									
										vendored
									
									
								
							| @@ -1,34 +0,0 @@ | ||||
| .TH GTOP l "15 September 1999" | ||||
| .SH NAME | ||||
| \fBlibgtop-config\fP \- libgtop libraries and component information retrieval. | ||||
| .SH SYNTAX | ||||
| .B libgtop-config | ||||
| .RI [ --version ] | ||||
| .RI [ --config ] | ||||
| .RI [ --features-def-file ] | ||||
| .SH DESCRIPTION | ||||
| .B libgtop-config | ||||
| is used to retrieve information from installed libraries in the system. | ||||
|  | ||||
| This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. | ||||
| .LP | ||||
| .SH OPTIONS | ||||
| .TP | ||||
| .B \-\-version | ||||
| .PD | ||||
| Prints the version of libgtop that you're using. | ||||
| .TP | ||||
| .B \-\-config | ||||
| .PD | ||||
| Prints the location of libgtopConf.sh. | ||||
| .TP | ||||
| .B \-\-version | ||||
| .PD | ||||
| Prints the location of libgtop-features.def. | ||||
| .SH BUGS | ||||
| None known | ||||
|  | ||||
| .SH AUTHORS | ||||
| Martin Baulig (martin@home-of-linux.org) | ||||
| .TP | ||||
| Josh Sled (jsled@scam.XCF.Berkeley.EDU) | ||||
							
								
								
									
										21
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								debian/libgtop-dev.files.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,21 +0,0 @@ | ||||
| @PREFIX@/lib/libgtop.a | ||||
| @PREFIX@/lib/libgtop_common.a | ||||
| @PREFIX@/lib/libgtop_suid_common.a | ||||
| @PREFIX@/lib/libgtop_sysdeps.a | ||||
| @PREFIX@/lib/libgtop.la | ||||
| @PREFIX@/lib/libgtop_common.la | ||||
| @PREFIX@/lib/libgtop_suid_common.la | ||||
| @PREFIX@/lib/libgtop_sysdeps.la | ||||
| @PREFIX@/lib/libgtopConf.sh | ||||
| @PREFIX@/lib/libgtop.so | ||||
| @PREFIX@/lib/libgtop_common.so | ||||
| @PREFIX@/lib/libgtop_suid_common.so | ||||
| @PREFIX@/lib/libgtop_sysdeps.so | ||||
| @PREFIX@/lib/libgtop-features.def | ||||
| @PREFIX@/lib/libgtop/include/*.h | ||||
| @PREFIX@/include/glibtop/*.h | ||||
| @PREFIX@/include/glibtop.h | ||||
| @PREFIX@/include/glibtop_server.h | ||||
| @PREFIX@/include/glibtop_machine.h | ||||
| @PREFIX@/info/libgtop.info | ||||
| @PREFIX@/bin/libgtop-config | ||||
							
								
								
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.README.Debian
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
|  | ||||
| The Debian package of libgtop, a GNOME library. | ||||
|  | ||||
| --  | ||||
| Martin Baulig <martin@home-of-linux.org> | ||||
							
								
								
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop1.copyright
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +0,0 @@ | ||||
|  | ||||
| libgtop is released under the GPL. | ||||
| On Debian GNU/Linux systems, the complete text of the GNU General | ||||
| Public License can be found in /usr/share/common-licenses/GPL | ||||
|  | ||||
| Original authors: Martin Baulig <martin@home-of-linux.org> | ||||
|                   Drazen Kacar <dave@srce.hr> | ||||
|  | ||||
| Originally Debianised by Jim Pick <jim@jimpick.com> | ||||
| Then re-Debianised in October 1998 by Martin Schulze | ||||
| <joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh | ||||
| <ian@lynagh.demon.co.uk> in November 1998. | ||||
							
								
								
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop1.docs
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
| RELNOTES-0.25 | ||||
| RELNOTES-1.0.x | ||||
| NEWS | ||||
| AUTHORS | ||||
| debian/changelog | ||||
							
								
								
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								debian/libgtop1.files.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +0,0 @@ | ||||
| @PREFIX@/lib/libgtop*.so.[0-9].[0-9][0-9].[0-9] | ||||
| @PREFIX@/lib/libgtop*.so.[0-9].[0-9].[0-9] | ||||
| @PREFIX@/lib/libgtop*.so.[0-9] | ||||
| @PREFIX@/share/locale/*/*/libgtop.mo | ||||
							
								
								
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								debian/libgtop2.README.Debian
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +0,0 @@ | ||||
|  | ||||
| The Debian package of libgtop, a GNOME library. | ||||
|  | ||||
| --  | ||||
| Ian Lynagh <ian@lynagh.demon.co.uk> | ||||
							
								
								
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								debian/libgtop2.copyright
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +0,0 @@ | ||||
|  | ||||
| libgtop is released under the GPL. | ||||
| On Debian GNU/Linux systems, the complete text of the GNU General | ||||
| Public License can be found in /usr/share/common-licenses/GPL | ||||
|  | ||||
| Original authors: Martin Baulig <martin@home-of-linux.org> | ||||
|                   Drazen Kacar <dave@srce.hr> | ||||
|  | ||||
| Originally Debianised by Jim Pick <jim@jimpick.com> | ||||
| Then re-Debianised in October 1998 by Martin Schulze | ||||
| <joey@finlandia.infodrom.north.de> before being taken over by Ian Lynagh | ||||
| <ian@lynagh.demon.co.uk> in November 1998. | ||||
							
								
								
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								debian/libgtop2.docs
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +0,0 @@ | ||||
| RELNOTES-0.25 | ||||
| RELNOTES-1.0 | ||||
| RELNOTES-1.1.x | ||||
| NEWS | ||||
| AUTHORS | ||||
| TODO | ||||
| debian/changelog | ||||
							
								
								
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/libgtop2.files.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,2 +0,0 @@ | ||||
| @PREFIX@/lib/libgtop*-1.1.so.*.* | ||||
| @PREFIX@/lib/libgtop*-1.1.so.* | ||||
							
								
								
									
										115
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										115
									
								
								debian/rules.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,115 +0,0 @@ | ||||
| #!/usr/bin/make -f | ||||
| # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. | ||||
| # This version is for a hypothetical package that builds an | ||||
| # architecture-dependant package, as well as an architecture-independent | ||||
| # package. | ||||
|  | ||||
| # Uncomment this to turn on verbose mode.  | ||||
| #export DH_VERBOSE=1 | ||||
|  | ||||
| i=$(shell pwd)/debian/tmp | ||||
| b=$(shell pwd)/debian/build | ||||
|  | ||||
| configure: configure.ac | ||||
| 	@echo "--- Making configure script and configuring" | ||||
| 	chmod +x autogen.sh | ||||
| 	./autogen.sh --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \ | ||||
| 	  --localstatedir=/@LOCALSTATEDIR@ | ||||
|  | ||||
| Makefile: configure | ||||
| 	@echo "--- Configuring" | ||||
| 	./configure --prefix=/@PREFIX@ --with-gnome=/@GNOMEPREFIX@ \ | ||||
| 	  --localstatedir=/@LOCALSTATEDIR@ | ||||
|  | ||||
| build: configure Makefile build-debstamp | ||||
| build-debstamp: | ||||
| 	@echo "--- Compiling" | ||||
| 	dh_testdir | ||||
| 	$(MAKE) all | ||||
| 	touch build-debstamp | ||||
|  | ||||
| clean: Makefile | ||||
| 	@echo "--- Cleaning" | ||||
| 	dh_testdir | ||||
| 	dh_clean | ||||
| 	-rm -rf static shared | ||||
| 	-rm -f build-debstamp install-debstamp | ||||
| 	-make -k distclean | ||||
| 	-rm -f `find . -name "*~"` | ||||
| 	-rm -f `find . -name "*\.la"` | ||||
| 	-rm -rf `find . -name "\.deps"` | ||||
| 	-rm -rf `find . -name "\.libs"` | ||||
| 	-rm -rf `find . -name "*\.rej"` | ||||
| 	-rm -rf debian/tmp `find debian/* -type d ! -name CVS` debian/files* core | ||||
| 	-rm -f debian/*substvars | ||||
|  | ||||
| install: build install-debstamp | ||||
| install-debstamp: | ||||
| 	@echo "--- Installing" | ||||
| 	dh_testdir | ||||
| 	dh_testroot | ||||
| 	rm -rf $(b) | ||||
| 	$(MAKE) install prefix=$(i)/@PREFIX@ exec_prefix=$(i)/@PREFIX@ \ | ||||
| 	  localstatedir=$(i)/@LOCALSTATEDIR@ | ||||
| 	touch install-debstamp | ||||
|  | ||||
| install-save: install | ||||
| 	rm -rf $(i).saved | ||||
| 	cp -a $(i) $(i).saved | ||||
|  | ||||
| install-saved: | ||||
| 	rm -rf $(i) | ||||
| 	cp -a $(i).saved $(i) | ||||
| 	rm -rf $(b) | ||||
| 	touch install-debstamp | ||||
|  | ||||
| binary-indep: build install | ||||
|  | ||||
| binary-arch: build install \ | ||||
| 		libgtop1@SUFFIX@ \ | ||||
| 		libgtop-dev@SUFFIX@ | ||||
|  | ||||
| # | ||||
| # libgtop1@SUFFIX@ | ||||
| # | ||||
|  | ||||
| libgtop1@SUFFIX@: install | ||||
| 	@echo "--- Building: $@" | ||||
| 	dh_installdocs       -p$@ -P$(b)/$@ README NEWS AUTHORS | ||||
| 	dh_installchangelogs -p$@ -P$(b)/$@ ChangeLog | ||||
| 	dh_movefiles         -p$@ -P$(b)/$@ | ||||
| 	dh_strip             -p$@ -P$(b)/$@  | ||||
| 	dh_compress          -p$@ -P$(b)/$@  | ||||
| 	dh_fixperms          -p$@ -P$(b)/$@  | ||||
| 	dh_installdeb        -p$@ -P$(b)/$@ | ||||
| 	dh_shlibdeps         -p$@ -P$(b)/$@ | ||||
| 	dh_gencontrol        -p$@ -P$(b)/$@ | ||||
| 	dh_makeshlibs        -p$@ -P$(b)/$@ -V | ||||
| 	dh_md5sums           -p$@ -P$(b)/$@ | ||||
| 	dh_builddeb          -p$@ -P$(b)/$@ | ||||
|  | ||||
| # | ||||
| # libgtop-dev | ||||
| # | ||||
|  | ||||
| libgtop-dev@SUFFIX@: install | ||||
| 	@echo "--- Building: $@" | ||||
| 	mkdir -p $(b)/$@/usr/doc | ||||
| 	cd $(b)/$@/usr/doc; ln -s libgtop1@SUFFIX@ $@	 | ||||
| 	dh_movefiles         -p$@ -P$(b)/$@ | ||||
| 	dh_strip             -p$@ -P$(b)/$@  | ||||
| 	dh_compress          -p$@ -P$(b)/$@  | ||||
| 	dh_fixperms          -p$@ -P$(b)/$@  | ||||
| 	dh_installdeb        -p$@ -P$(b)/$@ | ||||
| 	dh_shlibdeps         -p$@ -P$(b)/$@ | ||||
| 	dh_gencontrol        -p$@ -P$(b)/$@ | ||||
| 	dh_makeshlibs        -p$@ -P$(b)/$@ -V | ||||
| 	dh_undocumented      -p$@ -P$(b)/$@ \ | ||||
| 				libgtop-config.1 | ||||
| 	dh_md5sums           -p$@ -P$(b)/$@ | ||||
| 	dh_builddeb          -p$@ -P$(b)/$@ | ||||
|  | ||||
| binary: binary-indep binary-arch | ||||
| .PHONY: binary clean binary-indep binary-arch build install install-save install-saved | ||||
|  | ||||
|  | ||||
| @@ -1,55 +1,3 @@ | ||||
| 2007-02-15  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* reference/Makefile.am: | ||||
| 	 | ||||
| 	Fixed distcheck. | ||||
|  | ||||
| 2006-02-21  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* reference.texi: Fixed glibtop_get_proc_state doc. | ||||
| 	Patch by Emil Nowak <emil5@go2.pl>. | ||||
|  | ||||
| 2005-01-03  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-12-04  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-08-03  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: Updated. | ||||
|  | ||||
| 2004-07-07  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* reference.texi: updated. | ||||
| 	Added glibtop_get_proc_argv. | ||||
| 	Added glibtop_fsusage.block_size. | ||||
|  | ||||
| 2004-03-05  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* reference.texi: update for new API | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* reference.texi: s/u_int64_t/guint64/ | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: removed traces of guile, intllibs and libgnomesupport | ||||
|  | ||||
| 2002-03-12  James Henstridge  <james@daa.com.au> | ||||
|  | ||||
| 	* Makefile.am (MAKEINFO): using += seems to screw up the build | ||||
| 	with newer automakes.  Set it explicitly (using @MAKEINFO@) seems | ||||
| 	to be compatible with both. | ||||
|  | ||||
| 2001-11-26  Abel Cheung  <maddog@linux.org.hk> | ||||
|  | ||||
| 	* libgtop.texi, Makefile.am: Renamed to libgtop2.texi | ||||
| 	* about.texi: Very minor update. | ||||
|  | ||||
| 1999-10-18  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* about.texi: Added a note about LibGTop and GNOME. | ||||
|   | ||||
| @@ -1,8 +0,0 @@ | ||||
| SUBDIRS = reference | ||||
|  | ||||
| info_TEXINFOS		= libgtop2.texi | ||||
|  | ||||
| libgtop2_TEXINFOS	= libgtop2.texi about.texi reference.texi \ | ||||
| 			  version.texi main.texi white-paper.texi | ||||
|  | ||||
| AM_MAKEINFOFLAGS	= -I $(libgtop_top_builddir)/doc | ||||
							
								
								
									
										123
									
								
								doc/about.texi
									
									
									
									
									
								
							
							
						
						
									
										123
									
								
								doc/about.texi
									
									
									
									
									
								
							| @@ -1,123 +0,0 @@ | ||||
| @node About, White Paper, Top, Top | ||||
| @chapter About LibGTop | ||||
|  | ||||
| LibGTop is a library to get system specific data such as CPU and Memory Usage | ||||
| and information about running Processes. | ||||
|  | ||||
| On Systems like Solaris or Digital Unix where you need special privileges to | ||||
| get those data, it uses a setuid/setgid server to do so. | ||||
|  | ||||
| Even if LibGTop is a part of the GNOME desktop environment | ||||
| (@uref{http://www.gnome.org}), the main interface of LibGTop is totally | ||||
| independent from any particular desktop environment, so you can also use it | ||||
| as a standalone library in any piece of GPLed software. | ||||
|  | ||||
| @menu | ||||
| * Availability::                Where to get LibGTop | ||||
| * Supported Platforms::         Supported Platforms | ||||
| * Mailing List::                Helping with LibGTop development | ||||
| * Thanks::                      People who contributed to LibGTop | ||||
| @end menu | ||||
|  | ||||
| @node Availability, Supported Platforms, About, About | ||||
| @section Availability | ||||
|  | ||||
| The master source of LibGTop is the GNOME CVS tree | ||||
| (see @uref{http://www.gnome.org} for details), but you can also get the | ||||
| latest release tarballs from | ||||
|  | ||||
| @display | ||||
| @uref{ftp://ftp.gnome.org/pub/GNOME/sources/libgtop/} | ||||
| @end display | ||||
|  | ||||
| @noindent | ||||
| or any of its mirror sites. | ||||
|  | ||||
| The latest stable version of LibGTop is 1.0.12 which is also the one that comes | ||||
| together with GNOME 1.0. It belongs to @code{LIBGTOP_STABLE_1_0} branch in CVS. | ||||
| Actual development occurs in the @code{libgtop-GNOME-2-0-port} which is | ||||
| currently versioned 1.90.0. | ||||
|  | ||||
| @node Supported Platforms, Mailing List, Availability, About | ||||
| @section Supported Platforms | ||||
|  | ||||
| The stable branch currently supports the following platforms: | ||||
|  | ||||
| @itemize @bullet | ||||
| @item All versions of Linux | ||||
|  | ||||
| LibGTop was tested under Linux 2.0.x and 2.2.x on the ix86 and the alpha, but | ||||
| it should also work without problems on SparcLinux or Linux 2.4.x. | ||||
|  | ||||
| Note: I'm speaking of the Linux kernel here, not the GNU/Linux operating system. | ||||
|  | ||||
| @item FreeBSD, NetBSD and OpenBSD | ||||
|  | ||||
| LibGTop was tested under FreeBSD 2.2.6 and 3.0, NetBSD 1.3.2 and OpenBSD 2.4. | ||||
| Support for NetBSD 1.4 was added in LibGTop 1.0.2. | ||||
|  | ||||
| @end itemize | ||||
|  | ||||
| The platforms listed above are known to be stable and working. However, if | ||||
| you're using the latest development version, you can use it on the following | ||||
| platforms as well: | ||||
|  | ||||
| @itemize @bullet | ||||
| @item BSD/OS | ||||
|  | ||||
| There is a port for BSD/OS (aka BSDI) 2.x and 3.x from Timur Bakeyev which | ||||
| should also work with 4.x. This isn't tested very well, but it should be | ||||
| working. | ||||
|  | ||||
| @item Digital Unix | ||||
|  | ||||
| There is some basic support for Digital Unix (formerly DEC OSF/1) V3.2C, but | ||||
| this may still be a bit unstable. I'm currently working on this port as time | ||||
| permits so it should be fully supported soon. | ||||
|  | ||||
| @item Solaris | ||||
|  | ||||
| The Solaris port currently works on Solaris 7 and maybe also on other releases. | ||||
| Thanks a lot to Drazen Kacar and everyone who helped working on this port. They | ||||
| have really done excellent work here and I'm pretty sure that this port will be | ||||
| fully functional on most Solaris versions in near future. | ||||
|  | ||||
| @end itemize | ||||
|  | ||||
| @node Mailing List, Thanks, Supported Platforms, About | ||||
| @section Mailing List | ||||
|  | ||||
| There is a @email{libgtop-devel-list@@egroups.com} mailing list for people who | ||||
| want to help with the development of LibGTop. | ||||
|  | ||||
| It is meant as a low-traffic, but high content-list where we can discuss | ||||
| technical details such as adding new sysdeps ports etc.  | ||||
|  | ||||
| Especially, I'd like to see people with a deeper knowledge of operating systems | ||||
| internals joining my list so we can discuss technical details of the sysdeps | ||||
| code.  | ||||
|  | ||||
| It is *not* for users that want to know how to compile LibGTop etc. | ||||
|  | ||||
| You can subscribe to this mailing list and view the mailing list archives | ||||
| on the LibGTop Page at @uref{http://www.home-of-linux.org/gnome/libgtop}. | ||||
|  | ||||
| @node Thanks,  , Mailing List, About | ||||
| @section Thanks | ||||
|  | ||||
| At the place I'd like to thank the following people who contributed to | ||||
| LibGTop (listed in chronological order): | ||||
|  | ||||
| @itemize @bullet | ||||
| @item Sebastian Wilhelmi who had the initial idea of LibGTop and helped | ||||
| me a lot in the early beginning. | ||||
| @item Josh Sled for the initial FreeBSD port. | ||||
| @item Jeremy Lea for his BSD patches. | ||||
| @item Timur Bakeyev for the BSDI port. | ||||
| @item Drazen Kacar and the other people on the LibGTop development mailing | ||||
| list for the Solaris port. | ||||
| @item Kevin Vandersloot for the effort to port to GNOME 2.0. | ||||
| @item All people sending me patches, having good ideas, ... | ||||
| @item Everyone I have forgotten in this list ... | ||||
| @end itemize | ||||
|  | ||||
| @@ -1,107 +0,0 @@ | ||||
| @node LibGTop Internals, , Reference Manual, Top | ||||
| @chapter LibGTop Internals | ||||
|  | ||||
| @menu | ||||
| * General Internals::           General Internals | ||||
| * Sysdeps Internals::           Sysdeps Internals | ||||
| @end menu | ||||
|  | ||||
| @node General Internals, Sysdeps Internals, LibGTop Internals, LibGTop Internals | ||||
| @section General Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop::                     The server structure | ||||
| @end menu | ||||
|  | ||||
| @node glibtop,  , General Internals, General Internals | ||||
| @subsection The server structure - @code{glibtop} | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| typedef struct _glibtop         glibtop; | ||||
|  | ||||
| struct _glibtop | ||||
| @{ | ||||
|         unsigned flags; | ||||
|         unsigned method; | ||||
|         unsigned error_method; | ||||
| #ifdef HAVE_GLIBTOP_MACHINE_H | ||||
|         glibtop_machine machine; | ||||
| #endif | ||||
|         int input [2]; | ||||
|         int output [2]; | ||||
|         int socket; | ||||
|         int ncpu; | ||||
|         unsigned long os_version_code; | ||||
|         const char *name; | ||||
|         const char *server_command; | ||||
|         const char *server_host; | ||||
|         const char *server_user; | ||||
|         const char *server_rsh; | ||||
|         unsigned long features; | ||||
|         unsigned long server_port; | ||||
|         glibtop_sysdeps sysdeps; | ||||
|         glibtop_sysdeps required; | ||||
|         glibtop_sysdeps wanted; | ||||
|         pid_t pid; | ||||
| @}; | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @node Sysdeps Internals,  , General Internals, LibGTop Internals | ||||
| @section Sysdeps Internals | ||||
|  | ||||
| @menu | ||||
| * glibtop_open_s::              Non-privileged initializations | ||||
| * glibtop_close_s::             Non-privileged cleanups | ||||
| @end menu | ||||
|  | ||||
| @node glibtop_open_s, glibtop_close_s, Sysdeps Internals, Sysdeps Internals | ||||
| @subsection glibtop_open_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| initialize a server. It should do all initializations that do not need any | ||||
| privileges. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_open_s (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, | ||||
| 		const unsigned flags); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| @table @code | ||||
| @item server | ||||
| Pointer to the @code{glibtop} server structure. | ||||
| @item program_name | ||||
| Name of the calling program; the implementation will usually | ||||
| set @samp{server->name} to this so it'll be used as the program | ||||
| name in error messages. | ||||
| @end table | ||||
|  | ||||
| Typically, this function will set @code{server->name}, @code{server->ncpu} and | ||||
| @code{server->os_version_code} and initialize any of the @code{server->machine} | ||||
| fields which do not need any privileges. | ||||
|  | ||||
| It is normally implemented in @file{open.c} in the sysdeps directory. | ||||
|  | ||||
| @node glibtop_close_s,  , glibtop_open_s, Sysdeps Internals | ||||
| @subsection glibtop_close_s | ||||
|  | ||||
| This function is used in the non-suid sysdeps library @samp{-lgtop_sysdeps} to | ||||
| clean-up a server when it's no longer used. | ||||
|  | ||||
| It must free all resources that were allocated in @code{glibtop_open_s}. | ||||
|  | ||||
| @example | ||||
| @cartouche | ||||
| void | ||||
| glibtop_close_s (glibtop *server); | ||||
| @end cartouche | ||||
| @end example | ||||
|  | ||||
| It is normally implemented in @file{close.c} in the sysdeps directory, but may | ||||
| be empty. | ||||
|  | ||||
| @@ -1,88 +0,0 @@ | ||||
| \input texinfo   @c -*-texinfo-*- | ||||
| @c %**start of header | ||||
| @setfilename libgtop2.info | ||||
| @settitle LibGTop Reference Manual | ||||
| @setchapternewpage odd | ||||
| @c %**end of header | ||||
|  | ||||
| @include version.texi | ||||
|  | ||||
| @ifinfo | ||||
| This is the LibGTop Reference Manual version @value{VERSION} | ||||
| (last modified @value{UPDATED}). | ||||
|  | ||||
| Copyright 1999 Free Software Foundation, Inc. | ||||
|       | ||||
| Permission is granted to make and distribute verbatim | ||||
| copies of this manual provided the copyright notice and | ||||
| this permission notice are preserved on all copies. | ||||
|       | ||||
| @ignore | ||||
| Permission is granted to process this file through TeX | ||||
| and print the results, provided the printed document | ||||
| carries a copying permission notice identical to this | ||||
| one except for the removal of this paragraph (this | ||||
| paragraph not being relevant to the printed manual). | ||||
|       | ||||
| @end ignore | ||||
| Permission is granted to copy and distribute modified | ||||
| versions of this manual under the conditions for | ||||
| verbatim copying, provided also that the sections | ||||
| entitled ``Copying'' and ``GNU General Public License'' | ||||
| are included exactly as in the original, and provided | ||||
| that the entire resulting derived work is distributed | ||||
| under the terms of a permission notice identical to this | ||||
| one. | ||||
|       | ||||
| Permission is granted to copy and distribute | ||||
| translations of this manual into another language, | ||||
| under the above conditions for modified versions, | ||||
| except that this permission notice may be stated in a | ||||
| translation approved by the Free Software Foundation. | ||||
|  | ||||
| @format | ||||
| @dircategory Libraries: | ||||
| @direntry | ||||
| * LibGTop2: (libgtop2).			Library to get system specific data | ||||
| 					such as cpu and memory usage, active | ||||
| 					processes | ||||
| @end direntry | ||||
| @end format | ||||
|  | ||||
| @end ifinfo | ||||
|  | ||||
| @titlepage | ||||
| @title LibGTop Reference Manual | ||||
| @subtitle Version @value{VERSION} - @value{UPDATED} | ||||
| @author Martin Baulig | ||||
|  | ||||
| @page | ||||
| @vskip 0pt plus 1filll | ||||
| Copyright @copyright{} 1999 Free Software Foundation, Inc. | ||||
|  | ||||
| Permission is granted to make and distribute verbatim | ||||
| copies of this manual provided the copyright notice and | ||||
| this permission notice are preserved on all copies. | ||||
|       | ||||
| Permission is granted to copy and distribute modified | ||||
| versions of this manual under the conditions for | ||||
| verbatim copying, provided also that the sections | ||||
| entitled ``Copying'' and ``GNU General Public License'' | ||||
| are included exactly as in the original, and provided | ||||
| that the entire resulting derived work is distributed | ||||
| under the terms of a permission notice identical to this | ||||
| one. | ||||
|       | ||||
| Permission is granted to copy and distribute | ||||
| translations of this manual into another language, | ||||
| under the above conditions for modified versions, | ||||
| except that this permission notice may be stated in a | ||||
| translation approved by the Free Software Foundation. | ||||
| @end titlepage | ||||
|  | ||||
| @contents | ||||
|  | ||||
| @include main.texi | ||||
|  | ||||
| @bye | ||||
|  | ||||
| @@ -1,68 +0,0 @@ | ||||
| @node Top, About, (dir), (dir) | ||||
|  | ||||
| @menu | ||||
| * About::                       About LibGTop | ||||
| * White Paper::                 LibGTop White Paper | ||||
| * Reference Manual::            LibGTop Reference Manual | ||||
|  | ||||
|  --- The Detailed Node Listing --- | ||||
|  | ||||
| About LibGTop | ||||
|  | ||||
| * Availability::                Where to get LibGTop | ||||
| * Supported Platforms::         Supported Platforms | ||||
| * Mailing List::                Helping with LibGTop development | ||||
| * Thanks::                      People who contributed to LibGTop | ||||
|  | ||||
| LibGTop White Paper | ||||
|  | ||||
| * Introduction::                Introduction | ||||
| * Overview::                    Overview | ||||
|  | ||||
| Overview | ||||
|  | ||||
| * Interface Design::            Things that need to be considered | ||||
| * Server Implementation::       The LibGTop "server" | ||||
|  | ||||
| LibGTop Reference Manual | ||||
|  | ||||
| * System Dependent::            System Dependent Functions. | ||||
| * Common Functions::            Common Functions. | ||||
| * Library Functions::           Library Functions. | ||||
|  | ||||
| System Dependent Functions | ||||
|  | ||||
| * glibtop_cpu::                 CPU Usage. | ||||
| * glibtop_mem::                 Memory Usage. | ||||
| * glibtop_swap::                Swap Usage. | ||||
| * glibtop_uptime::              System Uptime. | ||||
| * glibtop_loadavg::             Load Average. | ||||
| * glibtop_proclist::            Process List. | ||||
| * glibtop_proc_state::          Process State. | ||||
| * glibtop_proc_uid::            Process UID and TTY Information. | ||||
| * glibtop_proc_mem::            Process Memory Information. | ||||
| * glibtop_proc_time::           Process Time Information. | ||||
| * glibtop_proc_signal::         Process Signal Information. | ||||
| * glibtop_proc_kernel::         Process Kernel Data Information. | ||||
| * glibtop_proc_segment::        Process Segment Information. | ||||
| * glibtop_proc_args::           Process Arguments. | ||||
| * glibtop_proc_map::            Process Memory Maps. | ||||
| * glibtop_netload::             Network Load. | ||||
| * glibtop_ppp::                 PPP Usage. | ||||
|  | ||||
| Common Functions | ||||
|  | ||||
| * glibtop_mountlist::           Mount List. | ||||
| * glibtop_fsusage::             File System Usage. | ||||
|  | ||||
| Library Functions | ||||
|  | ||||
| * glibtop_init::                Server Initialization. | ||||
| * glibtop_sysdeps::             Server Sysdeps. | ||||
| * Library Parameters::          Library Parameters. | ||||
| @end menu | ||||
|  | ||||
| @include about.texi | ||||
| @include white-paper.texi | ||||
| @include reference.texi | ||||
|  | ||||
							
								
								
									
										1846
									
								
								doc/reference.texi
									
									
									
									
									
								
							
							
						
						
									
										1846
									
								
								doc/reference.texi
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,59 +0,0 @@ | ||||
| AUTOMAKE_OPTIONS = 1.6 | ||||
| ## Process this file with automake to produce Makefile.in | ||||
| # The name of the module, e.g. 'glib'. | ||||
| DOC_MODULE=libgtop | ||||
|  | ||||
| # The top-level SGML file. You can change this if you want to. | ||||
| DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml | ||||
|  | ||||
| # Extra options to pass to gtkdoc-scangobj. Not normally needed. | ||||
| # SCANGOBJ_OPTIONS= | ||||
|  | ||||
| # Extra options to supply to gtkdoc-scan. | ||||
| # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"  | ||||
| SCAN_OPTIONS= | ||||
|  | ||||
| # Extra options to supply to gtkdoc-mkdb. | ||||
| # e.g. MKDB_OPTIONS=--sgml-mode --output-format=xml | ||||
| MKDB_OPTIONS=--sgml-mode --output-format=xml --source-dir=$(top_srcdir)/sysdeps/common | ||||
|  | ||||
| # The directory containing the source code. Relative to $(srcdir). | ||||
| # gtk-doc will search all .c & .h files beneath here for inline comments | ||||
| # documenting the functions and macros. | ||||
| # e.g. DOC_SOURCE_DIR=../../../gtk | ||||
| DOC_SOURCE_DIR=$(top_srcdir)/include/glibtop | ||||
|  | ||||
| # Used for dependencies. The docs will be rebuilt if any of these change. | ||||
| # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h | ||||
| # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c | ||||
| HFILE_GLOB=$(top_srcdir)/include/glibtop/*.h | ||||
| CFILE_GLOB=$(top_srcdir)/sysdeps/common/*.c | ||||
|  | ||||
| # Header files to ignore when scanning. | ||||
| # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h | ||||
| IGNORE_HFILES=error.h global.h gnuserv.h init_hooks.h write.h read.h read_data.h config.h libgtopconfig.h | ||||
|  | ||||
| EXTRA_HFILES=$(top_srcdir)/glibtop.h | ||||
|  | ||||
| # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). | ||||
| # e.g. content_files=running.sgml building.sgml changes-2.0.sgml | ||||
| content_files=version.xml | ||||
|  | ||||
| # Images to copy into HTML directory. | ||||
| # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png | ||||
| 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. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) | ||||
| AM_CPPFLAGS= | ||||
| GTKDOC_LIBS= | ||||
|  | ||||
| # This includes the standard gtk-doc make rules, copied by gtkdocize. | ||||
| include $(top_srcdir)/gtk-doc.make | ||||
|  | ||||
| # Other files to distribute | ||||
| # e.g. EXTRA_DIST += version.xml.in | ||||
| EXTRA_DIST += version.xml.in | ||||
| @@ -1,206 +0,0 @@ | ||||
| <?xml version="1.0"?> | ||||
| <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"  | ||||
|                "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> | ||||
| <book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> | ||||
|   <bookinfo> | ||||
|     <title>Libgtop Reference Manual</title> | ||||
|     <releaseinfo>for libgtop <xi:include href="version.xml"/></releaseinfo> | ||||
|     <authorgroup> | ||||
|       <author> | ||||
| 	<firstname>Martin </firstname> | ||||
| 	<surname>Baulig</surname> | ||||
| 	<affiliation> | ||||
| 	  <address> | ||||
| 	    <email>martin@home-of-linux.org</email> | ||||
| 	  </address> | ||||
| 	</affiliation> | ||||
|       </author> | ||||
|       <author> | ||||
| 	<firstname>Germán</firstname> | ||||
| 	<surname>Poó-Caamaño</surname> | ||||
| 	<affiliation> | ||||
| 	  <address> | ||||
| 	    <email>gpoo@ubiobio.cl</email> | ||||
| 	  </address> | ||||
| 	</affiliation> | ||||
|       </author> | ||||
|     </authorgroup> | ||||
|  | ||||
|     <legalnotice> | ||||
|       <para>Permission is granted to copy, distribute and/or modify | ||||
|       this document under the terms of the <citetitle>GNU Free | ||||
|       Documentation License</citetitle>, Version 1.1 or any later | ||||
|       version published by the Free Software Foundation with no | ||||
|       Invariant Sections, no Front-Cover Texts, and no Back-Cover | ||||
|       Texts. You may obtain a copy of the <citetitle>GNU Free | ||||
|       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> | ||||
|  | ||||
|       <para>Many of the names used by companies to distinguish their | ||||
|       products and services are claimed as trademarks. Where those | ||||
|       names appear in any GNOME documentation, and those trademarks | ||||
|       are made aware to the members of the GNOME Documentation | ||||
|       Project, the names have been printed in caps or initial | ||||
|       caps.</para> | ||||
|     </legalnotice> | ||||
|  | ||||
|     <abstract> | ||||
|       <para> | ||||
|       LibGTop is a library to get system specific data such as CPU and  | ||||
|       Memory Usage and information about running Processes.</para> | ||||
|  | ||||
|       <para>On Systems like Solaris or Digital Unix where you need special | ||||
|       privileges to get those data, it uses a setuid/setgid server to do  | ||||
|       so.</para> | ||||
|  | ||||
|       <para>Even if LibGTop is a part of the GNOME desktop environment | ||||
|       (@uref{http://www.gnome.org}), the main interface of LibGTop is totally | ||||
|       independent from any particular desktop environment, so you can also | ||||
|       use it as a standalone library in any piece of GPLed software.</para> | ||||
|  | ||||
|       <para>This manual documents the interfaces of the libgtop | ||||
|       library and has some short notes to help get you up to speed | ||||
|       with using the library.</para> | ||||
|     </abstract> | ||||
|   </bookinfo> | ||||
|  | ||||
|   <!--FIXME: It is missing the rest of about.texi --> | ||||
|  | ||||
|   <chapter id="libgtop-white-paper"> | ||||
|     <title>White paper</title> | ||||
|  | ||||
|     <sect1 id="libgtop-white-paper-introduction"> | ||||
|       <title>Introduction</title> | ||||
|       <para>Many modern UNIX systems like Solaris, BSD or Digitial Unix  | ||||
|       only allow priviledged processes to read information like CPU and  | ||||
|       Memory Usage or information about running processes.</para> | ||||
|  | ||||
|       <itemizedlist> | ||||
|       <listitem><para> | ||||
|       BSD, for instance, doesn't have any other way to get those data than reading | ||||
|       directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to | ||||
|       be able to read this.</para></listitem> | ||||
|  | ||||
|       <listitem><para> | ||||
|       Other systems, like Digital Unix, allow all users to get things like CPU and | ||||
|       Memory statistics, but only root may read information about any process other | ||||
|       than the current one (you may not even get information about your own processes | ||||
|       if you're not root).</para></listitem> | ||||
|  | ||||
|       <listitem><para> | ||||
|       Linux has a very nice @file{/proc} filesystem, but reading and parsing | ||||
|       @file{/proc} is very slow and inefficient.</para></listitem> | ||||
|  | ||||
|       <listitem><para> | ||||
|       Solaris is a bit better, but you still need to be in the @code{sys} group or | ||||
|       even root to get some data.</para></listitem> | ||||
|       </itemizedlist> | ||||
|  | ||||
|       <para> | ||||
|       Because of this system utilities like @code{ps}, @code{uptime} or @code{top} | ||||
|       often are setgid kmem or setuid root. Usually, they're also very specific to | ||||
|       the system they're written for and not easily portable to other systems without | ||||
|       a lot of work.</para> | ||||
|  | ||||
|       <para> | ||||
|       This, of cause, becomes a problem for graphical tools like @code{gtop} - making | ||||
|       a GTK+ program setgid or even setuid would be a security hole as big as you can | ||||
|       drive the entire X11 source code through. For the GNOME project, we also needed | ||||
|       some kind of library which provides all the required information in a portable | ||||
|       since there's more than just one single program that wants to use them - for | ||||
|       instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and | ||||
|       @code{netload} panel applets.</para> | ||||
|  | ||||
|     </sect1> | ||||
|  | ||||
|     <sect1 id="libgtop-white-paper-overview"> | ||||
|       <title>Overview</title> | ||||
|       <para>This section should give you a short overview on how LibGTop | ||||
|       was developed, which things needed to be considered and how it  | ||||
|       works.</para> | ||||
|  | ||||
|       <sect2 id="libgtop-white-paper-overview-design"> | ||||
|       <title>Interface Design: Things that need to be considered</title> | ||||
|       <para> | ||||
| At the very beginning, it was necessary to collect all the data the library part | ||||
| should provide and put them into some C structures. This was not that easiy as it | ||||
| might sound since LibGTop should be portable to any modern UNIX system with a common | ||||
| library part on all those systems, but the data that should be returned vary from | ||||
| system to system. For instance some systems support shared memory, but some others | ||||
| may not.</para> | ||||
|  | ||||
|       <para> | ||||
| The header files where we define these C structures (which are system-independent) are | ||||
| shared between client and server. This way we can call the system dependent code | ||||
| directly where we do not need any special privileges to do so.</para> | ||||
|  | ||||
|       <para> | ||||
| All of those structures contain a @code{flags} member which is interpreted as a bit | ||||
| mask and tells the caller of the library functions which of the fields in the returned | ||||
| structure are valid and which are not.</para> | ||||
|       </sect2> | ||||
|  | ||||
|       <sect2 id="libgtop-white-paper-overview-server"> | ||||
|       <title>Server Implementation: The LibGTop "server"</title> | ||||
|       <para> | ||||
| The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system | ||||
| dependent code which needs special privileges. It is only build if it's required | ||||
| on the current system (for instance, the Linux kernel provides all the required | ||||
| data via its @file{/proc} filesystem so we do not need the server at all) and it | ||||
| only contains the @dfn{features} which need privileges.</para> | ||||
|  | ||||
|       <para> | ||||
| Whenever we do not need any privileges to get all the data for some of the requested | ||||
| structures (here called @dfn{features}) the library calls the sysdeps code directly | ||||
| rather than using the server.</para> | ||||
|       </sect2> | ||||
|     </sect1> | ||||
|  | ||||
|   </chapter> | ||||
|  | ||||
|   <chapter id="libgtop-lib"> | ||||
|     <title>Libgtop Library Reference</title> | ||||
|  | ||||
|     <para>This section contains the API reference for libgtop.  All | ||||
|     the public interfaces are documented here.</para> | ||||
|  | ||||
|     <xi:include href="xml/glibtop.xml"/> | ||||
|     <xi:include href="xml/close.xml"/> | ||||
|     <xi:include href="xml/command.xml"/> | ||||
|     <xi:include href="xml/glibtop-server.xml"/> | ||||
|     <xi:include href="xml/netload.xml"/> | ||||
|     <xi:include href="xml/ppp.xml"/> | ||||
|     <xi:include href="xml/shm_limits.xml"/> | ||||
|     <xi:include href="xml/uptime.xml"/> | ||||
|     <xi:include href="xml/netlist.xml"/> | ||||
|     <xi:include href="xml/open.xml"/> | ||||
|     <xi:include href="xml/parameter.xml"/> | ||||
|     <xi:include href="xml/procargs.xml"/> | ||||
|     <xi:include href="xml/procmem.xml"/> | ||||
|     <xi:include href="xml/procopenfiles.xml"/> | ||||
|     <xi:include href="xml/procsegment.xml"/> | ||||
|     <xi:include href="xml/procsignal.xml"/> | ||||
|     <xi:include href="xml/sysdeps.xml"/> | ||||
|     <xi:include href="xml/procstate.xml"/> | ||||
|     <xi:include href="xml/procuid.xml"/> | ||||
|     <xi:include href="xml/proctime.xml"/> | ||||
|     <xi:include href="xml/signal.xml"/> | ||||
|     <xi:include href="xml/procmap.xml"/> | ||||
|     <xi:include href="xml/sysinfo.xml"/> | ||||
|     <xi:include href="xml/union.xml"/> | ||||
|     <xi:include href="xml/version.xml"/> | ||||
|     <xi:include href="xml/proclist.xml"/> | ||||
|     <xi:include href="xml/sem_limits.xml"/> | ||||
|     <xi:include href="xml/prockernel.xml"/> | ||||
|     <xi:include href="xml/fsusage.xml"/> | ||||
|     <xi:include href="xml/loadavg.xml"/> | ||||
|     <xi:include href="xml/mem.xml"/> | ||||
|     <xi:include href="xml/mountlist.xml"/> | ||||
|     <xi:include href="xml/msg_limits.xml"/> | ||||
|     <xi:include href="xml/cpu.xml"/> | ||||
|     <xi:include href="xml/swap.xml"/> | ||||
|   </chapter> | ||||
| </book> | ||||
| @@ -1,699 +0,0 @@ | ||||
| <INCLUDE>glibtop.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>glibtop</FILE> | ||||
| <TITLE>GlibTop</TITLE> | ||||
| GLIBTOP_MOUNTENTRY_LEN | ||||
| LIBGTOP_CHECK_VERSION | ||||
| glibtop | ||||
| glibtop_global_server | ||||
| glibtop_init | ||||
| glibtop_init_r | ||||
| glibtop_init_s | ||||
| glibtop_server_features | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/close.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>close</FILE> | ||||
| <TITLE>Close</TITLE> | ||||
| glibtop_close | ||||
| glibtop_close_r | ||||
| glibtop_close_s | ||||
| glibtop_close_p | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/command.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>command</FILE> | ||||
| <TITLE>Command</TITLE> | ||||
| GLIBTOP_CMND_QUIT | ||||
| GLIBTOP_CMND_SYSDEPS | ||||
| GLIBTOP_CMND_CPU | ||||
| GLIBTOP_CMND_MEM | ||||
| GLIBTOP_CMND_SWAP | ||||
| GLIBTOP_CMND_UPTIME | ||||
| GLIBTOP_CMND_LOADAVG | ||||
| GLIBTOP_CMND_SHM_LIMITS | ||||
| GLIBTOP_CMND_MSG_LIMITS | ||||
| GLIBTOP_CMND_SEM_LIMITS | ||||
| GLIBTOP_CMND_PROCLIST | ||||
| GLIBTOP_CMND_PROC_STATE | ||||
| GLIBTOP_CMND_PROC_UID | ||||
| GLIBTOP_CMND_PROC_MEM | ||||
| GLIBTOP_CMND_PROC_TIME | ||||
| GLIBTOP_CMND_PROC_SIGNAL | ||||
| GLIBTOP_CMND_PROC_KERNEL | ||||
| GLIBTOP_CMND_PROC_SEGMENT | ||||
| GLIBTOP_CMND_PROC_ARGS | ||||
| GLIBTOP_CMND_PROC_MAP | ||||
| GLIBTOP_CMND_MOUNTLIST | ||||
| GLIBTOP_CMND_FSUSAGE | ||||
| GLIBTOP_CMND_NETLOAD | ||||
| GLIBTOP_CMND_PPP | ||||
| GLIBTOP_CMND_NETLIST | ||||
| GLIBTOP_CMND_PROC_OPEN_FILES | ||||
| GLIBTOP_MAX_CMND | ||||
| glibtop_command | ||||
| glibtop_response | ||||
| glibtop_response_union | ||||
| glibtop_call | ||||
| glibtop_call_l | ||||
| glibtop_call_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/glibtop-server.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>glibtop-server</FILE> | ||||
| <TITLE>GlibTop Server</TITLE> | ||||
| glibtop_server | ||||
| glibtop_server_info | ||||
| glibtop_closure | ||||
| glibtop_server_new | ||||
| glibtop_server_ref | ||||
| glibtop_server_unref | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/netload.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>netload</FILE> | ||||
| <TITLE>Net Load</TITLE> | ||||
| GLIBTOP_NETLOAD_IF_FLAGS | ||||
| GLIBTOP_NETLOAD_MTU | ||||
| GLIBTOP_NETLOAD_SUBNET | ||||
| GLIBTOP_NETLOAD_ADDRESS | ||||
| GLIBTOP_NETLOAD_PACKETS_IN | ||||
| GLIBTOP_NETLOAD_PACKETS_OUT | ||||
| GLIBTOP_NETLOAD_PACKETS_TOTAL | ||||
| GLIBTOP_NETLOAD_BYTES_IN | ||||
| GLIBTOP_NETLOAD_BYTES_OUT | ||||
| GLIBTOP_NETLOAD_BYTES_TOTAL | ||||
| GLIBTOP_NETLOAD_ERRORS_IN | ||||
| GLIBTOP_NETLOAD_ERRORS_OUT | ||||
| GLIBTOP_NETLOAD_ERRORS_TOTAL | ||||
| GLIBTOP_NETLOAD_COLLISIONS | ||||
| GLIBTOP_NETLOAD_ADDRESS6 | ||||
| GLIBTOP_NETLOAD_PREFIX6 | ||||
| GLIBTOP_NETLOAD_SCOPE6 | ||||
| GLIBTOP_NETLOAD_HWADDRESS | ||||
| GLIBTOP_MAX_NETLOAD | ||||
| glibtop_netload | ||||
| glibtop_get_netload | ||||
| glibtop_get_netload_r | ||||
| glibtop_get_netload_l | ||||
| glibtop_init_netload_p | ||||
| glibtop_get_netload_p | ||||
| glibtop_init_netload_s | ||||
| glibtop_get_netload_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/ppp.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>ppp</FILE> | ||||
| <TITLE>PPP</TITLE> | ||||
| GLIBTOP_PPP_STATE | ||||
| GLIBTOP_PPP_BYTES_IN | ||||
| GLIBTOP_PPP_BYTES_OUT | ||||
| GLIBTOP_MAX_PPP | ||||
| glibtop_ppp | ||||
| glibtop_get_ppp | ||||
| glibtop_get_ppp_r | ||||
| glibtop_get_ppp_l | ||||
| glibtop_init_ppp_p | ||||
| glibtop_get_ppp_p | ||||
| glibtop_init_ppp_s | ||||
| glibtop_get_ppp_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/shm_limits.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>shm_limits</FILE> | ||||
| <TITLE>Shared Memory Limits</TITLE> | ||||
| GLIBTOP_IPC_SHMMAX | ||||
| GLIBTOP_IPC_SHMMIN | ||||
| GLIBTOP_IPC_SHMMNI | ||||
| GLIBTOP_IPC_SHMSEG | ||||
| GLIBTOP_IPC_SHMALL | ||||
| GLIBTOP_MAX_SHM_LIMITS | ||||
| glibtop_shm_limits | ||||
| glibtop_get_shm_limits | ||||
| glibtop_get_shm_limits_r | ||||
| glibtop_get_shm_limits_l | ||||
| glibtop_init_shm_limits_p | ||||
| glibtop_get_shm_limits_p | ||||
| glibtop_init_shm_limits_s | ||||
| glibtop_get_shm_limits_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/uptime.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>uptime</FILE> | ||||
| <TITLE>Uptime</TITLE> | ||||
| GLIBTOP_UPTIME_UPTIME | ||||
| GLIBTOP_UPTIME_IDLETIME | ||||
| GLIBTOP_UPTIME_BOOT_TIME | ||||
| GLIBTOP_MAX_UPTIME | ||||
| glibtop_uptime | ||||
| glibtop_get_uptime | ||||
| glibtop_get_uptime_r | ||||
| glibtop_get_uptime_l | ||||
| glibtop_init_uptime_p | ||||
| glibtop_get_uptime_p | ||||
| glibtop_init_uptime_s | ||||
| glibtop_get_uptime_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/netlist.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>netlist</FILE> | ||||
| <TITLE>Net List</TITLE> | ||||
| GLIBTOP_NETLIST_NUMBER | ||||
| GLIBTOP_MAX_NETLIST | ||||
| glibtop_netlist | ||||
| glibtop_get_netlist | ||||
| glibtop_get_netlist_r | ||||
| glibtop_get_netlist_l | ||||
| glibtop_init_netlist_p | ||||
| glibtop_get_netlist_p | ||||
| glibtop_init_netlist_s | ||||
| glibtop_get_netlist_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/open.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>open</FILE> | ||||
| GLIBTOP_INIT_NO_OPEN | ||||
| GLIBTOP_INIT_NO_INIT | ||||
| GLIBTOP_FEATURES_NO_SERVER | ||||
| GLIBTOP_FEATURES_EXCEPT | ||||
| GLIBTOP_METHOD_DIRECT | ||||
| GLIBTOP_METHOD_PIPE | ||||
| GLIBTOP_METHOD_INET | ||||
| GLIBTOP_METHOD_UNIX | ||||
| GLIBTOP_ERROR_METHOD_IGNORE | ||||
| GLIBTOP_ERROR_METHOD_WARN_ONCE | ||||
| GLIBTOP_ERROR_METHOD_WARN | ||||
| GLIBTOP_ERROR_METHOD_ABORT | ||||
| GLIBTOP_ERROR_METHOD_DEFAULT | ||||
| glibtop_open_l | ||||
| glibtop_init_p | ||||
| glibtop_open_p | ||||
| glibtop_open_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/parameter.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>parameter</FILE> | ||||
| GLIBTOP_PARAM_METHOD | ||||
| GLIBTOP_PARAM_FEATURES | ||||
| GLIBTOP_PARAM_COMMAND | ||||
| GLIBTOP_PARAM_HOST | ||||
| GLIBTOP_PARAM_PORT | ||||
| GLIBTOP_PARAM_ERROR_METHOD | ||||
| GLIBTOP_PARAM_REQUIRED | ||||
| glibtop_get_parameter | ||||
| glibtop_set_parameter | ||||
| glibtop_get_parameter_l | ||||
| glibtop_set_parameter_l | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procargs.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procargs</FILE> | ||||
| glibtop_proc_args | ||||
| glibtop_get_proc_args | ||||
| glibtop_get_proc_argv | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procmem.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procmem</FILE> | ||||
| GLIBTOP_PROC_MEM_SIZE | ||||
| GLIBTOP_PROC_MEM_VSIZE | ||||
| GLIBTOP_PROC_MEM_RESIDENT | ||||
| GLIBTOP_PROC_MEM_SHARE | ||||
| GLIBTOP_PROC_MEM_RSS | ||||
| GLIBTOP_PROC_MEM_RSS_RLIM | ||||
| GLIBTOP_MAX_PROC_MEM | ||||
| glibtop_proc_mem | ||||
| glibtop_get_proc_mem | ||||
| glibtop_get_proc_mem_r | ||||
| glibtop_get_proc_mem_l | ||||
| glibtop_init_proc_mem_p | ||||
| glibtop_get_proc_mem_p | ||||
| glibtop_init_proc_mem_s | ||||
| glibtop_get_proc_mem_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procopenfiles.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procopenfiles</FILE> | ||||
| GLIBTOP_PROC_OPEN_FILES_NUMBER | ||||
| GLIBTOP_PROC_OPEN_FILES_TOTAL | ||||
| GLIBTOP_PROC_OPEN_FILES_SIZE | ||||
| GLIBTOP_MAX_PROC_OPEN_FILES | ||||
| GLIBTOP_FILE_ENTRY_FD | ||||
| GLIBTOP_FILE_ENTRY_NAME | ||||
| GLIBTOP_FILE_ENTRY_TYPE | ||||
| GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST | ||||
| GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT | ||||
| GLIBTOP_MAX_OPEN_FILE_ENTRY | ||||
| GLIBTOP_OPEN_FILENAME_LEN | ||||
| GLIBTOP_OPEN_DEST_HOST_LEN | ||||
| glibtop_open_files_entry | ||||
| glibtop_proc_open_files | ||||
| glibtop_get_proc_open_files | ||||
| glibtop_get_proc_open_files_r | ||||
| glibtop_get_proc_open_files_l | ||||
| glibtop_init_proc_open_files_p | ||||
| glibtop_get_proc_open_files_p | ||||
| glibtop_init_proc_open_files_s | ||||
| glibtop_get_proc_open_files_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procsegment.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procsegment</FILE> | ||||
| GLIBTOP_PROC_SEGMENT_TEXT_RSS | ||||
| GLIBTOP_PROC_SEGMENT_SHLIB_RSS | ||||
| GLIBTOP_PROC_SEGMENT_DATA_RSS | ||||
| GLIBTOP_PROC_SEGMENT_STACK_RSS | ||||
| GLIBTOP_PROC_SEGMENT_DIRTY_SIZE | ||||
| GLIBTOP_PROC_SEGMENT_START_CODE | ||||
| GLIBTOP_PROC_SEGMENT_END_CODE | ||||
| GLIBTOP_PROC_SEGMENT_START_STACK | ||||
| GLIBTOP_MAX_PROC_SEGMENT | ||||
| glibtop_proc_segment | ||||
| glibtop_get_proc_segment | ||||
| glibtop_get_proc_segment_r | ||||
| glibtop_get_proc_segment_l | ||||
| glibtop_init_proc_segment_p | ||||
| glibtop_get_proc_segment_p | ||||
| glibtop_init_proc_segment_s | ||||
| glibtop_get_proc_segment_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procsignal.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procsignal</FILE> | ||||
| GLIBTOP_PROC_SIGNAL_SIGNAL | ||||
| GLIBTOP_PROC_SIGNAL_BLOCKED | ||||
| GLIBTOP_PROC_SIGNAL_SIGIGNORE | ||||
| GLIBTOP_PROC_SIGNAL_SIGCATCH | ||||
| GLIBTOP_MAX_PROC_SIGNAL | ||||
| glibtop_proc_signal | ||||
| glibtop_get_proc_signal | ||||
| glibtop_get_proc_signal_r | ||||
| glibtop_get_proc_signal_l | ||||
| glibtop_init_proc_signal_p | ||||
| glibtop_get_proc_signal_p | ||||
| glibtop_init_proc_signal_s | ||||
| glibtop_get_proc_signal_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/sysdeps.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>sysdeps</FILE> | ||||
| GLIBTOP_SYSDEPS_FEATURES | ||||
| GLIBTOP_SYSDEPS_CPU | ||||
| GLIBTOP_SYSDEPS_MEM | ||||
| GLIBTOP_SYSDEPS_SWAP | ||||
| GLIBTOP_SYSDEPS_UPTIME | ||||
| GLIBTOP_SYSDEPS_LOADAVG | ||||
| GLIBTOP_SYSDEPS_SHM_LIMITS | ||||
| GLIBTOP_SYSDEPS_MSG_LIMITS | ||||
| GLIBTOP_SYSDEPS_SEM_LIMITS | ||||
| GLIBTOP_SYSDEPS_PROCLIST | ||||
| GLIBTOP_SYSDEPS_PROC_STATE | ||||
| GLIBTOP_SYSDEPS_PROC_UID | ||||
| GLIBTOP_SYSDEPS_PROC_MEM | ||||
| GLIBTOP_SYSDEPS_PROC_TIME | ||||
| GLIBTOP_SYSDEPS_PROC_SIGNAL | ||||
| GLIBTOP_SYSDEPS_PROC_KERNEL | ||||
| GLIBTOP_SYSDEPS_PROC_SEGMENT | ||||
| GLIBTOP_SYSDEPS_PROC_ARGS | ||||
| GLIBTOP_SYSDEPS_PROC_MAP | ||||
| GLIBTOP_SYSDEPS_MOUNTLIST | ||||
| GLIBTOP_SYSDEPS_FSUSAGE | ||||
| GLIBTOP_SYSDEPS_NETLOAD | ||||
| GLIBTOP_SYSDEPS_PPP | ||||
| GLIBTOP_SYSDEPS_NETLIST | ||||
| GLIBTOP_SYSDEPS_PROC_OPEN_FILES | ||||
| GLIBTOP_MAX_SYSDEPS | ||||
| GLIBTOP_SYSDEPS_ALL | ||||
| glibtop_sysdeps | ||||
| glibtop_get_sysdeps | ||||
| glibtop_get_sysdeps_r | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procstate.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procstate</FILE> | ||||
| GLIBTOP_PROC_STATE_CMD | ||||
| GLIBTOP_PROC_STATE_STATE | ||||
| GLIBTOP_PROC_STATE_UID | ||||
| GLIBTOP_PROC_STATE_GID | ||||
| GLIBTOP_PROC_STATE_RUID | ||||
| GLIBTOP_PROC_STATE_RGID | ||||
| GLIBTOP_PROC_STATE_HAS_CPU | ||||
| GLIBTOP_PROC_STATE_PROCESSOR | ||||
| GLIBTOP_PROC_STATE_LAST_PROCESSOR | ||||
| GLIBTOP_MAX_PROC_STATE | ||||
| GLIBTOP_PROCESS_RUNNING | ||||
| GLIBTOP_PROCESS_INTERRUPTIBLE | ||||
| GLIBTOP_PROCESS_UNINTERRUPTIBLE | ||||
| GLIBTOP_PROCESS_ZOMBIE | ||||
| GLIBTOP_PROCESS_STOPPED | ||||
| GLIBTOP_PROCESS_SWAPPING | ||||
| GLIBTOP_PROCESS_DEAD | ||||
| glibtop_proc_state | ||||
| glibtop_get_proc_state | ||||
| glibtop_get_proc_state_r | ||||
| glibtop_get_proc_state_l | ||||
| glibtop_init_proc_state_p | ||||
| glibtop_get_proc_state_p | ||||
| glibtop_init_proc_state_s | ||||
| glibtop_get_proc_state_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procuid.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procuid</FILE> | ||||
| GLIBTOP_PROC_UID_UID | ||||
| GLIBTOP_PROC_UID_EUID | ||||
| GLIBTOP_PROC_UID_GID | ||||
| GLIBTOP_PROC_UID_EGID | ||||
| GLIBTOP_PROC_UID_SUID | ||||
| GLIBTOP_PROC_UID_SGID | ||||
| GLIBTOP_PROC_UID_FSUID | ||||
| GLIBTOP_PROC_UID_FSGID | ||||
| GLIBTOP_PROC_UID_PID | ||||
| GLIBTOP_PROC_UID_PPID | ||||
| GLIBTOP_PROC_UID_PGRP | ||||
| GLIBTOP_PROC_UID_SESSION | ||||
| GLIBTOP_PROC_UID_TTY | ||||
| GLIBTOP_PROC_UID_TPGID | ||||
| GLIBTOP_PROC_UID_PRIORITY | ||||
| GLIBTOP_PROC_UID_NICE | ||||
| GLIBTOP_PROC_UID_NGROUPS | ||||
| GLIBTOP_PROC_UID_GROUPS | ||||
| GLIBTOP_MAX_PROC_UID | ||||
| glibtop_proc_uid | ||||
| GLIBTOP_MAX_GROUPS | ||||
| glibtop_get_proc_uid | ||||
| glibtop_get_proc_uid_r | ||||
| glibtop_get_proc_uid_l | ||||
| glibtop_init_proc_uid_p | ||||
| glibtop_get_proc_uid_p | ||||
| glibtop_init_proc_uid_s | ||||
| glibtop_get_proc_uid_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/proctime.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>proctime</FILE> | ||||
| glibtop_proc_time | ||||
| glibtop_get_proc_time | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/signal.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>signal</FILE> | ||||
| glibtop_signame | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/procmap.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>procmap</FILE> | ||||
| GLIBTOP_PROC_MAP_NUMBER | ||||
| GLIBTOP_PROC_MAP_TOTAL | ||||
| GLIBTOP_PROC_MAP_SIZE | ||||
| GLIBTOP_MAX_PROC_MAP | ||||
| GLIBTOP_MAP_ENTRY_START | ||||
| GLIBTOP_MAP_ENTRY_END | ||||
| GLIBTOP_MAP_ENTRY_OFFSET | ||||
| GLIBTOP_MAP_ENTRY_PERM | ||||
| GLIBTOP_MAP_ENTRY_INODE | ||||
| GLIBTOP_MAP_ENTRY_DEVICE | ||||
| GLIBTOP_MAP_ENTRY_FILENAME | ||||
| GLIBTOP_MAP_ENTRY_SIZE | ||||
| GLIBTOP_MAP_ENTRY_RSS | ||||
| GLIBTOP_MAP_ENTRY_SHARED_CLEAN | ||||
| GLIBTOP_MAP_ENTRY_SHARED_DIRTY | ||||
| GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN | ||||
| GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY | ||||
| GLIBTOP_MAX_MAP_ENTRY | ||||
| GLIBTOP_MAP_FILENAME_LEN | ||||
| GLIBTOP_MAP_PERM_READ | ||||
| GLIBTOP_MAP_PERM_WRITE | ||||
| GLIBTOP_MAP_PERM_EXECUTE | ||||
| GLIBTOP_MAP_PERM_SHARED | ||||
| GLIBTOP_MAP_PERM_PRIVATE | ||||
| glibtop_map_entry | ||||
| glibtop_proc_map | ||||
| glibtop_get_proc_map | ||||
| glibtop_get_proc_map_r | ||||
| glibtop_get_proc_map_l | ||||
| glibtop_init_proc_map_p | ||||
| glibtop_get_proc_map_p | ||||
| glibtop_init_proc_map_s | ||||
| glibtop_get_proc_map_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/sysinfo.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>sysinfo</FILE> | ||||
| GLIBTOP_SYSINFO_NCPU | ||||
| GLIBTOP_SYSINFO_CPUINFO | ||||
| GLIBTOP_MAX_SYSINFO | ||||
| glibtop_sysinfo | ||||
| glibtop_entry | ||||
| glibtop_get_sysinfo_r | ||||
| glibtop_get_sysinfo_s | ||||
| glibtop_get_sysinfo | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/union.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>union</FILE> | ||||
| glibtop_union | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/version.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>version</FILE> | ||||
| LIBGTOP_VERSION_STRING | ||||
| glibtop_send_version | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/proclist.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>proclist</FILE> | ||||
| GLIBTOP_KERN_PROC_ALL | ||||
| GLIBTOP_KERN_PROC_PID | ||||
| GLIBTOP_KERN_PROC_PGRP | ||||
| GLIBTOP_KERN_PROC_SESSION | ||||
| GLIBTOP_KERN_PROC_TTY | ||||
| GLIBTOP_KERN_PROC_UID | ||||
| GLIBTOP_KERN_PROC_RUID | ||||
| GLIBTOP_KERN_PROC_MASK | ||||
| GLIBTOP_EXCLUDE_IDLE | ||||
| GLIBTOP_EXCLUDE_SYSTEM | ||||
| GLIBTOP_EXCLUDE_NOTTY | ||||
| glibtop_proclist | ||||
| glibtop_get_proclist | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/sem_limits.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>sem_limits</FILE> | ||||
| GLIBTOP_IPC_SEMMAP | ||||
| GLIBTOP_IPC_SEMMNI | ||||
| GLIBTOP_IPC_SEMMNS | ||||
| GLIBTOP_IPC_SEMMNU | ||||
| GLIBTOP_IPC_SEMMSL | ||||
| GLIBTOP_IPC_SEMOPM | ||||
| GLIBTOP_IPC_SEMUME | ||||
| GLIBTOP_IPC_SEMUSZ | ||||
| GLIBTOP_IPC_SEMVMX | ||||
| GLIBTOP_IPC_SEMAEM | ||||
| GLIBTOP_MAX_SEM_LIMITS | ||||
| glibtop_sem_limits | ||||
| glibtop_get_sem_limits | ||||
| glibtop_get_sem_limits_r | ||||
| glibtop_get_sem_limits_l | ||||
| glibtop_init_sem_limits_p | ||||
| glibtop_get_sem_limits_p | ||||
| glibtop_init_sem_limits_s | ||||
| glibtop_get_sem_limits_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/prockernel.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>prockernel</FILE> | ||||
| GLIBTOP_PROC_KERNEL_K_FLAGS | ||||
| GLIBTOP_PROC_KERNEL_MIN_FLT | ||||
| GLIBTOP_PROC_KERNEL_MAJ_FLT | ||||
| GLIBTOP_PROC_KERNEL_CMIN_FLT | ||||
| GLIBTOP_PROC_KERNEL_CMAJ_FLT | ||||
| GLIBTOP_PROC_KERNEL_KSTK_ESP | ||||
| GLIBTOP_PROC_KERNEL_KSTK_EIP | ||||
| GLIBTOP_PROC_KERNEL_NWCHAN | ||||
| GLIBTOP_PROC_KERNEL_WCHAN | ||||
| GLIBTOP_MAX_PROC_KERNEL | ||||
| glibtop_proc_kernel | ||||
| glibtop_get_proc_kernel | ||||
| glibtop_get_proc_kernel_r | ||||
| glibtop_get_proc_kernel_l | ||||
| glibtop_init_proc_kernel_p | ||||
| glibtop_get_proc_kernel_p | ||||
| glibtop_init_proc_kernel_s | ||||
| glibtop_get_proc_kernel_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/fsusage.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>fsusage</FILE> | ||||
| GLIBTOP_FSUSAGE_BLOCKS | ||||
| GLIBTOP_FSUSAGE_BFREE | ||||
| GLIBTOP_FSUSAGE_BAVAIL | ||||
| GLIBTOP_FSUSAGE_FILES | ||||
| GLIBTOP_FSUSAGE_FFREE | ||||
| GLIBTOP_FSUSAGE_BLOCK_SIZE | ||||
| GLIBTOP_FSUSAGE_READ | ||||
| GLIBTOP_FSUSAGE_WRITE | ||||
| GLIBTOP_MAX_FSUSAGE | ||||
| glibtop_fsusage | ||||
| glibtop_get_fsusage | ||||
| glibtop_get_fsusage_r | ||||
| glibtop_get_fsusage_l | ||||
| glibtop_get_fsusage_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/loadavg.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>loadavg</FILE> | ||||
| GLIBTOP_LOADAVG_LOADAVG | ||||
| GLIBTOP_LOADAVG_NR_RUNNING | ||||
| GLIBTOP_LOADAVG_NR_TASKS | ||||
| GLIBTOP_LOADAVG_LAST_PID | ||||
| GLIBTOP_MAX_LOADAVG | ||||
| glibtop_loadavg | ||||
| glibtop_get_loadavg | ||||
| glibtop_get_loadavg_r | ||||
| glibtop_get_loadavg_l | ||||
| glibtop_init_loadavg_p | ||||
| glibtop_get_loadavg_p | ||||
| glibtop_init_loadavg_s | ||||
| glibtop_get_loadavg_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/mem.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>mem</FILE> | ||||
| GLIBTOP_MEM_TOTAL | ||||
| GLIBTOP_MEM_USED | ||||
| GLIBTOP_MEM_FREE | ||||
| GLIBTOP_MEM_SHARED | ||||
| GLIBTOP_MEM_BUFFER | ||||
| GLIBTOP_MEM_CACHED | ||||
| GLIBTOP_MEM_USER | ||||
| GLIBTOP_MEM_LOCKED | ||||
| GLIBTOP_MAX_MEM | ||||
| glibtop_mem | ||||
| glibtop_get_mem | ||||
| glibtop_get_mem_r | ||||
| glibtop_get_mem_l | ||||
| glibtop_init_mem_p | ||||
| glibtop_get_mem_p | ||||
| glibtop_init_mem_s | ||||
| glibtop_get_mem_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/mountlist.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>mountlist</FILE> | ||||
| GLIBTOP_MOUNTLIST_NUMBER | ||||
| GLIBTOP_MOUNTLIST_TOTAL | ||||
| GLIBTOP_MOUNTLIST_SIZE | ||||
| GLIBTOP_MAX_MOUNTLIST | ||||
| glibtop_mountentry | ||||
| glibtop_mountlist | ||||
| glibtop_get_mountlist | ||||
| glibtop_get_mountlist_r | ||||
| glibtop_get_mountlist_l | ||||
| glibtop_get_mountlist_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/msg_limits.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>msg_limits</FILE> | ||||
| GLIBTOP_IPC_MSGPOOL | ||||
| GLIBTOP_IPC_MSGMAP | ||||
| GLIBTOP_IPC_MSGMAX | ||||
| GLIBTOP_IPC_MSGMNB | ||||
| GLIBTOP_IPC_MSGMNI | ||||
| GLIBTOP_IPC_MSGSSZ | ||||
| GLIBTOP_IPC_MSGTQL | ||||
| GLIBTOP_MAX_MSG_LIMITS | ||||
| glibtop_msg_limits | ||||
| glibtop_get_msg_limits | ||||
| glibtop_get_msg_limits_r | ||||
| glibtop_get_msg_limits_l | ||||
| glibtop_init_msg_limits_p | ||||
| glibtop_get_msg_limits_p | ||||
| glibtop_init_msg_limits_s | ||||
| glibtop_get_msg_limits_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/cpu.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>cpu</FILE> | ||||
| GLIBTOP_CPU_TOTAL | ||||
| GLIBTOP_CPU_USER | ||||
| GLIBTOP_CPU_NICE | ||||
| GLIBTOP_CPU_SYS | ||||
| GLIBTOP_CPU_IDLE | ||||
| GLIBTOP_CPU_FREQUENCY | ||||
| GLIBTOP_XCPU_TOTAL | ||||
| GLIBTOP_XCPU_USER | ||||
| GLIBTOP_XCPU_NICE | ||||
| GLIBTOP_XCPU_SYS | ||||
| GLIBTOP_XCPU_IDLE | ||||
| GLIBTOP_XCPU_FLAGS | ||||
| GLIBTOP_CPU_IOWAIT | ||||
| GLIBTOP_CPU_IRQ | ||||
| GLIBTOP_CPU_SOFTIRQ | ||||
| GLIBTOP_XCPU_IOWAIT | ||||
| GLIBTOP_XCPU_IRQ | ||||
| GLIBTOP_XCPU_SOFTIRQ | ||||
| GLIBTOP_MAX_CPU | ||||
| GLIBTOP_NCPU | ||||
| glibtop_cpu | ||||
| glibtop_get_cpu | ||||
| glibtop_get_cpu_r | ||||
| glibtop_get_cpu_l | ||||
| glibtop_init_cpu_p | ||||
| glibtop_get_cpu_p | ||||
| glibtop_init_cpu_s | ||||
| glibtop_get_cpu_s | ||||
| </SECTION> | ||||
|  | ||||
| <INCLUDE>glibtop/swap.h</INCLUDE> | ||||
| <SECTION> | ||||
| <FILE>swap</FILE> | ||||
| GLIBTOP_SWAP_TOTAL | ||||
| GLIBTOP_SWAP_USED | ||||
| GLIBTOP_SWAP_FREE | ||||
| GLIBTOP_SWAP_PAGEIN | ||||
| GLIBTOP_SWAP_PAGEOUT | ||||
| GLIBTOP_MAX_SWAP | ||||
| glibtop_swap | ||||
| glibtop_get_swap | ||||
| glibtop_get_swap_r | ||||
| glibtop_get_swap_l | ||||
| glibtop_init_swap_p | ||||
| glibtop_get_swap_p | ||||
| glibtop_init_swap_s | ||||
| glibtop_get_swap_s | ||||
| </SECTION> | ||||
|  | ||||
| @@ -1,4 +0,0 @@ | ||||
| <?xml version="1.0" standalone="no"?> | ||||
| <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" | ||||
|     "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> | ||||
| <phrase>@PACKAGE_VERSION@</phrase> | ||||
| @@ -1,90 +0,0 @@ | ||||
| @node White Paper, Reference Manual, About, Top | ||||
| @chapter LibGTop White Paper | ||||
|  | ||||
| @menu | ||||
| * Introduction::                Introduction | ||||
| * Overview::                    Overview | ||||
| @end menu | ||||
|  | ||||
| @node Introduction, Overview, White Paper, White Paper | ||||
| @section Introduction | ||||
|  | ||||
| Many modern UNIX systems like Solaris, BSD or Digitial Unix only allow | ||||
| priviledged processes to read information like CPU and Memory Usage or | ||||
| information about running processes. | ||||
|  | ||||
| @itemize @bullet | ||||
| @item | ||||
| BSD, for instance, doesn't have any other way to get those data than reading | ||||
| directly from @file{/dev/kmem} and you need to be in the @code{kmem} group to | ||||
| be able to read this. | ||||
|  | ||||
| @item | ||||
| Other systems, like Digital Unix, allow all users to get things like CPU and | ||||
| Memory statistics, but only root may read information about any process other | ||||
| than the current one (you may not even get information about your own processes | ||||
| if you're not root). | ||||
|  | ||||
| @item | ||||
| Linux has a very nice @file{/proc} filesystem, but reading and parsing | ||||
| @file{/proc} is very slow and inefficient. | ||||
|  | ||||
| @item | ||||
| Solaris is a bit better, but you still need to be in the @code{sys} group or | ||||
| even root to get some data. | ||||
| @end itemize | ||||
|  | ||||
| Because of this system utilities like @code{ps}, @code{uptime} or @code{top} | ||||
| often are setgid kmem or setuid root. Usually, they're also very specific to | ||||
| the system they're written for and not easily portable to other systems without | ||||
| a lot of work. | ||||
|  | ||||
| This, of cause, becomes a problem for graphical tools like @code{gtop} - making | ||||
| a GTK+ program setgid or even setuid would be a security hole as big as you can | ||||
| drive the entire X11 source code through. For the GNOME project, we also needed | ||||
| some kind of library which provides all the required information in a portable | ||||
| since there's more than just one single program that wants to use them - for | ||||
| instance @code{gtop} and the @code{multiload}, @code{cpumemusage} and | ||||
| @code{netload} panel applets. | ||||
|  | ||||
| @node Overview,  , Introduction, White Paper | ||||
| @section Overview | ||||
|  | ||||
| This section should give you a short overview on how LibGTop was developed, which | ||||
| things needed to be considered and how it works. | ||||
|  | ||||
| @menu | ||||
| * Interface Design::            Things that need to be considered | ||||
| * Server Implementation::       The LibGTop "server" | ||||
| @end menu | ||||
|  | ||||
| @node Interface Design, Server Implementation, Overview, Overview | ||||
| @subsection Interface Design | ||||
|  | ||||
| At the very beginning, it was necessary to collect all the data the library part | ||||
| should provide and put them into some C structures. This was not that easiy as it | ||||
| might sound since LibGTop should be portable to any modern UNIX system with a common | ||||
| library part on all those systems, but the data that should be returned vary from | ||||
| system to system. For instance some systems support shared memory, but some others | ||||
| may not. | ||||
|  | ||||
| The header files where we define these C structures (which are system-independent) are | ||||
| shared between client and server. This way we can call the system dependent code | ||||
| directly where we do not need any special privileges to do so. | ||||
|  | ||||
| All of those structures contain a @code{flags} member which is interpreted as a bit | ||||
| mask and tells the caller of the library functions which of the fields in the returned | ||||
| structure are valid and which are not. | ||||
|  | ||||
| @node Server Implementation,  , Interface Design, Overview | ||||
| @subsection Server Implementation | ||||
|  | ||||
| The LibGTop @dfn{server} is a setgid/setuid binary which contains all the system | ||||
| dependent code which needs special privileges. It is only build if it's required | ||||
| on the current system (for instance, the Linux kernel provides all the required | ||||
| data via its @file{/proc} filesystem so we do not need the server at all) and it | ||||
| only contains the @dfn{features} which need privileges. | ||||
|  | ||||
| Whenever we do not need any privileges to get all the data for some of the requested | ||||
| structures (here called @dfn{features}) the library calls the sysdeps code directly | ||||
| rather than using the server. | ||||
| @@ -1,243 +0,0 @@ | ||||
| 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): | ||||
|  | ||||
| 	Added proc_mem example. | ||||
|  | ||||
| 2005-12-15  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* proclist.c: (print_pids), (main): | ||||
| 	 | ||||
| 	Improved example. | ||||
|  | ||||
| 2005-12-12  Benoît Dejean  <benoit@placenet.org> | ||||
|  | ||||
| 	* .cvsignore: | ||||
| 	* Makefile.am: | ||||
| 	* proclist.c: (main): | ||||
| 	* procmap.c: (main): | ||||
|  | ||||
| 	Added quick example for glibtop_get_proclist() | ||||
| 	and updated procmap example to display smap. | ||||
|  | ||||
| 2005-08-02  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_cpu), (pprint_get_loadavg), | ||||
| 	(pprint_get_mem), (pprint_get_msg_limits), (pprint_get_netlist), | ||||
| 	(pprint_get_swap), (pprint_get_uptime), (pprint_get_proc_kernel), | ||||
| 	(main): | ||||
|  | ||||
| 	Added pprint_get_proc_kernel(pid). | ||||
| 	Fixed prototypes. | ||||
|  | ||||
| 2005-01-22  Benoît Dejean  <TazForEver@dlfp.org> | ||||
|  | ||||
| 	* openfiles.c: (show_open_files): Updated. | ||||
|  | ||||
| 2004-12-23  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* netload.c: (main): | ||||
| 	* procmap.c: (main): s/glibtop_error/g_error/g | ||||
|  | ||||
| 2004-11-15  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* netload.c: (hwaddress_format_for_display), (main): Updated. | ||||
|  | ||||
| 2004-11-13  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_fsusage), (pprint_get_mountlist), | ||||
| 	(pprint_get_netload), (pprint_get_netlist), (main): Updated. | ||||
|  | ||||
| 2004-09-25  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (main): Re-added pprint_get_msg_limits() | ||||
|  | ||||
| i2004-09-25  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* df.c: (main): | ||||
| 	* pprint.c: (main): | ||||
| 	* procargs.c: (main): Added missing call to glibgtop_init() / glibtop_close() | ||||
|  | ||||
| 2004-09-24  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* .cvsignore: | ||||
| 	* Makefile.am: | ||||
| 	* ../configure.in | ||||
| 	* df.c: (print_fsusage), (main): Added new example, just like 'df'. | ||||
|  | ||||
| 2004-09-22  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (main): Disable pprint_get_msg_limits() because it can fail. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_swap), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: (show_args), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_mountlist), (pprint_get_netload), | ||||
| 	(pprint_get_uptime), (main): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* pprint.c: (pprint_get_mountlist): Updated. | ||||
|  | ||||
| 2004-09-21  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: (show_args), (main): Updated. | ||||
|  | ||||
| 2004-09-20  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* .cvsignore: | ||||
| 	* Makefile.am: | ||||
| 	* pprint.c: (pprint_get_cpu), (pprint_get_fsusage), | ||||
| 	(pprint_get_loadavg), (pprint_get_mem), (pprint_get_mountlist), | ||||
| 	(pprint_get_msg_limits), (main): Added new example : pretty prints | ||||
| 	the result of glibtop_*. Work in progress. | ||||
| 	 | ||||
| 	Now builds procargs. | ||||
| 	 | ||||
| 	* ../configure.in: Added to static list. | ||||
|  | ||||
| 2004-07-07  Benoît Dejean  <tazforever@dlfp.org> | ||||
|  | ||||
| 	* procargs.c: Added glibtop_get_proc_argv demo. | ||||
|  | ||||
| 2003-12-27  Ole Laursen  <olau@hardworking.dk> | ||||
|  | ||||
| 	* mountlist.c: Updated to display block size too. | ||||
|  | ||||
| 2004-03-04  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* smp.c: use libgtop-i18n.h | ||||
|  | ||||
| 2003-10-21  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: | ||||
| 	* smp.c: | ||||
| 	* sysdeps.c: (main): install only one library, libgtop-2.0 | ||||
| 	Fix build-time warnings due to the redefinition of guint64 | ||||
| 	Fix building smp.c and sysdeps.c | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* first.c: | ||||
| 	* mountlist.c: | ||||
| 	* netload.c: | ||||
| 	* procmap.c: | ||||
| 	* second.c: | ||||
| 	* smp.c: | ||||
| 	* sysdeps.c: | ||||
| 	* third.c: | ||||
| 	* timings.c: fixed compilation | ||||
|  | ||||
| 2003-10-20  Bastien Nocera  <hadess@hadess.net> | ||||
|  | ||||
| 	* Makefile.am: removed traces of guile, intllibs and libgnomesupport | ||||
|  | ||||
| 2001-01-14  Abel Cheung  <maddog@linux.org.hk> | ||||
|  | ||||
| 	* \*.c: bindtextdomain and textdomain uses GETTEXT_PACKAGE. | ||||
|  | ||||
| 	* Makefile.am, first.c, second.c, sysdeps.c: Make them at least | ||||
| 	compile for now, by disabling chunks which should belong to | ||||
| 	HEAD branch. | ||||
|  | ||||
| 1999-05-28  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* first.c, second.c, sysdeps.c: Use LibGTop version conditionals | ||||
|  	so we can more easily merge the code into LIBGTOP_STABLE_1_0. | ||||
|  | ||||
| 1999-05-07  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* timings.c (timersub): Renamed this to `libgtop_timersub' and define | ||||
| 	it on all systems. | ||||
|  | ||||
| Fri Apr  9 00:14:52 1999 Timur Bakeyev  <timur@gnu.org> | ||||
|  | ||||
| 	* timings.c: Added timersub defenition, to make code compilable on | ||||
| 	BSDI. | ||||
|  | ||||
| 1999-03-24  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* timings.c: New example. | ||||
|  | ||||
| 1999-03-17  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* first.c, second.c: Fixed a bug that caused a core dump when | ||||
| 	the sysdeps code does not return all data. | ||||
|  | ||||
| 1998-11-22  Martin Baulig  <baulig@taurus.uni-trier.de> | ||||
|  | ||||
| 	* netload.c: Call inet_ntoa () to get address and subnet | ||||
| 	in quatted dot notation (like 136.199.14.201) and not just | ||||
| 	as a number (like 0xc90ec788). | ||||
|  | ||||
| 1998-11-02  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* sysdeps.c: New example. | ||||
|  | ||||
| 1998-10-26  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* netload.c: New file. Gets network load for the interface | ||||
| 	given as command line argument. | ||||
|  | ||||
| 1998-10-26  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* first.c (glibtop_get_proc_args): Get command line arguments. | ||||
| 	* second.c: Likewise. | ||||
|  | ||||
| 1998-10-25  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* first.c (glibtop_get_ppp): Get PPP/ISDN statistics. | ||||
|  | ||||
| 1998-09-28  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am: Install everything in $(libexecdir)/libgtop. | ||||
|  | ||||
| 1998-09-09  Martin Baulig <baulig@Stud.Informatik.uni-trier.de> | ||||
|  | ||||
| 	* smp.c: New file. Nice tool to show CPU statistics on SMP systems. | ||||
|  | ||||
| 1998-08-25  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* first.c, second.c, procmap.c: Fixed some compiler warnings. | ||||
|  | ||||
| 1998-08-18  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* procmap.c: We now display filenames when compiled | ||||
| 	`--with-libgtop-inodedb'. | ||||
|  | ||||
| 1998-08-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* second.c: Works a little bit more like `ps' - you can | ||||
| 	give an optional command line argument to get information | ||||
| 	about a single process. | ||||
|  | ||||
| 1998-07-22  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* mountlist.c: New file. | ||||
|  | ||||
| 1998-06-12  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* test.scm: New file. | ||||
|  | ||||
| 1998-06-07  Martin Baulig  <martin@home-of-linux.org> | ||||
|  | ||||
| 	* Makefile.am (CFLAGS): Disable optimize. | ||||
|  | ||||
| 	* first.c (PROFILE_COUNT): Number of times each function | ||||
| 	should be called. Defaults to 1; to profile the code, you | ||||
| 	can increase this when compiling. | ||||
| @@ -1,58 +0,0 @@ | ||||
| ## Process this file with automake to produce Makefile.in | ||||
|  | ||||
| AM_LDFLAGS			= $(LIBGTOP_EXTRA_LIBS) | ||||
|  | ||||
| noinst_PROGRAMS	= 	first second pprint procargs df netlist \ | ||||
| 			  mountlist procmap netload sysdeps timings \ | ||||
| 			  openfiles smp proclist free wd affinity | ||||
|  | ||||
| first_SOURCES		= first.c | ||||
| first_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| second_SOURCES		= second.c | ||||
| second_LDADD		= $(top_builddir)/lib/libgtop-2.0.la -lm | ||||
|  | ||||
| procmap_SOURCES		= procmap.c | ||||
| procmap_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| netload_SOURCES		= netload.c | ||||
| netload_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| sysdeps_SOURCES		= sysdeps.c | ||||
| sysdeps_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| mountlist_SOURCES	= mountlist.c | ||||
| mountlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| smp_SOURCES		= smp.c | ||||
| smp_LDADD		= $(top_builddir)/lib/libgtop-2.0.la -lm | ||||
|  | ||||
| timings_SOURCES		= timings.c | ||||
| timings_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| pprint_SOURCES	        = pprint.c | ||||
| 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 | ||||
|  | ||||
| netlist_SOURCES		= netlist.c | ||||
| netlist_LDADD		= $(top_builddir)/lib/libgtop-2.0.la | ||||
|  | ||||
| openfiles_SOURCES	= openfiles.c | ||||
| 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 | ||||
| @@ -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; | ||||
| } | ||||
|  | ||||
| @@ -1,76 +0,0 @@ | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
| #include <glibtop.h> | ||||
|  | ||||
| #include <glibtop/fsusage.h> | ||||
| #include <glibtop/mountlist.h> | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
|  | ||||
| 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); | ||||
| } | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_mountlist buf; | ||||
|  | ||||
|   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"); | ||||
|  | ||||
|   if (argc > 1) { | ||||
|     while (*++argv) | ||||
|       print_fsusage(*argv); | ||||
|   } else { | ||||
|     glibtop_mountentry *entries; | ||||
|     size_t i; | ||||
|  | ||||
|     entries = glibtop_get_mountlist(&buf, TRUE); | ||||
|  | ||||
|     for(i = 0; i < buf.number; ++i) | ||||
|       { | ||||
| 	print_fsusage(entries[i].mountdir); | ||||
|       } | ||||
|  | ||||
|     g_free(entries); | ||||
|   } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
							
								
								
									
										578
									
								
								examples/first.c
									
									
									
									
									
								
							
							
						
						
									
										578
									
								
								examples/first.c
									
									
									
									
									
								
							| @@ -1,578 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <sys/resource.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT	1 | ||||
| #endif | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_union data; | ||||
| 	glibtop_sysdeps sysdeps; | ||||
| 	unsigned c, method, count, port, i; | ||||
| 	char buffer [BUFSIZ]; | ||||
| 	pid_t pid, ppid, *ptr; | ||||
| 	char *args; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); | ||||
|  | ||||
| 	printf ("Method = %d\n", method); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	printf ("Command = '%s'\n", buffer); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); | ||||
|  | ||||
| 	printf ("Host = '%s' - %u\n\n", buffer, port); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 	  	glibtop_get_cpu (&data.cpu); | ||||
|  | ||||
| 	printf ("CPU          (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.cpu.flags, | ||||
| 		(unsigned long) data.cpu.total, | ||||
| 		(unsigned long) data.cpu.user, | ||||
| 		(unsigned long) data.cpu.nice, | ||||
| 		(unsigned long) data.cpu.sys, | ||||
| 		(unsigned long) data.cpu.idle, | ||||
| 		(unsigned long) data.cpu.frequency); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_mem (&data.mem); | ||||
|  | ||||
| 	printf ("Memory       (0x%08lx): " | ||||
| 		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.mem.flags, | ||||
| 		(unsigned long) data.mem.total, | ||||
| 		(unsigned long) data.mem.used, | ||||
| 		(unsigned long) data.mem.free, | ||||
| 		(unsigned long) data.mem.shared, | ||||
| 		(unsigned long) data.mem.buffer, | ||||
| 		(unsigned long) data.mem.cached, | ||||
| 		(unsigned long) data.mem.user, | ||||
| 		(unsigned long) data.mem.locked); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_swap (&data.swap); | ||||
|  | ||||
| 	printf ("Swap         (0x%08lx): %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.swap.flags, | ||||
| 		(unsigned long) data.swap.total, | ||||
| 		(unsigned long) data.swap.used, | ||||
| 		(unsigned long) data.swap.free, | ||||
| 		(unsigned long) data.swap.pagein, | ||||
| 		(unsigned long) data.swap.pageout); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_uptime (&data.uptime); | ||||
|  | ||||
| 	printf ("Uptime       (0x%08lx): %f, %f\n", | ||||
| 		(unsigned long) data.uptime.flags, | ||||
| 		data.uptime.uptime, data.uptime.idletime); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_loadavg (&data.loadavg); | ||||
|  | ||||
| 	printf ("Loadavg      (0x%08lx): %f, %f, %f - %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.loadavg.flags, | ||||
| 		(double) data.loadavg.loadavg [0], | ||||
| 		(double) data.loadavg.loadavg [1], | ||||
| 		(double) data.loadavg.loadavg [2], | ||||
| 		(unsigned long) data.loadavg.nr_running, | ||||
| 		(unsigned long) data.loadavg.nr_tasks, | ||||
| 		(unsigned long) data.loadavg.last_pid); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_shm_limits (&data.shm_limits); | ||||
|  | ||||
| 	printf ("Shm Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.shm_limits.flags, | ||||
| 		(unsigned long) data.shm_limits.shmmax, | ||||
| 		(unsigned long) data.shm_limits.shmmin, | ||||
| 		(unsigned long) data.shm_limits.shmmni, | ||||
| 		(unsigned long) data.shm_limits.shmseg, | ||||
| 		(unsigned long) data.shm_limits.shmall); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_msg_limits (&data.msg_limits); | ||||
|  | ||||
| 	printf ("Msg Limits   (0x%08lx): %lu, %lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.msg_limits.flags, | ||||
| 		(unsigned long) data.msg_limits.msgpool, | ||||
| 		(unsigned long) data.msg_limits.msgmap, | ||||
| 		(unsigned long) data.msg_limits.msgmax, | ||||
| 		(unsigned long) data.msg_limits.msgmnb, | ||||
| 		(unsigned long) data.msg_limits.msgmni, | ||||
| 		(unsigned long) data.msg_limits.msgssz, | ||||
| 		(unsigned long)  data.msg_limits.msgtql); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_sem_limits (&data.sem_limits); | ||||
|  | ||||
| 	printf ("Sem Limits   (0x%08lx): " | ||||
| 		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.sem_limits.flags, | ||||
| 		(unsigned long) data.sem_limits.semmap, | ||||
| 		(unsigned long) data.sem_limits.semmni, | ||||
| 		(unsigned long) data.sem_limits.semmns, | ||||
| 		(unsigned long) data.sem_limits.semmnu, | ||||
| 		(unsigned long) data.sem_limits.semmsl, | ||||
| 		(unsigned long) data.sem_limits.semopm, | ||||
| 		(unsigned long) data.sem_limits.semume, | ||||
| 		(unsigned long) data.sem_limits.semusz, | ||||
| 		(unsigned long) data.sem_limits.semvmx, | ||||
| 		(unsigned long) data.sem_limits.semaem); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_ppp (&data.ppp, 0); | ||||
|  | ||||
| 	printf ("PPP          (0x%08lx): %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.ppp.flags, | ||||
| 		(unsigned long) data.ppp.state, | ||||
| 		(unsigned long) data.ppp.bytes_in, | ||||
| 		(unsigned long) data.ppp.bytes_out); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	glibtop_get_sysdeps (&sysdeps); | ||||
|  | ||||
| 	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, " | ||||
| 		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, " | ||||
| 		"%lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) sysdeps.flags, | ||||
| 		(unsigned long) sysdeps.cpu, | ||||
| 		(unsigned long) sysdeps.mem, | ||||
| 		(unsigned long) sysdeps.swap, | ||||
| 		(unsigned long) sysdeps.uptime, | ||||
| 		(unsigned long) sysdeps.loadavg, | ||||
| 		(unsigned long) sysdeps.shm_limits, | ||||
| 		(unsigned long) sysdeps.msg_limits, | ||||
| 		(unsigned long) sysdeps.sem_limits, | ||||
| 		(unsigned long) sysdeps.proclist, | ||||
| 		(unsigned long) sysdeps.proc_state, | ||||
| 		(unsigned long) sysdeps.proc_uid, | ||||
| 		(unsigned long) sysdeps.proc_mem, | ||||
| 		(unsigned long) sysdeps.proc_time, | ||||
| 		(unsigned long) sysdeps.proc_signal, | ||||
| 		(unsigned long) sysdeps.proc_kernel, | ||||
| 		(unsigned long) sysdeps.proc_segment, | ||||
| 		(unsigned long) sysdeps.proc_args, | ||||
| 		(unsigned long) sysdeps.proc_map, | ||||
| 		(unsigned long) sysdeps.mountlist, | ||||
| 		(unsigned long) sysdeps.fsusage, | ||||
| 		(unsigned long) sysdeps.netload, | ||||
| 		(unsigned long) sysdeps.ppp); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
|  | ||||
| 	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n", | ||||
| 		(unsigned long) data.proclist.flags, | ||||
| 		(unsigned long) data.proclist.number, | ||||
| 		(unsigned long) data.proclist.size, | ||||
| 		(unsigned long) data.proclist.total); | ||||
|  | ||||
| 	if (ptr) { | ||||
| 		printf ("\nProcess: "); | ||||
| 		for (i = 0; i < data.proclist.number; i++) | ||||
| 			printf ("%s%u", i ? ", " : "", ptr [i]); | ||||
| 		printf ("\n"); | ||||
| 	} | ||||
|  | ||||
| 	g_free (ptr); | ||||
|  | ||||
| 	pid = getpid (); | ||||
| 	ppid = getppid (); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_state (&data.proc_state, pid); | ||||
|  | ||||
| 	printf ("Proc_State   PID  %5d (0x%08lx): '%s', %c, %lu, %lu\n", | ||||
| 		(int) pid, (unsigned long) data.proc_state.flags, | ||||
| 		data.proc_state.cmd, data.proc_state.state, | ||||
| 		(unsigned long) data.proc_state.uid, | ||||
| 		(unsigned long) data.proc_state.gid); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_uid (&data.proc_uid, pid); | ||||
|  | ||||
| 	printf ("Proc_Uid     PID  %5d (0x%08lx): " | ||||
| 		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid, | ||||
| 		(unsigned long) data.proc_uid.flags, | ||||
| 		data.proc_uid.uid, data.proc_uid.euid, | ||||
| 		data.proc_uid.gid, data.proc_uid.egid, | ||||
| 		data.proc_uid.pid, data.proc_uid.ppid, | ||||
| 		data.proc_uid.pgrp, data.proc_uid.session, | ||||
| 		data.proc_uid.tty, data.proc_uid.tpgid, | ||||
| 		data.proc_uid.priority, data.proc_uid.nice); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_mem (&data.proc_mem, pid); | ||||
|  | ||||
| 	printf ("Proc_Mem     PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_mem.flags, | ||||
| 		(unsigned long) data.proc_mem.size, | ||||
| 		(unsigned long) data.proc_mem.vsize, | ||||
| 		(unsigned long) data.proc_mem.resident, | ||||
| 		(unsigned long) data.proc_mem.share, | ||||
| 		(unsigned long) data.proc_mem.rss, | ||||
| 		(unsigned long) data.proc_mem.rss_rlim); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_segment (&data.proc_segment, pid); | ||||
|  | ||||
| 	printf ("Proc_Segment PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_segment.flags, | ||||
| 		(unsigned long) data.proc_segment.text_rss, | ||||
| 		(unsigned long) data.proc_segment.shlib_rss, | ||||
| 		(unsigned long) data.proc_segment.data_rss, | ||||
| 		(unsigned long) data.proc_segment.stack_rss, | ||||
| 		(unsigned long) data.proc_segment.dirty_size, | ||||
| 		(unsigned long) data.proc_segment.start_code, | ||||
| 		(unsigned long) data.proc_segment.end_code, | ||||
| 		(unsigned long) data.proc_segment.start_stack); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_time (&data.proc_time, pid); | ||||
|  | ||||
| 	printf ("Proc_Time    PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_time.flags, | ||||
| 		(unsigned long) data.proc_time.start_time, | ||||
| 		(unsigned long) data.proc_time.rtime, | ||||
| 		(unsigned long) data.proc_time.utime, | ||||
| 		(unsigned long) data.proc_time.stime, | ||||
| 		(unsigned long) data.proc_time.cutime, | ||||
| 		(unsigned long) data.proc_time.cstime, | ||||
| 		(unsigned long) data.proc_time.timeout, | ||||
| 		(unsigned long) data.proc_time.it_real_value, | ||||
| 		(unsigned long) data.proc_time.frequency); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_signal (&data.proc_signal, pid); | ||||
|  | ||||
| 	printf ("Proc_Signal  PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_signal.flags, | ||||
| 		(unsigned long) data.proc_signal.signal, | ||||
| 		(unsigned long) data.proc_signal.blocked, | ||||
| 		(unsigned long) data.proc_signal.sigignore, | ||||
| 		(unsigned long) data.proc_signal.sigcatch); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_kernel (&data.proc_kernel, pid); | ||||
|  | ||||
| 	printf ("Proc_Kernel  PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid, | ||||
| 		(unsigned long) data.proc_kernel.flags, | ||||
| 		(unsigned long) data.proc_kernel.k_flags, | ||||
| 		(unsigned long) data.proc_kernel.min_flt, | ||||
| 		(unsigned long) data.proc_kernel.maj_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmin_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmaj_flt, | ||||
| 		(unsigned long) data.proc_kernel.kstk_esp, | ||||
| 		(unsigned long) data.proc_kernel.kstk_eip, | ||||
| 		(unsigned long) data.proc_kernel.nwchan, | ||||
| 		data.proc_kernel.wchan); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	args = glibtop_get_proc_args (&data.proc_args, pid, 0); | ||||
|  | ||||
| 	for (i = 0; i < data.proc_args.size; i++) { | ||||
| 		if (args [i]) continue; | ||||
| 		args [i] = '|'; | ||||
| 	} | ||||
|  | ||||
| 	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid, | ||||
| 		(unsigned long) data.proc_args.flags, | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_state (&data.proc_state, ppid); | ||||
|  | ||||
| 	printf ("Proc_State   PPID %5d (0x%08lx): '%s', %c, %lu, %lu\n", | ||||
| 		(int) ppid, (unsigned long) data.proc_state.flags, | ||||
| 		data.proc_state.cmd, data.proc_state.state, | ||||
| 		(unsigned long) data.proc_state.uid, | ||||
| 		(unsigned long) data.proc_state.gid); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_uid (&data.proc_uid, ppid); | ||||
|  | ||||
| 	printf ("Proc_Uid     PPID %5d (0x%08lx): " | ||||
| 		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_uid.flags, | ||||
| 		data.proc_uid.uid, data.proc_uid.euid, | ||||
| 		data.proc_uid.gid, data.proc_uid.egid, | ||||
| 		data.proc_uid.pid, data.proc_uid.ppid, | ||||
| 		data.proc_uid.pgrp, data.proc_uid.session, | ||||
| 		data.proc_uid.tty, data.proc_uid.tpgid, | ||||
| 		data.proc_uid.priority, data.proc_uid.nice); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_mem (&data.proc_mem, ppid); | ||||
|  | ||||
| 	printf ("Proc_Mem     PPID %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_mem.flags, | ||||
| 		(unsigned long) data.proc_mem.size, | ||||
| 		(unsigned long) data.proc_mem.vsize, | ||||
| 		(unsigned long) data.proc_mem.resident, | ||||
| 		(unsigned long) data.proc_mem.share, | ||||
| 		(unsigned long) data.proc_mem.rss, | ||||
| 		(unsigned long) data.proc_mem.rss_rlim); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_segment (&data.proc_segment, ppid); | ||||
|  | ||||
| 	printf ("Proc_Segment PPID %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_segment.flags, | ||||
| 		(unsigned long) data.proc_segment.text_rss, | ||||
| 		(unsigned long) data.proc_segment.shlib_rss, | ||||
| 		(unsigned long) data.proc_segment.data_rss, | ||||
| 		(unsigned long) data.proc_segment.stack_rss, | ||||
| 		(unsigned long) data.proc_segment.dirty_size, | ||||
| 		(unsigned long) data.proc_segment.start_code, | ||||
| 		(unsigned long) data.proc_segment.end_code, | ||||
| 		(unsigned long) data.proc_segment.start_stack); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_time (&data.proc_time, ppid); | ||||
|  | ||||
| 	printf ("Proc_Time    PPID %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_time.flags, | ||||
| 		(unsigned long) data.proc_time.start_time, | ||||
| 		(unsigned long) data.proc_time.rtime, | ||||
| 		(unsigned long) data.proc_time.utime, | ||||
| 		(unsigned long) data.proc_time.stime, | ||||
| 		(unsigned long) data.proc_time.cutime, | ||||
| 		(unsigned long) data.proc_time.cstime, | ||||
| 		(unsigned long) data.proc_time.timeout, | ||||
| 		(unsigned long) data.proc_time.it_real_value, | ||||
| 		(unsigned long) data.proc_time.frequency); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_signal (&data.proc_signal, ppid); | ||||
|  | ||||
| 	printf ("Proc_Signal  PPID %5d (0x%08lx): %lu %lu %lu %lu\n", | ||||
| 		(int) ppid, (unsigned long) data.proc_signal.flags, | ||||
| 		(unsigned long) data.proc_signal.signal, | ||||
| 		(unsigned long) data.proc_signal.blocked, | ||||
| 		(unsigned long) data.proc_signal.sigignore, | ||||
| 		(unsigned long) data.proc_signal.sigcatch); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_kernel (&data.proc_kernel, ppid); | ||||
|  | ||||
| 	printf ("Proc_Kernel  PPID %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_kernel.flags, | ||||
| 		(unsigned long) data.proc_kernel.k_flags, | ||||
| 		(unsigned long) data.proc_kernel.min_flt, | ||||
| 		(unsigned long) data.proc_kernel.maj_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmin_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmaj_flt, | ||||
| 		(unsigned long) data.proc_kernel.kstk_esp, | ||||
| 		(unsigned long) data.proc_kernel.kstk_eip, | ||||
| 		(unsigned long) data.proc_kernel.nwchan, | ||||
| 		data.proc_kernel.wchan); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	args = glibtop_get_proc_args (&data.proc_args, ppid, 0); | ||||
|  | ||||
| 	for (i = 0; i < data.proc_args.size; i++) { | ||||
| 		if (args [i]) continue; | ||||
| 		args [i] = '|'; | ||||
| 	} | ||||
|  | ||||
| 	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) ppid, | ||||
| 		(unsigned long) data.proc_args.flags, | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_state (&data.proc_state, 1); | ||||
|  | ||||
| 	printf ("Proc_State   INIT %5d (0x%08lx): '%s', %c, %lu, %lu\n", 1, | ||||
| 		(unsigned long) data.proc_state.flags, | ||||
| 		data.proc_state.cmd, data.proc_state.state, | ||||
| 		(unsigned long) data.proc_state.uid, | ||||
| 		(unsigned long) data.proc_state.gid); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_uid (&data.proc_uid, 1); | ||||
|  | ||||
| 	printf ("Proc_Uid     INIT %5d (0x%08lx): " | ||||
| 		"%d %d %d %d %d %d %d %d %d %d %d %d\n", 1, | ||||
| 		(unsigned long) data.proc_uid.flags, | ||||
| 		data.proc_uid.uid, data.proc_uid.euid, | ||||
| 		data.proc_uid.gid, data.proc_uid.egid, | ||||
| 		data.proc_uid.pid, data.proc_uid.ppid, | ||||
| 		data.proc_uid.pgrp, data.proc_uid.session, | ||||
| 		data.proc_uid.tty, data.proc_uid.tpgid, | ||||
| 		data.proc_uid.priority, data.proc_uid.nice); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_mem (&data.proc_mem, 1); | ||||
|  | ||||
| 	printf ("Proc_Mem     INIT %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu\n", 1, | ||||
| 		(unsigned long) data.proc_mem.flags, | ||||
| 		(unsigned long) data.proc_mem.size, | ||||
| 		(unsigned long) data.proc_mem.vsize, | ||||
| 		(unsigned long) data.proc_mem.resident, | ||||
| 		(unsigned long) data.proc_mem.share, | ||||
| 		(unsigned long) data.proc_mem.rss, | ||||
| 		(unsigned long) data.proc_mem.rss_rlim); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_segment (&data.proc_segment, 1); | ||||
|  | ||||
| 	printf ("Proc_Segment INIT %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu\n", 1, | ||||
| 		(unsigned long) data.proc_segment.flags, | ||||
| 		(unsigned long) data.proc_segment.text_rss, | ||||
| 		(unsigned long) data.proc_segment.shlib_rss, | ||||
| 		(unsigned long) data.proc_segment.data_rss, | ||||
| 		(unsigned long) data.proc_segment.stack_rss, | ||||
| 		(unsigned long) data.proc_segment.dirty_size, | ||||
| 		(unsigned long) data.proc_segment.start_code, | ||||
| 		(unsigned long) data.proc_segment.end_code, | ||||
| 		(unsigned long) data.proc_segment.start_stack); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_time (&data.proc_time, 1); | ||||
|  | ||||
| 	printf ("Proc_Time    INIT %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", 1, | ||||
| 		(unsigned long) data.proc_time.flags, | ||||
| 		(unsigned long) data.proc_time.start_time, | ||||
| 		(unsigned long) data.proc_time.rtime, | ||||
| 		(unsigned long) data.proc_time.utime, | ||||
| 		(unsigned long) data.proc_time.stime, | ||||
| 		(unsigned long) data.proc_time.cutime, | ||||
| 		(unsigned long) data.proc_time.cstime, | ||||
| 		(unsigned long) data.proc_time.timeout, | ||||
| 		(unsigned long) data.proc_time.it_real_value, | ||||
| 		(unsigned long) data.proc_time.frequency); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_signal (&data.proc_signal, 1); | ||||
|  | ||||
| 	printf ("Proc_Signal  INIT %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu\n", 1, | ||||
| 		(unsigned long) data.proc_signal.flags, | ||||
| 		(unsigned long) data.proc_signal.signal, | ||||
| 		(unsigned long) data.proc_signal.blocked, | ||||
| 		(unsigned long) data.proc_signal.sigignore, | ||||
| 		(unsigned long) data.proc_signal.sigcatch); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_kernel (&data.proc_kernel, 1); | ||||
|  | ||||
| 	printf ("Proc_Kernel  INIT %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", 1, | ||||
| 		(unsigned long) data.proc_kernel.flags, | ||||
| 		(unsigned long) data.proc_kernel.k_flags, | ||||
| 		(unsigned long) data.proc_kernel.min_flt, | ||||
| 		(unsigned long) data.proc_kernel.maj_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmin_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmaj_flt, | ||||
| 		(unsigned long) data.proc_kernel.kstk_esp, | ||||
| 		(unsigned long) data.proc_kernel.kstk_eip, | ||||
| 		(unsigned long) data.proc_kernel.nwchan, | ||||
| 		data.proc_kernel.wchan); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	args = glibtop_get_proc_args (&data.proc_args, 1, 0); | ||||
|  | ||||
| 	for (i = 0; i < data.proc_args.size; i++) { | ||||
| 		if (args [i]) continue; | ||||
| 		args [i] = '|'; | ||||
| 	} | ||||
|  | ||||
| 	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", 1, | ||||
| 		(unsigned long) data.proc_args.flags, | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -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; | ||||
| } | ||||
|  | ||||
| @@ -1,116 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <glibtop/mountlist.h> | ||||
| #include <glibtop/fsusage.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT	1000 | ||||
| #endif | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_fsusage fsusage; | ||||
| 	glibtop_mountlist mount_list; | ||||
| 	glibtop_mountentry *mount_entries; | ||||
| 	unsigned c, index, method, count, port; | ||||
| 	char buffer [BUFSIZ]; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); | ||||
|  | ||||
| 	printf ("Method = %d\n", method); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	printf ("Command = '%s'\n", buffer); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); | ||||
|  | ||||
| 	printf ("Host = '%s' - %u\n\n", buffer, port); | ||||
|  | ||||
| 	printf ("sbrk (0) = %p\n\n", sbrk (0)); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) { | ||||
| 		mount_entries = glibtop_get_mountlist (&mount_list, 1); | ||||
|  | ||||
| 		g_free (mount_entries); | ||||
| 	} | ||||
|  | ||||
| 	printf ("sbrk (0) = %p\n\n", sbrk (0)); | ||||
|  | ||||
| 	mount_entries = glibtop_get_mountlist (&mount_list, 1); | ||||
|  | ||||
| 	if (mount_entries == NULL) | ||||
| 		_exit (1); | ||||
|  | ||||
| 	for (index = 0; index < mount_list.number; index++) | ||||
| 		printf ("Mount_Entry: %-30s %-10s %-20s\n", | ||||
| 			mount_entries [index].mountdir, | ||||
| 			mount_entries [index].type, | ||||
| 			mount_entries [index].devname); | ||||
|  | ||||
| 	printf ("\n\n%-16s %9s %9s %9s %9s %9s %9s\n", | ||||
| 		"Mount", "Blocks", "Free", "Avail", "Files", "Free", "BlockSz"); | ||||
|  | ||||
| 	for (index = 0; index < mount_list.number; index++) { | ||||
| 		glibtop_get_fsusage (&fsusage, | ||||
| 				     mount_entries [index].mountdir); | ||||
|  | ||||
| 		printf ("%-16s %9Lu %9Lu %9Lu %9Lu %9Lu %9d\n", | ||||
| 			mount_entries [index].mountdir, | ||||
| 			fsusage.blocks, fsusage.bfree, | ||||
| 			fsusage.bavail, fsusage.files, | ||||
| 			fsusage.ffree, fsusage.block_size); | ||||
| 	} | ||||
|  | ||||
| 	g_free (mount_entries); | ||||
|  | ||||
| 	printf ("\nsbrk (0) = %p\n\n", sbrk (0)); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -1,50 +0,0 @@ | ||||
| /* Copyright (C) 2004 Benoît Dejean | ||||
|    This file is part of LibGTop 2.0. | ||||
|  | ||||
|  | ||||
|    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. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/netlist.h> | ||||
|  | ||||
|  | ||||
| int main(int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_netlist buf; | ||||
| 	char **devices; | ||||
| 	guint32 i; | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	devices = glibtop_get_netlist(&buf); | ||||
|  | ||||
| 	for(i = 0; i < buf.number; ++i) | ||||
| 	{ | ||||
| 		printf("net device '%s'\n", devices[i]); | ||||
| 	} | ||||
|  | ||||
| 	g_strfreev(devices); | ||||
|  | ||||
| 	glibtop_close(); | ||||
| 	return 0; | ||||
| } | ||||
| @@ -1,162 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <glibtop/netload.h> | ||||
|  | ||||
| #include <netinet/in.h> | ||||
| #include <arpa/inet.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT	1 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| static char* hwaddress_format_for_display(glibtop_netload *buf) | ||||
| { | ||||
| 	unsigned i; | ||||
| 	GString *repr = g_string_new(""); | ||||
| 	char *str; | ||||
|  | ||||
| 	for(i = 0; i < sizeof buf->hwaddress; ++i) | ||||
| 		g_string_append_printf(repr, "%02X:", | ||||
| 				       ((unsigned char*)buf->hwaddress)[i]); | ||||
|  | ||||
| 	repr->str [ repr->len - 1] = ' '; | ||||
| 	str = g_string_free(repr, FALSE); | ||||
| 	g_strstrip(str); | ||||
| 	return str; | ||||
| } | ||||
|  | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_netload netload; | ||||
| 	unsigned method, count, port; | ||||
| 	struct in_addr addr, subnet; | ||||
| 	char *address_string, *subnet_string; | ||||
| 	char address6_string[INET6_ADDRSTRLEN], prefix6_string[INET6_ADDRSTRLEN]; | ||||
| 	char *hwaddress_string; | ||||
| 	char buffer [BUFSIZ]; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); | ||||
|  | ||||
| 	printf ("Method = %d\n", method); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	printf ("Command = '%s'\n", buffer); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); | ||||
|  | ||||
| 	printf ("Host = '%s' - %u\n\n", buffer, port); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	if (argc != 2) | ||||
| 		g_error ("Usage: %s interface", argv [0]); | ||||
|  | ||||
| 	glibtop_get_netload (&netload, argv [1]); | ||||
|  | ||||
| 	addr.s_addr = netload.address; | ||||
| 	subnet.s_addr = netload.subnet; | ||||
|  | ||||
| 	address_string = g_strdup (inet_ntoa (addr)); | ||||
| 	subnet_string  = g_strdup (inet_ntoa (subnet)); | ||||
|  | ||||
| 	inet_ntop (AF_INET6, netload.address6, address6_string, INET6_ADDRSTRLEN); | ||||
| 	inet_ntop (AF_INET6, netload.prefix6,  prefix6_string,  INET6_ADDRSTRLEN); | ||||
|  | ||||
| 	hwaddress_string = hwaddress_format_for_display(&netload); | ||||
|  | ||||
| 	printf ("Network Load (0x%016llx):\n\n" | ||||
| 		"\tInterface Flags:\t0x%016llx\n" | ||||
| 		"\tAddress:\t\t0x%08x - %s\n" | ||||
| 		"\tSubnet:\t\t\t0x%08x - %s\n\n" | ||||
| 		"\tMTU:\t\t\t%d\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", | ||||
| 		netload.flags, | ||||
| 		netload.if_flags, | ||||
| 		(guint32) netload.address, address_string, | ||||
| 		(guint32) netload.subnet,  subnet_string, | ||||
| 		netload.mtu, | ||||
| 		netload.collisions, | ||||
| 		netload.packets_in, | ||||
| 		netload.packets_out, | ||||
| 		netload.packets_total, | ||||
| 		netload.bytes_in, | ||||
| 		netload.bytes_out, | ||||
| 		netload.bytes_total, | ||||
| 		netload.errors_in, | ||||
| 		netload.errors_out, | ||||
| 		netload.errors_total, | ||||
| 		address6_string, | ||||
| 		prefix6_string, | ||||
| 		(int) netload.scope6, | ||||
| 		hwaddress_string); | ||||
|  | ||||
|  | ||||
| 	g_free (address_string); | ||||
| 	g_free (subnet_string); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -1,75 +0,0 @@ | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procopenfiles.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| static void show_open_files(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_open_files buf; | ||||
|   glibtop_open_files_entry *files; | ||||
|   unsigned i; | ||||
|  | ||||
|   files = glibtop_get_proc_open_files(&buf, pid); | ||||
|  | ||||
|   printf("<%ld>\n", (long)pid); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|   { | ||||
| 	  printf("\tfd = %d\t", files[i].fd); | ||||
|  | ||||
| 	  switch(files[i].type) | ||||
| 	  { | ||||
| 	  case GLIBTOP_FILE_TYPE_FILE: | ||||
| 		  printf("file \"%s\"\n", files[i].info.file.name); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_PIPE: | ||||
| 		  printf("pipe\n"); | ||||
| 		  break; | ||||
|  | ||||
| 	  case GLIBTOP_FILE_TYPE_INETSOCKET: | ||||
| 		  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"); | ||||
| 	  } | ||||
|   } | ||||
|  | ||||
|   putchar('\n'); | ||||
|  | ||||
|   g_free(files); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   show_open_files(getpid()); | ||||
|  | ||||
|   while(*++argv) | ||||
|     { | ||||
|       pid_t pid = strtol(*argv, NULL, 10); | ||||
|       show_open_files(pid); | ||||
|     } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,390 +0,0 @@ | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/sysinfo.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stddef.h> | ||||
|  | ||||
|  | ||||
| #define buf_offsetof(MEMBER) ((ptrdiff_t)&(buf.MEMBER) - (ptrdiff_t)&buf) | ||||
|  | ||||
| #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", \ | ||||
| (unsigned long) sizeof buf.DATA, (unsigned long) buf_offsetof(DATA), 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) {					\ | ||||
|       printf(".%u = " FORMAT ", ", i, buf.ARRAY[i]);			\ | ||||
|       if (!buf.ARRAY[i] && i < (SIZE - 1) && !buf.ARRAY[i + 1]) {	\ | ||||
| 	do { i++; } while (i < SIZE && !buf.ARRAY[i]);			\ | ||||
| 	printf("..., ");						\ | ||||
|       }									\ | ||||
|     }									\ | ||||
|     printf("}\n");							\ | ||||
|   } while(0) | ||||
|  | ||||
| #define PPRINT_ENTRY_ARRAY(ARRAY, SIZE) do { \ | ||||
| size_t i; \ | ||||
| printf("\t%4lu B %3lu " #ARRAY "[%lu] = { ", \ | ||||
| (unsigned long) sizeof buf->ARRAY, 0,\ | ||||
| (unsigned long) G_N_ELEMENTS(buf->ARRAY)); \ | ||||
| for(i = 0; i < SIZE; ++i) { \ | ||||
|   if (buf->ARRAY[i].values) {			\ | ||||
|     printf ("[ ");				\ | ||||
|     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); \ | ||||
| } 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, "%#llx"); | ||||
|   //PPRINT(ncpu, "%llu"); | ||||
|   PPRINT_ENTRY_ARRAY(cpuinfo, 4); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
| static void pprint_get_cpu(void) | ||||
| { | ||||
|   glibtop_cpu buf; | ||||
|  | ||||
|   glibtop_get_cpu(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_cpu); | ||||
|   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(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_fsusage(const char *mountpoint) | ||||
| { | ||||
|   glibtop_fsusage buf; | ||||
|  | ||||
|   glibtop_get_fsusage(&buf, mountpoint); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_fsusage); | ||||
|   printf("pprint_get_fsusage (mountpoint = \"%s\"\n", mountpoint); | ||||
|   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(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_loadavg(void) | ||||
| { | ||||
|   glibtop_loadavg buf; | ||||
|  | ||||
|   glibtop_get_loadavg(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_loadavg); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT_ARRAY(loadavg, 3, "%f"); | ||||
|   PPRINT(nr_running, "%llu"); | ||||
|   PPRINT(nr_tasks, "%llu"); | ||||
|   PPRINT(last_pid, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_mem(void) | ||||
| { | ||||
|   glibtop_mem buf; | ||||
|  | ||||
|   glibtop_get_mem(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mem); | ||||
|   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(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_mountlist(gboolean allfs) | ||||
| { | ||||
|   glibtop_mountlist buf; | ||||
|   glibtop_mountentry *entries; | ||||
|   size_t i; | ||||
|  | ||||
|   entries = glibtop_get_mountlist(&buf, allfs); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_mountlist); | ||||
|   printf("glibtop_get_mountlist (allfs = %d)\n", allfs); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(number, "%llu"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(size, "%llu"); | ||||
|  | ||||
|   printf("\t%4llu B entries[%llu] = \n\t\t{\n", buf.total, buf.number); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|     { | ||||
|       printf("\t\t .%lu = { .dev = %#llx," | ||||
| 	     " .devname = \"%s\"," | ||||
| 	     " .mountir = \"%s\"," | ||||
| 	     " .type = \"%s\" }\n", | ||||
| 	     (unsigned long) i, entries[i].dev, | ||||
| 	     entries[i].devname, | ||||
| 	     entries[i].mountdir, | ||||
| 	     entries[i].type); | ||||
|     } | ||||
|  | ||||
|   printf("\t\t}\n"); | ||||
|   FOOTER_PPRINT(); | ||||
|  | ||||
|   g_free(entries); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_msg_limits(void) | ||||
| { | ||||
|   glibtop_msg_limits buf; | ||||
|  | ||||
|   glibtop_get_msg_limits(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_msg_limits); | ||||
|   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(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_netload(const char *iface) | ||||
| { | ||||
|   glibtop_netload buf; | ||||
|  | ||||
|   glibtop_get_netload(&buf, iface); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_netload); | ||||
|   printf("glibtop_get_netload (iface = \"%s\")\n", iface); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void pprint_get_netlist(void) | ||||
| { | ||||
|   glibtop_netlist buf; | ||||
|   char **devices; | ||||
|   guint32 i; | ||||
|  | ||||
|   devices = glibtop_get_netlist(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_netlist); | ||||
|  | ||||
|   for(i = 0; i < buf.number; ++i) | ||||
|   { | ||||
| 	  printf("\t%s\n", devices[i]); | ||||
|   } | ||||
|  | ||||
|   FOOTER_PPRINT(); | ||||
|  | ||||
|   g_strfreev(devices); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_swap(void) | ||||
| { | ||||
|   glibtop_swap buf; | ||||
|  | ||||
|   glibtop_get_swap(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_swap); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(total, "%llu"); | ||||
|   PPRINT(used, "%llu"); | ||||
|   PPRINT(free, "%llu"); | ||||
|   PPRINT(pagein, "%llu"); | ||||
|   PPRINT(pageout, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_uptime(void) | ||||
| { | ||||
|   glibtop_uptime buf; | ||||
|  | ||||
|   glibtop_get_uptime(&buf); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_uptime); | ||||
|   PPRINT(flags, "%#llx"); | ||||
|   PPRINT(uptime, "%f"); | ||||
|   PPRINT(idletime, "%f"); | ||||
|   PPRINT(boot_time, "%llu"); | ||||
|   FOOTER_PPRINT(); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| static void pprint_get_proc_kernel(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_kernel buf; | ||||
|  | ||||
|   glibtop_get_proc_kernel(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_kernel); | ||||
|   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(); | ||||
| } | ||||
|  | ||||
|  | ||||
| static void pprint_get_proc_mem(pid_t pid) | ||||
| { | ||||
|   glibtop_proc_mem buf; | ||||
|  | ||||
|   glibtop_get_proc_mem(&buf, pid); | ||||
|  | ||||
|   HEADER_PPRINT(glibtop_get_proc_mem); | ||||
|   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, "%#llx"); | ||||
|   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("/"); | ||||
|  | ||||
|   pprint_get_loadavg(); | ||||
|  | ||||
|   pprint_get_mem(); | ||||
|  | ||||
|   pprint_get_mountlist(TRUE); | ||||
|   pprint_get_mountlist(FALSE); | ||||
|  | ||||
|   pprint_get_msg_limits(); | ||||
|  | ||||
|   pprint_get_swap(); | ||||
|  | ||||
|   pprint_get_netlist(); | ||||
|  | ||||
|   pprint_get_netload("eth0"); | ||||
|   pprint_get_netload("ppp0"); | ||||
|   pprint_get_netload("<unknown>"); | ||||
| /* pprint_get_sysinfo(); */ | ||||
|  | ||||
|   pprint_get_uptime(); | ||||
|  | ||||
|   pprint_get_proc_kernel(getpid()); | ||||
|   pprint_get_proc_mem(getpid()); | ||||
|   pprint_get_proc_affinity(getpid()); | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
| @@ -1,51 +0,0 @@ | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/procargs.h> | ||||
|  | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
|  | ||||
| static void show_args(pid_t pid, unsigned max_len) | ||||
| { | ||||
|   glibtop_proc_args buf; | ||||
|   char ** const pargv = glibtop_get_proc_argv(&buf, pid, max_len); | ||||
|  | ||||
|   char **parg = pargv; | ||||
|  | ||||
|   printf("<%ld>\t", (long)pid); | ||||
|  | ||||
|   while(*parg) | ||||
|     { | ||||
|       printf("\"%s\" ", *parg); | ||||
|       parg++; | ||||
|     } | ||||
|  | ||||
|   putchar('\n'); | ||||
|  | ||||
|   g_strfreev(pargv); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
|   glibtop_init(); | ||||
|  | ||||
|   show_args(getpid(), 0); | ||||
|   show_args(getpid(), 15); | ||||
|  | ||||
|   while(*++argv) | ||||
|     { | ||||
|       pid_t pid = strtol(*argv, NULL, 10); | ||||
|       show_args(pid, 0); | ||||
|       show_args(pid, 15); | ||||
|     } | ||||
|  | ||||
|   glibtop_close(); | ||||
|  | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| @@ -1,59 +0,0 @@ | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/proclist.h> | ||||
| #include <glibtop/procstate.h> | ||||
| #include <glibtop/proctime.h> | ||||
| #include <glibtop/procuid.h> | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <unistd.h> | ||||
| #include <sys/types.h> | ||||
|  | ||||
|  | ||||
| static void print_pids(guint64 which, guint64 arg) | ||||
| { | ||||
| 	pid_t *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; | ||||
|  | ||||
| 		pid_t p = 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); | ||||
| 	} | ||||
|  | ||||
| 	g_free(pids); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main() | ||||
| { | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	print_pids(GLIBTOP_KERN_PROC_UID, getuid()); | ||||
|  | ||||
| 	glibtop_close(); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
| @@ -1,185 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <glibtop/procmap.h> | ||||
|  | ||||
|  | ||||
| #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 []) | ||||
| { | ||||
| 	glibtop_proc_map procmap; | ||||
| 	glibtop_map_entry *maps; | ||||
| 	unsigned method, count, port, i; | ||||
| 	char buffer [BUFSIZ]; | ||||
| 	pid_t pid; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); | ||||
|  | ||||
| 	printf ("Method = %d\n", method); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	printf ("Command = '%s'\n", buffer); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); | ||||
|  | ||||
| 	printf ("Host = '%s' - %u\n\n", buffer, port); | ||||
|  | ||||
| 	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 (pid == getpid()) { | ||||
| 		/* let's map something for a try */ | ||||
| 		try_mmap("/etc/passwd"); | ||||
| 		try_mmap("/etc/resolv.conf"); | ||||
| 		try_mmap(argv[0]); | ||||
| 	} | ||||
|  | ||||
| 	fprintf (stderr, "Getting memory maps for pid %d.\n\n", (int) pid); | ||||
|  | ||||
| 	maps = glibtop_get_proc_map (&procmap, pid); | ||||
|  | ||||
| 	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; | ||||
|  | ||||
| 		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' : '-'; | ||||
| 		perm [3] = (maps [i].perm & GLIBTOP_MAP_PERM_SHARED) ? 's' : '-'; | ||||
| 		perm [4] = (maps [i].perm & GLIBTOP_MAP_PERM_PRIVATE) ? 'p' : '-'; | ||||
|  | ||||
| 		device = (unsigned long) maps [i].device; | ||||
| 		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); | ||||
| 		} | ||||
|  | ||||
| 		fputc('\n', stderr); | ||||
|  | ||||
| 		g_print("smaps flags:%#llx size:%lluKiB rss:%lluKiB " | ||||
| 			"shared_clean:%lluKib shared_dirty:%lluKiB " | ||||
| 			"private_clean:%lluKiB private_dirty: %lluKiB\n", | ||||
| 			maps[i].flags, | ||||
| 			maps[i].size >> 10, | ||||
| 			maps[i].rss >> 10, | ||||
| 			maps[i].shared_clean >> 10, | ||||
| 			maps[i].shared_dirty >> 10, | ||||
| 			maps[i].private_clean >> 10, | ||||
| 			maps[i].private_dirty >> 10); | ||||
|  | ||||
| 		if (filename && (filename != maps [i].filename)) | ||||
| 			g_free ((void*)filename); | ||||
| 	} | ||||
|  | ||||
| 	g_free (maps); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -1,300 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <math.h> | ||||
| #include <stdio.h> | ||||
| #include <libintl.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| static void | ||||
| output (pid_t pid) | ||||
| { | ||||
| 	glibtop_union data; | ||||
| 	char *args; | ||||
| 	unsigned i; | ||||
|  | ||||
| 	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; | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	glibtop_get_proc_state (&data.proc_state, pid); | ||||
|  | ||||
| 	printf ("Proc_State   PID  %5d (0x%08lx): " | ||||
| 		"'%s', %c, %lu, %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_state.flags, | ||||
| 		data.proc_state.cmd, data.proc_state.state, | ||||
| 		(unsigned long) data.proc_state.uid, | ||||
| 		(unsigned long) data.proc_state.gid); | ||||
|  | ||||
| 	glibtop_get_proc_uid (&data.proc_uid, pid); | ||||
|  | ||||
| 	printf ("Proc_Uid     PID  %5d (0x%08lx): " | ||||
| 		"%d %d %d %d %d %d %d %d %d %d %d %d\n", (int) pid, | ||||
| 		(unsigned long) data.proc_uid.flags, | ||||
| 		data.proc_uid.uid, data.proc_uid.euid, | ||||
| 		data.proc_uid.gid, data.proc_uid.egid, | ||||
| 		data.proc_uid.pid, data.proc_uid.ppid, | ||||
| 		data.proc_uid.pgrp, data.proc_uid.session, | ||||
| 		data.proc_uid.tty, data.proc_uid.tpgid, | ||||
| 		data.proc_uid.priority, data.proc_uid.nice); | ||||
|  | ||||
| 	glibtop_get_proc_mem (&data.proc_mem, pid); | ||||
|  | ||||
| 	printf ("Proc_Mem     PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_mem.flags, | ||||
| 		(unsigned long) data.proc_mem.size, | ||||
| 		(unsigned long) data.proc_mem.vsize, | ||||
| 		(unsigned long) data.proc_mem.resident, | ||||
| 		(unsigned long) data.proc_mem.share, | ||||
| 		(unsigned long) data.proc_mem.rss, | ||||
| 		(unsigned long) data.proc_mem.rss_rlim); | ||||
|  | ||||
| 	glibtop_get_proc_segment (&data.proc_segment, pid); | ||||
|  | ||||
| 	printf ("Proc_Segment PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_segment.flags, | ||||
| 		(unsigned long) data.proc_segment.text_rss, | ||||
| 		(unsigned long) data.proc_segment.shlib_rss, | ||||
| 		(unsigned long) data.proc_segment.data_rss, | ||||
| 		(unsigned long) data.proc_segment.stack_rss, | ||||
| 		(unsigned long) data.proc_segment.dirty_size, | ||||
| 		(unsigned long) data.proc_segment.start_code, | ||||
| 		(unsigned long) data.proc_segment.end_code, | ||||
| 		(unsigned long) data.proc_segment.start_stack); | ||||
|  | ||||
| 	glibtop_get_proc_time (&data.proc_time, pid); | ||||
|  | ||||
| 	printf ("Proc_Time    PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu %lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_time.flags, | ||||
| 		(unsigned long) data.proc_time.start_time, | ||||
| 		(unsigned long) data.proc_time.rtime, | ||||
| 		(unsigned long) data.proc_time.utime, | ||||
| 		(unsigned long) data.proc_time.stime, | ||||
| 		(unsigned long) data.proc_time.cutime, | ||||
| 		(unsigned long) data.proc_time.cstime, | ||||
| 		(unsigned long) data.proc_time.timeout, | ||||
| 		(unsigned long) data.proc_time.it_real_value, | ||||
| 		(unsigned long) data.proc_time.frequency); | ||||
|  | ||||
| 	glibtop_get_proc_signal (&data.proc_signal, pid); | ||||
|  | ||||
| 	printf ("Proc_Signal  PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_signal.flags, | ||||
| 		(unsigned long) data.proc_signal.signal, | ||||
| 		(unsigned long) data.proc_signal.blocked, | ||||
| 		(unsigned long) data.proc_signal.sigignore, | ||||
| 		(unsigned long) data.proc_signal.sigcatch); | ||||
|  | ||||
| 	glibtop_get_proc_kernel (&data.proc_kernel, pid); | ||||
|  | ||||
| 	printf ("Proc_Kernel  PID  %5d (0x%08lx): " | ||||
| 		"%lu %lu %lu %lu %lu 0x%lx 0x%lx 0x%lx (%s)\n", (int) pid, | ||||
| 		(unsigned long) data.proc_kernel.flags, | ||||
| 		(unsigned long) data.proc_kernel.k_flags, | ||||
| 		(unsigned long) data.proc_kernel.min_flt, | ||||
| 		(unsigned long) data.proc_kernel.maj_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmin_flt, | ||||
| 		(unsigned long) data.proc_kernel.cmaj_flt, | ||||
| 		(unsigned long) data.proc_kernel.kstk_esp, | ||||
| 		(unsigned long) data.proc_kernel.kstk_eip, | ||||
| 		(unsigned long) data.proc_kernel.nwchan, | ||||
| 		data.proc_kernel.wchan); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	args = glibtop_get_proc_args (&data.proc_args, pid, 0); | ||||
|  | ||||
| 	for (i = 0; i < data.proc_args.size; i++) { | ||||
| 		if (args [i]) continue; | ||||
| 		args [i] = '|'; | ||||
| 	} | ||||
|  | ||||
| 	printf ("Proc_Args    PID  %5d (0x%08lx): %lu - '%s'\n", (int) pid, | ||||
| 		(unsigned long) data.proc_args.flags, | ||||
| 		(unsigned long) data.proc_args.size, | ||||
| 		args ? args : ""); | ||||
|  | ||||
| 	g_free (args); | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	ncpu = glibtop_global_server->ncpu; | ||||
|  | ||||
| 	glibtop_get_proc_time (&data.proc_time, pid); | ||||
|  | ||||
| 	total = (unsigned long) data.proc_time.utime + | ||||
| 		(unsigned long) data.proc_time.stime; | ||||
|  | ||||
| 	p_total = total ? (double) total : 1.0; | ||||
|  | ||||
| 	p_utime = (double) data.proc_time.utime * 100.0 / p_total; | ||||
| 	p_stime = (double) data.proc_time.stime * 100.0 / p_total; | ||||
|  | ||||
| 	b_total = p_total / ncpu; | ||||
| 	b_utime = (double) data.proc_time.utime / ncpu; | ||||
| 	b_stime = (double) data.proc_time.stime / ncpu; | ||||
|  | ||||
| 	s_total = 0.0; s_utime = 0.0; s_stime = 0.0; | ||||
|  | ||||
| 	printf ("Proc_Time    PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", (int) pid, | ||||
| 		(unsigned long) data.proc_time.flags, total, | ||||
| 		(unsigned long) data.proc_time.utime, | ||||
| 		(unsigned long) data.proc_time.stime); | ||||
|  | ||||
| 	for (i = 0; i < ncpu; i++) { | ||||
| 		unsigned long this_total; | ||||
|  | ||||
| 		this_total = (unsigned long) data.proc_time.xcpu_utime [i] + | ||||
| 			(unsigned long) data.proc_time.xcpu_stime [i]; | ||||
|  | ||||
| 		printf ("CPU %3d      PID  %5d (0x%08lx): %12lu   %12lu   %12lu\n", i, | ||||
| 			(int) pid, (unsigned long) data.proc_time.flags, this_total, | ||||
| 			(unsigned long) data.proc_time.xcpu_utime [i], | ||||
| 			(unsigned long) data.proc_time.xcpu_stime [i]); | ||||
|  | ||||
| 		s_total += fabs (((double) this_total) - b_total); | ||||
| 		s_utime += fabs (((double) data.proc_time.xcpu_utime [i]) - b_utime); | ||||
| 		s_stime += fabs (((double) data.proc_time.xcpu_stime [i]) - b_stime); | ||||
| 	} | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	printf ("Proc_Time    PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", (int) pid, | ||||
| 		(unsigned long) data.proc_time.flags, 100.0, p_utime, p_stime); | ||||
|  | ||||
| 	for (i = 0; i < ncpu; i++) { | ||||
| 		double this_p_total, this_p_utime, this_p_stime; | ||||
| 		unsigned long this_total; | ||||
|  | ||||
| 		this_total = (unsigned long) data.proc_time.xcpu_utime [i] + | ||||
| 			(unsigned long) data.proc_time.xcpu_stime [i]; | ||||
|  | ||||
| 		this_p_total = (double) this_total * 100.0 / p_total; | ||||
|  | ||||
| 		this_p_utime = (double) data.proc_time.xcpu_utime [i] * 100.0 / p_total; | ||||
| 		this_p_stime = (double) data.proc_time.xcpu_stime [i] * 100.0 / p_total; | ||||
|  | ||||
| 		printf ("CPU %3d      PID  %5d (0x%08lx): %12.3f   %12.3f   %12.3f\n", i, | ||||
| 			(int) pid, (unsigned long) data.proc_time.flags, | ||||
| 			this_p_total, this_p_utime, this_p_stime); | ||||
| 	} | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	my_utime = (unsigned long) data.proc_time.utime ? | ||||
| 		(double) data.proc_time.utime : 1.0; | ||||
| 	my_stime = (unsigned long) data.proc_time.stime ? | ||||
| 		(double) data.proc_time.stime : 1.0; | ||||
|  | ||||
| 	printf ("SPIN: %31s %12.3f   %12.3f   %12.3f\n", "", s_total * 100.0 / p_total, | ||||
| 		s_utime * 100.0 / my_utime, s_stime * 100.0 / my_stime); | ||||
|  | ||||
| 	printf ("\n"); | ||||
| } | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_proclist proclist; | ||||
| 	glibtop_sysdeps sysdeps; | ||||
| 	unsigned i; | ||||
| 	pid_t *ptr, pid; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init (); | ||||
|  | ||||
| 	glibtop_get_sysdeps (&sysdeps); | ||||
|  | ||||
| 	printf ("Sysdeps      (0x%08lx): %lu, %lu, %lu, %lu, %lu, " | ||||
| 		"%lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu, %lu\n", | ||||
| 		(unsigned long) sysdeps.flags, | ||||
| 		(unsigned long) sysdeps.cpu, | ||||
| 		(unsigned long) sysdeps.mem, | ||||
| 		(unsigned long) sysdeps.swap, | ||||
| 		(unsigned long) sysdeps.uptime, | ||||
| 		(unsigned long) sysdeps.loadavg, | ||||
| 		(unsigned long) sysdeps.shm_limits, | ||||
| 		(unsigned long) sysdeps.msg_limits, | ||||
| 		(unsigned long) sysdeps.sem_limits, | ||||
| 		(unsigned long) sysdeps.proclist, | ||||
| 		(unsigned long) sysdeps.proc_state, | ||||
| 		(unsigned long) sysdeps.proc_uid, | ||||
| 		(unsigned long) sysdeps.proc_mem, | ||||
| 		(unsigned long) sysdeps.proc_time, | ||||
| 		(unsigned long) sysdeps.proc_signal, | ||||
| 		(unsigned long) sysdeps.proc_kernel, | ||||
| 		(unsigned long) sysdeps.proc_segment); | ||||
|  | ||||
| 	if ((argc == 2) && (sscanf (argv [1], "%d", &pid) == 1)) { | ||||
| 		output (pid); | ||||
|  | ||||
| 		exit (0); | ||||
| 	} | ||||
|  | ||||
| 	printf ("\n"); | ||||
|  | ||||
| 	ptr = glibtop_get_proclist (&proclist, 0, 0); | ||||
|  | ||||
| 	printf ("Proclist     (0x%08lx): %lu, %lu, %lu\n", | ||||
| 		(unsigned long) proclist.flags, | ||||
| 		(unsigned long) proclist.number, | ||||
| 		(unsigned long) proclist.size, | ||||
| 		(unsigned long) proclist.total); | ||||
|  | ||||
| 	if (!ptr) exit (1); | ||||
|  | ||||
| 	for (i = 0; i < proclist.number; i++) { | ||||
|  | ||||
| 		pid = ptr [i]; | ||||
|  | ||||
| 		output (pid); | ||||
| 	} | ||||
|  | ||||
| 	g_free (ptr); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										124
									
								
								examples/smp.c
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								examples/smp.c
									
									
									
									
									
								
							| @@ -1,124 +0,0 @@ | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, September 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #include <config.h> | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <math.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/cpu.h> | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_cpu cpu; | ||||
| 	unsigned long frequency; | ||||
| 	double total, user, nice, sys, idle; | ||||
| 	double b_total, b_user, b_nice, b_sys, b_idle; | ||||
| 	double s_total, s_user, s_nice, s_sys, s_idle; | ||||
| 	char separator [BUFSIZ], buffer [BUFSIZ]; | ||||
| 	int ncpu, i; | ||||
|  | ||||
| 	glibtop_init(); | ||||
|  | ||||
| 	glibtop_get_cpu (&cpu); | ||||
|  | ||||
| 	ncpu = glibtop_global_server->ncpu ? glibtop_global_server->ncpu : 1; | ||||
|  | ||||
| 	frequency = (unsigned long) cpu.frequency; | ||||
|  | ||||
| 	total = ((unsigned long) cpu.total) ? ((double) cpu.total) : 1.0; | ||||
| 	user  = ((unsigned long) cpu.user)  ? ((double) cpu.user)  : 1.0; | ||||
| 	nice  = ((unsigned long) cpu.nice)  ? ((double) cpu.nice)  : 1.0; | ||||
| 	sys   = ((unsigned long) cpu.sys)   ? ((double) cpu.sys)   : 1.0; | ||||
| 	idle  = ((unsigned long) cpu.idle)  ? ((double) cpu.idle)  : 1.0; | ||||
|  | ||||
| 	s_total = s_user = s_nice = s_sys = s_idle = 0.0; | ||||
|  | ||||
| 	b_total = total / ncpu; | ||||
| 	b_user  = user  / ncpu; | ||||
| 	b_nice  = nice  / ncpu; | ||||
| 	b_sys   = sys   / ncpu; | ||||
| 	b_idle  = idle  / ncpu; | ||||
|  | ||||
| 	memset (separator, '-', 91); | ||||
| 	separator [92] = '\0'; | ||||
|  | ||||
| 	sprintf (buffer, "Ticks (%ld per second):", frequency); | ||||
|  | ||||
| 	printf ("\n\n%-26s %12s %12s %12s %12s %12s\n%s\n", buffer, | ||||
| 		"Total", "User", "Nice", "Sys", "Idle", separator); | ||||
|  | ||||
| 	printf ("CPU          (0x%08lx): %12.0f %12.0f %12.0f %12.0f %12.0f\n\n", | ||||
| 		(unsigned long) cpu.flags, total, user, nice, sys, idle); | ||||
|  | ||||
| 	for (i = 0; i < glibtop_global_server->ncpu; i++) { | ||||
| 		printf ("CPU %3d      (0x%08lx): %12lu %12lu %12lu %12lu %12lu\n", i, | ||||
| 			(unsigned long) cpu.flags, | ||||
| 			(unsigned long) cpu.xcpu_total [i], | ||||
| 			(unsigned long) cpu.xcpu_user  [i], | ||||
| 			(unsigned long) cpu.xcpu_nice  [i], | ||||
| 			(unsigned long) cpu.xcpu_sys   [i], | ||||
| 			(unsigned long) cpu.xcpu_idle  [i]); | ||||
|  | ||||
| 		s_total += fabs (((double) cpu.xcpu_total [i]) - b_total); | ||||
| 		s_user  += fabs (((double) cpu.xcpu_user  [i]) - b_user); | ||||
| 		s_nice  += fabs (((double) cpu.xcpu_nice  [i]) - b_nice); | ||||
| 		s_sys   += fabs (((double) cpu.xcpu_sys   [i]) - b_sys); | ||||
| 		s_idle  += fabs (((double) cpu.xcpu_idle  [i]) - b_idle); | ||||
| 	} | ||||
|  | ||||
| 	printf ("%s\n\n\n", separator); | ||||
|  | ||||
| 	printf ("%-26s %12s %12s %12s %12s %12s\n%s\n", "Percent:", | ||||
| 		"Total (%)", "User (%)", "Nice (%)", "Sys (%)", | ||||
| 		"Idle (%)", separator); | ||||
|  | ||||
| 	printf ("CPU          (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", | ||||
| 		(unsigned long) cpu.flags, (double) total * 100.0 / total, | ||||
| 		(double) user  * 100.0 / total, | ||||
| 		(double) nice  * 100.0 / total, | ||||
| 		(double) sys   * 100.0 / total, | ||||
| 		(double) idle  * 100.0 / total); | ||||
|  | ||||
| 	for (i = 0; i < glibtop_global_server->ncpu; i++) { | ||||
| 		double p_total, p_user, p_nice, p_sys, p_idle; | ||||
|  | ||||
| 		p_total = ((double) cpu.xcpu_total [i]) * 100.0 / total; | ||||
| 		p_user  = ((double) cpu.xcpu_user  [i]) * 100.0 / user; | ||||
| 		p_nice  = ((double) cpu.xcpu_nice  [i]) * 100.0 / nice; | ||||
| 		p_sys   = ((double) cpu.xcpu_sys   [i]) * 100.0 / sys; | ||||
| 		p_idle  = ((double) cpu.xcpu_idle  [i]) * 100.0 / idle; | ||||
|  | ||||
| 		printf ("CPU %3d      (0x%08lx): %12.3f %12.3f %12.3f %12.3f %12.3f\n", | ||||
| 			i, (unsigned long) cpu.flags, p_total, p_user, p_nice, | ||||
| 			p_sys, p_idle); | ||||
| 	} | ||||
|  | ||||
| 	printf ("%s\n%-26s %12.3f %12.3f %12.3f %12.3f %12.3f\n\n", separator, | ||||
| 		"Spin:", s_total * 100.0 / total, s_user * 100.0 / user, | ||||
| 		s_nice * 100.0 / nice, s_sys * 100.0 / sys, s_idle * 100.0 / idle); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -1,152 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <libintl.h> | ||||
| #include <stdio.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT	1 | ||||
| #endif | ||||
|  | ||||
| int | ||||
| main (int argc, char *argv []) | ||||
| { | ||||
| 	glibtop_sysdeps sysdeps; | ||||
| 	unsigned method, count, port; | ||||
| 	char buffer [BUFSIZ]; | ||||
|  | ||||
| 	count = PROFILE_COUNT; | ||||
|  | ||||
| 	setlocale (LC_ALL, ""); | ||||
| 	bindtextdomain (GETTEXT_PACKAGE, GTOPLOCALEDIR); | ||||
| 	textdomain (GETTEXT_PACKAGE); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, GLIBTOP_INIT_NO_OPEN); | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_METHOD, &method, sizeof (method)); | ||||
|  | ||||
| 	printf ("Method = %d\n", method); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_COMMAND, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	printf ("Command = '%s'\n", buffer); | ||||
|  | ||||
| 	count = glibtop_get_parameter (GLIBTOP_PARAM_HOST, buffer, BUFSIZ); | ||||
| 	buffer [count] = 0; | ||||
|  | ||||
| 	glibtop_get_parameter (GLIBTOP_PARAM_PORT, &port, sizeof (port)); | ||||
|  | ||||
| 	printf ("Host = '%s' - %u\n\n", buffer, port); | ||||
|  | ||||
| 	glibtop_init_r (&glibtop_global_server, 0, 0); | ||||
|  | ||||
| 	glibtop_get_sysdeps (&sysdeps); | ||||
|  | ||||
| #define FEATURE_CHECK(f) ((sysdeps.features & (1L << GLIBTOP_SYSDEPS_##f)) ? 1 : 0) | ||||
|  | ||||
| 	printf ("Sysdeps (0x%08lx):\n\n" | ||||
| 		"\tfeatures:\t\t0x%08lx\n\n" | ||||
| 		"\tcpu:\t\t%d\t0x%08lx\n" | ||||
| 		"\tmem:\t\t%d\t0x%08lx\n" | ||||
| 		"\tswap:\t\t%d\t0x%08lx\n\n" | ||||
| 		"\tuptime:\t\t%d\t0x%08lx\n" | ||||
| 		"\tloadavg:\t%d\t0x%08lx\n\n" | ||||
| 		"\tshm_limits:\t%d\t0x%08lx\n" | ||||
| 		"\tmsg_limits:\t%d\t0x%08lx\n" | ||||
| 		"\tsem_limits:\t%d\t0x%08lx\n\n" | ||||
| 		"\tproclist:\t%d\t0x%08lx\n\n" | ||||
| 		"\tproc_state:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_uid:\t%d\t0x%08lx\n" | ||||
| 		"\tproc_mem:\t%d\t0x%08lx\n" | ||||
| 		"\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\n" | ||||
| 		"\tproc_args:\t%d\t0x%08lx\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" | ||||
| 		"\tppp:\t\t%d\t0x%08lx\n\n", | ||||
| 		(unsigned long) sysdeps.flags, | ||||
| 		(unsigned long) sysdeps.features, | ||||
| 		FEATURE_CHECK(CPU), | ||||
| 		(unsigned long) sysdeps.cpu, | ||||
| 		FEATURE_CHECK(MEM), | ||||
| 		(unsigned long) sysdeps.mem, | ||||
| 		FEATURE_CHECK(SWAP), | ||||
| 		(unsigned long) sysdeps.swap, | ||||
| 		FEATURE_CHECK(UPTIME), | ||||
| 		(unsigned long) sysdeps.uptime, | ||||
| 		FEATURE_CHECK(LOADAVG), | ||||
| 		(unsigned long) sysdeps.loadavg, | ||||
| 		FEATURE_CHECK(SHM_LIMITS), | ||||
| 		(unsigned long) sysdeps.shm_limits, | ||||
| 		FEATURE_CHECK(MSG_LIMITS), | ||||
| 		(unsigned long) sysdeps.msg_limits, | ||||
| 		FEATURE_CHECK(SEM_LIMITS), | ||||
| 		(unsigned long) sysdeps.sem_limits, | ||||
| 		FEATURE_CHECK(PROCLIST), | ||||
| 		(unsigned long) sysdeps.proclist, | ||||
| 		FEATURE_CHECK(PROC_STATE), | ||||
| 		(unsigned long) sysdeps.proc_state, | ||||
| 		FEATURE_CHECK(PROC_UID), | ||||
| 		(unsigned long) sysdeps.proc_uid, | ||||
| 		FEATURE_CHECK(PROC_MEM), | ||||
| 		(unsigned long) sysdeps.proc_mem, | ||||
| 		FEATURE_CHECK(PROC_TIME), | ||||
| 		(unsigned long) sysdeps.proc_time, | ||||
| 		FEATURE_CHECK(PROC_SIGNAL), | ||||
| 		(unsigned long) sysdeps.proc_signal, | ||||
| 		FEATURE_CHECK(PROC_KERNEL), | ||||
| 		(unsigned long) sysdeps.proc_kernel, | ||||
| 		FEATURE_CHECK(PROC_SEGMENT), | ||||
| 		(unsigned long) sysdeps.proc_segment, | ||||
| 		FEATURE_CHECK(PROC_ARGS), | ||||
| 		(unsigned long) sysdeps.proc_args, | ||||
| 		FEATURE_CHECK(PROC_MAP), | ||||
| 		(unsigned long) sysdeps.proc_map, | ||||
| 		FEATURE_CHECK(MOUNTLIST), | ||||
| 		(unsigned long) sysdeps.mountlist, | ||||
| 		FEATURE_CHECK(FSUSAGE), | ||||
| 		(unsigned long) sysdeps.fsusage, | ||||
| 		FEATURE_CHECK(NETLOAD), | ||||
| 		(unsigned long) sysdeps.netload, | ||||
| 		FEATURE_CHECK(PPP), | ||||
| 		(unsigned long) sysdeps.ppp); | ||||
|  | ||||
| 	glibtop_close (); | ||||
|  | ||||
| 	exit (0); | ||||
| } | ||||
| @@ -1,80 +0,0 @@ | ||||
| (display (glibtop-names-sysdeps)) (newline) | ||||
| (display (glibtop-labels-sysdeps)) (newline) | ||||
| (display (glibtop-descriptions-sysdeps)) (newline) | ||||
| (display (glibtop-types-sysdeps)) (newline) | ||||
|  | ||||
| (newline) | ||||
|  | ||||
| (display (glibtop-names-cpu)) (newline) | ||||
| (display (glibtop-names-mem)) (newline) | ||||
| (display (glibtop-names-swap)) (newline) | ||||
| (display (glibtop-names-uptime)) (newline) | ||||
| (display (glibtop-names-loadavg)) (newline) | ||||
| (display (glibtop-names-shm_limits)) (newline) | ||||
| (display (glibtop-names-msg_limits)) (newline) | ||||
| (display (glibtop-names-sem_limits)) (newline) | ||||
| (display (glibtop-names-proclist)) (newline) | ||||
| (display (glibtop-names-proc_state)) (newline) | ||||
| (display (glibtop-names-proc_uid)) (newline) | ||||
| (display (glibtop-names-proc_mem)) (newline) | ||||
| (display (glibtop-names-proc_time)) (newline) | ||||
| (display (glibtop-names-proc_signal)) (newline) | ||||
| (display (glibtop-names-proc_kernel)) (newline) | ||||
| (display (glibtop-names-proc_segment)) (newline) | ||||
|  | ||||
| (newline) | ||||
|  | ||||
| (display (glibtop-labels-cpu)) (newline) | ||||
| (display (glibtop-labels-mem)) (newline) | ||||
| (display (glibtop-labels-swap)) (newline) | ||||
| (display (glibtop-labels-uptime)) (newline) | ||||
| (display (glibtop-labels-loadavg)) (newline) | ||||
| (display (glibtop-labels-shm_limits)) (newline) | ||||
| (display (glibtop-labels-msg_limits)) (newline) | ||||
| (display (glibtop-labels-sem_limits)) (newline) | ||||
| (display (glibtop-labels-proclist)) (newline) | ||||
| (display (glibtop-labels-proc_state)) (newline) | ||||
| (display (glibtop-labels-proc_uid)) (newline) | ||||
| (display (glibtop-labels-proc_mem)) (newline) | ||||
| (display (glibtop-labels-proc_time)) (newline) | ||||
| (display (glibtop-labels-proc_signal)) (newline) | ||||
| (display (glibtop-labels-proc_kernel)) (newline) | ||||
| (display (glibtop-labels-proc_segment)) (newline) | ||||
|  | ||||
| (newline) | ||||
|  | ||||
| (display (glibtop-descriptions-cpu)) (newline) | ||||
| (display (glibtop-descriptions-mem)) (newline) | ||||
| (display (glibtop-descriptions-swap)) (newline) | ||||
| (display (glibtop-descriptions-uptime)) (newline) | ||||
| (display (glibtop-descriptions-loadavg)) (newline) | ||||
| (display (glibtop-descriptions-shm_limits)) (newline) | ||||
| (display (glibtop-descriptions-msg_limits)) (newline) | ||||
| (display (glibtop-descriptions-sem_limits)) (newline) | ||||
| (display (glibtop-descriptions-proclist)) (newline) | ||||
| (display (glibtop-descriptions-proc_state)) (newline) | ||||
| (display (glibtop-descriptions-proc_uid)) (newline) | ||||
| (display (glibtop-descriptions-proc_mem)) (newline) | ||||
| (display (glibtop-descriptions-proc_time)) (newline) | ||||
| (display (glibtop-descriptions-proc_signal)) (newline) | ||||
| (display (glibtop-descriptions-proc_kernel)) (newline) | ||||
| (display (glibtop-descriptions-proc_segment)) (newline) | ||||
|  | ||||
| (newline) | ||||
|  | ||||
| (display (glibtop-types-cpu)) (newline) | ||||
| (display (glibtop-types-mem)) (newline) | ||||
| (display (glibtop-types-swap)) (newline) | ||||
| (display (glibtop-types-uptime)) (newline) | ||||
| (display (glibtop-types-loadavg)) (newline) | ||||
| (display (glibtop-types-shm_limits)) (newline) | ||||
| (display (glibtop-types-msg_limits)) (newline) | ||||
| (display (glibtop-types-sem_limits)) (newline) | ||||
| (display (glibtop-types-proclist)) (newline) | ||||
| (display (glibtop-types-proc_state)) (newline) | ||||
| (display (glibtop-types-proc_uid)) (newline) | ||||
| (display (glibtop-types-proc_mem)) (newline) | ||||
| (display (glibtop-types-proc_time)) (newline) | ||||
| (display (glibtop-types-proc_signal)) (newline) | ||||
| (display (glibtop-types-proc_kernel)) (newline) | ||||
| (display (glibtop-types-proc_segment)) (newline) | ||||
| @@ -1,437 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifdef HAVE_CONFIG_H | ||||
| #  include <config.h> | ||||
| #endif | ||||
|  | ||||
| #include <locale.h> | ||||
| #include <stdio.h> | ||||
| #include <libintl.h> | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/open.h> | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
| #include <glibtop/parameter.h> | ||||
|  | ||||
| #include <glibtop/union.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <sys/times.h> | ||||
| #include <sys/resource.h> | ||||
|  | ||||
| #ifndef PROFILE_COUNT | ||||
| #define PROFILE_COUNT			100000L | ||||
| #endif | ||||
|  | ||||
| #ifndef PROFILE_COUNT_EXPENSIVE | ||||
| #define PROFILE_COUNT_EXPENSIVE		(PROFILE_COUNT / 10) | ||||
| #endif | ||||
|  | ||||
| #define ELAPSED_UTIME ((unsigned long) elapsed_utime.tv_sec * 1000000 +	(unsigned long) elapsed_utime.tv_usec) | ||||
| #define ELAPSED_STIME ((unsigned long) elapsed_stime.tv_sec * 1000000 + (unsigned long) elapsed_stime.tv_usec) | ||||
|  | ||||
| #define libgtop_timeradd(tvp, uvp, vvp)						\ | ||||
| 	do {								\ | ||||
| 		(vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec;		\ | ||||
| 		(vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec;	\ | ||||
| 		if ((vvp)->tv_usec >= 1000000) {			\ | ||||
| 			(vvp)->tv_sec++;				\ | ||||
| 			(vvp)->tv_usec -= 1000000;			\ | ||||
| 		}							\ | ||||
| 	} while (0) | ||||
| #define libgtop_timersub(tvp, uvp, vvp)						\ | ||||
| 	do {								\ | ||||
| 		(vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec;		\ | ||||
| 		(vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec;	\ | ||||
| 		if ((vvp)->tv_usec < 0) {				\ | ||||
| 			(vvp)->tv_sec--;				\ | ||||
| 			(vvp)->tv_usec += 1000000;			\ | ||||
| 		}							\ | ||||
| 	} 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; | ||||
| 	struct rusage total_start, total_end; | ||||
| 	struct rusage rusage_start, rusage_end; | ||||
| 	struct timeval elapsed_utime, elapsed_stime; | ||||
| 	pid_t pid; | ||||
|  | ||||
| 	pid = getpid (); | ||||
|  | ||||
| 	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"); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &total_start); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_cpu (&data.cpu); | ||||
|  | ||||
| 	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 ("CPU          (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.cpu.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_EXPENSIVE; c++) | ||||
| 		glibtop_get_mem (&data.mem); | ||||
|  | ||||
| 	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 ("Memory       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.mem.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_EXPENSIVE; c++) | ||||
| 		glibtop_get_swap (&data.swap); | ||||
|  | ||||
| 	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 ("Swap         (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.swap.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_uptime (&data.uptime); | ||||
|  | ||||
| 	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 ("Uptime       (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.uptime.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_loadavg (&data.loadavg); | ||||
|  | ||||
| 	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 ("Loadavg      (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.loadavg.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_EXPENSIVE; c++) { | ||||
| 		pid_t* ptr = glibtop_get_proclist (&data.proclist, 0, 0); | ||||
| 		g_free (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 ("Proclist     (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); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	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); | ||||
|  | ||||
| 	getrusage (RUSAGE_SELF, &rusage_start); | ||||
|  | ||||
| 	for (c = 0; c < PROFILE_COUNT; c++) | ||||
| 		glibtop_get_proc_state (&data.proc_state, 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_State   (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_state.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_uid (&data.proc_uid, 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_Uid     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_uid.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_mem (&data.proc_mem, 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_Mem     (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_mem.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_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); | ||||
|  | ||||
| 	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_Segment (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_segment.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++) { | ||||
| 		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); | ||||
|  | ||||
| 	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_Time    (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_time.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_signal (&data.proc_signal, 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_Signal  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_signal.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_kernel (&data.proc_kernel, 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_Kernel  (0x%08lx): %7lu - %9.2Lf - %9.2Lf\n", | ||||
| 		(unsigned long) data.proc_kernel.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, | ||||
| 			  &elapsed_utime); | ||||
|  | ||||
| 	libgtop_timersub (&total_end.ru_stime, &total_start.ru_stime, | ||||
| 			  &elapsed_stime); | ||||
|  | ||||
| 	printf ("-------------------------------------------" | ||||
| 		"---------------\n"); | ||||
|  | ||||
| 	printf ("%-36s %9lu - %9lu\n\n", "TOTAL", | ||||
| 		ELAPSED_UTIME, ELAPSED_STIME); | ||||
|  | ||||
| 	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; | ||||
| } | ||||
|  | ||||
							
								
								
									
										27
									
								
								features.def
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								features.def
									
									
									
									
									
								
							| @@ -1,27 +0,0 @@ | ||||
| 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) | ||||
|  | ||||
							
								
								
									
										147
									
								
								glibtop.h
									
									
									
									
									
								
							
							
						
						
									
										147
									
								
								glibtop.h
									
									
									
									
									
								
							| @@ -1,147 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, 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> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef struct _glibtop		glibtop; | ||||
| typedef struct _glibtop_machine	glibtop_machine; | ||||
|  | ||||
| /** | ||||
|  *  LIBGTOP_CHECK_VERSION | ||||
|  *  @major: Major version number | ||||
|  *  @minor: Minor version number | ||||
|  *  @micro: Micro version number | ||||
|  * | ||||
|  *  Checks if the version given is compatable with this version of the | ||||
|  *  library.  For example, LIBGTOP_CHECK_VERSION(1.2.3) would return TRUE | ||||
|  *  if the version is 1.2.5, and FALSE if 1.1.0.  This can be used in | ||||
|  *  build tests. | ||||
|  * | ||||
|  **/ | ||||
|  | ||||
| #include <libgtopconfig.h> | ||||
|  | ||||
| #define LIBGTOP_CHECK_VERSION(major, minor, micro)    \ | ||||
| (LIBGTOP_MAJOR_VERSION > (major) || \ | ||||
| (LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION > (minor)) || \ | ||||
| (LIBGTOP_MAJOR_VERSION == (major) && LIBGTOP_MINOR_VERSION == (minor) && \ | ||||
| LIBGTOP_MICRO_VERSION >= (micro))) | ||||
|  | ||||
|  | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| #include <glibtop_server.h> | ||||
|  | ||||
| #ifndef GLIBTOP_MOUNTENTRY_LEN | ||||
| #define GLIBTOP_MOUNTENTRY_LEN	79 | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #include <glibtop/sysdeps.h> | ||||
|  | ||||
| #include <glibtop/close.h> | ||||
|  | ||||
|  | ||||
| struct _glibtop | ||||
| { | ||||
| 	unsigned flags; | ||||
| 	unsigned method;		/* Server Method */ | ||||
| 	unsigned error_method;		/* Error Method */ | ||||
| 	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 */ | ||||
|  | ||||
| 	uid_t uid; | ||||
| 	uid_t euid; | ||||
| 	gid_t gid; | ||||
| 	gid_t egid; | ||||
|  | ||||
| 	glibtop_machine *machine;	/* Machine dependent data */ | ||||
| }; | ||||
|  | ||||
| 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 | ||||
| @@ -1,2 +0,0 @@ | ||||
| SUBDIRS		= glibtop | ||||
|  | ||||
| @@ -1,16 +0,0 @@ | ||||
| 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 \ | ||||
| 			  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 \ | ||||
| 			  netlist.h procopenfiles.h open.h | ||||
|  | ||||
| noinst_HEADERS		= error.h write.h read_data.h read.h init_hooks.h machine.h \ | ||||
| 			  version.h | ||||
|  | ||||
| @@ -1,41 +0,0 @@ | ||||
| /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */ | ||||
|  | ||||
| @@AUTOGEN_COMMENT@@ | ||||
|  | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CALL_VECTOR_H__ | ||||
| #define __GLIBTOP_CALL_VECTOR_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| struct _glibtop_call_vector | ||||
| { | ||||
|     @@GLIBTOP_CALL_VECTOR@@ | ||||
| }; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,116 +0,0 @@ | ||||
| #!/usr/bin/perl | ||||
|  | ||||
| require 'c_types.pl'; | ||||
|  | ||||
| die "Usage: $0 features.def call-vector.h.in" unless $#ARGV == 1; | ||||
|  | ||||
| $[ = 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 $_; | ||||
| } | ||||
|  | ||||
| $func_decl_code = ''; | ||||
|  | ||||
| open FEATURESDEF, $ARGV[1] or | ||||
|   die "open ($ARGV[1]): $!"; | ||||
|  | ||||
| while (<FEATURESDEF>) { | ||||
|   chop;				# strip record separator | ||||
|    | ||||
|   if (/^[^\#]/) { | ||||
|     &parse_features_def ($_); | ||||
|   } | ||||
| } | ||||
|  | ||||
| close FEATURESDEF; | ||||
|  | ||||
| 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]; | ||||
|  | ||||
|   $orig = $feature; | ||||
|   $feature =~ s/^@//; | ||||
|   $space = $feature; | ||||
|   $space =~ s/./ /g; | ||||
|  | ||||
|   if ($retval eq 'retval') { | ||||
|     $retval_param = '&retval'; | ||||
|     $retval = 'int'; | ||||
|   } | ||||
|   elsif ($retval !~ /^void$/) { | ||||
|     $retval_param = 'NULL'; | ||||
|   } | ||||
|   else { | ||||
|     $retval_param = 'NULL'; | ||||
|   } | ||||
|   | ||||
|   if ($retval =~ /^(array|pointer)\((.*)\)$/) { | ||||
|     $retval = ($2 eq 'string') ? 'char **' : "$2 *"; | ||||
|   } | ||||
|  | ||||
|   $param_decl = ''; | ||||
|   $nr_params = (@params = split(/:/, $param_def, 9999)); | ||||
|   for ($param = 1; $param <= $nr_params; $param++) { | ||||
|     $list = $params[$param]; | ||||
|     $type = $params[$param]; | ||||
|     $type =~ s/\(.*//; | ||||
|     $list =~ s/^.*\(//; | ||||
|     $list =~ s/\)$//; | ||||
|     $count = (@fields = split(/,/, $list, 9999)); | ||||
|     for ($field = 1; $field <= $count; $field++) { | ||||
|       my $c_type = $typeinfo->{$type}->[1]; | ||||
|  | ||||
|       $param_decl = $param_decl . ', '; | ||||
|       $param_decl = $param_decl . $c_type; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if ($line_fields[3] eq '') { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *%s);\n], $retval, $feature, $param_decl); | ||||
|   } elsif ($line_fields[3] eq 'array') { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *%s);\n], $retval, $feature, $param_decl); | ||||
|   } elsif ($line_fields[3] =~ /^array/) { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, glibtop_array *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl); | ||||
|   } else { | ||||
|     $func_decl_code .= sprintf | ||||
|       (qq[\t%s (*%s) (glibtop_server *, glibtop_closure *, %s *%s);\n], $retval, $feature, 'glibtop_'.$feature, $param_decl); | ||||
|   } | ||||
| } | ||||
|  | ||||
| chop $func_decl_code; | ||||
|  | ||||
| $auto_gen_comment = sprintf | ||||
|   (qq[/*\n * This file is automatically generated.\n * Please modify `call-vector.pl' and `call-vector.h.in'.\n */]); | ||||
|  | ||||
| open CALLVECTOR, $ARGV[2] or | ||||
|   die "open ($ARGV[2]): $!"; | ||||
|  | ||||
| while (<CALLVECTOR>) { | ||||
|   chop; | ||||
|  | ||||
|   s/^\s*\@\@GLIBTOP_CALL_VECTOR\@\@\s*$/$func_decl_code/; | ||||
|  | ||||
|   s/^\s*\@\@AUTOGEN_COMMENT\@\@\s*$/$auto_gen_comment/; | ||||
| } continue { | ||||
|   print $_; | ||||
| } | ||||
|  | ||||
| close CALLVECTOR; | ||||
| @@ -1,38 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CLOSE_H__ | ||||
| #define __GLIBTOP_CLOSE_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| void glibtop_close (void); | ||||
|  | ||||
| void glibtop_close_r (glibtop *server); | ||||
|  | ||||
| void glibtop_close_s (glibtop *server); | ||||
| void glibtop_close_p (glibtop *server); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,104 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_COMMAND_H__ | ||||
| #define __GLIBTOP_COMMAND_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/sysdeps.h> | ||||
| #include <glibtop/union.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_CMND_QUIT		0 | ||||
| #define GLIBTOP_CMND_SYSDEPS		1 | ||||
|  | ||||
| #define GLIBTOP_CMND_CPU		2 | ||||
| #define GLIBTOP_CMND_MEM		3 | ||||
| #define GLIBTOP_CMND_SWAP		4 | ||||
| #define GLIBTOP_CMND_UPTIME		5 | ||||
| #define GLIBTOP_CMND_LOADAVG		6 | ||||
| #define GLIBTOP_CMND_SHM_LIMITS		7 | ||||
| #define GLIBTOP_CMND_MSG_LIMITS		8 | ||||
| #define GLIBTOP_CMND_SEM_LIMITS		9 | ||||
| #define GLIBTOP_CMND_PROCLIST		10 | ||||
|  | ||||
| #define GLIBTOP_CMND_PROC_STATE		11 | ||||
| #define GLIBTOP_CMND_PROC_UID		12 | ||||
| #define GLIBTOP_CMND_PROC_MEM		13 | ||||
| #define GLIBTOP_CMND_PROC_TIME		14 | ||||
| #define GLIBTOP_CMND_PROC_SIGNAL	15 | ||||
| #define GLIBTOP_CMND_PROC_KERNEL	16 | ||||
| #define GLIBTOP_CMND_PROC_SEGMENT	17 | ||||
| #define GLIBTOP_CMND_PROC_ARGS		18 | ||||
| #define GLIBTOP_CMND_PROC_MAP		19 | ||||
|  | ||||
| #define GLIBTOP_CMND_MOUNTLIST		20 | ||||
| #define GLIBTOP_CMND_FSUSAGE		21 | ||||
| #define GLIBTOP_CMND_NETLOAD		22 | ||||
| #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_MAX_CMND		28 | ||||
|  | ||||
| #define _GLIBTOP_PARAM_SIZE		16 | ||||
|  | ||||
| typedef struct _glibtop_command		glibtop_command; | ||||
|  | ||||
| typedef struct _glibtop_response	glibtop_response; | ||||
| typedef union  _glibtop_response_union	glibtop_response_union; | ||||
|  | ||||
| struct _glibtop_command | ||||
| { | ||||
| 	guint64	command; | ||||
| 	guint64	size, data_size; | ||||
| 	char		parameter [_GLIBTOP_PARAM_SIZE]; | ||||
| }; | ||||
|  | ||||
| union _glibtop_response_union | ||||
| { | ||||
| 	glibtop_union	data; | ||||
| 	glibtop_sysdeps	sysdeps; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_response | ||||
| { | ||||
| 	gint64 offset; | ||||
| 	guint64 size, data_size; | ||||
| 	glibtop_response_union u; | ||||
| }; | ||||
|  | ||||
| #define glibtop_call(p1, p2, p3, p4)	glibtop_call_r(glibtop_global_server, p1, p2, p3, p4) | ||||
|  | ||||
| void * | ||||
| glibtop_call_l (glibtop *server, unsigned command, size_t send_size, | ||||
| 		const void *send_buf, size_t recv_size, void *recv_buf); | ||||
|  | ||||
| void * | ||||
| glibtop_call_s (glibtop *server, unsigned command, size_t send_size, | ||||
| 		const void *send_buf, size_t recv_size, void *recv_buf); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,105 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_CPU_H__ | ||||
| #define __GLIBTOP_CPU_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_CPU_TOTAL	0 | ||||
| #define GLIBTOP_CPU_USER	1 | ||||
| #define GLIBTOP_CPU_NICE	2 | ||||
| #define GLIBTOP_CPU_SYS		3 | ||||
| #define GLIBTOP_CPU_IDLE	4 | ||||
| #define GLIBTOP_CPU_FREQUENCY	5 | ||||
|  | ||||
| #define GLIBTOP_XCPU_TOTAL	6 | ||||
| #define GLIBTOP_XCPU_USER	7 | ||||
| #define GLIBTOP_XCPU_NICE	8 | ||||
| #define GLIBTOP_XCPU_SYS	9 | ||||
| #define GLIBTOP_XCPU_IDLE	10 | ||||
| #define GLIBTOP_XCPU_FLAGS	11 | ||||
|  | ||||
| #define GLIBTOP_CPU_IOWAIT	12 | ||||
| #define GLIBTOP_CPU_IRQ		13 | ||||
| #define GLIBTOP_CPU_SOFTIRQ	14 | ||||
| #define GLIBTOP_XCPU_IOWAIT	15 | ||||
| #define GLIBTOP_XCPU_IRQ	16 | ||||
| #define GLIBTOP_XCPU_SOFTIRQ	17 | ||||
|  | ||||
| #define GLIBTOP_MAX_CPU		18 | ||||
|  | ||||
| /* Nobody should really be using more than 4 processors. | ||||
|    Yes we are :) | ||||
|    Nobody should really be using more than 32 processors. | ||||
| */ | ||||
| #define GLIBTOP_NCPU		1024 | ||||
|  | ||||
| typedef struct _glibtop_cpu	glibtop_cpu; | ||||
|  | ||||
| struct _glibtop_cpu | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 total;				/* GLIBTOP_CPU_TOTAL		*/ | ||||
| 	guint64 user;				/* GLIBTOP_CPU_USER		*/ | ||||
| 	guint64 nice;				/* GLIBTOP_CPU_NICE		*/ | ||||
| 	guint64 sys;				/* GLIBTOP_CPU_SYS		*/ | ||||
| 	guint64 idle;				/* GLIBTOP_CPU_IDLE		*/ | ||||
| 	guint64 iowait;				/* GLIBTOP_CPU_IOWAIT		*/ | ||||
| 	guint64 irq;				/* GLIBTOP_CPU_IRQ		*/ | ||||
| 	guint64 softirq;			/* GLIBTOP_CPU_SOFTIRQ		*/ | ||||
| 	guint64 frequency;			/* GLIBTOP_CPU_FREQUENCY	*/ | ||||
| 	guint64 xcpu_total [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_TOTAL		*/ | ||||
| 	guint64 xcpu_user [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_USER		*/ | ||||
| 	guint64 xcpu_nice [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_NICE		*/ | ||||
| 	guint64 xcpu_sys  [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_SYS		*/ | ||||
| 	guint64 xcpu_idle [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_IDLE		*/ | ||||
| 	guint64 xcpu_iowait [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_IOWAIT		*/ | ||||
| 	guint64 xcpu_irq [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_IRQ		*/ | ||||
| 	guint64 xcpu_softirq  [GLIBTOP_NCPU];	/* GLIBTOP_XCPU_SOFTIRQ		*/ | ||||
| 	guint64 xcpu_flags;	                /* GLIBTOP_XCPU_IDLE		*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_cpu(glibtop_cpu *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_CPU | ||||
| #define glibtop_get_cpu_r	glibtop_get_cpu_p | ||||
| #else | ||||
| #define glibtop_get_cpu_r	glibtop_get_cpu_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_cpu_l (glibtop *server, glibtop_cpu *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_CPU | ||||
| void _glibtop_init_cpu_p (glibtop *server); | ||||
| void glibtop_get_cpu_p (glibtop *server, glibtop_cpu *buf); | ||||
| #else | ||||
| void _glibtop_init_cpu_s (glibtop *server); | ||||
| void glibtop_get_cpu_s (glibtop *server, glibtop_cpu *buf); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,63 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * This is private API | ||||
|  */ | ||||
|  | ||||
| #ifndef __GLIBTOP_ERROR_H__ | ||||
| #define __GLIBTOP_ERROR_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| 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_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 (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); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,64 +0,0 @@ | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|  | ||||
|    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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_FSUSAGE_H__ | ||||
| #define __GLIBTOP_FSUSAGE_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_FSUSAGE_BLOCKS		0 | ||||
| #define GLIBTOP_FSUSAGE_BFREE		1 | ||||
| #define GLIBTOP_FSUSAGE_BAVAIL		2 | ||||
| #define GLIBTOP_FSUSAGE_FILES		3 | ||||
| #define GLIBTOP_FSUSAGE_FFREE		4 | ||||
| #define GLIBTOP_FSUSAGE_BLOCK_SIZE	5 | ||||
| #define GLIBTOP_FSUSAGE_READ           6 | ||||
| #define GLIBTOP_FSUSAGE_WRITE          7 | ||||
| #define GLIBTOP_MAX_FSUSAGE		8 | ||||
|  | ||||
|  | ||||
| typedef struct _glibtop_fsusage		glibtop_fsusage; | ||||
|  | ||||
| struct _glibtop_fsusage | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 blocks;		/* Total number of blocks. */ | ||||
| 	guint64 bfree;		/* Free blocks available to superuser. */ | ||||
| 	guint64 bavail;		/* Free blocks available to non-superuser. */ | ||||
| 	guint64 files;		/* Total file nodes. */ | ||||
| 	guint64 ffree;		/* Free file nodes. */ | ||||
| 	guint32	block_size;	/* Size of a block in bytes. */ | ||||
| 	guint64 read, write;    /* Total blocks read and written */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_fsusage(glibtop_fsusage *buf, const char *mount_dir); | ||||
|  | ||||
| #define glibtop_get_fsusage_r		glibtop_get_fsusage_s | ||||
|  | ||||
| void glibtop_get_fsusage_l (glibtop *server, glibtop_fsusage *buf, const char *mount_dir); | ||||
| void glibtop_get_fsusage_s (glibtop *server, glibtop_fsusage *buf, const char *mount_dir); | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,81 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_GLOBAL_H__ | ||||
| #define __GLIBTOP_GLOBAL_H__ | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| #ifdef _IN_LIBGTOP | ||||
|  | ||||
| #endif /* _IN_LIBGTOP */ | ||||
|  | ||||
| #if TIME_WITH_SYS_TIME | ||||
| # include <sys/time.h> | ||||
| # include <time.h> | ||||
| #else | ||||
| # if HAVE_SYS_TIME_H | ||||
| #  include <sys/time.h> | ||||
| # else | ||||
| #  include <time.h> | ||||
| # endif | ||||
| #endif | ||||
|  | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| #include <stdarg.h> | ||||
|  | ||||
| #ifdef HAVE_UNISTD_H | ||||
| #include <unistd.h> | ||||
| #endif | ||||
|  | ||||
| #ifdef HAVE_MEMORY_H | ||||
| #include <memory.h> | ||||
| #endif | ||||
|  | ||||
| #include <string.h> | ||||
|  | ||||
| #ifdef _IN_LIBGTOP | ||||
|  | ||||
| #include <sys/types.h> | ||||
| #include <sys/param.h> | ||||
| #include <sys/socket.h> | ||||
| #include <sys/stat.h> | ||||
|  | ||||
| #endif /* _IN_LIBGTOP */ | ||||
|  | ||||
| #include <signal.h> | ||||
| #include <errno.h> | ||||
|  | ||||
| #ifdef _IN_LIBGTOP | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #ifndef HAVE_STRERROR | ||||
| char *strerror (int errno); | ||||
| #endif | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif /* _IN_LIBGTOP */ | ||||
|  | ||||
| #endif | ||||
| @@ -1,160 +0,0 @@ | ||||
| /* -*-C-*- | ||||
|  | ||||
|  Header file for the GNU Emacs server and client C code. | ||||
|  | ||||
|  This file is part of GNU Emacs. | ||||
|  | ||||
|  Copying is permitted under those conditions described by the GNU | ||||
|  General Public License. | ||||
|  | ||||
|  Copyright (C) 1989 Free Software Foundation, Inc. | ||||
|  | ||||
|  Author: Andy Norman (ange@hplb.hpl.hp.com), based on | ||||
|          'etc/server.c' and 'etc/emacsclient.c' from the 18.52 GNU | ||||
|          Emacs distribution. | ||||
|  | ||||
|  Please mail bugs and suggestions to the author at the above address. | ||||
| */ | ||||
|  | ||||
| /* HISTORY | ||||
|  * 11-Nov-1990		bristor@simba | ||||
|  *    Added EOT stuff. | ||||
|  */ | ||||
|  | ||||
| /* | ||||
|  * This file incorporates new features added by Bob Weiner <weiner@mot.com>, | ||||
|  * Darrell Kindred <dkindred@cmu.edu> and Arup Mukherjee <arup@cmu.edu>. | ||||
|  * Please see the note at the end of the README file for details. | ||||
|  * | ||||
|  * (If gnuserv came bundled with your emacs, the README file is probably | ||||
|  * ../etc/gnuserv.README relative to the directory containing this file) | ||||
|  */ | ||||
|  | ||||
| #if 0 | ||||
| static char header_rcsid [] = "!Header: gnuserv.h,v 2.4 95/02/16 11:58:11 arup alpha !"; | ||||
| #endif | ||||
|  | ||||
| #define NO_SHORTNAMES | ||||
|  | ||||
| #define PATCHLEVEL 2 | ||||
|  | ||||
| #define NO_SHORTNAMES | ||||
| /* gnuserv should not be compiled using SOCKS */ | ||||
| #define DO_NOT_SOCKSIFY | ||||
| #include <glibtop.h> | ||||
| #undef read | ||||
| #undef write | ||||
| #undef open | ||||
| #undef close | ||||
| #undef signal | ||||
|  | ||||
| /* Define the communication method between server and clients: | ||||
|  *   You can have either or both kinds of sockets, but you can't mix | ||||
|  *   sockets with sysv ipc | ||||
|  */ | ||||
|  | ||||
| #define INTERNET_DOMAIN_SOCKETS | ||||
| #define UNIX_DOMAIN_SOCKETS | ||||
|  | ||||
| /* | ||||
|  * Define additional authentication protocols to be used. These methods will | ||||
|  * be tried before falling back to the default gnuserv protocol (based on | ||||
|  * the GNU_SECURE environment variable). Currently, only MIT-MAGIC-COOKIE-1 | ||||
|  * is also supported. | ||||
|  * | ||||
|  * Comment out the next line(s) if you don't want to enable the | ||||
|  * appropriate authentication protocol. | ||||
|  */ | ||||
|  | ||||
| #if defined (HAVE_XAUTH) | ||||
| #define AUTH_MAGIC_COOKIE | ||||
| #endif /* HAVE_XAUTH */ | ||||
|  | ||||
| /* | ||||
|  * stuff related to supporting MIT-MAGIC-COOKIE-1 | ||||
|  */ | ||||
|  | ||||
| #if 0 | ||||
| #define MCOOKIE_SCREEN "42980"   /* screen # to use as the gnuserv cookie */ | ||||
| #endif | ||||
| #define MCOOKIE_NAME   "MAGIC-1" /* authentication protocol name */ | ||||
| #define MCOOKIE_X_NAME "MIT-MAGIC-COOKIE-1"  /* as needed by X */ | ||||
|  | ||||
|  | ||||
| #define DEFAUTH_NAME "GNU-SECURE"  /* name of default auth protocol */ | ||||
| #define AUTH_TIMEOUT  15           /* # seconds to wait for auth data */ | ||||
| #define AUTH_NAMESZ   15           /* max allows auth protocol name size */ | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * Pick a default communication scheme, if none was specified. | ||||
|  */ | ||||
|  | ||||
| #if !defined(UNIX_DOMAIN_SOCKETS) && !defined(INTERNET_DOMAIN_SOCKETS) | ||||
|  | ||||
| /* BSD systems use Unix Domain sockets by default */ | ||||
|  | ||||
| #ifdef BSD | ||||
| #define UNIX_DOMAIN_SOCKETS | ||||
| #endif | ||||
|  | ||||
| #endif /* No communication method pre-defined */ | ||||
|  | ||||
| /* | ||||
|  * If you are using SYSV_IPC, you might want to make the buffer size bigger | ||||
|  * since it limits the size of requests and responses. Don't make it bigger | ||||
|  * than your system's max message size though (usually a couple of k) or else | ||||
|  * msgsend will start failing. For sockets, using the system BUFSIZ is usually | ||||
|  * what you want. | ||||
|  */ | ||||
|  | ||||
| #if defined(INTERNET_DOMAIN_SOCKETS) || defined(UNIX_DOMAIN_SOCKETS) | ||||
| #include <sys/socket.h> | ||||
| #endif /* INTERNET_DOMAIN_SOCKETS || UNIX_DOMAIN_SOCKETS */ | ||||
|  | ||||
| #ifdef INTERNET_DOMAIN_SOCKETS | ||||
| #include <netdb.h> | ||||
| #include <netinet/in.h> | ||||
| #include <arpa/inet.h> | ||||
| #define TABLE_SIZE 101		/* The number of entries in the hash table */ | ||||
| #define HASH(host) host		/* Rather simplistic hash function */ | ||||
| #define DEFAULT_PORT 21490	/* default port number to use is | ||||
| 				 * DEFAULT_PORT + uid */ | ||||
| #endif /* INTERNET_DOMAIN_SOCKETS */ | ||||
|  | ||||
| #ifdef UNIX_DOMAIN_SOCKETS | ||||
| #include <sys/un.h> | ||||
| #define HIDE_UNIX_SOCKET	/* put the unix socket in a protected dir */ | ||||
| #endif /* UNIX_DOMAIN_SOCKETS */ | ||||
|  | ||||
| #define HOSTNAMSZ 255		/* max size of a hostname */ | ||||
| #define REPLYSIZ 300		/* max size of reply from server to client */ | ||||
| #undef FALSE | ||||
| #define FALSE 0 | ||||
| #undef TRUE | ||||
| #define TRUE 1 | ||||
|  | ||||
| /* The casts shut Sun's compiler up and are safe in the context these | ||||
|    are actually used. */ | ||||
| #define max2(x,y) (((int) (x) > (int) (y)) ? (x) : (y)) | ||||
| #define min2(x,y) (((int) (x) < (int) (y)) ? (x) : (y)) | ||||
|  | ||||
| #ifndef _NFILE            /* rough guess at maximum number of open files */ | ||||
| #define _NFILE 20 | ||||
| #endif | ||||
|  | ||||
| #define EOT_STR "\004" | ||||
| #define EOT_CHR '\004' | ||||
|  | ||||
| /* connection types */ | ||||
| #define CONN_UNIX     0 | ||||
| #define CONN_INTERNET 1 | ||||
| #define CONN_IPC      2 | ||||
|  | ||||
| /* function declarations */ | ||||
| int glibtop_make_connection (const char *hostarg, int portarg, int *s); | ||||
|  | ||||
| #ifdef INTERNET_DOMAIN_SOCKETS | ||||
| long glibtop_internet_addr (const char *host); | ||||
| #endif | ||||
|  | ||||
| @@ -1,15 +0,0 @@ | ||||
| #ifndef H_LIBGTOP_INIT_HOOKS_1122955666 | ||||
| #define H_LIBGTOP_INIT_HOOKS_1122955666 | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| typedef void (*_glibtop_init_func_t)(glibtop *); | ||||
|  | ||||
| extern const _glibtop_init_func_t _glibtop_init_hook_s[]; | ||||
| extern const _glibtop_init_func_t _glibtop_init_hook_p[]; | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif /* H_LIBGTOP_INIT_HOOKS_1122955666 */ | ||||
| @@ -1,69 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_LOADAVG_H__ | ||||
| #define __GLIBTOP_LOADAVG_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_LOADAVG_LOADAVG		0 | ||||
| #define GLIBTOP_LOADAVG_NR_RUNNING	1 | ||||
| #define GLIBTOP_LOADAVG_NR_TASKS	2 | ||||
| #define GLIBTOP_LOADAVG_LAST_PID	3 | ||||
|  | ||||
| #define GLIBTOP_MAX_LOADAVG		4 | ||||
|  | ||||
| typedef struct _glibtop_loadavg	glibtop_loadavg; | ||||
|  | ||||
| struct _glibtop_loadavg | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	double loadavg [3];		/* GLIBTOP_LOADAVG_LOADAVG	*/ | ||||
| 	guint64 nr_running;		/* GLIBTOP_LOADAVG_NR_RUNNING	*/ | ||||
| 	guint64 nr_tasks;		/* GLIBTOP_LOADAVG_NR_TASKS	*/ | ||||
| 	guint64 last_pid;		/* GLIBTOP_LOADAVG_LAST_PID	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_loadavg(glibtop_loadavg *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_LOADAVG | ||||
| #define glibtop_get_loadavg_r		glibtop_get_loadavg_p | ||||
| #else | ||||
| #define glibtop_get_loadavg_r		glibtop_get_loadavg_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_loadavg_l (glibtop *server, glibtop_loadavg *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_LOADAVG | ||||
| void _glibtop_init_loadavg_p (glibtop *server); | ||||
| void glibtop_get_loadavg_p (glibtop *server, glibtop_loadavg *buf); | ||||
| #else | ||||
| void _glibtop_init_loadavg_s (glibtop *server); | ||||
| void glibtop_get_loadavg_s (glibtop *server, glibtop_loadavg *buf); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -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 */ | ||||
| @@ -1,77 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MEM_H__ | ||||
| #define __GLIBTOP_MEM_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_MEM_TOTAL	0 | ||||
| #define GLIBTOP_MEM_USED	1 | ||||
| #define GLIBTOP_MEM_FREE	2 | ||||
| #define GLIBTOP_MEM_SHARED	3 | ||||
| #define GLIBTOP_MEM_BUFFER	4 | ||||
| #define GLIBTOP_MEM_CACHED	5 | ||||
| #define GLIBTOP_MEM_USER	6 | ||||
| #define GLIBTOP_MEM_LOCKED	7 | ||||
|  | ||||
| #define GLIBTOP_MAX_MEM		8 | ||||
|  | ||||
| typedef struct _glibtop_mem	glibtop_mem; | ||||
|  | ||||
| struct _glibtop_mem | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 total;		/* GLIBTOP_MEM_TOTAL	*/ | ||||
| 	guint64 used;		/* GLIBTOP_MEM_USED	*/ | ||||
| 	guint64 free;		/* GLIBTOP_MEM_FREE	*/ | ||||
| 	guint64 shared;		/* GLIBTOP_MEM_SHARED	*/ | ||||
| 	guint64 buffer;		/* GLIBTOP_MEM_BUFFER	*/ | ||||
| 	guint64 cached;		/* GLIBTOP_MEM_CACHED	*/ | ||||
| 	guint64 user;		/* GLIBTOP_MEM_USER	*/ | ||||
| 	guint64 locked;		/* GLIBTOP_MEM_LOCKED	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_mem(glibtop_mem *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_MEM | ||||
| #define glibtop_get_mem_r		glibtop_get_mem_p | ||||
| #else | ||||
| #define glibtop_get_mem_r		glibtop_get_mem_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_mem_l (glibtop *server, glibtop_mem *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_MEM | ||||
| void _glibtop_init_mem_p (glibtop *server); | ||||
| void glibtop_get_mem_p (glibtop *server, glibtop_mem *buf); | ||||
| #else | ||||
| void _glibtop_init_mem_s (glibtop *server); | ||||
| void glibtop_get_mem_s (glibtop *server, glibtop_mem *buf); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,104 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MOUNTLIST_H__ | ||||
| #define __GLIBTOP_MOUNTLIST_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_MOUNTLIST_NUMBER	0 | ||||
| #define GLIBTOP_MOUNTLIST_TOTAL		1 | ||||
| #define GLIBTOP_MOUNTLIST_SIZE		2 | ||||
|  | ||||
| #define GLIBTOP_MAX_MOUNTLIST		3 | ||||
|  | ||||
| typedef struct _glibtop_mountentry	glibtop_mountentry; | ||||
|  | ||||
| typedef struct _glibtop_mountlist	glibtop_mountlist; | ||||
|  | ||||
| struct _glibtop_mountentry | ||||
| { | ||||
| 	guint64 dev; | ||||
| 	char devname [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| 	char mountdir [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| 	char type [GLIBTOP_MOUNTENTRY_LEN+1]; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_mountlist | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 number;			/* GLIBTOP_MOUNTLIST_NUMBER	*/ | ||||
| 	guint64 total;			/* GLIBTOP_MOUNTLIST_TOTAL	*/ | ||||
| 	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); | ||||
|  | ||||
| #define glibtop_get_mountlist_r		glibtop_get_mountlist_s | ||||
|  | ||||
| glibtop_mountentry * | ||||
| 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 | ||||
|  | ||||
| #endif | ||||
| @@ -1,76 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_MSG_LIMITS_H__ | ||||
| #define __GLIBTOP_MSG_LIMITS_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_IPC_MSGPOOL	0 | ||||
| #define GLIBTOP_IPC_MSGMAP	1 | ||||
| #define GLIBTOP_IPC_MSGMAX	2 | ||||
| #define GLIBTOP_IPC_MSGMNB	3 | ||||
| #define GLIBTOP_IPC_MSGMNI	4 | ||||
| #define GLIBTOP_IPC_MSGSSZ	5 | ||||
| #define GLIBTOP_IPC_MSGTQL	6 | ||||
|  | ||||
| #define GLIBTOP_MAX_MSG_LIMITS	7 | ||||
|  | ||||
| typedef struct _glibtop_msg_limits	glibtop_msg_limits; | ||||
|  | ||||
| struct _glibtop_msg_limits | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 msgpool;	/* GLIBTOP_IPC_MSGPOOL	*/ | ||||
| 	guint64 msgmap;		/* GLIBTOP_IPC_MSGMAP	*/ | ||||
| 	guint64 msgmax;		/* GLIBTOP_IPC_MSGMAX	*/ | ||||
| 	guint64 msgmnb;		/* GLIBTOP_IPC_MSGMNB	*/ | ||||
| 	guint64 msgmni;		/* GLIBTOP_IPC_MSGMNI	*/ | ||||
| 	guint64 msgssz;		/* GLIBTOP_IPC_MSGSSZ	*/ | ||||
| 	guint64 msgtql;		/* GLIBTOP_IPC_MSGTQL	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_msg_limits(glibtop_msg_limits *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_MSG_LIMITS | ||||
| #define glibtop_get_msg_limits_r	glibtop_get_msg_limits_p | ||||
| #else | ||||
| #define glibtop_get_msg_limits_r	glibtop_get_msg_limits_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_msg_limits_l (glibtop *server, glibtop_msg_limits *buf); | ||||
|  | ||||
| #if GLIBTOP_SUID_MSG_LIMITS | ||||
| void _glibtop_init_msg_limits_p (glibtop *server); | ||||
| void glibtop_get_msg_limits_p (glibtop *server, glibtop_msg_limits *buf); | ||||
| #else | ||||
| void _glibtop_init_msg_limits_s (glibtop *server); | ||||
| void glibtop_get_msg_limits_s (glibtop *server, glibtop_msg_limits *buf); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
|  | ||||
| @@ -1,98 +0,0 @@ | ||||
| /* Copyright (C) 2004 Benoît Dejean | ||||
|    This file is part of LibGTop 2.0. | ||||
|  | ||||
|    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_NETLIST_H__ | ||||
| #define __GLIBTOP_NETLIST_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_NETLIST_NUMBER		0 | ||||
|  | ||||
| #define GLIBTOP_MAX_NETLIST		1 | ||||
|  | ||||
| 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 | ||||
| #define glibtop_get_netlist_r		glibtop_get_netlist_p | ||||
| #else | ||||
| #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 | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,130 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_NETLOAD_H__ | ||||
| #define __GLIBTOP_NETLOAD_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_NETLOAD_IF_FLAGS	0 | ||||
| #define GLIBTOP_NETLOAD_MTU		1 | ||||
| #define GLIBTOP_NETLOAD_SUBNET		2 | ||||
| #define GLIBTOP_NETLOAD_ADDRESS		3 | ||||
| #define GLIBTOP_NETLOAD_PACKETS_IN	4 | ||||
| #define GLIBTOP_NETLOAD_PACKETS_OUT	5 | ||||
| #define GLIBTOP_NETLOAD_PACKETS_TOTAL	6 | ||||
| #define GLIBTOP_NETLOAD_BYTES_IN	7 | ||||
| #define GLIBTOP_NETLOAD_BYTES_OUT	8 | ||||
| #define GLIBTOP_NETLOAD_BYTES_TOTAL	9 | ||||
| #define GLIBTOP_NETLOAD_ERRORS_IN	10 | ||||
| #define GLIBTOP_NETLOAD_ERRORS_OUT	11 | ||||
| #define GLIBTOP_NETLOAD_ERRORS_TOTAL	12 | ||||
| #define GLIBTOP_NETLOAD_COLLISIONS	13 | ||||
| #define GLIBTOP_NETLOAD_ADDRESS6	14 | ||||
| #define GLIBTOP_NETLOAD_PREFIX6		15 | ||||
| #define GLIBTOP_NETLOAD_SCOPE6		16 | ||||
| #define GLIBTOP_NETLOAD_HWADDRESS	17 | ||||
|  | ||||
| #define GLIBTOP_MAX_NETLOAD		18 | ||||
|  | ||||
| typedef struct _glibtop_netload	glibtop_netload; | ||||
|  | ||||
| enum { | ||||
| 	GLIBTOP_IF_FLAGS_UP = 1, | ||||
| 	GLIBTOP_IF_FLAGS_BROADCAST, | ||||
| 	GLIBTOP_IF_FLAGS_DEBUG, | ||||
| 	GLIBTOP_IF_FLAGS_LOOPBACK, | ||||
| 	GLIBTOP_IF_FLAGS_POINTOPOINT, | ||||
| 	GLIBTOP_IF_FLAGS_RUNNING, | ||||
| 	GLIBTOP_IF_FLAGS_NOARP, | ||||
| 	GLIBTOP_IF_FLAGS_PROMISC, | ||||
| 	GLIBTOP_IF_FLAGS_ALLMULTI, | ||||
| 	GLIBTOP_IF_FLAGS_OACTIVE, | ||||
| 	GLIBTOP_IF_FLAGS_SIMPLEX, | ||||
| 	GLIBTOP_IF_FLAGS_LINK0, | ||||
| 	GLIBTOP_IF_FLAGS_LINK1, | ||||
| 	GLIBTOP_IF_FLAGS_LINK2, | ||||
| 	GLIBTOP_IF_FLAGS_ALTPHYS, | ||||
| 	GLIBTOP_IF_FLAGS_MULTICAST, | ||||
| 	GLIBTOP_IF_FLAGS_WIRELESS | ||||
| }; | ||||
|  | ||||
| enum GLIBTOP_IF_IN6_SCOPE | ||||
| { | ||||
| 	GLIBTOP_IF_IN6_SCOPE_UNKNOWN = 0, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_LINK    = 1, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_SITE    = 2, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_GLOBAL  = 4, | ||||
| 	GLIBTOP_IF_IN6_SCOPE_HOST    = 8 | ||||
| }; | ||||
|  | ||||
| struct _glibtop_netload | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 if_flags;		/* GLIBTOP_NETLOAD_IF_FLAGS	*/ | ||||
|  | ||||
| 	guint32	mtu;			/* GLIBTOP_NETLOAD_MTU		*/ | ||||
| 	guint32 subnet;			/* GLIBTOP_NETLOAD_SUBNET	*/ | ||||
| 	guint32 address;		/* GLIBTOP_NETLOAD_ADDRESS	*/ | ||||
|  | ||||
| 	guint64	packets_in;		/* GLIBTOP_NETLOAD_PACKETS_IN	*/ | ||||
| 	guint64 packets_out;		/* GLIBTOP_NETLOAD_PACKETS_OUT	*/ | ||||
| 	guint64 packets_total;		/* GLIBTOP_NETLOAD_PACKETS_TOTAL*/ | ||||
| 	guint64 bytes_in;		/* GLIBTOP_NETLOAD_BYTES_IN	*/ | ||||
| 	guint64 bytes_out;		/* GLIBTOP_NETLOAD_BYTES_OUT	*/ | ||||
| 	guint64 bytes_total;		/* GLIBTOP_NETLOAD_BYTES_TOTAL	*/ | ||||
| 	guint64 errors_in;		/* GLIBTOP_NETLOAD_ERRORS_IN	*/ | ||||
| 	guint64 errors_out;		/* GLIBTOP_NETLOAD_ERRORS_OUT	*/ | ||||
| 	guint64 errors_total;		/* GLIBTOP_NETLOAD_ERRORS_TOTAL	*/ | ||||
| 	guint64 collisions;		/* GLIBTOP_NETLOAD_COLLISIONS	*/ | ||||
|  | ||||
| 	guint8 address6[16];		/* GLIBTOP_NETLOAD_ADDRESS6     */ | ||||
| 	guint8 prefix6[16];		/* GLIBTOP_NETLOAD_PREXIF6      */ | ||||
| 	guint8 scope6;			/* GLIBTOP_NETLOAD_SCOPE6       */ | ||||
|  | ||||
| 	guint8 hwaddress[8];		/* GLIBTOP_NETLOAD_HWADDRESS    */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_netload(glibtop_netload *buf, const char *interface); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLOAD | ||||
| #define glibtop_get_netload_r	glibtop_get_netload_p | ||||
| #else | ||||
| #define glibtop_get_netload_r	glibtop_get_netload_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_netload_l (glibtop *server, glibtop_netload *buf, const char *interface); | ||||
|  | ||||
| #if GLIBTOP_SUID_NETLOAD | ||||
| void _glibtop_init_netload_p (glibtop *server); | ||||
| void glibtop_get_netload_p (glibtop *server, glibtop_netload *buf, const char *interface); | ||||
| #else | ||||
| void _glibtop_init_netload_s (glibtop *server); | ||||
| void glibtop_get_netload_s (glibtop *server, glibtop_netload *buf, const char *interface); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,71 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_OPEN_H__ | ||||
| #define __GLIBTOP_OPEN_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define _GLIBTOP_INIT_STATE_INIT	0x10000 | ||||
| #define _GLIBTOP_INIT_STATE_OPEN	0x20000 | ||||
| #define _GLIBTOP_INIT_STATE_SERVER	0x40000 | ||||
| #define _GLIBTOP_INIT_STATE_SYSDEPS	0x80000 | ||||
|  | ||||
| #define GLIBTOP_INIT_NO_OPEN		1 | ||||
| #define GLIBTOP_INIT_NO_INIT		2 | ||||
|  | ||||
| #define GLIBTOP_FEATURES_NO_SERVER	4 | ||||
| #define GLIBTOP_FEATURES_EXCEPT		8 | ||||
|  | ||||
| #define GLIBTOP_METHOD_DIRECT		1 | ||||
| #define GLIBTOP_METHOD_PIPE		2 | ||||
| #define GLIBTOP_METHOD_INET		3 | ||||
| #define GLIBTOP_METHOD_UNIX		4 | ||||
|  | ||||
| #define GLIBTOP_ERROR_METHOD_IGNORE	0 | ||||
| #define GLIBTOP_ERROR_METHOD_WARN_ONCE	1 | ||||
| #define GLIBTOP_ERROR_METHOD_WARN	2 | ||||
| #define GLIBTOP_ERROR_METHOD_ABORT	3 | ||||
|  | ||||
| #define GLIBTOP_ERROR_METHOD_DEFAULT	GLIBTOP_ERROR_METHOD_WARN_ONCE | ||||
|  | ||||
| void | ||||
| glibtop_open_l (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, const unsigned flags); | ||||
|  | ||||
| void | ||||
| glibtop_init_p (glibtop *server, const unsigned long features, | ||||
| 		const unsigned flags); | ||||
|  | ||||
| void | ||||
| glibtop_open_p (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, const unsigned flags); | ||||
|  | ||||
| void | ||||
| glibtop_open_s (glibtop *server, const char *program_name, | ||||
| 		const unsigned long features, const unsigned flags); | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,50 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PARAMETER_H__ | ||||
| #define __GLIBTOP_PARAMETER_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PARAM_METHOD		1 | ||||
| #define GLIBTOP_PARAM_FEATURES		2 | ||||
| #define GLIBTOP_PARAM_COMMAND		3 | ||||
| #define GLIBTOP_PARAM_HOST		4 | ||||
| #define GLIBTOP_PARAM_PORT		5 | ||||
| #define GLIBTOP_PARAM_ERROR_METHOD	6 | ||||
| #define GLIBTOP_PARAM_REQUIRED		7 | ||||
|  | ||||
| #define glibtop_get_parameter(p1,p2,p3)	glibtop_get_parameter_l(glibtop_global_server,p1,p2,p3) | ||||
| #define glibtop_set_parameter(p1,p2,p3) glibtop_set_parameter_l(glibtop_global_server,p1,p2,p3) | ||||
|  | ||||
| size_t | ||||
| glibtop_get_parameter_l (glibtop *server, const unsigned parameter, | ||||
| 			 void *data_ptr, size_t data_size); | ||||
|  | ||||
| void | ||||
| glibtop_set_parameter_l (glibtop *server, const unsigned parameter, | ||||
| 			 const void *data_ptr, size_t data_size); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,73 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PPP_H__ | ||||
| #define __GLIBTOP_PPP_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PPP_STATE	0 | ||||
| #define GLIBTOP_PPP_BYTES_IN	1 | ||||
| #define GLIBTOP_PPP_BYTES_OUT	2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PPP		3 | ||||
|  | ||||
| typedef struct _glibtop_ppp	glibtop_ppp; | ||||
|  | ||||
| enum { | ||||
| 	GLIBTOP_PPP_STATE_UNKNOWN = 0, | ||||
| 	GLIBTOP_PPP_STATE_HANGUP, | ||||
| 	GLIBTOP_PPP_STATE_ONLINE | ||||
| }; | ||||
|  | ||||
| struct _glibtop_ppp | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 state;			/* GLIBTOP_PPP_STATE		*/ | ||||
| 	guint64 bytes_in;		/* GLIBTOP_PPP_BYTES_IN		*/ | ||||
| 	guint64 bytes_out;		/* GLIBTOP_PPP_BYTES_OUT	*/ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_ppp(glibtop_ppp *buf, unsigned short device); | ||||
|  | ||||
| #if GLIBTOP_SUID_PPP | ||||
| #define glibtop_get_ppp_r	glibtop_get_ppp_p | ||||
| #else | ||||
| #define glibtop_get_ppp_r	glibtop_get_ppp_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_ppp_l (glibtop *server, glibtop_ppp *buf, unsigned short device); | ||||
|  | ||||
| #if GLIBTOP_SUID_PPP | ||||
| void _glibtop_init_ppp_p (glibtop *server); | ||||
| void glibtop_get_ppp_p (glibtop *server, glibtop_ppp *buf, unsigned short device); | ||||
| #else | ||||
| void _glibtop_init_ppp_s (glibtop *server); | ||||
| void glibtop_get_ppp_s (glibtop *server, glibtop_ppp *buf, unsigned short device); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -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 | ||||
| @@ -1,97 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_ARGS_H__ | ||||
| #define __GLIBTOP_PROC_ARGS_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_ARGS_SIZE		0 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_ARGS		1 | ||||
|  | ||||
| typedef struct _glibtop_proc_args	glibtop_proc_args; | ||||
|  | ||||
| struct _glibtop_proc_args | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 size;			/* GLIBTOP_PROC_ARGS_SIZE	*/ | ||||
| }; | ||||
|  | ||||
|  | ||||
| char * | ||||
| glibtop_get_proc_args_l (glibtop *server, glibtop_proc_args *buf, | ||||
| 			 pid_t pid, unsigned max_len); | ||||
|  | ||||
| char * | ||||
| glibtop_get_proc_args (glibtop_proc_args *buf, pid_t pid, unsigned max_len); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_ARGS | ||||
|  | ||||
| # define glibtop_get_proc_args_r		glibtop_get_proc_args_p | ||||
|  | ||||
|   void _glibtop_init_proc_args_p (glibtop *server); | ||||
|  | ||||
|   char * | ||||
|   glibtop_get_proc_args_p (glibtop *server, glibtop_proc_args *buf, | ||||
| 			   pid_t pid, unsigned max_len); | ||||
|  | ||||
|  | ||||
| #else /* !GLIBTOP_SUID_PROC_ARGS */ | ||||
|  | ||||
| # define glibtop_get_proc_args_r		glibtop_get_proc_args_s | ||||
|  | ||||
|   void _glibtop_init_proc_args_s (glibtop *server); | ||||
|  | ||||
|   char * | ||||
|   glibtop_get_proc_args_s (glibtop *server, glibtop_proc_args *buf, | ||||
| 			   pid_t pid, unsigned max_len); | ||||
| #endif /* GLIBTOP_SUID_PROC_ARGS */ | ||||
|  | ||||
|  | ||||
|  | ||||
| /* | ||||
|  * NEW functions | ||||
|  */ | ||||
|  | ||||
| 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); | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,86 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCKERNEL_H__ | ||||
| #define __GLIBTOP_PROCKERNEL_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_KERNEL_K_FLAGS	0 | ||||
| #define GLIBTOP_PROC_KERNEL_MIN_FLT	1 | ||||
| #define GLIBTOP_PROC_KERNEL_MAJ_FLT	2 | ||||
| #define GLIBTOP_PROC_KERNEL_CMIN_FLT	3 | ||||
| #define GLIBTOP_PROC_KERNEL_CMAJ_FLT	4 | ||||
| #define GLIBTOP_PROC_KERNEL_KSTK_ESP	5 | ||||
| #define GLIBTOP_PROC_KERNEL_KSTK_EIP	6 | ||||
| #define GLIBTOP_PROC_KERNEL_NWCHAN	7 | ||||
| #define GLIBTOP_PROC_KERNEL_WCHAN	8 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_KERNEL		9 | ||||
|  | ||||
| typedef struct _glibtop_proc_kernel	glibtop_proc_kernel; | ||||
|  | ||||
| /* Kernel stuff */ | ||||
|  | ||||
| struct _glibtop_proc_kernel | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	guint64 k_flags;	/* kernel flags for the process */ | ||||
| 	guint64 min_flt;	/* number of minor page faults since | ||||
| 				 * process start */ | ||||
| 	guint64 maj_flt;	/* number of major page faults since | ||||
| 				 * process start */ | ||||
| 	guint64 cmin_flt;	/* cumulative min_flt of process and | ||||
| 				 * child processes */ | ||||
| 	guint64 cmaj_flt;	/* cumulative maj_flt of process and | ||||
| 				 * child processes */ | ||||
| 	guint64 kstk_esp;	/* kernel stack pointer */ | ||||
| 	guint64 kstk_eip;	/* kernel stack pointer */ | ||||
| 	guint64 nwchan;		/* address of kernel wait channel | ||||
| 				 * proc is sleeping in */ | ||||
| 	char wchan [40]; | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_kernel(glibtop_proc_kernel *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_KERNEL | ||||
| #define glibtop_get_proc_kernel_r	glibtop_get_proc_kernel_p | ||||
| #else | ||||
| #define glibtop_get_proc_kernel_r	glibtop_get_proc_kernel_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_kernel_l (glibtop *server, glibtop_proc_kernel *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_KERNEL | ||||
| void _glibtop_init_proc_kernel_p (glibtop *server); | ||||
| void glibtop_get_proc_kernel_p (glibtop *server, glibtop_proc_kernel *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_kernel_s (glibtop *server); | ||||
| void glibtop_get_proc_kernel_s (glibtop *server, glibtop_proc_kernel *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,199 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCLIST_H__ | ||||
| #define __GLIBTOP_PROCLIST_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROCLIST_NUMBER	0 | ||||
| #define GLIBTOP_PROCLIST_TOTAL	1 | ||||
| #define GLIBTOP_PROCLIST_SIZE	2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROCLIST	3 | ||||
|  | ||||
| /* 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_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; | ||||
| 	guint64 number;			/* GLIBTOP_PROCLIST_NUMBER	*/ | ||||
| 	guint64 total;			/* GLIBTOP_PROCLIST_TOTAL	*/ | ||||
| 	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* | ||||
| glibtop_get_proclist(glibtop_proclist *buf, gint64 which, gint64 arg); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROCLIST | ||||
| #define glibtop_get_proclist_r		glibtop_get_proclist_p | ||||
| #else | ||||
| #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* | ||||
| 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* | ||||
| 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* | ||||
| glibtop_get_proclist_s (glibtop *server, glibtop_proclist *buf, | ||||
| 			gint64 which, gint64 arg); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,161 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROC_MAP_H__ | ||||
| #define __GLIBTOP_PROC_MAP_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_MAP_NUMBER		0 | ||||
| #define GLIBTOP_PROC_MAP_TOTAL		1 | ||||
| #define GLIBTOP_PROC_MAP_SIZE		2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_MAP		3 | ||||
|  | ||||
| #define GLIBTOP_MAP_ENTRY_START		0 | ||||
| #define GLIBTOP_MAP_ENTRY_END		1 | ||||
| #define GLIBTOP_MAP_ENTRY_OFFSET	2 | ||||
| #define GLIBTOP_MAP_ENTRY_PERM		3 | ||||
| #define GLIBTOP_MAP_ENTRY_INODE		4 | ||||
| #define GLIBTOP_MAP_ENTRY_DEVICE	5 | ||||
| #define GLIBTOP_MAP_ENTRY_FILENAME	6 | ||||
|  | ||||
| /* Smap support */ | ||||
| #define GLIBTOP_MAP_ENTRY_SIZE			 7 | ||||
| #define GLIBTOP_MAP_ENTRY_RSS			 8 | ||||
| #define GLIBTOP_MAP_ENTRY_SHARED_CLEAN		 9 | ||||
| #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_MAP_FILENAME_LEN	215 | ||||
|  | ||||
| #define GLIBTOP_MAP_PERM_READ		1 | ||||
| #define GLIBTOP_MAP_PERM_WRITE		2 | ||||
| #define GLIBTOP_MAP_PERM_EXECUTE	4 | ||||
| #define GLIBTOP_MAP_PERM_SHARED		8 | ||||
| #define GLIBTOP_MAP_PERM_PRIVATE	16 | ||||
|  | ||||
| typedef struct _glibtop_map_entry	glibtop_map_entry; | ||||
|  | ||||
| typedef struct _glibtop_proc_map	glibtop_proc_map; | ||||
|  | ||||
| struct _glibtop_map_entry | ||||
| { | ||||
| 	guint64 flags;  | ||||
| 	guint64 start;  | ||||
| 	guint64 end;  | ||||
| 	guint64 offset;  | ||||
| 	guint64 perm;  | ||||
| 	guint64 inode;  | ||||
| 	guint64 device; | ||||
| 	guint64 size; | ||||
| 	guint64 rss; | ||||
| 	guint64 shared_clean;  | ||||
| 	guint64 shared_dirty; | ||||
| 	guint64 private_clean;  | ||||
| 	guint64 private_dirty; | ||||
| 	guint64 pss; | ||||
| 	guint64 swap; | ||||
| 	char filename [GLIBTOP_MAP_FILENAME_LEN+1]; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_proc_map | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 number;			/* GLIBTOP_PROC_MAP_NUMBER	*/ | ||||
| 	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 | ||||
| #define glibtop_get_proc_map_r		glibtop_get_proc_map_s | ||||
| #endif | ||||
|  | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map_l (glibtop *server, glibtop_proc_map *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MAP | ||||
| void _glibtop_init_proc_map_p (glibtop *server); | ||||
|  | ||||
| glibtop_map_entry * | ||||
| glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_map_s (glibtop *server); | ||||
|  | ||||
| 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 | ||||
|  | ||||
| #endif | ||||
| @@ -1,83 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCMEM_H__ | ||||
| #define __GLIBTOP_PROCMEM_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_MEM_SIZE		0 | ||||
| #define GLIBTOP_PROC_MEM_VSIZE		1 | ||||
| #define GLIBTOP_PROC_MEM_RESIDENT	2 | ||||
| #define GLIBTOP_PROC_MEM_SHARE		3 | ||||
| #define GLIBTOP_PROC_MEM_RSS		4 | ||||
| #define GLIBTOP_PROC_MEM_RSS_RLIM	5 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_MEM		6 | ||||
|  | ||||
| typedef struct _glibtop_proc_mem	glibtop_proc_mem; | ||||
|  | ||||
| /* Memory section */ | ||||
|  | ||||
| struct _glibtop_proc_mem | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 size;		/* total # of pages of memory */ | ||||
| 	guint64 vsize;		/* number of pages of virtual memory ... */ | ||||
| 	guint64 resident;	/* number of resident set | ||||
| 				 * (non-swapped) pages (4k) */ | ||||
| 	guint64 share;		/* number of pages of shared (mmap'd) memory */ | ||||
| 	guint64 rss;		/* resident set size */ | ||||
| 	guint64 rss_rlim;	/* current limit (in bytes) of the rss | ||||
| 				 * of the process; usually 2,147,483,647 */ | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * glibtop_get_proc_map: | ||||
|  * @buf: | ||||
|  * @pid: | ||||
|  * | ||||
|  */ | ||||
| void glibtop_get_proc_mem(glibtop_proc_mem *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MEM | ||||
| #define glibtop_get_proc_mem_r		glibtop_get_proc_mem_p | ||||
| #else | ||||
| #define glibtop_get_proc_mem_r		glibtop_get_proc_mem_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_mem_l (glibtop *server, glibtop_proc_mem *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_MEM | ||||
| void _glibtop_init_proc_mem_p (glibtop *server); | ||||
| void glibtop_get_proc_mem_p (glibtop *server, glibtop_proc_mem *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_mem_s (glibtop *server); | ||||
| void glibtop_get_proc_mem_s (glibtop *server, glibtop_proc_mem *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,154 +0,0 @@ | ||||
| /* Copyright (C) 1998-99 Martin Baulig | ||||
|    Copyright (C) 2004 Nicolás Lichtmaier | ||||
|    This file is part of LibGTop 1.0. | ||||
|  | ||||
|    Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998. | ||||
|  | ||||
|    Modified by Nicolás Lichtmaier to give open process files. | ||||
|  | ||||
|    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_PROC_OPEN_FILES_H__ | ||||
| #define __GLIBTOP_PROC_OPEN_FILES_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_OPEN_FILES_NUMBER		0 | ||||
| #define GLIBTOP_PROC_OPEN_FILES_TOTAL		1 | ||||
| #define GLIBTOP_PROC_OPEN_FILES_SIZE		2 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_OPEN_FILES		3 | ||||
|  | ||||
| #define GLIBTOP_FILE_ENTRY_FD				0 | ||||
| #define GLIBTOP_FILE_ENTRY_NAME				1 | ||||
| #define GLIBTOP_FILE_ENTRY_TYPE				2 | ||||
| #define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST		3 | ||||
| #define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT		4 | ||||
|  | ||||
| #define GLIBTOP_MAX_OPEN_FILE_ENTRY		5 | ||||
|  | ||||
| #define GLIBTOP_OPEN_FILENAME_LEN	215 | ||||
|  /* ready for IPv6 */ | ||||
| #define GLIBTOP_OPEN_DEST_HOST_LEN	46 | ||||
|  | ||||
| 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 | ||||
| }; | ||||
|  | ||||
| typedef struct _glibtop_open_files_entry glibtop_open_files_entry; | ||||
|  | ||||
| typedef struct _glibtop_proc_open_files	glibtop_proc_open_files; | ||||
|  | ||||
| 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 */ | ||||
| 		struct { | ||||
| 			char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1]; | ||||
| 			int dest_port; | ||||
| 		} sock; | ||||
|  | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_FILE */ | ||||
| 		struct { | ||||
| 			char name[GLIBTOP_OPEN_FILENAME_LEN+1]; | ||||
| 		} file; | ||||
|  | ||||
| 		/* When type == GLIBTOP_FILE_TYPE_LOCALSOCKET */ | ||||
| 		struct { | ||||
| 			char name[GLIBTOP_OPEN_FILENAME_LEN+1]; | ||||
| 		} localsock; | ||||
|  | ||||
| 	} info; | ||||
| }; | ||||
|  | ||||
| struct _glibtop_proc_open_files | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 number;			/* GLIBTOP_PROC_OPEN_FILES_NUMBER */ | ||||
| 	guint64 total;			/* GLIBTOP_PROC_OPEN_FILES_TOTAL  */ | ||||
| 	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_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_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 | ||||
| void _glibtop_init_proc_open_files_s (glibtop *server); | ||||
|  | ||||
| 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 | ||||
| @@ -1,80 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSEGMENT_H__ | ||||
| #define __GLIBTOP_PROCSEGMENT_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_SEGMENT_TEXT_RSS		0 | ||||
| #define GLIBTOP_PROC_SEGMENT_SHLIB_RSS		1 | ||||
| #define GLIBTOP_PROC_SEGMENT_DATA_RSS		2 | ||||
| #define GLIBTOP_PROC_SEGMENT_STACK_RSS		3 | ||||
| #define GLIBTOP_PROC_SEGMENT_DIRTY_SIZE		4 | ||||
| #define GLIBTOP_PROC_SEGMENT_START_CODE		5 | ||||
| #define GLIBTOP_PROC_SEGMENT_END_CODE		6 | ||||
| #define GLIBTOP_PROC_SEGMENT_START_STACK	7 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_SEGMENT		8 | ||||
|  | ||||
| typedef struct _glibtop_proc_segment	glibtop_proc_segment; | ||||
|  | ||||
| /* Segment stuff */ | ||||
|  | ||||
| struct _glibtop_proc_segment | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 text_rss;	/* text resident set size */ | ||||
| 	guint64 shlib_rss;	/* shared-lib resident set size */ | ||||
| 	guint64 data_rss;	/* data resident set size */ | ||||
| 	guint64 stack_rss;	/* stack resident set size */ | ||||
| 	guint64 dirty_size;	/* size of dirty pages */ | ||||
| 	guint64 start_code; | ||||
| 				/* address of beginning of code segment */ | ||||
| 	guint64 end_code;	/* address of end of code segment */ | ||||
| 	guint64 start_stack;	/* address of the bottom of stack segment */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_segment(glibtop_proc_segment *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SEGMENT | ||||
| #define glibtop_get_proc_segment_r	glibtop_get_proc_segment_p | ||||
| #else | ||||
| #define glibtop_get_proc_segment_r	glibtop_get_proc_segment_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_segment_l (glibtop *server, glibtop_proc_segment *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SEGMENT | ||||
| void _glibtop_init_proc_segment_p (glibtop *server); | ||||
| void glibtop_get_proc_segment_p (glibtop *server, glibtop_proc_segment *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_segment_s (glibtop *server); | ||||
| void glibtop_get_proc_segment_s (glibtop *server, glibtop_proc_segment *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,71 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSIGNAL_H__ | ||||
| #define __GLIBTOP_PROCSIGNAL_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_SIGNAL_SIGNAL	0 | ||||
| #define GLIBTOP_PROC_SIGNAL_BLOCKED	1 | ||||
| #define GLIBTOP_PROC_SIGNAL_SIGIGNORE	2 | ||||
| #define GLIBTOP_PROC_SIGNAL_SIGCATCH	3 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_SIGNAL		4 | ||||
|  | ||||
| typedef struct _glibtop_proc_signal	glibtop_proc_signal; | ||||
|  | ||||
| /* Signals section */ | ||||
|  | ||||
| struct _glibtop_proc_signal | ||||
| { | ||||
| 	guint64	flags; | ||||
| 	guint64 signal [2];		/* mask of pending signals */ | ||||
| 	guint64 blocked [2];		/* mask of blocked signals */ | ||||
| 	guint64 sigignore [2];		/* mask of ignored signals */ | ||||
| 	guint64 sigcatch [2];		/* mask of caught  signals */ | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_signal(glibtop_proc_signal *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SIGNAL | ||||
| #define glibtop_get_proc_signal_r	glibtop_get_proc_signal_p | ||||
| #else | ||||
| #define glibtop_get_proc_signal_r	glibtop_get_proc_signal_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_signal_l (glibtop *server, glibtop_proc_signal *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_SIGNAL | ||||
| void _glibtop_init_proc_signal_p (glibtop *server); | ||||
| void glibtop_get_proc_signal_p (glibtop *server, glibtop_proc_signal *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_signal_s (glibtop *server); | ||||
| void glibtop_get_proc_signal_s (glibtop *server, glibtop_proc_signal *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,95 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCSTATE_H__ | ||||
| #define __GLIBTOP_PROCSTATE_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_STATE_CMD		0 | ||||
| #define GLIBTOP_PROC_STATE_STATE	1 | ||||
| #define GLIBTOP_PROC_STATE_UID		2 | ||||
| #define GLIBTOP_PROC_STATE_GID		3 | ||||
| #define GLIBTOP_PROC_STATE_RUID     4 | ||||
| #define GLIBTOP_PROC_STATE_RGID     5 | ||||
| #define GLIBTOP_PROC_STATE_HAS_CPU  6 | ||||
| #define GLIBTOP_PROC_STATE_PROCESSOR 7 | ||||
| #define GLIBTOP_PROC_STATE_LAST_PROCESSOR 8 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_STATE		9 | ||||
|  | ||||
| #define GLIBTOP_PROCESS_RUNNING                 1 | ||||
| #define GLIBTOP_PROCESS_INTERRUPTIBLE           2 | ||||
| #define GLIBTOP_PROCESS_UNINTERRUPTIBLE         4 | ||||
| #define GLIBTOP_PROCESS_ZOMBIE                  8 | ||||
| #define GLIBTOP_PROCESS_STOPPED                 16 | ||||
| #define GLIBTOP_PROCESS_SWAPPING                32 | ||||
| #define GLIBTOP_PROCESS_DEAD                    64 | ||||
|  | ||||
| typedef struct _glibtop_proc_state	glibtop_proc_state; | ||||
|  | ||||
| /* Name and status */ | ||||
|  | ||||
| struct _glibtop_proc_state | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	char cmd[40];		/* basename of executable file in | ||||
| 				 * call to exec(2) */ | ||||
| 	unsigned state; | ||||
| 	/* NOTE: when porting the library, TRY HARD to implement the | ||||
| 	 *       following two fields. */ | ||||
| 	/* IMPORTANT NOTICE: For security reasons, it is extremely important | ||||
| 	 *                   only to set the flags value for those two | ||||
| 	 *                   fields if their values are corrent ! */ | ||||
| 	int uid;		/* UID of process */ | ||||
| 	int gid;		/* GID of process */ | ||||
|     int ruid; | ||||
|     int rgid; | ||||
|     int has_cpu; | ||||
|     int processor; | ||||
|     int last_processor; | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_state(glibtop_proc_state *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_STATE | ||||
| #define glibtop_get_proc_state_r	glibtop_get_proc_state_p | ||||
| #else | ||||
| #define glibtop_get_proc_state_r	glibtop_get_proc_state_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_state_l (glibtop *server, glibtop_proc_state *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_STATE | ||||
| void _glibtop_init_proc_state_p (glibtop *server); | ||||
| void glibtop_get_proc_state_p (glibtop *server, glibtop_proc_state *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_state_s (glibtop *server); | ||||
| void glibtop_get_proc_state_s (glibtop *server, glibtop_proc_state *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,117 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCTIME_H__ | ||||
| #define __GLIBTOP_PROCTIME_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/cpu.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_TIME_START_TIME	0 | ||||
| #define GLIBTOP_PROC_TIME_RTIME		1 | ||||
| #define GLIBTOP_PROC_TIME_UTIME		2 | ||||
| #define GLIBTOP_PROC_TIME_STIME		3 | ||||
| #define GLIBTOP_PROC_TIME_CUTIME	4 | ||||
| #define GLIBTOP_PROC_TIME_CSTIME	5 | ||||
| #define GLIBTOP_PROC_TIME_TIMEOUT	6 | ||||
| #define GLIBTOP_PROC_TIME_IT_REAL_VALUE	7 | ||||
| #define GLIBTOP_PROC_TIME_FREQUENCY	8 | ||||
| #define GLIBTOP_PROC_TIME_XCPU_UTIME	9 | ||||
| #define GLIBTOP_PROC_TIME_XCPU_STIME	10 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_TIME		11 | ||||
|  | ||||
| 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]; | ||||
| }; | ||||
|  | ||||
|  | ||||
| void glibtop_get_proc_time(glibtop_proc_time *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_TIME | ||||
| #define glibtop_get_proc_time_r	glibtop_get_proc_time_p | ||||
| #else | ||||
| #define glibtop_get_proc_time_r	glibtop_get_proc_time_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_time_l (glibtop *server, glibtop_proc_time *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_TIME | ||||
| void _glibtop_init_proc_time_p (glibtop *server); | ||||
| void glibtop_get_proc_time_p (glibtop *server, glibtop_proc_time *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_time_s (glibtop *server); | ||||
| void glibtop_get_proc_time_s (glibtop *server, glibtop_proc_time *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -1,102 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_PROCUID_H__ | ||||
| #define __GLIBTOP_PROCUID_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
| #include <glibtop/global.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define GLIBTOP_PROC_UID_UID		0 | ||||
| #define GLIBTOP_PROC_UID_EUID		1 | ||||
| #define GLIBTOP_PROC_UID_GID		2 | ||||
| #define GLIBTOP_PROC_UID_EGID		3 | ||||
| #define GLIBTOP_PROC_UID_SUID		4 | ||||
| #define GLIBTOP_PROC_UID_SGID		5 | ||||
| #define GLIBTOP_PROC_UID_FSUID		6 | ||||
| #define GLIBTOP_PROC_UID_FSGID		7 | ||||
| #define GLIBTOP_PROC_UID_PID		8 | ||||
| #define GLIBTOP_PROC_UID_PPID		9 | ||||
| #define GLIBTOP_PROC_UID_PGRP		10 | ||||
| #define GLIBTOP_PROC_UID_SESSION	11 | ||||
| #define GLIBTOP_PROC_UID_TTY		12 | ||||
| #define GLIBTOP_PROC_UID_TPGID		13 | ||||
| #define GLIBTOP_PROC_UID_PRIORITY	14 | ||||
| #define GLIBTOP_PROC_UID_NICE		15 | ||||
| #define GLIBTOP_PROC_UID_NGROUPS    16 | ||||
| #define GLIBTOP_PROC_UID_GROUPS     17 | ||||
|  | ||||
| #define GLIBTOP_MAX_PROC_UID		18 | ||||
|  | ||||
| typedef struct _glibtop_proc_uid	glibtop_proc_uid; | ||||
|  | ||||
| #define GLIBTOP_MAX_GROUPS          64 | ||||
|  | ||||
| /* User, Group, Terminal and session */ | ||||
|  | ||||
| struct _glibtop_proc_uid | ||||
| { | ||||
| 	guint64 flags; | ||||
| 	gint32 uid;		/* user id */ | ||||
| 	gint32 euid;		/* effective user id */ | ||||
| 	gint32 gid;		/* group id */ | ||||
| 	gint32 egid;		/* effective group id */ | ||||
| 	gint32 suid;       /* set user id */ | ||||
| 	gint32 sgid;       /* set group id */ | ||||
| 	gint32 fsuid;      /* ??? user id */ | ||||
| 	gint32 fsgid;      /* ??? group id */ | ||||
| 	gint32 pid;		/* process id */ | ||||
| 	gint32 ppid;		/* pid of parent process */ | ||||
| 	gint32 pgrp;		/* process group id */ | ||||
| 	gint32 session;	/* session id */ | ||||
| 	gint32 tty;		/* full device number of controlling terminal */ | ||||
| 	gint32 tpgid;		/* terminal process group id */ | ||||
| 	gint32 priority;	/* kernel scheduling priority */ | ||||
| 	gint32 nice;		/* standard unix nice level of process */ | ||||
| 	gint32 ngroups; | ||||
| 	gint32 groups [GLIBTOP_MAX_GROUPS]; | ||||
|  | ||||
| }; | ||||
|  | ||||
| void glibtop_get_proc_uid(glibtop_proc_uid *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_UID | ||||
| #define glibtop_get_proc_uid_r		glibtop_get_proc_uid_p | ||||
| #else | ||||
| #define glibtop_get_proc_uid_r		glibtop_get_proc_uid_s | ||||
| #endif | ||||
|  | ||||
| void glibtop_get_proc_uid_l (glibtop *server, glibtop_proc_uid *buf, pid_t pid); | ||||
|  | ||||
| #if GLIBTOP_SUID_PROC_UID | ||||
| void _glibtop_init_proc_uid_p (glibtop *server); | ||||
| void glibtop_get_proc_uid_p (glibtop *server, glibtop_proc_uid *buf, pid_t pid); | ||||
| #else | ||||
| void _glibtop_init_proc_uid_s (glibtop *server); | ||||
| void glibtop_get_proc_uid_s (glibtop *server, glibtop_proc_uid *buf, pid_t pid); | ||||
| #endif | ||||
|  | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
| @@ -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 | ||||
| @@ -1,36 +0,0 @@ | ||||
| /* 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., 51 Franklin Street, Fifth Floor, | ||||
|    Boston, MA 02110-1301, USA. | ||||
| */ | ||||
|  | ||||
| #ifndef __GLIBTOP_READ_H__ | ||||
| #define __GLIBTOP_READ_H__ | ||||
|  | ||||
| #include <glibtop.h> | ||||
|  | ||||
| G_BEGIN_DECLS | ||||
|  | ||||
| #define glibtop_read(p1, p2)	glibtop_read(glibtop_global_server, p1, p2) | ||||
|  | ||||
| void glibtop_read_l (glibtop *server, size_t size, void *buf); | ||||
| void glibtop_read_s (glibtop *server, size_t size, void *buf); | ||||
|  | ||||
| G_END_DECLS | ||||
|  | ||||
| #endif | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user