linux_logo-5.11/0000700004737600013330000000000011470533176013746 5ustar vweaver1dongarralinux_logo-5.11/Makefile0000600004737600013330000000530311470265741015411 0ustar vweaver1dongarra############################################################## # Makefile for Linux Logo -- by Vince Weaver # ############################################################## -include Makefile.default PROGNAME = linux_logo #ifeq ($(OS),IRIX64) # LDFLAGS += -lintl #endif # # Installation location # INSTALL_BINPATH = $(PREFIX)/bin INSTALL_MANPATH = $(PREFIX)/share/man INSTALL_DOCPATH = $(PREFIX)/share/doc # # Libsysinfo location # LIBSYSINFO_INCLUDE = -I$(LIBSYSINFO) LIBSYSINFO_LIBRARY = -L$(LIBSYSINFO) ifneq ($(XGETTEXT),) TRANSLATIONS = translations endif all: Makefile.default parse_logos linux_logo $(TRANSLATIONS) Makefile.default: ifneq($(CONFIGURE_RAN),1) $(error Please run configure first) endif translations: cd po && $(MAKE) logos-all: find ./logos -type f > logo_config $(MAKE) all logo_config: echo "./logos/banner.logo" > logo_config echo "./logos/classic.logo" >> logo_config clean: Makefile.default rm -f *.o rm -f linux_logo linux_logo-dyn parse_logos load_logos.h rm -f *~ cd $(LIBSYSINFO) && $(MAKE) clean cd po && $(MAKE) clean distclean: clean cd $(LIBSYSINFO) && $(MAKE) distclean rm -f Makefile.default logo_config linux_logo: linux_logo.o load_logo.o ./$(LIBSYSINFO)/libsysinfo.a $(CROSS)$(CC) $(LDFLAGS) -o linux_logo linux_logo.o load_logo.o $(LIBSYSINFO_LIBRARY) ./$(LIBSYSINFO)/libsysinfo.a linux_logo_shared: linux_logo.o load_logo.o ./$(LIBSYSINFO)/libsysinfo.a $(CROSS)$(CC) $(CFLAGS) -o linux_logo-dyn linux_logo.o load_logo.o $(LIBSYSINFO_LIBRARY) -lsysinfo ./$(LIBSYSINFO)/libsysinfo.a: cd $(LIBSYSINFO) && $(MAKE) parse_logos: parse_logos.o load_logo_native.o $(CC) $(LDFLAGS) -o parse_logos parse_logos.o load_logo_native.o parse_logos.o: parse_logos.c logo_config $(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c parse_logos.c load_logos.h: logo_config parse_logos ./parse_logos load_logo.o: load_logo.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c load_logo.c load_logo_native.o: load_logo.c $(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -o load_logo_native.o -c load_logo.c linux_logo.o: linux_logo.c defaults.h load_logos.h @echo Compiling for $(OS) @echo Edit defaults.h to change Default Values $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) \ -DLOCALE_DIR=\"$(PREFIX)/share/locale\" -DUSE_I18N=$(USE_I18N) \ -c linux_logo.c install: linux_logo $(INSTALL) -c -m755 $(PROGNAME) -D $(INSTALL_BINPATH)/$(PROGNAME) $(INSTALL) -c -D -m644 $(PROGNAME).1.gz $(INSTALL_MANPATH)/man1/$(PROGNAME).1.gz cd po && $(MAKE) install install-doc: $(INSTALL) -c -d -m 755 $(INSTALL_DOCPATH)/$(PROGNAME) $(INSTALL) -c -p -m 644 *[A-Z] $(INSTALL_DOCPATH)/$(PROGNAME) # The old way of installing install-by-copying: cp linux_logo $(PREFIX)/bin linux_logo-5.11/linux_logo.1.gz0000600004737600013330000000463610653647017016643 0ustar vweaver1dongarraNFlinux_logo.1Xo8Cڅ-'mڴBy8~r{hhK,iE*7CJn)rf8o:~b.>O$ J#Xe(@)EBʼD>>|%ثii; '}M?M:Gny:7"Hx}D"HjSr<`V2<:Oqˉ?Bd*@/m R5$*3WK5ܫ9tZ::N+y= QDvx$]/peev;찰Ci>sTk@2VvfYF}&ROɳ(_nIcW1 pN'8s%RGN*TD&J--O&Jjn$Yi!'.CJijYǤW8)P@$TDߔQN@XNx$v^ޭ,kђ)S &TL yk4O0NK24p=)FYE %h~H` x[4I`Z+Ș;R+I60擰mh\0 /:RuJyiÙ@D*)DFq$/ 3q+v2M!]Jc^@vAgνwAw1b e0q߸'=g󗇢 m^z`'B^ ^Uf@$G3xxTpC5ڈKzRX;F8Exf<5ēTg% 0]"v1m9xϱHG$QH Dq|eX*UҍJ3(g'w#h$[>4$`< }6рBSb/߭ IM"{hQ݉ tuz߰8b/FбVAghR;j_LBmN&j]%g MT9_rq󗳰a]p04z/Цg[)a29dXmԢШf_Y2*9l^5ū NvEu|]`o9{zvZrm69Уtvs'SW.iOcՎj⓲3sl%f8YQ@;F,Ʃ&.w=rI׺3:CUFS/X-.S6^E ]NEZ^1kMRD-n4`, N.Flf<2%#`G bTXR{Z<Ú(JCMeB#!~.Z+UWMb5u|.V vZ`G-?CY?e ƞ;=^p ˕žNu|3^Nt*0zxx\ZrjaQ,k.DWL CFfz'E:۠`>Kt'dDN?M U M;!oy^Њy$ _Hlinux_logo-5.11/README0000600004737600013330000004145111470266727014642 0ustar vweaver1dongarra/*--------------------------------------------------------------------------*\ LINUX_LOGO 5.11 -- Shows a Logo With some System Info - 15 November 2010 by Vince Weaver ( vince _at_ deater.net, http://www.deater.net/weave ) SUPPORTS Linux (most architectures) and some non-Linux OSes \*--------------------------------------------------------------------------*/ HISTORY: Back in the summer of 1997 there was a recurring topic on the linux-kernel list about having a "boot-up" penguin on all architectures. There were many arguments back and forth, but eventually the primary consensus was that this would be better done in user-space. [Eventually the fbcon people snuck it in anyway]. In any case, those of us running on text consoles wanted a penguin too, and barring some attempts to use a vga-font hack to get one displayed, the best way to get this was a user-space text-mode program. I used a ppm of the Linux penguin and a ppm2ansi converter from Rasterman [www.rasterman.com], and then touched it up with a trial version of THEDRAW under DosEmu. Dredging up some talents left over from my Ansi-art BBS days I eventually hacked together a rough likeness of Ewing's Linux Penguin. I added some system info from /proc, and linux_logo was born. The program itself has grown more "feature-full" as people around the world send in their patches. The newer versions are primarily minor cosmetic fixes. But I get a lot of positive feedback from this tiny little program I created one summer day........ ----------------------------------------------------------------------- CONFIG FILES ----------------------------------------------------------------------- As of 3.9b5 linux_logo now reads ~/.linux_logo [that is, the hidden file .linux_logo in your home directory] and /etc/linux_logo.conf before parsing the command line options. The format of the config files is a bit of a hack. Just put in the file the command line options you want passed to linux_logo. Thus if you put in ~/.linux_logo -a -c -F "Linux Logo on a #M Mhz Machine" Then when you run "linux_logo" it will automatically show an ASCII classic logo with the formatting command applied. This is a bit ugly, but is was simpler and [at the time] seemed more elegant than writing a separate dot file parser.... -----------------------------------------------------------------------> POTENTIAL USES FOR linux_logo -----------------------------------------------------------------------> There are so many uses, I split them off into a separate "USAGE" file. -----------------------------------------------------------------------> QUICKLY INSTALLING linux_logo -----------------------------------------------------------------------> untar and uncompress the file tar -xzvf linux_logo-5.11.tar.gz enter the directory cd linux_logo-5.11 run "configure" ./configure compile the program make install (you'll probably want to do this as root) with make install --------------------------------------------------------------------------> ADVANCED LINUX_LOGO Installation --------------------------------------------------------------------------> Destination directory: By default linux_logo is installed under /usr/local/ To change this, run configure with "./configure --prefix=/usr" Where you can replace /usr with any location you want. Picking logos: You can choose which logos are compiled into linux_logo. Many contributed logos can be found in the ./logos directory. By editing the file logo_config, you can pick which logos are included. You can create a linux_logo binary with ALL of them by doing make logos-all Note: this will overwrite the current logo_config, so be careful. Then use "linux_logo -L list" to see them, or "linux_logo -L random" to randomly go through them Compile time changes: Edit the "defaults.h" file to change a lot of linux_logo's default behaviors. Translations: Initial internationalization support has been added. If you are running with the LANGUAGE environmental variable set, and there is a translation for your language, then you should get linux_logo in your own tongue. This can be turned off by changing the USE_I18N option at the top of the defaults.h file. Cross compiling: If you are using linux_logo on an embedded system you might want to cross compile. I tried to make this as easy as possible. For example, to cross-compile for avr32 on x86 (assuming you have all of the avr32 cross-compile tools installed) I do this: env CROSS=avr32-linux- ./configure make CROSS=avr32-linux- LDFLAGS=-static ARCH=avr32 And the result is a working avr32 version of linux_logo On non-Linux architectures: You'll have to use GNU make. This is often called "gmake". ---------------------------------------------------------------------------> COMMAND LINE OPTIONS ---------------------------------------------------------------------------> Usage: linux_logo [-a] [-b] [-c] [-d] [-D file] [-e file] [-f] [-F] [-g] [-h] [-i] [-k] [-l] [-n] [-o num] [-p] [-s] [-t str] [-u] [-v] [-w Num] [-x] [-y] [-F format] [-L num | list | random_xx] [-a] -- Display an ascii-only Logo [-b] -- Display a Banner Logo! [-c] -- Display a "Classic" type logo [-d] -- disable "prettying" of output [-D file]-- use custom logo from "file" [-e file]-- Use "file" instead of /proc/cpuinfo [for debugging [-f] -- force the screen clear before drawing [-F format] Format output. See README. B [-g] -- give system info only [-h] -- this help screen [-i] -- ignore the ~/.linux_logo and /etc/linux_logo.conf files [-k] -- keep sysinfo flushed-left (non-centered) B [-l] -- display logo only C [-o Num] -- offset output Num spaces to the right [-p] -- preserve cursor location [-s] -- skip Bogomips [speeds up on non-Linux platforms] [-t str] -- display user-supplied string * [-u] -- show uptime [-v] -- version information [-w Num] -- set width of screen to Num [default 80] * [-y] -- show load average [-L ...] -- multiple Logo options. B=Banner mode only, C=Classic Mode Only *=Works Only in Linux More detailed explanations: [-a] : This option makes linux_logo output no fancy colors. This is useful if you are viewing linux_logo over a black and white terminal, or a terminal that can't handle fancy escape sequences well [like default win95 telnet]. [-b] : This option makes linux_logo display the first compiled-in "banner" style logo. [-c] : This option makes linux_logo display the first compiled-in "classic" style logo. Many people prefer this version of the logo. I made it myself using some complex manipulation of TheDraw and the 'official' logo.xpm that comes with the linux_sources. [-d] : This option turns off Megahertz rounding and cpuinfo "prettying". That is, it prints your /proc/cpuinfo's "model name" verbatim, instead of being clever and making it look nice. [-D file]: Use an alternate logo on disk. Just make sure 'file' points to a valid '.logo' file. Read README.CUSTOM_LOGOS for more info on how to make these. Some can be found in the ./logos directory of the linux_logo distribution. [-e file]: Specify an alternate cpuinfo file. This is only really useful if you are debugging a /proc/cpuinfo file that is not from your own computer. Theoretically you could also use this to make your old 386 appear to be a Pentium to users ;) [-f] : This option simply clears the screen before drawing the logo. [-F format]: Use this to super-customize the output of the cpuinfo. You pass a string, for example "#V\n#U\n#L\n". See the section below entitled "THE NEAT NEW FORMAT COMMAND" for further info. [-g] : This option makes linux_logo display the system_info only. [Note.. this option only works in banner mode]. This is useful if you have your own, better, ansi logo and you don't want to mess with include files. Just "cat My_Logo >> out; linux_logo -g >> out" to get your logo with my sysinfo. [-h] : This simply displays the help screen, which is much less verbose than this write-up. [-i] : linux_logo will look in ~/.linux_logo and /etc/linux_logo.conf for information on how to run linux_logo. If the -i option is passed, linux_logo will ignore those files [-k] : keep sysinfo flushed-left (non-centered) In older versions of Linux_logo this modified how the logo looked, I apologize for re-using the command-line option, but there are only so many letters of the alphabet. [-l] : This option displays the logo only [Only works in banner mode]. This is useful if for whatever reason you don't want to see the system info. [-L num | NAME | list | random_xy]: This option is used to manipulate compiled-in custom logos. As of linux_logo 3.9 you can compile in an arbitrary amount of logos, although the default is to just have the original and banner logos. "-L list" will list all of the logos available "-L NAME" will display the logo with name NAME. the names available can be seen with the "-L list" command "-L num" will display logo number num, where the number is obtained using the "-L list" command "-L random_xy" will pick a logo at random, with criteria xy. When you replace x with the letter: b : pick a random banner mode logo c : pick a random classic mode logo e : pick a logo from either banner or classic When you replace y with the letter: a: pick a random ascii logo n: pick a non-ascii logo e: pick either type of logo So to summarize "-L random_ba" picks a random ascii banner, "-L random_ce" picks a random classic logo "-L random_ee" picks any logo, etc, etc See README.CUSTOM_LOGOS for more info [-n] : This option has been removed from linux_logo 3.9 and above. If you want to create a logo that looks different than the default, read README.CUSTOM_LOGOS. [-o Num] : This option will offset the logo towards the right of the screen Num spaces. [-p] : This option preserves the position of the cursor on the screen while drawing the logo under it. [-rX] : This option has been removed from linux_logo 3.9 and above. If you want to create a logo that looks different than the default, read README.CUSTOM_LOGOS. [-s] : This option skips the bogomips test on non-linux ports. On platforms that don't have the bogomips value in a /proc file, linux_logo calculates the value itself using a GPL'd routine. This can take a while, especially on slower machines, so it can be disabled. [-t str] : This option displays user-supplied string (for example, Red Hat release or welcome...') in first line of system info. See the "Things to do" section for ways to use this. [-u] : This option displays the uptime along with the other system information. While useless when putting logos in issue or motd files, this option comes in handy if you are using linux_logo to impress your friends. Also, when used in conjunction with the -g option, you can use linux_logo in Server-Side includes in web pages. [-v] : This option displays the version of linux_logo you are using. [-w Num] : Use this option to set the width of the screen. It helps in trying to center the banner mode. Default is 80 columns. [-x] : This option has been removed from linux_logo 3.9 and above. If you want to create a logo that is narrower than the default, read README.CUSTOM_LOGOS. [-y] : Display the load average. [Yes I have just about run out of letters to use as command line options ;)] ---------------------------------------------------------------------------> TROUBLESHOOTING ---------------------------------------------------------------------------> Know bugs: Different architectures have odd /proc files. If you send me a copy of relevant files (/proc/cpuinfo and /proc/version usually) I can see about adding support. On non-Linux platforms the BogoMips check can be quite slow. To skip it use "linux_logo -s" To make easy updates to ansi files with difficult editors, the combination ^[ is read as the ESC code (#27 decimal) so this combination cannot be used in a picture. ------------------------------------------------------------------------> THE NEAT FORMAT COMMAND ------------------------------------------------------------------------> These are instructions on how to use the Format command added in Linux Logo 3.0 The command line argument is -F. Special sequences start with "#" use "##" to make the "#" sign. All other characters [except "\n", the carriage return] are printed as is. Special Stands For Example ________________________________________________________________ #B Bogomips "374.37" #C Compiled Date "#47 Fri Jan 8 10:37:09 EST 1999" #E User Text [given with the -t] "Given with -t option" #H Hostname "deranged" #L Load average "Load average 0.04, 0.01, 0.01" #M Megahertz [where supported] "188Mhz " #N Number of CPU's "Two" #O Operating System Name "Linux" #P Singular or Plural of "Processor" "Processor" #R Ram [in Megabytes] "64M" #S Plural "s" #T Type of CPU "K6" #U Uptime "Uptime 10 hours 59 minutes" #V Version of OS "2.2.0-pre5" #X CPU Vendor "AMD " \n carriage return Notes: + The letter after the # must be capitalized. + Options not available are silently ignored. + Megahertz only available on some platforms and newer kernels. + See "defaults.h" on how to have #N report in non-english numbers. + Plural [#S] gives nothing if there is 1 cpu, gives 's' otherwise. + Processor [#P] gives "Processor" [or i18n equiv] when 1 cpu, "Processors" if more than 1. + The "-y" and "-u" [display uptime and load average] command line options don't affect the output if a custom format is used. For example the default banner format is "#O Version #V, Compiled #C\n#N #M#X#T #P, #R RAM, #B Bogomips Total\n#H\n" which on my computer gives an output of: Linux Version 2.2.0-pre5, Compiled #47 Fri Jan 8 10:37:09 EST 1999 One 188MHz AMD K6 Processor, 64M RAM, 374.37 Bogomips Total deranged Another example would be linux_logo -F "Redhat Linux 5.2\nKernel Version #V\n#U\n#L\n" which would give Redhat Linux 5.2 Kernel Version 2.2.0-pre5 Uptime 11 hours 4 minutes Load average 0.00, 0.00, 0.00 As you can see, the possibilities are endless. ------------------------------------------------------------------------> CREATING/USING CUSTOM LOGOS ------------------------------------------------------------------------> See the file README.CUSTOM_LOGOS for more than you ever wanted to know about making and using your own logo files. -------------------------------------------------------------------------> WHERE TO GET LINUX_LOGO: -------------------------------------------------------------------------> http://www.deater.net/weave/vmwprod/linux_logo http://sunsite.unc.edu/pub/Linux/logos/penguin/ Check out other programs by me at http://www.deater.net/weave/vmwprod --------------------------------------------------------------------------> THANKS --------------------------------------------------------------------------> Many thanks to the people sending in patches and /proc/cpuinfo entries. Without you linux_logo wouldn't work on so many machines. Special thanks to Kristina (KRG) and my friends John Clemens and Marie Prosser. ----------------- Vince vince _at_ deater.net linux_logo-5.11/CHANGES_IN_5.00000600004737600013330000000125510643220631015704 0ustar vweaver1dongarra+ The build system has changed. You now need to run ./configure before running make + Cross-compiling is now possible (see the README) + getopt() is no longer used to parse command line options. Please report any bugs that might be caused by this. + The i18n support was re-worked. Please try it out. + A large amount of code was re-written from scratch. Let me know of any regressions. + The loadaverage options now don't print times with 0 in them (i.e., it will print "2 days 1 minute" instead of "2 days 0 hours 1 minute") + You can now specify logos by name, rather than number. Maintainers please take note, this is now the preferred way of specifying logos. linux_logo-5.11/linux_logo.h0000600004737600013330000000100310557200017016260 0ustar vweaver1dongarrastruct linux_logo_info_type { int width; int no_periods; int preserve_xy; int skip_bogomips; int offset; int plain_ascii; int banner_mode; int wipe_screen; int show_uptime; int show_load; int narrow_logo; int display_logo_only; int display_sysinfo_only; int display_usertext; int custom_format; int pretty_output; int center_sysinfo; char user_text[BUFSIZ]; char format[BUFSIZ]; }; linux_logo-5.11/contrib/0000700004737600013330000000000007250530466015406 5ustar vweaver1dongarralinux_logo-5.11/contrib/patches/0000700004737600013330000000000007266573442017045 5ustar vweaver1dongarralinux_logo-5.11/contrib/scripts/0000700004737600013330000000000007615326440017075 5ustar vweaver1dongarralinux_logo-5.11/contrib/scripts/mklogo0000600004737600013330000000071607615326433020320 0ustar vweaver1dongarra#!/bin/bash # # Ickle script to cobble together seperate logo and comment files. # This makes it much easier to work with programs like duhdraw. # # Copyright 2003 Chris Brien and # distributed under the GPL. if ! [[ $1 ]]; then echo "No name specified" exit 1 fi ( cat $1.comment echo echo BEGIN_LOGO cat $1-color.ansi echo END_LOGO echo echo BEGIN_ASCII_LOGO cat $1.ansi echo END_ASCII_LOGO ) > $1.logo linux_logo-5.11/contrib/scripts/named_pipe0000600004737600013330000000447407035447602021134 0ustar vweaver1dongarraDate: Tue, 7 Dec 1999 06:10:51 +0100 (CET) From: "[ISO-8859-1] Jrg Ziefle" To: weave@eng.umd.edu Subject: linux_logo solution: using FIFOs instead of cron [ The following text is in the "ISO-8859-1" character set. ] [ Your display is set for the "US-ASCII" character set. ] [ Some characters may be displayed incorrectly. ] Hi Vince, your linux_logo is nice, but the system configuration is improvable: ********************************************************************** Why not use FIFOs for the issue files instead of using cron for having up-to-date greeting files? ********************************************************************** Here's my solution (with a bit of Perl, you can do it also in C(++), if you like): * The logo "daemon": ---------------BEGIN #!/usr/bin/perl chdir; # go home $FIFO = $ARGV[0]; $PROGRAM = $ARGV[1]; $ENV{PATH} .= ":/etc"; # could be made generalized while (1) { unless (-p $FIFO) { unlink $FIFO; system('mknod', $FIFO, 'p') && die "can't mknod $FIFO: $!"; } # next line blocks until there's a reader open (FIFO, "> $FIFO") || die "can't write $FIFO: $!"; print FIFO `$PROGRAM`; close FIFO; sleep 2; # to avoid dup signals } ---------------END * My /sbin/init.d/boot.local (SuSE System) includes the following lines: /home/joerg/bin/logo /etc/issue /home/joerg/bin/issue & /home/joerg/bin/logo /etc/issue.net /home/joerg/bin/issue.net & * And finally, the "shell scripts" /home/joerg/bin/issue: /usr/local/bin/linux_logo -F "Welcome to #H!\n#O Version #V, Compiled #C\n#N #M#X#T Processor#S, #R RAM, #B Bogomips Total\n#L\n#U\n" and /home/joerg/bin/issue.net: /usr/local/bin/linux_logo -F "Welcome to #H!\n#O Version #V, Compiled #C\n#N #M#X#T Processor#S, #R RAM, #B Bogomips Total\n#L\n#U\n" (You have to fix the word wrap made by the MUA.) All files have to be set executable. This way, I get an up-to-date issue file every time I log in and can easily add things to be shown (e.g. a fortune or a random tip). The drawback of this is, if the logo daemon dies, nobody can't log in any more, so you should perhaps write a small script that checks every 5 minutes or so the existence of the logo daemon and starts it if necessary. I hope this could help and I am excited to hear from you about this solution. Regards, Jrg linux_logo-5.11/contrib/scripts/logo2ascii.pl0000600004737600013330000000076207250525660021474 0ustar vweaver1dongarra#!/usr/bin/perl -p # logo2ascii # Takes a logo and converts it to use only ASCII characters # (used to convert to ascii some of the logos in the distribution # so they can be introduced into parse_logo) # (c) Javier Fernandez-Sanguino Pen~a # # Distributed under the terms of the GNU GPL license # see http://www.gnu.org s/\[\d+;\d+m//g; s/\[\d+m//g; s/\[[\d;]+m//g; # special case: spaces while ( /\[(\d)C/ ) { $spaces = " " x $1; s/\[$1C/$spaces/g; } linux_logo-5.11/contrib/scripts/login_script0000600004737600013330000000130006632276250021511 0ustar vweaver1dongarra# # LINUX_LOGO # # This sample script by Juhapekka Tolvanen # goes at the end of a .bashrc file. It detects where you are logging # in from, and will run Welcome2L [a intel-specific logo program], # linux_logo, or linux_logo -a depending on term type. R=$(cat /etc/redhat-release) #eval resize # if [ $LINES >= 40 ]; then #$HOME/bin/linux_logo -ascii -y -u #$HOME/bin/linux_logo -ascii -y -u case "$TERM" in linux) #$HOME/bin/linux_logo_custom -t "Red Hat Linux $R" -y -u $HOME/bin/Welcome2L uptime echo Red Hat Linux $R echo "" ;; xterm-color) $HOME/bin/linux_logo -t "Red Hat Linux $R" -y -u ;; *) $HOME/bin/linux_logo -t "Red Hat Linux $R" -y -u -ascii esac # fi linux_logo-5.11/contrib/packaging/0000700004737600013330000000000010026136317017322 5ustar vweaver1dongarralinux_logo-5.11/contrib/packaging/linux_logo.spec0000600004737600013330000001132010026136131022346 0ustar vweaver1dongarraSummary: Displays an ANSI or ASCII penguin and system information. Name: linux_logo Version: 4.09 Release: 1cma Copyright: GPL Group: Applications/System Source0: http://www.deater.net/weave/vmwprod/%{name}/%{name}-%{version}.tar.gz URL: http://www.deater.net/weave/vmwprod/%{name}/ Vendor: VMW Software BuildRoot: %{_tmppath}/%{name}-%{version}-root Prefix: %{_prefix} Packager: Chris Ausbrooks %description Linux Logo is a small utility that displays an ANSI or ASCII logo of the Linux penguin, along with some system information. %prep %setup -n %{name}-%{version} %build ls ./logos/*/* >> logo_config make ( echo '#!/bin/bash' echo '#' echo '# linux_logo Hook to allow linux_logo to update issue and issue.net' echo '#' echo '# chkconfig: 2345 99 00' echo '# description: Linux_logo puts up a greeting screen.' echo '' echo '# Source the function library.' echo '. /etc/init.d/functions' echo '' echo 'RETVAL=0' echo '' echo '# See how we were called.' echo 'case "${1}" in' echo ' start|restart|reload)' echo ' if [ -x /'%{prefix}'/bin/linux_logo -a -f /etc/issue ] ; then' echo ' if [ -f /etc/redhat-release ]; then' echo ' DASHT="-t"' echo ' RRELEASE=$(cat /etc/redhat-release)' echo ' fi' echo ' action "Updating issue: "echo $(/'%{prefix}'/bin/linux_logo -f ${DASHT} "${RRELEASE}" > /etc/issue)' echo ' if [ -f /etc/issue.net ]; then' echo ' action "Updationg issue.net: " echo $(cat /etc/issue > /etc/issue.net)' echo ' fi' echo ' RETVAL=${?}' echo ' [ "${RETVAL}" = 0 ] && touch /var/lock/subsys/linux_logo' echo ' fi' echo ' ;;' echo ' stop)' echo ' # ignore' echo ' rm -f /var/lock/subsys/linux_logo' echo ' ;;' echo ' *)' echo ' echo "Usage: ${0} {start|stop|restart|reload}"' echo ' RETVAL=1' echo 'esac' echo '' echo 'exit ${RETVAL}' ) > linux_logo.init touch linux_logo.conf %install rm -rf %{buildroot} install -D -m 755 %{name} %{buildroot}/%{prefix}/bin/%{name} install -D -m 644 %{name}.1.gz %{buildroot}/%{prefix}/man/man1/%{name}.1.gz install -D -m 755 %{name}.init %{buildroot}/etc/rc.d/init.d/%{name} install -D -m 644 %{name}.conf %{buildroot}/etc/%{name}.conf %clean rm -rf %{buildroot} %post if [ -f /etc/rc.d/rc.local ]; then LOGOTMP=/tmp/rc.local.tmp if [ $(which mktemp 2> /dev/null) ]; then LOGOTMP=$(mktemp /tmp/rc.local.XXXXXX) fi grep -v LINUX_LOGO.RPM /etc/rc.d/rc.local > ${LOGOTMP} cat ${LOGOTMP} > /etc/rc.d/rc.local rm -f ${LOGOTMP} fi /sbin/chkconfig --add linux_logo /sbin/service linux_logo restart > /dev/null 2>&1 || : if [ -f /etc/linux_logo.conf -a ! -s /etc/linux_logo.conf ] ; then if [ -f /etc/redhat-release ]; then DASHT="-t" RRELEASE=$(cat /etc/redhat-release) fi echo "-f ${DASHT} \"${RRELEASE}\"" >> /etc/linux_logo.conf fi %preun if [ "${1}" = 0 ]; then if [ -f /etc/redhat-release ]; then R=$(cat /etc/redhat-release) arch=$(uname -m) a="a" case "_$arch" in _a*) a="an";; _i*) a="an";; esac NUMPROC=`egrep -c "^cpu[0-9]+" /proc/stat` if [ "$NUMPROC" -gt "1" ]; then SMP="$NUMPROC-processor " if [ "$NUMPROC" = "8" -o "$NUMPROC" = "11" ]; then a="an" else a="a" fi fi echo "" > /etc/issue echo "$R" >> /etc/issue echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue cp -f /etc/issue /etc/issue.net echo >> /etc/issue fi /sbin/service linux_logo stop > /dev/null 2>&1 || : /sbin/chkconfig --del linux_logo fi %postun /sbin/service linux_logo restart > /dev/null 2>&1 || : %files %defattr(-, root, root) %doc ANNOUNCE.logo BUGS CHANGES COPYING %{name}-%{version}.lsm LINUX_LOGO.FAQ %doc README README.CUSTOM_LOGOS TODO USAGE %config(noreplace) /etc/linux_logo.conf /etc/rc.d/*/* %{prefix}/bin/* %{prefix}/man/*/* %changelog * Tue Mar 05 2002 Chris Ausbrooks - updated to 4.01 - got rid of extra file - added conf manipulation * Thu Dec 06 2001 Chris Ausbrooks - updated to b5 - fixed email address * Sun Oct 14 2001 Chris Ausbrooks - added rc.d file, removed rc.local mods * Mon Mar 05 2001 Chris Ausbrooks - iterated version number - added more logos to logo_config now that they all work * Thu Mar 01 2001 Chris Ausbrooks - pretty much completely rewrote specfile - updated URLs - added to docs - included man page - got rid of patch - renamed spec file - dirty hack to add to rc.local * Mon Jul 24 2000 Prospector - rebuilt * Wed Jul 12 2000 Than Ngo - use RPM macros * Mon Jul 03 2000 Prospector - automatic rebuild * Sat May 27 2000 Ngo Than - update to 3.05 for 7.0 - cleanup specfile - use RPM_OPT_FLAGS * Thu Nov 18 1999 Ngo Than - initial RPM linux_logo-5.11/logo_config.Irix0000600004737600013330000000004710460220214017053 0ustar vweaver1dongarra./logos/alternate_oses/irix.logo linux_logo-5.11/parse_logos.c0000600004737600013330000000674310644463223016440 0ustar vweaver1dongarra#include #include #include #include #include #include "logo_types.h" #include "load_logo.h" /* People can put all kind of strange and wonderful ascii */ /* characters in a logo that would royally confuse printf */ int sanitize_print_string(char *string, FILE *fff) { int i; for(i=0;idescription); fprintf(ggg,"\tnew_logo=calloc(1,sizeof(struct logo_info));\n"); if (logo_number==0) { fprintf(ggg,"\n\tlogo_info_head=new_logo;\n\n"); } else { fprintf(ggg,"\n\tlogo_info_tail->next_logo=new_logo;\n\n"); } fprintf(ggg,"\tnew_logo->description=strdup(\"%s\");\n", logo_info_temp->description); fprintf(ggg,"\tnew_logo->name=strdup(\"%s\");\n",logo_info_temp->name); fprintf(ggg,"\tnew_logo->logo=strdup(\""); sanitize_print_string(logo_info_temp->logo,ggg); fprintf(ggg,"\");\n"); fprintf(ggg,"\tnew_logo->ysize=%d;\n",logo_info_temp->ysize); fprintf(ggg,"\tnew_logo->ascii_logo=strdup(\""); sanitize_print_string(logo_info_temp->ascii_logo,ggg); fprintf(ggg,"\");\n"); fprintf(ggg,"\tnew_logo->ascii_ysize=%d;\n", logo_info_temp->ascii_ysize); fprintf(ggg,"\tnew_logo->sysinfo_position=%d;\n", logo_info_temp->sysinfo_position); fprintf(ggg,"\tnew_logo->next_logo=NULL;\n"); fprintf(ggg,"\tlogo_info_tail=new_logo;\n"); logo_number++; printf("+ Added logo %s containing \"%s\"\n", temp_st,logo_info_temp->description); } } printf("\n"); return 0; } linux_logo-5.11/logos/0000700004737600013330000000000010643214557015071 5ustar vweaver1dongarralinux_logo-5.11/logos/distributions/0000700004737600013330000000000011214614570017765 5ustar vweaver1dongarralinux_logo-5.11/logos/distributions/mandrakelinux-banner.logo0000600004737600013330000001020410643215032024746 0ustar vweaver1dongarra Mandrakelinux(TM) Banner Drawn by Sitsofe Wheeler ; updated by Stefan Siegel ; updated yet again by Per Øyvind Karlsen (not very good though:\) SYSINFO_POSITION bottom DESCRIPTION_STRING Mandrakelinux(TM) Banner NAME mandrake BEGIN_LOGO               O O      VVVVV       \|/   VVV       -          /|\                                   [47                                       (TM)                                                                                                                                                                                END_LOGO BEGIN_ASCII_LOGO Mi ##### oMMM ####### oMMMM ##O#O## M "MMMoooooMMMMMM #VVVVV# M MMMMMMMMMMMMMMooo \|/ ## VVV ## oM "MMMMMMMMMMMMMMMMMMM" - # ## MM MMMMMMMMMMMMMM"" /|\ # ## MM oMMMMMMMMMMM" # ### MM oMMMMMMMMMMMM QQ# ##Q MM oMM""" "MMMMM QQQQQQ# #QQQQQQ "MMo "" oo" "MMM QQQQQQQ# #QQQQQQQ "MMMooo""" "MM QQQQQ#######QQQQQ # # ## ## # # (TM) ## ## # # # # # # # ### ### ### # # ### # ## ## # # ### # # # # # # # # # # # # # ## # # ### #### # # # # # # ## # # # # # # # # # # # # # # # # # # # # ## # # ### # # ### # ### # ## ## # # # # ## # # END_ASCII_LOGO linux_logo-5.11/logos/distributions/debian-old.logo0000600004737600013330000000543110643215011022642 0ustar vweaver1dongarra# Debian Logo # Made by a nostalgic Javier Fernandez-Sanguino Pea # (rescued from the linux_logo 1.06-6 patch made 12 Oct 1998) SYSINFO_POSITION right DESCRIPTION_STRING Debian Old Penguin Logos NAME debian_old BEGIN_LOGO           DDDDEEEEEEBBBBIIIIIIAAAANNNN        DDDDEEBBBBIIAAAANNNNN        DDDDEEEEEBBBBBIIAAAAAANNNNNN      DDDDEEBBBBIIAAAANNNNNN        DDDDEEEEEEBBBBBIIIIIIAAAANNNN                                                            END_LOGO BEGIN_ASCII_LOGO s_a%aa, DDDD EEEEEE BBBB IIIIII AAAA NN NN _ZSr""` \_ DD DD EE BB BB II AA AA NNN NN JXX' _a, M""So_, DD DD EEEEE BBBBB II AAAAAA NNNN NN J2X` !X! XXr!" DD DD EE BB BB II AA AA NN NNNN ]S2' {[ DDDD EEEEEE BBBBB IIIIII AA AA NN NN JSe' , ", _SX' ], M, jXS' "3 ML )Sr )s )2( J2[ X; J2S' ]( soSr' !, _J22r' M\ s_s%S2SSXe" M {Xr""" _s_s_a_L/\a_a_s_a_sr """!""!' """!"""" END_ASCII_LOGO linux_logo-5.11/logos/distributions/mandriva-banner.logo0000600004737600013330000000650010643215065023717 0ustar vweaver1dongarra# Mandriva(TM) Linux Banner # Drawn by Sitsofe Wheeler ; updated by Stefan Siegel ; yet again updated by Per Øyvind Karlsen SYSINFO_POSITION bottom DESCRIPTION_STRING Mandriva(TM) Linux Banner NAME mandriva BEGIN_LOGO          (TM)                                                                                                              \|/                           -      /|\                                                                         END_LOGO BEGIN_ASCII_LOGO Mi # # ## # (TM) oMMM ## ## # oMMMM # # # # ### ### ### # # # ### ### ### M "MMMoooooMMMMMM # # # # # # # # # ## # # # # # M MMMMMMMMMMMMMMooo \|/ # # # # # # # # # # # # # # oM "MMMMMMMMMMMMMMMMMMM" - # # ### # # ### # # # ### MM MMMMMMMMMMMMMM"" /|\ MM oMMMMMMMMMMM" ## ## MM oMMMMMMMMMMMM ## MM oMM""" "MMMMM ## ## #### ## ## ## ## "MMo "" oo" "MMM ## ## ## ## ## ## ### "MMMooo""" "MM ##### ## ## ## #### ## ## END_ASCII_LOGO linux_logo-5.11/logos/distributions/ubuntu.logo0000600004737600013330000000367310643215143022202 0ustar vweaver1dongarra# Ubuntu logo for linux-logo # Original Ubuntu logo by LGB/dew (http://www.chris.com/ascii/art/html/linux.html) # Logo converted, colored and this file created by Damian Slimak, May 2007. # URL: slimak.czest.pl # e-mail: oidnus@gmail.com SYSINFO_POSITION bottom DESCRIPTION_STRING Ubuntu Logo NAME ubuntu BEGIN_LOGO  .-. .-'``(|||) ,`\ \  `-`. 88 88 / \ '``-. ` 88 88 .-.  , `___: 88 88 88,888, 88 88 ,88888, 88888 88 88 (:::) :  ___ 88 88 88 88 88 88 88 88 88 88 88 `-`  ` , : 88 88 88 88 88 88 88 88 88 88 88  \ / ,..-` , 88 88 88 88 88 88 88 88 88 88 88 `./ / .-.` '88888' '88888' '88888' 88 88 '8888 '88888' `-..-( ) `-` END_LOGO BEGIN_ASCII_LOGO .-. .-'``(|||) ,`\ \ `-`. 88 88 / \ '``-. ` 88 88 .-. , `___: 88 88 88,888, 88 88 ,88888, 88888 88 88 (:::) : ___ 88 88 88 88 88 88 88 88 88 88 88 `-` ` , : 88 88 88 88 88 88 88 88 88 88 88 \ / ,..-` , 88 88 88 88 88 88 88 88 88 88 88 `./ / .-.` '88888' '88888' '88888' 88 88 '8888 '88888' `-..-( ) `-` END_ASCII_LOGO linux_logo-5.11/logos/distributions/core.logo0000600004737600013330000000437110643214755021614 0ustar vweaver1dongarra# Core Linux Logo # This file based on Classic Linux Logo # Original Core Linux logo by jd - coredistro.sourceforge.net # Logo converted and this file created by Tony Whitmore, October 2002. # URL: www.tonywhitmore.co.uk # e-mail: tonywhitmore@users.sourceforge.net SYSINFO_POSITION right DESCRIPTION_STRING Core Linux Logo NAME core BEGIN_LOGO                                                                                                            C O R E                                       END_LOGO BEGIN_ASCII_LOGO /--\ LL IIIIII NN NN UU UU XX XX / \ LL II NNN NN UU UU XXXX / \ LL II NNNN NN UU UU XX | | LL II NN NNNN UU UU XXXX / \ LLLLLL IIIIII NN NN UUUU XX XX | C O R E | \ / | | \ / \ / \--/ END_ASCII_LOGO linux_logo-5.11/logos/distributions/debian.logo0000600004737600013330000000471210643214775022107 0ustar vweaver1dongarra# Debian Logo SYSINFO_POSITION right DESCRIPTION_STRING Debian Swirl Logos NAME debian BEGIN_LOGO    _sudZUZ#Z#XZo=_ DDDDEEEEEEBBBBIIIIIIAAAANNNN  _jmZZ2!!~---~!!X##wa DDDDEEBBBBIIAAAANNNNN  . -]Xb/ ~ __#2(   -Zo; +!4ZwaaaauZZXY'   *#[, ~-?!!!!!!-~   XUb;.   )YXL,,   +3#bc,   -)SSL,,   ~~~~~  END_LOGO BEGIN_ASCII_LOGO _sudZUZ#Z#XZo=_ DDDD EEEEEE BBBB IIIIII AAAA NN NN _jmZZ2!!~---~!!X##wa DD DD EE BB BB II AA AA NNN NN . -]Xb/ ~ __#2( -Zo; +!4ZwaaaauZZXY' *#[, ~-?!!!!!!-~ XUb;. )YXL,, +3#bc, -)SSL,, ~~~~~ END_ASCII_LOGO linux_logo-5.11/logos/distributions/mandrake-old.logo0000600004737600013330000000642010643215055023211 0ustar vweaver1dongarra# Mandrake(TM) Linux Banner # Drawn by Sitsofe Wheeler ; updated by Stefan Siegel SYSINFO_POSITION bottom DESCRIPTION_STRING Mandrake(TM) Linux Banner NAME mandrake_banner BEGIN_LOGO          (TM)                                                                                                              \|/                            -      /|\                                                                         END_LOGO BEGIN_ASCII_LOGO Mi # # ## ## (TM) oMMM ## ## # # oMMMM # # # # ### ### ### # # ### # ## ## M "MMMoooooMMMMMM # # # # # # # # # ## # # ### #### M MMMMMMMMMMMMMMooo \|/ # # # # # # # # # # # # # # oM "MMMMMMMMMMMMMMMMMMM" - # # ### # # ### # ### # ## ## MM MMMMMMMMMMMMMM"" /|\ MM oMMMMMMMMMMM" ## ## MM oMMMMMMMMMMMM ## MM oMM""" "MMMMM ## ## #### ## ## ## ## "MMo "" oo" "MMM ## ## ## ## ## ## ### "MMMooo""" "MM ##### ## ## ## #### ## ## END_ASCII_LOGO linux_logo-5.11/logos/distributions/gnu-linux.logo0000600004737600013330000000646510643215307022612 0ustar vweaver1dongarra# Changed Linux logo with GNU # Based on Classic Logo SYSINFO_POSITION right DESCRIPTION_STRING Classic GNU/Linux NAME gnu_linux BEGIN_LOGO                                                                                                                                                  `----'                                                                                       END_LOGO BEGIN_ASCII_LOGO $$$$$$ $$$$$$$$ GGG N N U U // LL IIIIII NN NN UU UU XX XX $ $ $$ G NN N U U // LL II NNN NN UU UU XXXX $/o$o\$$ G GG N N N U U // LL II NNNN NN UU UU XX $////$$$$ G G N NN U U // LL II NN NNNN UU UU XXXX <<<<<$$$$ GGG N N UU // LLLLLL IIIIII NN NN UUUU XX XX $......$$$ $........$$$$ $.........$$$$ $.........$$$$ $..........$$$$$ $$..........$$$$$ ###........###$$$ #####........####$$ #######........###### #######$......$###### END_ASCII_LOGO linux_logo-5.11/logos/distributions/sme.logo0000600004737600013330000000525210747151015021441 0ustar vweaver1dongarra# Drawn by Sylvain Gomez SYSINFO_POSITION bottom NAME sme DESCRIPTION_STRING SME Server Banner Logo BEGIN_LOGO  ,.., ,.., / \ / | | | | ,.., | ,.., / \ \ / \ | ### ## ## ##### ### | | | ## # ### ### ## ## # | | / ## ### ### ## ## ### ### ## ## ### ### \ / `'-` #### #### #### ##### #### ## ## ## ## ## ## ## ## `'-` #### ## # # ## ## #### ##### ## ## ## ##### ## ## ## ### ## ## ## ## ## # # ## ## # ## ## # ## ## # ## ## ## ### ## ## ### ## # ## ##### ### #### ## ### #### ## END_LOGO BEGIN_ASCII_LOGO ,.., ,.., / \ / | | | | ,.., | ,.., / \ \ / \ | ### ## ## ##### ### | | | ## # ### ### ## ## # | | / ## ### ### ## ## ### ### ## ## ### ### \ / `'-` #### #### #### ##### #### ## ## ## ## ## ## ## ## `'-` #### ## # # ## ## #### ##### ## ## ## ##### ## ## ## ### ## ## ## ## ## # # ## ## # ## ## # ## ## # ## ## ## ### ## ## ### ## # ## ##### ### #### ## ### #### ## END_ASCII_LOGO linux_logo-5.11/logos/distributions/sourcemage.logo0000600004737600013330000001711010643215261023002 0ustar vweaver1dongarra# Quoth, the Raven. # Drawn by Chris Brien # Original design by Ryan Abrams SYSINFO_POSITION bottom DESCRIPTION_STRING Source Mage GNU/Linux large NAME sourcemage BEGIN_LOGO #### ######### ### ### ######### ##### ####### ####### ###### ### ### ################# ####### ######### ######## ### ### ################## ####### #### #### ### ### ### ### ### ######### #### ####### #### #### ### ### ### ### ### ######### #### #### ######## ### ### ### ### ######### #### #### ##### ### ### ### ### ################## ####### ##### ### ### ### ### ############### ####### ##### ### ### ### ### ### ############ ####### ##### ### ### ### ### ### ############# #### #### #### ### ### ### ### ### ############# #### #### #### ### ### ### ### ### ############# #### ######### ######## ######## ### ### ######### ####### ####### ###### ######## ### ############# ####### ######## ####### ######### ### ##################### ## ## ## #### ## ##### #### #### ## ##### ### ## ## ##### ## ### ## #### ## ## ### ####### #### # # # ## ### #### ### # # # ## ###### ### # # #### ######## ##### # # # # # # # #### ######## ### # ### ### ## ### ######## ### # ### ### ## ### ###### # ### #### ### ######## # ### #### ### ######### # ### ##### ###### # ## ## ##### ###### # ## ## ##### ###### # ## ## #### ### ########## # ## ### ## ###### # ## ### ######GNU / Linux # # ## ###   ######## ######################## ####### ####################### Linux so advanced it may as well be magic END_LOGO BEGIN_ASCII_LOGO RRRR xxxxx xxxx xxx xxx xxRRRRRRR xxxxx xxxxxxx xxxxxxx xxxxxx xxx xxx xxxxRRRRRRxxxxxxx xxxxxxx xxxxxxxxx xxxxxxxx xxx xxx xxxxxRRRRRxxxxxxxx xxxxxxx xxxx xxxx xxx xxx xxx xxx xxx xRRRRRRRx xxxx xxxxxxx xxxx xxxx xxx xxx xxx xxx xxx xRRRRRRRx xxxx xxxx xxxxx xxx xxx xxx xxx xxx xRRRRRRRR xxxx xxxx xxxxx xxx xxx xxx xxx xxxxxRRRRRRRRRxxxx xxxxxxx xxxxx xxx xxx xxx xxx xxxxxRRRRRRRRRR xxxxxxx xxxxx xxx xxx xxx xxx xxx xxRRRRRRRRRR xxxxxxx xxxxx xxx xxx xxx xxx xxx xxRRRRRRRRxxx xxxx xxxx xxxx xxx xxx xxx xxx xxx xxxRRRRRRRRxx xxxx xxxx xxxx xxx xxx xxx xxx xxx xxxRRRRRRRRxx xxxx xxxxxxxxx xxxxxxxx xxxxxxxx xxx xxx RRRRRRRRx xxxxxxx xxxxxxx xxxxxx xxxxxxxx xxx xxxRRxRRRRRRR xxxxxxx WWxxxxxW WWxxxxW WxxxxxxWW xxx xRRRRRWxxxRRRRxxxxxxx W W W W W W WW WW W W W WWW W WW WW WW WW W W W WWW W WW W W W W W W WWW W W W W W W W W W WW W W W WW WWW WWW WWWW W WW W W W W WW WWW WWW W W W W W W W WW WWW WW W W W W W W WWWW WWWWWWWW W WWWW W W W W W W W WWWW WWWWWWWW W WW W W WW WWW WW WWW WWWWWWWW W WW W W WW WWW WW WWW WW WW WW W W WW WW WW WWW WW WW WWWW W W WW WW WW WWW WWW WW WWWW W W WW WW WWW WWW WW W W WW WW WW WWW WWW WW W W WW WW WW WWW WWW WW W W WW WW WW WW WWW WWW WW WWWWW W WW WWW WW WWW WW W W WW WWW W WWW WW GNU / Linux W W WW WWW W WWW WWW W WWWWWWWWWWWWWWWWWWWWWWWW WWWWWWW WWWWWWWWWWWWWWWWWWWWWWW Linux so advanced it may as well be magic END_ASCII_LOGO linux_logo-5.11/logos/distributions/redhat-banner.logo0000600004737600013330000000764710643215075023403 0ustar vweaver1dongarra# New RedHat(c) Linux Banner # Drawn by Phillip Jackson # Used with permission from artist. SYSINFO_POSITION bottom DESCRIPTION_STRING RedHat Banner (white) NAME redhat BEGIN_LOGO [?7h############################################################################### ######*###**################################################################### #######*####*################################################################## #########*###*################################################################# #####*######################################################################### #####***####################################################################### #######****####**############################################################## ###########****################################################################ ############################################################################### ############################################################################### ############################################################################### ############################################################################### END_LOGO BEGIN_ASCII_LOGO . . ##. .###:*### ### ## :#:####:### ### ## ## _####:###:##: ### ## ## ,###:########### ###.:## ,######. .:###.### ##.####. ######. ###### ####:::#########. ####### .##' `##. ,##: #### ###' `##. #' ## ## `#####:::*####:*##. ###:' ##: :## ### ### ##' `## ## ## `########:::*##### ###' ########## ##| ### ## ## .####### ## `############### ### ##: ##| ### ## ## ## ## ## `############' ### ### ##| ### ## ## ## ## ## `########' ### :##:. ,### ###. ,### ## ## ## .## ## `""' (c)### :#######' `:##### ##: ## ## ##### ## :## END_ASCII_LOGO linux_logo-5.11/logos/distributions/slackware.logo0000600004737600013330000000266410643215105022631 0ustar vweaver1dongarra# Slackware Logo # Drawn by Vince Weaver # Color version by Gabor 'BaBoKa' Bak baboka@slackware.hu SYSINFO_POSITION bottom DESCRIPTION_STRING Slackware Logo NAME slackware BEGIN_LOGO  ####  ### ###  ## ## ## ##  ##  ## #### #### ## ### ### ### #### ### ### ####  ###  ## ## ## ## ## ## ## ## ## ### ## ## ##  ##  ## ##### ## #### ## #### ## ##### ## ######  ## ## ## ## ## ## ## ## ### ### ## ## ## ## | ####  #### ###### #### ### ### ## ## ###### ## ##### `------------------------------------------------------------- l  i n u x  END_LOGO BEGIN_ASCII_LOGO ### ### ## ## #### ## #### #### ## ### ### ### #### ### ### #### ## ## ## ## ## ## ## ## ## ## ### ## ## ## ### ## ##### ## #### ## #### ## ##### ## ###### ## ## ## ## ## ## ## ### ### ## ## ## ## | #### #### ###### #### ### ### ## ## ###### ## ##### | +------------------------------------------ l i n u x END_ASCII_LOGO linux_logo-5.11/logos/distributions/debian-banner.logo0000600004737600013330000001012410643214766023344 0ustar vweaver1dongarra# New Debian GNU/Linux Banner # Drawn by Phillip Jackson # Used with permission from artist. SYSINFO_POSITION bottom DESCRIPTION_STRING Debian Banner (white) NAME debian_banner BEGIN_LOGO [?7h############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### END_LOGO BEGIN_ASCII_LOGO _,###._ ,#. ,#########. ##: :## :###: .######^######. ##' `## `#' .####' `#### __ ## __ ## __ _ __ _ ####' ,###. `###: ,####:## ,######. ##.#####. :### ,######. ###.####: ###' ##'`# ,### ,##' `### ##: :## ###' `### ##' #: `## `###' `##: ###. ###._,###' ## `## ## ## ##' `## ## ___,## ##: `## `### `######' ## ## #######: ## ## ## .####### ##' ## `### `"' ## ## ##' ## ## ## ##' `## ## ## `###. ##. ,## ## ## ,## ## ## ## ## ## `###, :#:._,### ##:__,## ##:__,##' ,##. ##.__:##. ## ## `"##:. `:#### ### ######' `######' #### `#####"## ## ## END_ASCII_LOGO linux_logo-5.11/logos/distributions/sourcemage-banner.logo0000600004737600013330000001040010643215201024232 0ustar vweaver1dongarra# Quoth, the Raven. # Drawn by Chris Brien # Original design by Ryan Abrams SYSINFO_POSITION bottom DESCRIPTION_STRING Source Mage GNU/Linux banner NAME sourcemage_ban BEGIN_LOGO ### ##### #### #### ### ###### ##### ##### #### #######+##### ###### ###### ###### ######## ####### ####### ##### ##############+ ####### ###### ####################### ####### ####### ##### ################ ####### ###### ####################### ### ### ### ### #### ################+ -### ### #### #### ################ ### ### ### ### #### ##########+###### -### ### #### ##### ################ ####### ### ### ##### ##########+######+-######## ##### ################ ###### ######## ########## ++++++++####### ##### ##################### ### ### ### ### ##### ########## -+++++++####### ##### ####################### ### ### ### ### #### ########## --------## ### #### ### ################### ### ### ### ### #### ########## -------## ### ##### ####################### ### ### ####### ######### ## ### ......###### ###### ###### ###### ###### ### ### ####### ######### ## ###.....##### ###### END_LOGO BEGIN_ASCII_LOGO xXX xXXXx XXXX XXx XX XXXXXx xXXXx xXXXX xXXX XX#####+ xXXXx xXXXXx X##### X##### x##Xx##X ######x x#####X X#### X###xx#######X+ X#####x X####x ##XX##Xx##XX##xx##Xx##X ###X##X X##X### X##XX X###XX###XXXXXXx ###x##X X##XXx ##XX##Xx##Xx##Xx##Xx##X ### ##X ### X## X##x X###XX###XxXXXXX+ -### ### X##x ###X x##Xx##Xx##Xx##X ### ##X ### X## X##x X###XX###X+xxxxxx -##X XXX X##x X###X x##Xx##Xx##Xx##X ######x ### xXX X#### X##X#####X+xxxxxx+-##X X#### X###X x##Xx##Xx##Xx##X #####X ### X#### X##X##X##X ++++++++##XX### X#### x###Xx##Xx##Xx##Xx##X ### ##X ### xXX X##xx X##X##X##X -+++++++X#XX### X##Xx ##Xx##Xx##Xx##Xx##Xx##X ### ##X ### X## X##x X##x##x##X --------#X ### X##x ##X ##Xx##Xx##xx##Xx##X ### ##X ### X## X##x X##x##x##X -------#X ### X##Xx ###X##Xx##XX##xx##XX##X ### ##X X##X##X X####XX## ## ##X ......X#X### X####X x##### X####X x####X ### ##X x#####x X####XX## ## ##X .....X#X## X####X END_ASCII_LOGO linux_logo-5.11/logos/distributions/pld.logo0000600004737600013330000000507411214614570021436 0ustar vweaver1dongarra# PLD logo by Michal Zawalich SYSINFO_POSITION bottom DESCRIPTION_STRING PLD Linux banner NAME pld BEGIN_ASCII_LOGO _______ ___ _______ ### / `\ | | / `\ #o#o# /______ | | | /______ `\ # V # .----_) | | | .---. `\ | # ## | / | | | | | | # ## | ___/' | |______ | |__/' | Q# #Q | | | / | /' QQQQ# #QQQ |___| |________/ |________/' QQQ####QQQ PLD Linux Distribution Homepage: http://www.pld-linux.org/ END_ASCII_LOGO BEGIN_LOGO  _______ ___ _______   ### / `\ | | / `\   #o#o# /______ | | | /______ `\   # V # .----_) | | | .---. `\ |   # ## | / | | | | | |   # ## | ___/' | |______ | |__/' |   Q# #Q | | | / | /'   QQQQ# #QQQ |___| |________/ |________/'   QQQ####QQQ     PLD Linux Distribution   Homepage: http://www.pld-linux.org/  END_LOGO linux_logo-5.11/logos/distributions/suse.logo0000600004737600013330000000532110643215135021630 0ustar vweaver1dongarra# Suse Logo # Drawn by Michael Lankton # Ascii by Javier Fernandez-Sanguino Pea SYSINFO_POSITION bottom DESCRIPTION_STRING SUSE Logo NAME suse BEGIN_LOGO .............................SESuSESuSESuSESu.................................. .........................SESuSESuSESuSESuSESuSESu.............................. .....................SuSESuSESuSESuSESuSESuSESuSESuSES......................... ..................SuSESuSESuSESuSESuSESuSESuSESuSESuSESu....................... .................SS*SuSESuSESuSESuSESuSESuSESuSESuSESuSES...................... ...............SuSESuSESuSESuSESuSESuSESuSESuSESuSESuSESuS..................... ...............SS___)SuSESuSESuSESuSESuSESuSESuSESuSESuSESu.................... ................SuSESuSESuSESuSESuSESuSESuSESuSESuSESuSESuSE................... ..................uSESuSESuSESuSESuSESuSESuSESuSESu.....SuSE................... ......................SuSE.uSESuSESuSESuSES.SS.SS.........SS................... ......................S..S..................SS.SS.......SuSE................... .....................SS..S..................SS.SS......S.SSS................... END_LOGO BEGIN_ASCII_LOGO .............................SESuSESuSESuSESu.................................. .........................SESuSESuSESuSESuSESuSESu.............................. .....................SuSESuSESuSESuSESuSESuSESuSESuSES......................... ..................SuSESuSESuSESuSESuSESuSESuSESuSESuSESu....................... .................SS*SuSESuSESuSESuSESuSESuSESuSESuSESuSES...................... ...............SuSESuSESuSESuSESuSESuSESuSESuSESuSESuSESuS..................... ...............SS___)SuSESuSESuSESuSESuSESuSESuSESuSESuSESu.................... ................SuSESuSESuSESuSESuSESuSESuSESuSESuSESuSESuSE................... ..................uSESuSESuSESuSESuSESuSESuSESuSESu.....SuSE................... ......................SuSE.uSESuSESuSESuSES.SS.SS.........SS................... ......................S..S..................SS.SS.......SuSE................... .....................SS..S..................SS.SS......S.SSS................... END_ASCII_LOGO linux_logo-5.11/logos/banner-simplified.logo0000600004737600013330000000514710643213774021354 0ustar vweaver1dongarra# New Simplified banner logos # Redrawn by Eugene Paskevich # Used without any permission of the previous author :-) SYSINFO_POSITION bottom DESCRIPTION_STRING Simplified Banner Logo NAME banner-simp BEGIN_LOGO  oOOOo  OO###OO  # ##0#0##  ###### ### o#######o  ## # O# ### #O  ## ### ### #### ### ### ##### ###### O# #O  ## # ## ### ## ## ## ## ## O# #O  ## # ## ## ## ## ## ### O# ##O  ## ### ## ## ## ## ### ### ###  ## # ### ## ## ## ## ## ## ####### #######  ## ## ### # ## ## ### ### ## ## ######## ########  ############ ### #### #### #### ### ##### ###### #################  END_LOGO BEGIN_ASCII_LOGO ##### ####### @ ##O#O## ###### @@# #VVVVV# ## # ## VVV ## ## @@@ ### #### ### ### ##### ###### # ## ## @ @# ### ## ## ## ### ## # ## ## @ @# ## ## ## ## ### # ### ## @@# ## ## ## ## ### QQ# ##Q ## # @@# ## ## ## ## ## ## QQQQQQ# #QQQQQQ ## ## @@# # ## ## ### ### ## ## QQQQQQQ# #QQQQQQQ ############ ### #### #### #### ### ##### ###### QQQQQ#######QQQQQ END_ASCII_LOGO linux_logo-5.11/logos/banner.logo0000600004737600013330000000752010643214510017213 0ustar vweaver1dongarra# Old default banner logos # Drawn by Albert Lai # Used with permission SYSINFO_POSITION bottom NAME banner DESCRIPTION_STRING The Default Banner Logo BEGIN_LOGO ############################################################################### ############################################################################### ##################################################################O#O########## ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### ############################################################################### END_LOGO BEGIN_ASCII_LOGO ##### ####### @ ##O#O## ###### @@# #VVVVV# ## # ## VVV ## ## @@@ ### #### ### ### ##### ###### # ## ## @ @# ### ## ## ## ### ## # ## ## @ @# ## ## ## ## ### # ### ## @@# ## ## ## ## ### QQ# ##Q ## # @@# ## ## ## ## ## ## QQQQQQ# #QQQQQQ ## ## @@# # ## ## ### ### ## ## QQQQQQQ# #QQQQQQQ ############ ### #### #### #### ### ##### ###### QQQQQ#######QQQQQ END_ASCII_LOGO linux_logo-5.11/logos/classic-no_periods.logo0000600004737600013330000000400410643214554021530 0ustar vweaver1dongarra# Original Linux_Logo logo # Drawn by Vince Weaver, from a pbm2ansi of Larry Ewing's original Tux # Modified for no periods by Marc D. Williams SYSINFO_POSITION right DESCRIPTION_STRING The Classic Logo, No Periods NAME classic-nodots BEGIN_LOGO        LLIIIIIINNNNUUUUXXXX        LLIINNNNNUUUUXXXX        LLIINNNNNNUUUUXX      LLIINNNNNNUUUUXXXX   `----'  LLLLLLIIIIIINNNNUUUUXXXX                                                         END_LOGO BEGIN_ASCII_LOGO $$$$$$ $$$$$$$$ LL IIIIII NN NN UU UU XX XX $ $ $$ LL II NNN NN UU UU XXXX $/o$o\$$ LL II NNNN NN UU UU XX $////$$$$ LL II NN NNNN UU UU XXXX <<<<<$$$$ LLLLLL IIIIII NN NN UUUU XX XX $......$$$ $........$$$$ $.........$$$$ $.........$$$$ $..........$$$$$ $$..........$$$$$ ###........###$$$ #####........####$$ #######........###### #######$......$###### END_ASCII_LOGO linux_logo-5.11/logos/classic-no_periods_or_chars.logo0000600004737600013330000000413110643214425023406 0ustar vweaver1dongarra# Original Linux_Logo logo # Drawn by Vince Weaver, from a pbm2ansi of Larry Ewing's original Tux # Modified for no periods by Marc D. Williams # Modified for no letters in Linux by Sitsofe Wheeler SYSINFO_POSITION right DESCRIPTION_STRING Classic No Dots Or Letters NAME classic-simp BEGIN_LOGO                                                              `----'                                                                  END_LOGO BEGIN_ASCII_LOGO $$$$$$ #### ## $$$$$$$$ ## ## ### ### ### ### ### $ $ $$ ## ## ## ## ## ## #### $/o$o\$$ ## ## ## ## ## ## ## $////$$$$ ## # ## ## ## ## ## #### <<<<<$$$$ ####### ## #### #### ### ## ### ### $......$$$ $........$$$$ $.........$$$$ $.........$$$$ $..........$$$$$ $$..........$$$$$ ###........###$$$ #####........####$$ #######........###### #######$......$###### END_ASCII_LOGO linux_logo-5.11/logos/alternate_oses/0000700004737600013330000000000010643214655020100 5ustar vweaver1dongarralinux_logo-5.11/logos/alternate_oses/bsd.logo0000600004737600013330000000236410643214633021535 0ustar vweaver1dongarra# FreeBSD logo # Ported by Shawn Rapp SYSINFO_POSITION right DESCRIPTION_STRING FreeBSD Logo NAME bsd BEGIN_LOGO  , , /( )` \ \___ / | /- _ `-/ ' (/\/ \ \ /\ / / | ` \ O O ) / | `-^--'`< ' (_.) _ ) / `.___/` / `-----' / <----. __ / __ \ <----|====O)))==) \) /==== <----' `--' `.__,' \ | | \ / /\ ______( (_ / \______/ ,' ,-----' | `--{__________) END_LOGO BEGIN_ASCII_LOGO , , /( )` \ \___ / | /- _ `-/ ' (/\/ \ \ /\ / / | ` \ O O ) / | `-^--'`< ' (_.) _ ) / `.___/` / `-----' / <----. __ / __ \ <----|====O)))==) \) /==== <----' `--' `.__,' \ | | \ / /\ ______( (_ / \______/ ,' ,-----' | `--{__________) END_ASCII_LOGO linux_logo-5.11/logos/alternate_oses/aix.logo0000600004737600013330000000355110643214571021546 0ustar vweaver1dongarra# AIX logo # by Thomas Grewe # Ascii logo by Javier Fernandez-Sanguino Pea SYSINFO_POSITION right DESCRIPTION_STRING AIX Logo NAME aix BEGIN_LOGO  AAAAIIIIIIXXXX  AAAAIIXXXX  () () () () () () AAAAAAIIXX  AAAAIIXXXX  () () () () () () AAAAIIIIIIXXXX    () () () () () ()     () () () () () ()     () () () () () ()     () () () () () ()        END_LOGO BEGIN_ASCII_LOGO AAAA IIIIII XX XX AA AA II XXXX () () () () () () AAAAAA II XX AA AA II XXXX () () () () () () AA AA IIIIII XX XX () () () () () () () () () () () () () () () () () () () () () () () () END_ASCII_LOGO linux_logo-5.11/logos/alternate_oses/solaris.logo0000600004737600013330000000172610643214651022442 0ustar vweaver1dongarraSYSINFO_POSITION bottom DESCRIPTION_STRING The Default Banner Logos NAME solaris BEGIN_LOGO SSSSS OOOO L AA RRRRR III SSSSS S O O L A A R R I S S O O L A A R R I S SSSS O O L AAAAAA RRRRR I SSSS S O O L A A R R I S S O O L A A R R I S SSSSS OOOO LLLLLL A A R R III SSSSS END_LOGO BEGIN_ASCII_LOGO SSSSS OOOO L AA RRRRR III SSSSS S O O L A A R R I S S O O L A A R R I S SSSS O O L AAAAAA RRRRR I SSSS S O O L A A R R I S S O O L A A R R I S SSSSS OOOO LLLLLL A A R R III SSSSS END_ASCII_LOGO linux_logo-5.11/logos/alternate_oses/irix.logo0000600004737600013330000000301210643214642021727 0ustar vweaver1dongarra# Irix Logo # Drawn, rather poorly, by Vince Weaver # Ascii by Javier Fernandez-Sanguino Pea SYSINFO_POSITION right DESCRIPTION_STRING Irix Logo NAME irix BEGIN_LOGO >>>> OOOIIIIIIIIIIIIIIIIIIIIII >>>>>N NOOOOIIIIIIIIIIII OOO>> NN NN OOOOIIIIIIIIIIII OOOO NN NN NNNIIIIIIIIIIII OOONN NNNNNIIIIIIIIIIIIIIIIIIII OOOO OOON NNN NNN NNOOO >>OONN >> NNNN NN OOOO NNNNN NN NN>>>OOOO>>>NN >> NN NN>> >NN> NN>> >>NN NN >>>NN NN >> NN >>> NN NN >> OOO NN NN OOO OOO NN NN OOO OOONN NNOOO OONN NNO END_LOGO BEGIN_ASCII_LOGO >>>> OOO IIIIII IIIIII IIIIII II II >>>>>N NOOOO II II II II IIII OOO>> NN NN OOOO II IIIIII II II OOOO NN NN NNN II II II II IIII OOONN NNNNN IIIIII II II IIIIII II II OOOO OOON NNN NNN NNOOO >>OONN >> NNNN NN OOOO NNNNN NN NN>>>OOOO>>>NN >> NN NN>> >NN> NN>> >>NN NN >>>NN NN >> NN >>> NN NN >> OOO NN NN OOO OOO NN NN OOO OOONN NNOOO OONN NNO END_ASCII_LOGO linux_logo-5.11/logos/alternate_oses/bsd_banner.logo0000600004737600013330000000237410643214624023063 0ustar vweaver1dongarra# FreeBSD logo # Ported by Shawn Rapp SYSINFO_POSITION bottom DESCRIPTION_STRING FreeBSD Logo NAME bsd_banner BEGIN_LOGO  , , /( )` \ \___ / | /- _ `-/ ' (/\/ \ \ /\ / / | ` \ O O ) / | `-^--'`< ' (_.) _ ) / `.___/` / `-----' / <----. __ / __ \ <----|====O)))==) \) /==== <----' `--' `.__,' \ | | \ / /\ ______( (_ / \______/ ,' ,-----' | `--{__________) END_LOGO BEGIN_ASCII_LOGO , , /( )` \ \___ / | /- _ `-/ ' (/\/ \ \ /\ / / | ` \ O O ) / | `-^--'`< ' (_.) _ ) / `.___/` / `-----' / <----. __ / __ \ <----|====O)))==) \) /==== <----' `--' `.__,' \ | | \ / /\ ______( (_ / \______/ ,' ,-----' | `--{__________) END_ASCII_LOGO linux_logo-5.11/logos/classic.logo0000600004737600013330000000366610643214523017402 0ustar vweaver1dongarra# Original Linux_Logo logo # Drawn by Vince Weaver, from a pbm2ansi of Larry Ewing's original Tux SYSINFO_POSITION right NAME classic DESCRIPTION_STRING The Default Classic Logo BEGIN_LOGO ......... ....... ........ ......LLIIIIIINNNNUUUUXXXX ........     ......LLIINNNNNUUUUXXXX ........     .....LLIINNNNNNUUUUXX ........   .....LLIINNNNNNUUUUXXXX ........ `----' .....LLLLLLIIIIIINNNNUUUUXXXX ........ ...... .... ....... ........ .. ....... ......... . ....... ......... . ...... .......... ..... .......... ..... ........  ... ........  . ........  .  ......   END_LOGO BEGIN_ASCII_LOGO $$$$$$ $$$$$$$$ LL IIIIII NN NN UU UU XX XX $ $ $$ LL II NNN NN UU UU XXXX $/o$o\$$ LL II NNNN NN UU UU XX $////$$$$ LL II NN NNNN UU UU XXXX <<<<<$$$$ LLLLLL IIIIII NN NN UUUU XX XX $......$$$ $........$$$$ $.........$$$$ $.........$$$$ $..........$$$$$ $$..........$$$$$ ###........###$$$ #####........####$$ #######........###### #######$......$###### END_ASCII_LOGO linux_logo-5.11/logo_config.BSD0000600004737600013330000000011410024771023016550 0ustar vweaver1dongarra./logos/alternate_oses/bsd.logo ./logos/alternate_oses/bsd_banner.logo linux_logo-5.11/README.CUSTOM_LOGOS0000600004737600013330000001171310643210511016571 0ustar vweaver1dongarraHow to Use the new custom logo tools ------------------------------------ ++++++++++++++++++++++++++++++++++++ Quick Summary of The -L command line option: ------------------------------------------- "linux_logo -L list" will list all of the logos available "linux_logo -L NAME" will display the logo with name NAME, which you can see with the "-L list" command "linux_logo -L num" will display logo number num, where the number is obtained using the "-L list" command "linux_logo -L random_xy" will pick a logo at random, with criteria xy. When you replace x with the letter: b : pick a random banner mode logo c : pick a random classic mode logo e : pick a logo from either banner or classic When you replace y with the letter: a: pick a random ascii logo n: pick a non-ascii logo e: pick either type of logo So to summarize "-L random_ba" picks a random ascii banner, "-L random_ce" picks a random classic logo "-L random_ee" picks any logo, etc, etc Add logos by editing the "logo_config" file and re-running "make": ----------------------------------------------------------------- The file "logo_config" holds the files that are compiled in. It is simply a list of file-names. Just add the names of your logos, and they will be compiled in. Order is important; the order they are listen in "logo_config" is the order they will appear in a "linux_logo -L list" command. Also, the options "-c" (classic) "-b" (banner) and "-a" (ascii) depend on this order; all they do is start with logo #1 and search down the list for an appropriate logo. When you have finished adding logos, recompile with "make". The change to logo_config should be detected, "parse_logos" should run on the file to ready the files for compiling in. Any errors should be printed to the screen. Creating custom logo files: --------------------------- By default custom logo files are in the "./logos" directory tree. You can test out logos without compiling them in by using the "linux_logo -D filename" option, where filename is the path to a .logo file The .logo file format is simple: -------------------------------- + See the ./logos directory for examples + Any line starting with a "#" is a comment and ignored + First comes some info about the logo. A directive is all in caps, starting at the far left of a line. After the directive is a space followed by the appropriate value. + Directives: SYSINFO_POSITION possible values: bottom - indicates a banner-type logo follows right - indicates a classic-style logo follows DESCRIPTION_STRING the characters following the space until the new-line are taken as a description of the logos. NAME the name used when searching for logos by name. Please keep it short, without any spaces, and not conflicting with any other logo names. BEGIN_LOGO END_LOGO between these two directives should be the logo information for the full-color logo. This can just be simply the output of an editor or an ansi-editor [see references]. The character sequence ^[ is interpreted at the escape (#27) character. A banner logo can be any length, but typically 80 wide by 12 high is standard. Also, the sysinfo will be centered, so keep that in mind. A classic logo is usually a picture 22 wide by 16 high, with the OS name printed in block letters to the right of the first 6 lines. The system information is then printed starting on line 8 and until the sysinfo runs out [typicall between 5-8 lines]. BEGIN_ASCII_LOGO END_ASCII_LOGO If available, an ascii version of the logo [with no escape sequences] can be included between these two directives. Sizing info is the same as for a normal logo. + Be sure to remember to end your directives, and not to nest logo directives. I have not tested the parser to see how robust it is. + Be sure to have both a LOGO and a ASCII_LOGO in the logo file if not, parse_logo will not be able to add them (core dump :( You might use the script in contrib/script/logo2ascii in order to convert them. References: ---------- A good ansi editor [under development] from Adam Lackorzynski can be obtained at http://www.inf.tu-dresden.de/~al10/aae/ For DOS/Windows I recommend TheDraw ansi editor. Some tools to convert from graphic formats to ascii art can be found in the netpbm toolkit at ftp://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/ (useful to change your cool logo from gif/jpeg to ascii) Search for "Ansi Editor" on freshmeat.net for more. linux_logo-5.11/ll_asm/0000700004737600013330000000000007513672253015220 5ustar vweaver1dongarralinux_logo-5.11/ll_asm/README0000600004737600013330000000036307513672253016104 0ustar vweaver1dongarraThe linux_logo written in assembly language [aka "ll"] project has acquired a life of its own and is now available separately at http://www.deater.net/weave/vmwprod/asm/ll.html now available in x86, ia64, Alpha, SPARC, PPC, and many others! linux_logo-5.11/load_logo.h0000600004737600013330000000006710557203674016065 0ustar vweaver1dongarrastruct logo_info *load_logo_from_disk(char *filename); linux_logo-5.11/CHANGES0000600004737600013330000011316711470322567014754 0ustar vweaver1dongarra8 JULY 1997 + Came up with the Idea + Converted the logo.xpm file to ANSI using ppm2ansi and xv + Fixed up the picture with THEDRAW under DOSEMU 0.66.7 + Combined into a C program using jed. 9 JULY 1997 + Figured out the tricky proc stuff (very inelegant) + Released version 0.1 RELEASE 0.1 10 JULY 1997 + Fixed it so it looks better on a white background (standard rxvt or xterm) + Released version 0.2 + Added documentation on how to add a "penguin port" to telnet into RELEASE 0.2 14 JULY 1997 + Return for weekend to find lots of feedback on this program. + Started adding updates. + Cleaned up output routines, added SMP and Atari support, and cleaned up the code in general. + Added a command line options. -v (version) -h (help) and -n (turn off periods in the output) + Released version 0.4 to my website [0.3 was a never released minor bugfix] RELEASE 0.4 15 JULY 1997 + Start on version 0.5 + Really start modularizing. Decide to make it completely platform independent. RELEASE 0.5 16 JULY 1997 + Finished modularization + Added -o option to print with offset + Finished cross-platform support (with a lot of #ifdef s) + Added IRIX and Default UNIX outputs + Added -s option to skip bogomips check on non-Linux OS's + Released version 0.6 RELEASE 0.6 18 JULY 1997 + Got improved Atari m68k Code from Christian Marillat + Removed extraneous ^[ combination from the ansi .h files (so a cat of the header file shows the picture) + Released version 1.0 at sunsite and my site (no there is no 0.7-0.9 ... the improvements were so drastic I thought it deserved a full version number). RELEASE 1.0 25 JULY 1997 + Fixed some typos in the README (thanks to Esperandi) + Ran doc files through ispell .. i didn't realize it was that bad ;) + Fixed handling of the -o option when a number doesn't follow (before resulted in seg-fault). (thanks to Adam Lackorzynski) + Re-released as version 1.01 RELEASE 1.01 4 AUGUST 1997 + Worked some more on the -o problem (again many thanks to Adam Lackorzynski) should not give any more problems. 5 AUGUST 1997 + Added a TODO file + Added an exit() call to the help section, and removed some return 1; s + Fixed a minor bug with SGI getcpuinfo. + Put version 1.02 at my site (for some reason I forgot to put 1.01 there) RELEASE 1.02 6 FEBRUARY 1998 + A few extremely minor bugs/typos fixed over the past months. + Added better support for K6-chips [I recently upgraded to one ;)] and the newer kernels. + Package up version 1.04 and release for test to UM-LUG RELEASE 1.04 11 FEBRUARY 1998 + Added "plain ascii" penguin and -a option to display it. [thanks to ] for getting me started on this one. + Fixed URL in the -h option + Make appropriate updates + Added OpenLinux instructions to Readme [thanks to ] + Released 1.05 RELEASE 1.05 12 FEBRUARY 1998 + Found bug in 1.05 [% signs not work well in /etc/issue.net ... they are escaped... ugh] so released 1.06 + UGH! Uploaded 1.06 as ASCII instead of BIN at sunsite by mistake. Changed version of package to 1.07 but leave everything as 1.06 ;) yes I'm lazy 19 FEBRUARY 1998 + Added Cyrix 6x86 support [thanks to ] + Changed to read the vendor_id to report vendor. Idea also thanks to 13 MARCH 1998 + Added minimal AIX port [thanks to Thomas Grewe] + Added incredible Banner support! "linux_logo -banner" Much thanks to Albert Lai + Also added "-rX" option to change the character in banner, and "-w Num" which changes width [all under banner] + Made old linux_logo look "linux_logo -classic" + Modularized the getsysinfo.c files. Trying to follow all the #ifdef statements was getting confusing. + Included a nice "further info" file from Tony Nugent + Bunch of other stuff to get ready for release + Released version 2.00 RELEASE 2.0 16 APRIL 1998 + Finally had time to work on things again. + Thanks to Joerg Berg linux-alpha support should work. + I also rearranged the "sysinfo.c" file. It now relies on pre-processor magic, but simplified the Makefile a lot. + Zipped up version 2.0.1 RELEASE 2.01 13 May 1998 + Fixed it so that command line parameters were passed to the relevant modules. This had been broken for some time; thanks to for pointing this out. + The boot-logo flamewar has resumed on linux-kernel, so I think I will zip up and get 2.0.2 ready to announce.... 27 May 1998 + Finally released 2.0.2. Posted announcements to freshmeat.net and c.o.l.a. RELEASE 2.02 28 May 1998 + Got a lot of feedback due to the announcement on freshmeat.net. + Added -f option to clear screen.. thanks to Sean Kelly for the suggestion. + Fixed a typo in sysinfo_{default,aix}.c thanks to zap + Added a section to the README about having fun with the -R option + Increased the size of some buffers so that long cpu names [especially Pentium II ones] don't overflow. [Thanks to Caleb Epstein and Steve for reporting this problem]. + Changed the 'penguin_port' in the README to 54321. Thanks to David Nedrow for letting me know that port 1234 has a reserved meaning and that a higher numbered port would be better. + Added Linux-Sparc support with the help of Raymond Wu 1 June 1998 + Added better BogoMips reporting for Sparc64 [thanks to "Eddie C. Dost" ] 3 June 1998 + Fixed typo in sysinfo.c thanks to Rod Begbie 4 June 1998 + Fixed problem where if there was no vendor it would include extraneous space in the sysinfo ouput. Thanks to report from Mark Lundeberg + added contrib directory for possible future logos + improved AIX support thanks to Jochen Stein 18 June 1998 + Added -k switch to enable changing of background shape independently of foreground. Thanks to Alexandre Aufrere + Fixed a bug on showing MMX pentiums with 2.0.34? 9 July 1998 + Someone reported 2.03 to freshmeat although it wasn't quite an official "Announce to the world" release. So I got to working on this a bit. + Made a patch to allow adding the linux_logo [in color] to the linux kernel. I think the logo should remain user_space, but people kept whining how ugly the text logos were with fbcon. Oddly, I got no response for my patch. None at all. It can be obtained at http://www.ee.umd.edu/~weave/color-vga-linux-logo.patch And is against 2.1.108 with some of Geert's fbcon fixes. + Messed with the directory structure some more, moving the "Samples" to the ./samples directory. + Restructured source to use global variables instead of parameter passing. Made code much easier to follow and smaller. + Now default behavior is customizable by editing the "defaults.h" file. + Added the -l and -g switches to disable sysinfo and logo respectively. + Fixed up the README file a lot. + Packed up 2.05 and released it. RELEASE 2.05 10 July 1998 + Improved support for K6 on 2.0.34 so it actually works now. + Added support for Centaur and "Transmeta" ;) Chips. Note... The transmeta thing is a joke. I have no clue if they are making Intel-type chips. + Packaged up a "2.05a" version. 13 July 1998 + Fixed a bug where the -k and -x options didn't work. UGH. Thanks to my friend John, at whose house I figured out the problem. + Fixed it so it displays non-cpuid [ <486] chips sort of right under 2.1.x series kernels. Need to test this on 2.0.x series kernels to see if I broke anything.... + Packed up and released as "2.05b" + Added -u uptime option. Suggested by many people, including David Christensson , Allan Joergensen , and my friend John C. ** NOTE ** involved changes to many of the architecture specific files. PLEASE TEST AND REPORT ANY BUGS. + Made it so the -ascii switch really doesn't display any ESC characters. + Removed a lot of redundant code. + Updated CHANGES and TODO and BUGS files. + Will release "2.06" on my web-site temporarily. RELEASE 2.06 14 July 1998 + Got everything ready for the 2.07 release. Trying not to forget anything [I always do anyway]. RELEASE 2.07 29 July 1998 + Finally got around to uploading the newest version to sunsite and reporting it at freshmeat. + Had forgotten to take the "cpuinfo" test file out. UGH. + Added a fix for PentiumII's on linux 2.0.x [with cpuinfo sent by . I wish I had access to more machines to test this on; fixing one always risks breaking another. If only I kept all those /proc/cpuinfo's people sent me and had an automated parser... much more trouble than it'd be worth. Oh well. 31 July 1998 + Added preliminary PowerPC support thanks to a /proc/cpuinfo sent in by Beecher Greenman + Fixed a centering bug in banner mode that had been bothering me for a while. A "+4" should have been a "+2" + Re-changed that to "+3", after much trial and error, deciding it was the value that made odd-sized strings come out the best in banner mode. + Went through sysinfo_*.c, updating the files, making sure they used BUFSIZ and making sure uninitialized strings won't give garbage on the wrong architecture. 13 August 1998 + Don't really have time to work on linux_logo, but since everyone keeps sending me e-mail about it, why not ;) + Fixed K6 printing on 2.0.36p5 [Ugh, why are they always changing this]. Actually it was reported this kernel causes 'linux_logo -a' to print blank spaces for ever. This is because one of the sysinfo lines was >80, so the centering code ended up doing a loop to a negative number [that wrapped to 2^31], causing lots of bad effects. Thanks to Nate Godin for the report. + Added information to the README for adding linux_logo to SUSE linux systems. Thanks to Rodolfo Pilas . 1 September 1998 + Back at school. Trying to merge stuff up the best I can. + Integrated [with some changes] a patch sent by Aleksey Makarov . This changed the command-line parsing to the get_opt() command, plus added the -t command line option to print arbitrary text. + Shortened the -ascii -banner and -classic commands to -a,-b, and -c. The old ones still work, but this is more "correct". I will probably add --ascii --banner and --classic at some point. + Updates the -t option to work with classic mode, substantially re-structuring the classic mode code. + Alexander Klink sent me a cool picture of linux_logo on a vt102. See the linux_logo page [www.ee.umd.edu/~weave/vmwprod] for a copy of the picture. + Found out that there is a debian package of linux_logo, and it even has its own maintainer, Steve Kostecke . Anyway he sent in some patches, including a man page and some ppc fixes, so I merged them in as well. 5 September 1998 + Fixed it so the -f and -g options work together [thanks to Gabriel Grundin for this one. + Kernel 2.1.120 messed up /proc/cpuinfo once again. Work-around added. Thanks to adam _at_ cc934578-a.ewndsr1.nj.home.com for the help. 11 September 1998 + After numerous reports of linux_logo being broken for > 2.1.120 I released 2.10 RELEASE 2.10 13 September 1998 + Fixed it so K6-2 machines look ok [at least on 2.0.35]. 25 September 1998 + Started integrating some info that Alex Buell kindly provided into the /proc/cpuinfo parsing code. 2 October 1998 + After awful week of exams, decided to work on linux_logo a bit ;) + Added a new "-x" option that uses a new character '@' in the banner.h file to indicate characters that can be dropped in order to get a "narrower" logo. This was a problem with some people where the issue.net file being 80chars caused problems.. hopefully this fixes that. + Added "-y" loadaverage support. Also re-modularized the banner output code. Thanks to Anders Rundegren for sending the patch my way. + Packed up 2.11. Won't announce to the world until I do a few beta-tests first. + Realized using '@' as the character above screwed up the ascii output. Changed it to ` + Found another mistake where I forgot to add ` s to ascii_banner.h 30 October 1998 + Have been busy busy busy busy doing other stuff. Finally had time to work on linux_logo and try to get back to the people who had sent me stuff the last month. + Added an "-e" option. This makes it easier for me to check problems with other people's /proc/cpuinfo files that they send me. It can also be used, I suppose, to trick linux_logo into thinking you have a better computer ;) + Tested the new version with some of the assorted cpuinfo files Alex Buell sent me. + Michael Somos was suggesting I remove the Escape character from my C code. I disagreed... + Someone announced linux_logo-2.11 long before I thought it was ready to announce. Please people, let me do the announcing.... + Peter Magnusson let me know that using "`" for a special character messes up the '-c' output. Changed it to be "%". Hopefully this will keep other problems from happening. + Audited all of the non-intel architectures. Cleaned up and fixed a lot. Please let me know if anything else needs fixed. + Bundled up 2.12 for release. Hope I don't make any mistakes... 8 November 1998 + Added support for older 1.2.x kernels, thanks to Rusty Haddock + Added code to print the MHz if given by the new tsc code in kernels >2.1.127 + Actually finally release 2.12 RELEASE 2.12 5 December 1998 + Idea from Juhapekka Tolvanen to totally re-write sysinfo stuff. Will work on over break. + Also added sample scripts from him to contrib directory. + Pending re-write of entire sub-system, to break compatibility? Linux_logo 3.0? 9 January 1999 + Ugly snowy and icy weather has trapped me at home, giving me time for the re-write. + Rewrote much of linux_logo to use a new "Format" engine. The old behavior is now a compatibility layer over the new code. + See the README on how to use the new -F option. + It's a big enough change to move the major number to 3.0. + Tested all the intel cpuinfo's I have. Now to see what I can do about the other architectures. + Overhauled the documentation. + To paraphrase Alan Cox and TMBG: o/~ metalab.unc.edu was sunsite.unc.edu, now it's metalab.unc.edu not sunsite.unc.edu So if you had a file at sunsite.unc.edu It'll be waiting at metalab o/~ + Pressing Projects: add gnu-configure scripts and update the man page. Unfortunately I am unsure how to go about either of those. + Added a PowerPC SMP patch from Ryan Nielsen 10 January 1999 + Tried to fix things up for a beta release to freshmeat tomorrow + Went through bringing up all non-intel targets to code. + Added Megahertz printing for Alpha chips 25 March 1999 + Finally had time to work on linux_logo again. School has just been tough. This is my spring break so I grabbed some time to try to get beta2 and eventually 3.00 stable out the door. + Thanks to Christian T. Steigies for sending in a patch fixing m68k and making sure it works on Amiga. 26 March 1999 + Implemented MIPS [decstation and SGI indy] + Got intel up to par. Modularized it a bit. Sorta detects K6-3's and all the various pentium versions right as far as I can tell. + Thanks to Greg Smith for sending a patch to fix pentium2 detection under 2.0.x. + Thanks to "Evert Meulie esq." for Dutch number support. + tim sent in some fixes for the README + Fixed the MHz to fudge a bit so 400Mhz chips are reported as that and not as 399Mhz or 401Mhz as /proc/cpuinfo might think they are. + Added the gpl COPYING file, since I've always said this was gpl'd but never included the license with it. + Tweaked SPARC and ALPHA a bit.. this version passes all of my sample proc files.. hopefully it will work just fine... + Pack it up and release to freshmeat.... here comes 3.0b2 RELEASE 3.0b2 2 April 1999 + Not many bug reports at all.. gearing up for a 3.0 release later today. + Tried in the past week to get a GNU autoconf configure script working... I did.. but the extra overhead [doubling the size of the archive] to just check for gcc/cc or architecture isn't worth it. The architecture detection code would have been just as much of a kludge as the current sysinfo.c, and I don't have all the machines to test it on. So for now at least I will stick with old-fashioned makefiles. + Released 3.0 to freshmeat and metalab. RELEASE 3.0 6 April 1999 + This release has gone a lot smoother than previous releases. Very few actual bugs noted this time. + Thanks to Nate Godin for a K6-2 fix. + Fixed some problems in the README. Thanks to Brandon Griffith for a RedHat instructions fix. + Ran a "tr -d '\r'" on the README to remove extraneous ^M characters. These shouldn't be needed [why were they even there at all? I don't think I ever edited linux_logo under DOS] and were causing some problems when viewing the logs using less. 22 June 1999 + Got a K6-2 350 the other day, so I guess I should finally publish a 3.01 that fixes the K6-2 Problem. The K6-2 is nice, even though my motherboard [A wonderful PA-2007] can only drive it at 337.5Mhz [75x4.5]. Had to solder a resistor to a jumper to get the right voltage, but it works like a charm. + Revise the README somewhat. I have a Redhat6.0 box at work so I can test out that myself now. + Add support for Pentium III for older kernels that don't realize it is a pentium III. + Added French support (Alexandre Blanchette ) + Added Italian support (Davide Melan ) See his page http://davidemelan.freeweb.org for an ENTIRELY Italian linux_logo. Pretty neat. + Changed the giant mass of global variables to a structure whose pointer is passed around. Hoped this would make the code more modular, but I fear it makes it just 1k bigger and more complicated. + Added -d option in case you want to disable linux_logo from "fixing up" the output. IE, you really want it to say AMD K6(tm) w Multimedia Extensions or whatever your /proc/cpuinfo really says. It also skips the Megahertz fudging. (Original idea from an e-mail exchange with Mengmeng Zhang ) + Ahhhhh it's late. I have tested as much as I can, and think I have 3.01 ready to go out the door. Hopefully I don't have a common error, as usually happens. Off to announce at freshmeat tomorrow. 23 June 1999 + Made some minor touch-ups, and released version 3.01 RELEASE 3.01 8 July 1999 + Oops. Left out which file to fix to get Redhat printing stuff. It is /etc/rc.d/rc.local. Thanks to James Punteney for finding this. 31 August 1999 + The 3.x series has been a nice one, with few problems. Recently a few problems have cropped up, and since this is the last day before classes begin, I figured I should work on them. + Also, thanks to the "Linux Mandrake" distribution. They have linux_logo installed by default... and apparently debian does too. + Fixed a bug with reporting K6-3's on 2.0.x kernels. Thanks to Steve Kostecke . + Fixed a bug while displaying K5 info. Thanks to sbstone _at_ ntcnet.com + Added support for SMP alpha ev6. Thanks goes to testdrive.compaq.com + There's grumbling on linux-kernel about "cleaning up cpuinfo namespace" in 2.3.x kernels. Won't that be fun. 1 October 1999 + Ugh!!! This semester at school has been a lot of work. I got side-tracked and didn't release linux_logo-3.02 yet.. I'll do that now. + I released a patch to clean up /proc/cpuinfo in the linux kernel.. it met much hatred and flamage ;) so I guess it won't be in the kernel. Also, Linus ignored the e-mail. + Linux_logo was mentioned in passing in Linux Journal... and in a flame on linux-kernel... so I must be doing something right ;) + Verified it worked on glibc-2.1.2 [Long story.. but in getting Iris Performer for Linux to work I ended up updating my slackware box with many new libraries] + I am sure once I release this on freshmeat my mailbox will fill with more bugs, so stay tuned.... 7 January 2000 + Well, finally have some time for linux_logo again. The semester of school was crazy, but after finals and a trip to Mont Tremblant, Canada, things have calmed down a bit. + Fix things for Athalon support. Nope, I don't have one yet [I wish]. Thanks to Dieter Ntzel + Look at merging some of the debian stuff. + It's good to know that linux_logo is Y2K compliant, even if the .lsm file format doesn't seem to be. + Added a named-pipe example to ./contrib/scripts from Jrg Ziefle 11 January 2000 + Made two new directories, "classic_logos" and "banner_logos" and put all of the various contributed logos into them. This should make it a bit easier for people to browse and pick which ones they want compiled in. + Upload and release 12 January 2000 + Of course I manage to spell Athlon wrong. Thanks to alp _at_ unistat.com 13 January 2000 + Ooops. More people finding my Athlon problem. Better release 3.04 + One month left till my birthday.... plenty of time left to send me a present ;) RELEASE 3.04 31 January 2000 + Fix y2k bug with the LSM and hope metalab accepts it... 29 February 2000 + Added a slackware logo + Upped version # to 3.05, just to be consistent, even though I haven't made enough changes to constitute a full release... RELEASE 3.05 11 June 2000 + I've been very busy. With schoolwork and everything. Back in February I started a massive re-design, but had to stop. Now I have some time again. + I am stuck in Lowell, Massachusetts, with only my 486 laptop, so I thought I'd do some linux_logo developing while not playing civ2 on my friend's machine. + Tore out a lot of old "compatibility" code that I hope not many people used. This includes the turn-off periods, and replace background/foreground character code. This makes the code base cleaner, smaller, and makes it much easier to implement arbitrary/random logo generation, which is my eventual goal. 29 July 2000 + Believe it or not, I've been working on this off an on the past 2 months. + malloc and pointers are your friends! AHHHH SEGFAULT SEGFAULT SEGFAULT Yes, that's what the past few days of linux_logo development have been like ;) + I got logo file loading/parsing done a few weeks ago. Today I got ascii/banner/classic logos to all use the same draw_logo function! There's a lot of abstraction, struct passing, pointers, malloc, and even a linked list! I can't believe it works. And to think this just started out with a bunch of printf's of hard-coded arrays of chars. 4 August 2000 + Finally got all of the new logo stuff done and working + I have a nice K6-2+ to test things on now.... 6 August 2000 + Verified all the cpuinfo files I have work, added ARM support and added crusoe and improved Athlon support. + Re-write most of the documentation + Release 3.9b1 to Freshmeat hopefully. RELEASE 3.9b1 11 February 2001 + Started the big sysinfo-rewrite I have been meaning to work on. + Worked out the libsysinfo interface. Should I spin it off as a separate project? + Final Fantasy 8 intervened 13 February 2001 + Gave up on the idea of a special birthday release 19 February 2001 + Started messing with some self-generating Makefiles + Got sysinfo_ix86 sort of auto-detecting and working 20 February 2001 + Fix all occurances of e-mail and web-page to my hopefully permanent "vince _at_ deater.net" address. 23 February 2001 + Wrote "ll" linux_logo in assembly language. Added in the ll_asm directory. 24 February 2001 + Finished x86 support to work on my machine 3 March 2001 + Finished x86 support to work on all cpuinfo's in my collection + Changed so reports GHz if over 1000Mhz. + Finished updating Alpha. + Finished updating ARM. + Finished updating m68k + Finished updating mips 4 March 2001 + Finished updating PPC + Finished updating Sparc + Started a libsysinfo specific CHANGES and README file + From now on all libsysinfo related updates will be reported in the ./libsysinfo/CHANGELOG file. + Merged in some ascii logos and readme updates from Javier Fernandez-Sanguino Pea + Looked into merging in i18n patch. Sill a bit wary of it. 5 March 2001 + Release 3.9b2 to servers. Hoepfully can release 4.0 after a normal bugfixing period. RELEASE 3.9b2 16 March 2001 + Fix GHz output to show 2 decimal points at least. This is because I found on the net some clandestine SMP-Athlon /proc/cpuinfo files. + Added preliminary i18n [that is, internationalization] support. The first translation was a poorly-done German one [the only language besides English I am somewhat understandable in]. 3 April 2001 + Add a "make logos-all" Makefile option. Fun to use with the "linux_logo -L random" option ;) + Included debian and redhat banner logos from Phillip Jackson + Thanks to Martin Bayer for the following changes: new "make install", compressed man-page. + Split off a "USAGE" file to make the README a bit less cluttered. 24 April 2001 + Finally got around to releasing 3.9b3 on freshmeat. 600 downloads RELEASE 3.9b3 30 April 2001 + Touch up the redhat and debian banner logos, from Phillip Jackson + Still amazed no i18n fixes have been sent in yet. 7 June 2001 + Had many requests for a classic logo w/o periods. Thanks to Marc D. Williams for sending me one. It's included with the logos now. See the FAQ for how to include it. + Updated Spanish .po file from Javier Fernndez-Sanguino Pea + Steve Kostecke fixed up the makefiles and fixed a i18n compilation problem. + To further the cause of i18n I addad a "#P" option for custom logos that will give either a singular or plural form of the word "Processor" + Released 3.9b4 RELEASE 3.9b4 16 October 2001 + Fix GHz printing for fast chips + Add support for ~/.linux_logo and /etc/linux_logo.conf files. I did this by a brutal hack of getopt(). See the README for info + Released 3.9b5. Was going to release 4.0, but the getopt hack seems a bit too chancy RELEASE 3.9b5 22 October 2001 + Try to free() the stuff I malloc(). I have been lazy because typically linux_logo doesn't stay resident so it doesn't make much difference. + Some sysinfo fixups. See the changelog in ./libsysinfo 25 October 2001 + New fr.po translation from sebastien.oustric + This release is taking a bit longer to get out than I thought. 28 October 2001 + MUST...RELEASE...BEFORE...CIVIII...COMES...OUT + Add "-i" option to ignore the new config files + Fixed some cases where an invalid file name would cause segfault + Update documentation 4 February 2002 + Add mandrake logos from their rpm, patch from Sitsofe Wheeler 5 February 2002 + Add change to print mem > 1000 MB in GB. Have no way to test this though... I shouldn't be making changes like this in b5, I know, but 95% of people shouldn't be affected by this. 11 February 2002 + Cleaning up the documentation. After 2 years 4.0 will finally be ready. Shooting for a 13 February special "birthday" release. RELEASE 4.0 14 February 2002 + Release quick 4.01 version to fix machines with more than 2 GB of RAM on intel (although, still anything more than 4GB will need special code). RELEASE 4.01 11 March 2002 + Some i18n fixes, and Polish translation, thanks to Patryk ciborek + Updated to a newer spec file in the contrib directory. Thanks to Ford Prefect + Contributed "gnu-linux" logo from Torsten Stremlau Maybe now RMS will run linux_logo ;) + New version of the "ll" assembly-language linux_logo included RELEASE 4.02 11 July 2002 + linux_logo is 5 years old!!! 14 July 2002 + Updated the documentation a bit + Fix that "-L list" was reporting classic/banner backwards! Thanks to Steve Kostecke + Added "-k" option that disables centering of system info RELEASE 4.03 19 July 2002 + Had released 4.03 + Update USAGE to reflect redhat 7.x series RELEASE 4.04 27 August 2002 + Have to release version 4.05 because of a segfault when HOME not set (can be a problem if used during boot). Thanks to Steve Kostecke and the helpful debian people who file bug reports. RELEASE 4.05 1 November 2002 + dk.po translation from angel _at_ port-it.net + Fixed a segfault in parse_logos when extraneous empty lines are in the config_logos file (thanks to Tony Whitmore ) + Added new "core.logo" file for core linux, thanks to Tony Whitmore again. + Remove some old debian specific stuff from manpage, thanks to Steve Kostecke RELEASE 4.06 30 December 2002 + Brazilian Portuguese translation from Anderson Rocha 23 January 2003 + Added sourcemage logos and a script to make adding comments to ansis easier from Chris Brien + Added TW Chinese translation from + Hopefully finally release linux_logo 4.07 RELEASE 4.07 11 July 2003 + Six years of linux_logo! + Patches sent in by Eugene Paskevich fix typo of i18n, add Ukranian and Russian po files, and add simplified logo. 14 March 2004 + Update to work on all known cpuinfos. Fix a lot of Opteron/P4 chips, etc. + Added minimal FreeBSD support RELEASE 4.08 17 March 2004 + Update the spec-file + Go through http://packages.qa.debian.org/l/linuxlogo.html buglist. + Have "parse_logos" handle \r 's in files better. Took the debian patch even though I am not sure if it is the best solution. + Added norwegian bokmaal translation from Per Oeyvind Karlsen [iso-8859-1] RELEASE 4.09 30 March 2005 + Sorry for lack of updates + Fixed to compile with gcc 4.0. Mainly removing a lot of stupid needless (char *) casts. Thanks to Colin Charles for pointing this out. + Updated Italian translation from Marco Colombo + New Mandrakelinux logo from + BSD updates from Metgod + released linux_logo-4.10 RELEASE 4.10 29 April 2005 + Embarrassing bug where it always prints out "Trying to open $HOME/.linux_logo". Has that bug really been there for over a year with no one noticing? (Thanks to Matthias Saou for noticing) RELEASE 4.11 30 April 2005 + OK, above bug wasn't as old as feared. It was a problem with some debugging output inserted and then forgotten about in the year between 4.09 and 4.10. I've reverted the behavior and it should work a bit better. + Made it so even if you don't have i18n installed on your machine, linux_logo will still successfully Make the whole way through (though with lots of warnings in the po directory). RELEASE 4.12 15 December 2005 + Some changes to libsysinfo + Looked at http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=linuxlogo Fixed what bugs I could + Merged some of a spell-check fix (didn't fix the Changelog). Bug #321971 RELEASE 4.13 20 July 2006 + Rename "dk.po" to "da.po". Thanks to Piotr Engelking + Fix spelling problems in CHANGES file (from debian via maintainer Khalid El Fathi ). + Inspires by a patch from debian, make it so the configuration file can handle empty lines, comments, and empty files. + Apply patch to make the -L command line argument override the other types of configuration. (from debian via maintainer Khalid El Fathi ). + Fix off by one error in allocation of the size of string ~/linux_logo.c RELEASE 4.14 4 January 2007 + Support sparc64 on Linux (we obtained some Niagara systems ;) ) + Add CPU and Memory support for Solaris. + Added a swedish translation forwarded along by the debian maintainer. RELEASE 4.15 27 January 2007 + Realized I had forgotten to add the swedish translation to the makefile. Fixed. + Updated slackware logo from Gabor Bak RELEASE 4.16 28 January 2007 + Update to install locale info in /usr/share/locale, not /usr/lib/locale for FHS compliance.( from Per yvind Karlsen ) + Add mandriva logo (from Per yvind Karlsen ) + Took a look at the linux_logo code and realized it is in sorry shape, started re-writing a lot, we're going to have a 5.0 release... -vmw + Audit the source code, removing a bunch of potential buffer overflows -vmw + Remove extraneous and dead code -vmw + Got rid of the horrific vmw_string.c file, an artifact from a much earlier and naive stage of my programming career... -vmw 26 June 2007 + I was busy, neglected linux_logo for a while. Some e-mails came in so back to work. + Re-wrote some of the helper functions to be thread safe. General cleanups. I've learned a lot in 10 years ;) + Include ubuntu logo by Damian OiDnus Slimak + Fix so the Playstation 3 reports right number of CPUs from Kolbjørn Barmen" + Need to fix Core Duo handling (urgh Intel, could you make the cpuinfo even uglier?). Thanks to Matthias Saou for sending me a few cpuinfo files to work with. 28 June 2007 + Re-wrote command-line and option handling to not use getopt(). getopt() is handy, but it was a hack to use it for file-based option handling as well. 3 July 2007 + Added avr32 support + Made some fake "configure" files that make an attempt at auto-configuring + Ensured cross-compiler support works. 4 July 2007 + Work on i18n support. It seems to work tolerably well again. + More testing of the build scripts. It works on Irix, Solaris, FreeBSD and Linux. 5 July 2007 + Turn back on logo-selection support. Make sure all the logos I distribute display properly. + Ran ispell on the documentation. + Added support for choosing logo by names. Updated all the logos to have names. RELEASE 5.0 9 July 2007 + Clean up all the trailing whitespace in linux_logo.c + Another security pass. Removed all of the potential buffer overruns I could find. *NOTE* on a properly configured system these overruns should not be a security threat, though they could lead to segfaults in linux_logo if you pass strings > 8192 bytes in size to the program. Thanks to Secunia Research for bugging me on this issue. RELEASE 5.01 30 July 2007 + Minor bugfix in libsysinfo with how errors in parse_string() were reported. An invalid /proc/cpuinfo file could potentially cause a segfault. Found the problem with the zzuf fuzz tool. 31 July 2007 + Run some more extensive fuzzing. + Update the man page. It referred to problems with the "new" Pentium II processors on 2.0.x kernels. + Fix another minor bug found by fuzzing where we try to print a NULL string if we have a really invalid logo. RELEASE 5.02 3 January 2008 + Minor fix so AMD Phenom displays properly. RELEASE 5.03 12 December 2008 + Go through the test_proc files I have, re-test and fix all of x86 and x86_64. RELEASE 5.04 5 June 2009 + Some libsysinfo changes. Quick summary: Add frv, microblaze and m32r support. Fix some old Cyric chips. Fix Sheeva Plug/ARM. RELEASE 5.05 12 June 2009 + Fixed Ukranian translation to be uk.mo instead of ua.mo (from pld-linux patches) + Update translations a bit, this is mainly fixes to the Polish. (from pld-linux patches) + Add pld-linux logo (from pld-linux patches) + Added sme linux logo (from sme linux patches) 1 July 2009 + Fix ./configure to not have issues if /bin/sh is dash. This was debian bug #483851. I wish they would report things like this upstream. + Fix bugs where you couldn't override the /etc/linux_logo.conf file with -D or -L # or -L random_xy options. Also fixed really minor read-past-end-of-buffer issue with random_xy handling. This should fix debian bugs #510813 and #504717 so hopefully they can re-add "-L debian" to their /etc/linux_logo.conf and thus debian systems will stop showing the BSD daemon by default. RELEASE 5.06 5 January 2010 + Some changes to CPU detection RELEASE 5.07 15 February 2010 + Update to handle ARM beagleboard cpuinfo + Merge sh fix from downstream debian + Fix C7-M support + Add support for Vortex and SiS x86 chips + Add support for Nehalem processors RELEASE 5.08 16 February 2010 + Fix problem where exponential notation appeared on a machine with more than 100GB of RAM (yes, I have access to such a machine) RELEASE 5.09 19 February 2010 + Enable Power6 support + Clean up memory detection, bump libsysinfo number. I hope this doesn't break anything. + Re-fix the memory printing code. RELEASE 5.10 14 November 2010 + Fix for the po Makefile to work with gmake 2.82. Patch provided by Edward Sheldrake + Fix some warnings from newer gcc. Obvious fixes, hopefully didn't break anything. + Test against some new cpuinfo files. + Some very minor libsysinfo changes for Xeon cpus. RELEASE 5.11 linux_logo-5.11/linux_logo-5.11.lsm0000600004737600013330000000130311470266645017227 0ustar vweaver1dongarraBegin3 Title: linux_logo Version: 5.11 Entered-date: 15NOV2010 Description: An ANSI Color Penguin Logo that can be run at bootup, at login, and many other interesting times. Supports: Linux (most architectures) and Solaris, Irix, AIX, etc. Version 5.0 is major rewrite over 4.x Keywords: logo penguin boot system info ansi Author: vince@deater.net (Vince Weaver) Maintained-by: vince@deater.net (Vince Weaver) Primary-site: metalab.unc.edu /pub/Linux/logos/penguins 108kB linux_logo-5.11.tar.gz Alternate-site: http://www.deater.net/~weave/vmwprod/linux_logo/ Original-site: Platforms: Linux, Irix, AIX, Solaris, FreeBSD, other Unixes Copying-policy: GPL2 End linux_logo-5.11/README.SECURITY0000600004737600013330000000144410653650326016100 0ustar vweaver1dongarraIt should not be possible to use bugs in linux_logo to compromise a system. Despite this, I make all attempts to fix buffer overflow and similar problems. I've done code audits, as well as using fuzzing tools. To use zzuf (an example. Vary the options as you want) zzuf -s 1:100000 -C 1 ./linux_logo If an error is reported, note the "s" and "r" values of the failure. Assuming a fuzzed /proc/cpuinfo was the cause, with s=5 and r=0.04 do this: zzuf -s5 -r0.04 < /proc/cpuinfo > out And then use gdb or other tool o track down the problem when running linux_logo -e ./out For some harsher fuzzing: zzuf -s 1:100000 -r 0.04:1.00 -C 1 ./linux_logo Fuzz the logo reading code as well: zzuf -s 1:100000 -r 0.04:1.00 -C 1 -q ./linux_logo -- -D ./logos/classic.logo linux_logo-5.11/defaults.h0000600004737600013330000000677110642760061015736 0ustar vweaver1dongarra/* This is the defaults.h file that can be used to change the default *\ \* Behavior of the linux_logo program. */ #define S_(String) String /* This is the default format of the output file. See the README for more *\ \* information on how to configure this option. */ char DEFAULT_BANNER_FORMAT[]= S_("#O Version #V, Compiled #C\n#N #M #X #T #P, #R RAM, #B Bogomips Total\n#H\n"); char DEFAULT_CLASSIC_FORMAT[]= S_("#O Version #V\nCompiled #C\n#N #M #X #T #P, #R RAM\n#B Bogomips Total\n#H\n"); /* Plural. With the coming of i18n you really can't assume plurals can */ /* be made by adding a string to the end. Hopefully this can fix it for*/ /* most languages. If they require significant word-order changes then */ /* we'll have even more problems */ char PROCESSOR_SINGULAR[]= S_("Processor"); char PROCESSOR_PLURAL[]= S_("Processors"); /* This option picks the default mode of the linux_logo program. *\ \* If a 1 is picked, banner mode will be the default mode. */ /* If a 0 is picked, classic mode (which some people prefer)will be default.*\ \* You can over-ride this with the -banner and -classic switches. */ #define DEFAULT_BANNER_MODE 1 /* By setting this option to 1 you can have linux_logo always run in plain *\ \* ascii mode. */ #define DEFAULT_PLAIN_ASCII 0 /* This mode sets whether you want the output to defaultly display uptime *\ \* or not. This is useful if you are using linux_logo on the fly or in */ /* Server side includes; it is not useful if you are using linux_logo to *\ \* create motd or issue files. */ #define DEFAULT_SHOW_UPTIME 0 /* This mode sets whether you want the load average displayed by default. */ #define DEFAULT_SHOW_LOAD 0 /* Default width of the screen. Change if you wish to use a wider screen. *\ \* This option is over-ridden by the -wX command line option */ #define DEFAULT_WIDTH 80 /* This Option, if set to 1, makes the Classic Logo appear better to some *\ \* people. It has no affect on the banner mode logo. */ #define DEFAULT_NO_PERIODS 0 /* This option will make linux_logo default to saving cursor position *\ \* if the option is set to 1. */ #define DEFAULT_PRESERVE_XY 0 /* This option will make linux_logo skip the bogo-mips check on non-linux *\ \* platforms if set to 1. This can speed up linux_logo on these platforms. */ #define DEFAULT_SKIP_BOGOMIPS 0 /* Use this to set the default offset of the logo towards the middle of the *\ \* screen. You can override this with the -oNum command line option. */ #define DEFAULT_OFFSET 0 /* By setting this option to 1, linux_logo will default to clearing the *\ \* screen each time the program is run. */ #define DEFAULT_WIPE_SCREEN 0 /* By setting this the logo only is 79 chars wide, instead of 80... this *\ \* can help if linux_logo used to make an issue.net file */ #define DEFAULT_NARROW_LOGO 0 /* By setting this, the system_info parsing will "tidy up" your system *\ \* info. That is, try to make Megahertz's on proper numbers, report your*/ /* K6 as a K6 and not the "AMD K6 with Multimedia Extensions" that *\ \* /proc/cpuinfo returns, etc. I reccommend you keep it on. */ #define DEFAULT_PRETTY_OUTPUT 1 linux_logo-5.11/TODO0000600004737600013330000000222310643217150014427 0ustar vweaver1dongarra- make the "-i" option work - handle the case if two logos have the same name... - allow specifying a directory full of logos, so you don't have to build them all into linux_logo - make sure no buffer-overflows. strncat is no help here. - get locale path from LOCALEPATH [is this still needed? I am not an i18n expert ] - Fix -i option - Compress logos for smaller executable [might not be worth the trouble] - script to make a "before" and "after" list of linux_logo results based on the cpuinfo collection, then diff after to make sure no regressions happened. - Have architecture-specific default sysinfo output? That way archs like m68k that have extra info [like Amiga, Atari, Mac] can display this w/o adding hacks to make it look proper on archs w/o such info [ix86] - see the ./libsysinfo directory for sysinfo stuff Suggestions from others: - Check the TERM value and use the ASCII logo if we don't have color support. - Why not include #I in Format string to indicate time in HH:MM format? - All text in output is printed in ESC[1;37;40m. It would be nice to have an option for that. For example: linux_logo -z 0-37-40 ... linux_logo-5.11/README.history0000600004737600013330000001257711336300254016332 0ustar vweaver1dongarra13 years of Linux_Logo development Excruciating detail that no one really wanted to know. Boring Backstory on the Author's Computer Skills ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ My father was a computer teacher at the local high school, so I had access to computers at an early age. While I did get to do some obscure things because of that, such as use an IBM keypunch machine before I was in elementary school, I didn't start actual programming until a bit later. I started out typing BASIC games out of books into our Apple IIe, and gradually picked up enough to make kilobytes of very inane programs. I also did some LOGO programming in elementary school. By middle school I had moved on to GWBASIC and then QBASIC, and then finally onto Turbo Pascal and assembly language on the 386/33 my family acquired in 1991. My first intro to UNIX was a summer job I had in high school, in 1995. I got to use SGI Irix on a 36MHz Personal Iris with a MIPS R3000-class chip. I always distrusted GUIs, I always preferred the command line. I liked UNIX pretty much from the start. My first job on the IRIX machine was making an X11 frontend to an ancient Fortran 77 program. This was not a good way to learn C or Fortran. It took me a while to figure out F77 is column-sensitive, and X programming gave you a brutal introduction to pointers (puzzling out how double-pointer indirection worked took a while). This was 1995 so the web was still young (netscape 1.x for Irix!). It was a different experience; when downloading from the internet one had to make sure you weren't leaving the continent (downloading Samba from Australia could take days). My friend and co-worker John had discovered Linux that summer, and he showed me it running on his 386/25. It was a far cry from the SGI Indigo2 at work ( OpenGL graphics, 100MHz 64-bit processor, 128MB of RAM, 16-bit sound... it was nearly 5 years before I had a computer that could match those specs). Anyway, he had slowly downloaded Slackware over a 14.4 modem connection onto a big pile of 3 1/2" floppies. I was excited when he showed me that he could recompile the Linux kernel locally! The 1.2.13 kernel didn't support his CD-ROM drive, so he compiled up a late 1.3.xx devel kernel and had to patch the driver to have the proper settings. It took a long time to compile, but then we rebooted... and the drive went crazy, continuously ejecting and unejecting. Despite the setback, I was impressed. The interface was just twm and some X-terminals, but that was enough for me. I skipped straight from DOS to Linux, never using Windows in any significant manner. The next year I went off to college, and made sure to request an ethernet equipped dorm room (that wasn't a given yet). I convinced my family I needed my own computer, so they bought me a second-hand 486/66. Finally, a Linux box all of my own! Linux Logo ~~~~~~~~~~ The linux_logo story starts up now, in 1997. I had been following the GGI project, which was trying to get graphics drivers for Linux into the kernel (Linus strongly rejected the idea, it took over 10 years before he would change his mind). There was a big flame war on the linux-kernel list. Somehow the topic came up on whether the kernel should put a Linux penguin on text consoles, as the fb drivers did on graphics consoles. Despite being pro-GGI, I felt that something like that belonged in user space, not in the kernel (though in the end I did post a patch that did it in the kernel). I had experience with ANSI/ASCII art from my days using BBSs. So I converted the official logo.xpm file to ANSI using Rasterman's ppm2ansi tool, and touched up the image using THEDRAW under Dosemu 0.66.7. This is the current "classic" logo. It was barely more than a hack, but I released version 0.1 on 9 July 1997. There was more interest than I expected, so I cleaned up the code and released a 1.0 version on 18 July 1997. Version 2.0 had some code cleanups but was mostly a separation of the cpuinfo code into a library-like structure. Released 13 March 1998. Version 3.0 was released 2 April 1999 after a long string of beta versions. This was a large re-write of the codebase. Version 4.0 was released 13 February 2002 after a long string of betas. It was a complete overhaul of the code, to sort out a lot of issues where my C coding had gotten better, and to also fix a lot of stupid decisions made earlier. linux_logo was in maintenence mode for a long time, but eventually made some changes to fix logo selection, and to make it easier to configure from the command line (that is, make it a more UNIX-like tool). I initially wasn't planning on a new major number, but in the end the changes were large enough that I did. 5 July 2007 (10 year anniversary pretty much). Popularity ~~~~~~~~~~ linux_logo is probably my most widely used tool, which still surprises me after all of these years. It is available for most distributions, though it almost never is in the default install of a mainstream distro (the exception was Mandrake Linux which for a while showed the output on every boot). The utility is very polarizing, some people love it, others hate it. The same with the logos available. Some want nothing but classic style, others like the "new" banner style. I prefer the latter but am outnumbered by the former. The Future ~~~~~~~~~~ I plan on maintaining linux_logo for as long as I continue to use Linux, which hopefully is pretty much indefinitely. linux_logo-5.11/ANNOUNCE.logo0000600004737600013330000000636710350107757016052 0ustar vweaver1dongarra/*--------------------------------------------------------------------------*\ LINUX_LOGO 4.0 -- Shows a Logo With some System Info - 13 February 2001 by Vince Weaver (vince@deater.net, http://www.deater.net/weave ) SUPPORTS Linux (all but s390, SH, cris) and some non-Linux OS's \*--------------------------------------------------------------------------*/ I have released version 4.0 of my linux_logo package. A sample ascii output is attached to the end. NEW IN VERSION 4.0 -- new config file system -- lots of bug fixes -- ia64 support -- Internationalization code -- Additional banners -- Reorganized documentation -- Complete overhaul of sysinfo code -- optional assembly-language version -- Re-wrote logo_generation code -- Any amount of custom logos can be compiled in -- Removal of some old options -- Addition of ARM architecture -- All kinds of fixes and tweaks. -- Smaller executable! DESCRIPTION -- linux_logo outputs a color ansi version of a penguin, accompanied by system info gathered from proc. FEATURES -- Works great on standard Linux systems -- Works on almost all Linux architectures and a few other non-linux os's -- Modular: easy to change the logo that gets displayed -- Lots of command-line options to tweak the display -- Raw ASCII output for those wanting simplicity/dumb terminal output. USES [instructions included] -- Have a boot-up penguin in userspace [avoid kernel bloat] -- Impress your friends with a fancy color penguin login/motd -- Have a "penguin" port on your computer -- Use the "sysinfo-only" option to display info in SSI or cgi-scripts. -- Use your imagination! ------------------------------------------------------------------------- WHERE TO GET LINUX_LOGO: ------------------------------------------------------------------------- http://www.deater.net/weave/vmwprod/linux_logo http://metalab.unc.edu/pub/Linux/logos/penguin/linux_logo-4.0.tar.gz Check out other programs by me at http://www.deater.net/weave/vmwprod ------- ##### ####### @ ##O#O## ###### @@# #VVVVV# ## # ## VVV ## ## @@@ ### #### ### ### ##### ###### # ## ## @ @# ### ## ## ## ### ## # ## ## @ @# ## ## ## ## ### # ### ## @@# ## ## ## ## ### QQ# ##Q ## # @@# ## ## ## ## ## ## QQQQQQ# #QQQQQQ ## ## @@# # ## ## ### ### ## ## QQQQQQQ# #QQQQQQQ ############ ### #### #### #### ### ##### ###### QQQQQ#######QQQQQ Linux Version 2.4.0-test5, Compiled #17 Wed Aug 2 19:43:44 EDT 2000 One 450MHz AMD K6-2+ Processor, 160M RAM, 897.84 Bogomips Total Load average 0.04, 0.01, 0.00 Uptime 3 days 19 hours 36 minutes hal linux_logo-5.11/load_logo.c0000600004737600013330000000437010643205360016047 0ustar vweaver1dongarra#include #include #include #include "logo_types.h" /* Loads a logo from disk */ struct logo_info *load_logo_from_disk(char *filename) { struct logo_info *new_logo; int logo_start=0,ascii_logo_start=0; int ascii_size=0,size=0; char temp_st[BUFSIZ]; FILE *fff; new_logo=calloc(1,sizeof(struct logo_info)); if (new_logo==NULL) { printf("Error allocating memory!\n"); return NULL; } fff=fopen(filename,"r"); if (fff==NULL) { printf("Error loading logo: %s\n",filename); return NULL; } new_logo->logo=NULL; new_logo->ascii_logo=NULL; while (!feof(fff)) { fgets(temp_st,BUFSIZ,fff); if (!strncmp(temp_st,"END_LOGO",8)) logo_start=0; if (!strncmp(temp_st,"END_ASCII_LOGO",14)) ascii_logo_start=0; if (logo_start) { size+=strlen(temp_st); if (new_logo->logo==NULL) { new_logo->logo=strdup(temp_st); } else { new_logo->logo=realloc(new_logo->logo,size+1); strncat( new_logo->logo,temp_st,strlen(temp_st)); } new_logo->ysize++; } if (ascii_logo_start) { ascii_size+=strlen(temp_st); if (new_logo->ascii_logo==NULL) { new_logo->ascii_logo=strdup(temp_st); } else { new_logo->ascii_logo=realloc(new_logo->ascii_logo,ascii_size+1); strncat( new_logo->ascii_logo,temp_st,strlen(temp_st)); } new_logo->ascii_ysize++; } if (!strncmp(temp_st,"BEGIN_ASCII_LOGO",16)) ascii_logo_start=1; if (!strncmp(temp_st,"BEGIN_LOGO",10)) logo_start=1; if ( (!ascii_logo_start) && (!logo_start) ) { if (!strncmp(temp_st,"SYSINFO_POSITION",16)) { if (!strncmp(temp_st+17,"bottom",6)) { new_logo->sysinfo_position=SYSINFO_BOTTOM; } if (!strncmp(temp_st+17,"right",5)) { new_logo->sysinfo_position=SYSINFO_RIGHT; } } if (!strncmp(temp_st,"DESCRIPTION_STRING",18)) { new_logo->description=strdup(temp_st+19); new_logo->description[strlen(new_logo->description)-1]=0; } if (!strncmp(temp_st,"NAME",4)) { new_logo->name=strdup(temp_st+5); new_logo->name[strlen(new_logo->name)-1]=0; } } } new_logo->next_logo=NULL; fclose(fff); return new_logo; } linux_logo-5.11/COPYING0000600004737600013330000004312706676770622015025 0ustar vweaver1dongarra GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 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. Copyright (C) 19yy 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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) 19yy 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. , 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. linux_logo-5.11/USAGE0000600004737600013330000002110510643204764014535 0ustar vweaver1dongarraUsage tricks: Generic A1 ). Having the tty printed when used at login. A2 ). Having an ascii logo for network login. A3 ). Creating a "penguin port" on your computer. A4 ). Confusing script-kiddies Distribution Specific B1 ). Slackware B2 ). OpenLinux B3 ). Redhat B4 ). Debian B5 ). SUSE #################################################################### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A1). Having the tty printed on the login prompt From Martin Bayer: In order to have the tty indicated at the login prompt, I use some issue(5) parameters, running linux_logo with the following options: (this is intended to be one line, remove the comment!) /usr/local/bin/linux_logo -F'Welcome to SuSE Linux 7.0 on #H, \\l \n # note the double backslash ^^^ running #O #V, compiled on #C. \n This is a #M #X #T with #R RAM. \n' >/etc/issue ################################################################## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A2). Having an ascii logo for network login Note: for platforms that do not have color ansi telnet connections you might want to use the "linux_logo -a" option. This gives a plain ascii [though less exciting and uglier] output. To add this functionality, add the following to your bootup scripts /usr/local/bin/linux_logo -a > /etc/issue.net If you are not sure where your bootup scripts are, see the "distribution specific" hints towards the end of this document. ################################################################### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A3) You can create a "Penguin Port" That is, set up a port on your Linux box to answer connections with the linux_logo penguin! Add the following line to /etc/services penguin 54321/tcp penguin The port number you pick [here 54321] is arbitrary. Just be sure not to pick on that will conflict with others in the file. Add the following line to /etc/inetd.conf penguin stream tcp nowait root /usr/local/bin/linux_logo Restart inetd (killall -HUP inetd) and you have it!! Locally "telnet localhost penguin" will do it. From other machines you will need the port number ("telnet localhost 54321").. it is easy to customize.. just pick a port number and away you go! ################################################################# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A4) Confusing script kiddies! Many distributions turn off linux_logo if you pick "most secure" at installation time. This is because letting others know your processor, memory type, and kernel version can make it easier for you to be attacked by outsiders. Instead of disabling linux_logo, why not use it as a weapon to confuse those who might attack you? For example with linux_logo -F "Linux Version 2.7.105, Compiled ##45 Tue Feb 13 13:40:15 \ EST 2001\nTwelve 10Ghz Heuristic ALgorithmic Model 9000 Processors\n \ 14TB Holographic Memory, 426789.4 BogoMips Total\nhal.uss.discovery" in your bootup scripts, the attackers may think they have logged into the killer machine from Clark's "2001" series of novels! Watch the hilarity that ensues as they try to find a proper exploit! ################################################################# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B1). FOR SLACKWARE Add the following lines to /etc/rc.d/rc.M /usr/local/bin/linux_logo > /etc/issue /usr/local/bin/linux_logo > /etc/issue.net and the penguin appears at all the login prompts, even remote ones. ################################################################## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B2). FOR OPENLINUX Add the following lines to /etc/rc.d/rc.local /usr/local/bin/linux_logo > /etc/issue /usr/local/bin/linux_logo > /etc/issue.net and the penguin appears at all the login prompts, even remote ones. ################################################################### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B3). FOR REDHAT Generic Login: REDHAT 7.x INSTRUCTIONS ~~~~~~~~~~~~~~~~~~~~~~~ The /etc/issue file comes with the redhat-release package. It is not updated every boot-up like in the 6.x series. One way to have linux_logo work is simply end the following lines to the end of the file "/etc/rc.d/rc.local" if [ -f /usr/local/bin/linux_logo ]; then echo "" > /etc/issue /usr/local/bin/linux_logo -t "$R" >> /etc/issue /usr/local/bin/linux_logo -a -t "$R" > /etc/issue.net echo >> /etc/issue fi REDHAT 6.x INSTRUCTIONS ~~~~~~~~~~~~~~~~~~~~~~~ In the file /etc/rc.d/rc.local Look for the lines saying # This will overwrite /etc/issue at every boot. So, make any changes you # want to make to /etc/issue here or you will lose them when you reboot. towards the middle of the file. Comment out [by putting a # at the start of each line] the following 6 lines, up to, but not including, the line that says 'fi'. Before the 'fi' put in the following lines: if [ -f /usr/local/bin/linux_logo ]; then echo "" > /etc/issue /usr/local/bin/linux_logo -t "$R" >> /etc/issue /usr/local/bin/linux_logo -a -t "$R" > /etc/issue.net echo >> /etc/issue fi This will give you a color linux_logo at the consoles, and an ascii linux_logo when telnetting in. --------------------------------------------------------------- Fancier Redhat options: You can have it report Redhat version using the -t option (thanks to Aleksey Makarov for this tip). If you have redhat installed already, change /etc/rc.d/rc.local so where it says echo "" > /etc/issue echo "Red Hat Linux $R" >> /etc/issue echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue comment it out [or delete it] and add instead put /usr/local/bin/linux_logo -f -t "$R" > /etc/issue For older versions of Redhat [older than 5.2] you might try /usr/local/bin/linux_logo -f -t "Red Hat $R" > /etc/issue ##################################################################### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B4): FOR DEBIAN: [thanks to ] Nice program! Just wanted to let you know how I used it within a Debian system. I have the logo appear above any text in the message of the day and as long as the day's message remains under a few lines, it works out wonderfully. First I renamed the Debian default /etc/motd, created a new one with touch motd', used the following command: /usr/local/bin/linux_logo > /etc/motd and then added a line of text at the end of the file. Next I edited /etc/init.d/boot. In the following lines which appear near the end of the file: if [ "$EDITMOTD" != no ] then uname -a > /tmp/motd sed 1d /etc/motd >> /tmp/motd mv /tmp/motd /etc/motd fi change the third line to: /usr/local/bin/linux_logo > /tmp/motd and the fourth line to: sed 1,18d /etc/motd >> /tmp/motd and as long as EDITMOTD is set to yes at the beginning of the file, it should work. ######################################################################## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ B5): FOR SUSE: For version 7.3: [thanks to itzit ] Edit /etc/rc.d/boot.local file and add the following lines before "exit 0" line: /usr/local/bin/linux_logo > /etc/issue /usr/local/bin/linux_logo -a > /etc/issue.net [Older versions, thanks to Rodolfo Pilas ] Edit /sbin/init.d/boot.local file and add the following lines before "exit 0" line: /usr/local/bin/linux_logo > /etc/issue /usr/local/bin/linux_logo -a > /etc/issue.net linux_logo-5.11/logo_types.h0000600004737600013330000000044110643205271016275 0ustar vweaver1dongarra#define SYSINFO_RIGHT 0 #define SYSINFO_BOTTOM 1 struct logo_info { char *description; char *name; int default_is_ascii; int sysinfo_position; char *logo; char *ascii_logo; int ysize; int ascii_ysize; struct logo_info *next_logo; }; linux_logo-5.11/logo_config.Solaris0000600004737600013330000000005210547336362017572 0ustar vweaver1dongarra./logos/alternate_oses/solaris.logo linux_logo-5.11/libsysinfo-0.2.2/0000700004737600013330000000000011470533176016564 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/Makefile0000600004737600013330000000165711120541104020215 0ustar vweaver1dongarrainclude Makefile.default all: libsysinfo.a clean: rm -f *.o *~ rm -f libsysinfo.a libsysinfo.so config.h cd AIX && $(MAKE) clean cd Linux && $(MAKE) clean cd FreeBSD && $(MAKE) clean cd Irix && $(MAKE) clean cd SunOS && $(MAKE) clean cd w32 && $(MAKE) clean cd all && $(MAKE) clean distclean: clean rm -f Makefile.default install: libsysinfo.a: Linux/cpuinfo_alpha.c \ Linux/cpuinfo_ia64.c \ Linux/cpuinfo_ppc.c \ Linux/cpuinfo_vax.c \ Linux/cpuinfo_arm.c \ Linux/cpuinfo_m68k.c \ Linux/cpuinfo_s390.c \ Linux/cpuinfo_x86_64.c \ Linux/cpuinfo_avr32.c \ Linux/cpuinfo_mips.c \ Linux/cpuinfo_sh3.c \ Linux/cpuinfo_x86.c \ Linux/cpuinfo_cris.c \ Linux/cpuinfo_parisc.c \ Linux/cpuinfo_sparc.c \ Linux/sysinfo_linux.c cd all && $(MAKE) cd $(OS) && $(MAKE) $(CROSS)$(AR) crus libsysinfo.a ./$(OS)/*.o ./all/*.o shared: libsysinfo.a ld -shared -o libsysinfo.so ./$(OS)/*.o ./all/*.o linux_logo-5.11/libsysinfo-0.2.2/README0000600004737600013330000000631707430022222017437 0ustar vweaver1dongarralibsysinfo -- by Vince Weaver HISTORY: This library started off as simply the sysinfo detection part of the linux_logo program. Gradually linux_logo was split more and more between the logo part and the sysinfo part. The connection ended up being so small that I ended up splitting them for a cleaner interface. I am debating whether I should release this as a package on its own, to be used by other programs. Theory of Operation: See the respective operating system directories for how the info is gathered. The "all" directory holds the common routines used by all os's. The "configure" file is a c-program used to determine OS/arch. It is a hack. INTERFACE: Include the "sysinfo.h" file to get the proper defines. Link against libsysinfo [---] char *get_sysinfo_version(char *version); Returns a string with version info, such as "2.3.4". This is used so programs that use libsysinfo can display what version they are linked against. [---] int get_numeric_sysinfo_version(void); Returns a numeric version info, like 2003004 or some such. Useful so you can use a simple "if get_numeric_version() > OUR_VERSION" type construct to see if a new enough libsysinfo is installed. [---] int get_os_info(os_info_t *os_info); typedef struct { char os_name[33]; char os_version[33]; char os_revision[65]; } os_info_t; get_os_info() returns the above struct. On unix-like operating systems the uname() function fills in most of this info. [---] char *get_host_name(char hostname[65],char domain[65]); Returns the hostname and filles in the domain name. Domain name is not always guaranteed to return a proper value. [---] int get_uptime(void); Returns the number of seconds the machine has been turned on. [---] void get_load_average(float *load_1,float *load_5,float *load_15); Fills in values for the 1, 5, and 15 minute load averages. [---] int get_cpu_info(cpu_info_t *cpu_info); typedef struct { int num_cpus; float megahertz; float bogomips; char chip_vendor[33]; char chip_type[64]; } cpu_info_t; get_cpu_info() returns info on the cpus installed. On Linux /proc/cpuinfo is querried to obtain this information. Some "pretty-printing" is done to clean up the results a bit. [---] int get_hardware_info(char hardware_string[65]); Fills in a string with extraneous hardware info. This might be the machine type, or some other string. On Linux this is also obtained from /proc/cpuinfo. It is empty on the ix86 architecture. [---] long int get_mem_size(void); Returns memory size in Megabytes. May be inaccurate on 32bit systems with >2GB of RAM. [---] int set_cpuinfo_file(char *filename); This is used to set the file used instead of /proc/cpuinfo. I use this during debugging to point to non-native cpuinfo files. [---] void set_pretty_printing(int value); Set whether to do pretty-printing or not. Currently disables some, but not all, pretty-printing. linux_logo-5.11/libsysinfo-0.2.2/FreeBSD/0000700004737600013330000000000010644466274020004 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/FreeBSD/Makefile0000600004737600013330000000043210643020334021423 0ustar vweaver1dongarrainclude ../Makefile.default all: cpuinfo.o sysinfo_bsd.o cpuinfo.o: cpuinfo_bsd.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -o cpuinfo.o -c cpuinfo_bsd.c sysinfo_bsd.o: sysinfo_bsd.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c sysinfo_bsd.c clean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/FreeBSD/cpuinfo_bsd.c0000600004737600013330000000164410644466232022444 0ustar vweaver1dongarra #include #include #include #include #include #include #include #include "sysinfo.h" #include "include/generic.h" #define SIZE(x) sizeof(x)/sizeof(x[0]) extern float external_bogomips(void); int get_cpu_info(struct cpu_info_type *cpu_info) { int val_int; int val_len; char val_str[BUFSIZ]; int ctl_cpu[] = { CTL_HW, HW_MODEL }; int ctl_ncpu[] = { CTL_HW, HW_NCPU }; val_len = SIZE(val_str); if (sysctl(ctl_cpu, SIZE(ctl_cpu), val_str, &val_len,0,0)) perror("sysctl"); else strncpy(cpu_info->chip_type,val_str,SYSINFO_CHIP_TYPE_SIZE); val_len = sizeof(val_int); if (sysctl(ctl_ncpu, SIZE(ctl_ncpu), &val_int, &val_len,0,0)) perror("sysctl"); else cpu_info->num_cpus = val_int; cpu_info->bogomips=external_bogomips(); cpu_info->megahertz=0.0; return 0; } linux_logo-5.11/libsysinfo-0.2.2/FreeBSD/README0000600004737600013330000000015407402011656020652 0ustar vweaver1dongarraThis is a bit out-dated and I don't have a BSD box to use it on... but in theory all that's needed is there linux_logo-5.11/libsysinfo-0.2.2/FreeBSD/sysinfo_bsd.c0000600004737600013330000000537111337611255022471 0ustar vweaver1dongarra/****************************************************************** * sysinfo_bsd.c - FreeBSD patch for linux_logo * * August 31, 2000 by Shawn Rapp * * - Made cute little devil pic from daemon screen saver for the * * linux_logo to use. Bye Bye fat little penguin =) * * - CPU information * * - OS information * * - Somewhat gets the build date (needs parsing) * * - BogoMips * * - Physical Memory total (not averaged to convention though) * * * * Left to be done * * - CPU mgz * * - Patch telnetd to display /etc/issue when specified in * * /etc/gettytab. * ******************************************************************/ #include #include /* getloadavg() */ #include #include #include #include #include #include #include "sysinfo.h" #include "include/generic.h" #include "include/uname.h" #define SIZE(x) sizeof(x)/sizeof(x[0]) int get_os_info(struct os_info_type *os_info) { return uname_get_os_info(os_info); } /* Based on /usr/src/usr.bin/w/w.c */ int get_uptime (void) { struct timeval boottime; time_t uptime=0, now; size_t size; int mib[2]; now=time(NULL); /* * Print how long system has been up. * (Found by looking getting "boottime" from the kernel) */ mib[0] = CTL_KERN; mib[1] = KERN_BOOTTIME; size = sizeof(boottime); if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 && boottime.tv_sec != 0) { uptime = now - boottime.tv_sec; } return uptime; } /* Based on /usr/src/usr.bin/w/w.c */ void get_load_average(float *load_1,float *load_5,float *load_15) { double avenrun[3]; getloadavg(avenrun, sizeof(avenrun) / sizeof(avenrun[0])); *load_1=avenrun[0]; *load_5=avenrun[1]; *load_15=avenrun[2]; return; } char *get_host_name(char *hostname,char *domain) { return uname_get_host_name(hostname,domain); } long long get_mem_size(void) { int ctl_ram[] = { CTL_HW, HW_PHYSMEM }; long long mem_size=0; int val_int; int val_len; val_len = sizeof(val_int); if (sysctl(ctl_ram, SIZE(ctl_ram), &val_int, &val_len,0,0)) perror("sysctl"); else { mem_size=(val_int/1000000); } return mem_size; } linux_logo-5.11/libsysinfo-0.2.2/all/0000700004737600013330000000000011470533174017332 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/all/Makefile0000600004737600013330000000104410642576670021003 0ustar vweaver1dongarrainclude ../Makefile.default all: bogomips.o fix_mhz.o parsing.o sysinfo_common.o uname.o bogomips.o: bogomips.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c bogomips.c fix_mhz.o: fix_mhz.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c fix_mhz.c parsing.o: parsing.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c parsing.c sysinfo_common.o: sysinfo_common.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c sysinfo_common.c uname.o: uname.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c uname.c clean: rm -f *.o rm -f *~ linux_logo-5.11/libsysinfo-0.2.2/all/uname.c0000600004737600013330000000143410644466037020614 0ustar vweaver1dongarra#include "sysinfo.h" #include /* strncpy */ #include /* uname */ int uname_get_os_info(struct os_info_type *os_info) { struct utsname buf; uname(&buf); strncpy(os_info->os_name,buf.sysname,SYSINFO_OS_NAME_SIZE); strncpy(os_info->os_version,buf.release,SYSINFO_OS_VERSION_SIZE); strncpy(os_info->os_revision,buf.version,SYSINFO_OS_REVISION_SIZE); /* os_info->host_name=strdup(buf.nodename); */ return 0; } char *uname_get_host_name(char *hostname,char *domain) { struct utsname buf; uname(&buf); strncpy(hostname,buf.nodename,SYSINFO_HOSTNAME_SIZE); /* strncpy(domain,buf.domainname,64);*/ strncpy(domain,"Unknown",SYSINFO_DOMAIN_SIZE); /* Can't get there from here */ return hostname; } linux_logo-5.11/libsysinfo-0.2.2/all/bogomips.c0000600004737600013330000000160310644463716021325 0ustar vweaver1dongarra#ifndef linux /* * Standalone BogoMips program * * Based on code Linux kernel code in init/main.c and * include/linux/delay.h * * For more information on interpreting the results, see the BogoMIPS * Mini-HOWTO document. * * version: 1.3 * author: Jeff Tranter (Jeff_Tranter@Mitel.COM) * * Modified for inclusion with Linux_Logo -- Vince Weaver */ #include #include /* portable version */ static void delay(int loops) { long i; for (i = loops; i >= 0 ; i--) ; } float external_bogomips() { unsigned long loops_per_sec = 1; unsigned long ticks; while ((loops_per_sec <<= 1)) { ticks = clock(); delay(loops_per_sec); ticks = clock() - ticks; if (ticks >= CLOCKS_PER_SEC) { loops_per_sec = (loops_per_sec / ticks) * CLOCKS_PER_SEC; return (float)loops_per_sec/500000; } } return -1; } #endif linux_logo-5.11/libsysinfo-0.2.2/all/fix_mhz.c0000600004737600013330000000074007367105444021152 0ustar vweaver1dongarra float fix_megahertz(int factor,float megahertz) { int temp_MHz,temp_mod,temp_div; float new_megahertz; new_megahertz=megahertz; temp_MHz=(int)megahertz; temp_mod=temp_MHz%factor; temp_div=temp_MHz/factor; if (temp_mod<=2) { new_megahertz=(float) (temp_div*factor); } else if (temp_mod>=(factor-2)) { new_megahertz=(float) (temp_div+1)*factor; } else new_megahertz=temp_MHz; return new_megahertz; } linux_logo-5.11/libsysinfo-0.2.2/all/sysinfo_common.c0000600004737600013330000000157710644464575022566 0ustar vweaver1dongarra#include "version.h" #include "sysinfo.h" #include #include struct our_state { int pretty_printing; int custom_cpuinfo; char cpuinfo_file[BUFSIZ]; }; struct our_state internal_state={1,0,"/proc/cpuinfo"}; char *get_sysinfo_version(char *version) { snprintf(version,BUFSIZ,"%i.%i.%i",VERSION_MAJOR,VERSION_MINOR,VERSION_SUBMINOR); return version; } int get_numeric_sysinfo_version(void) { return (VERSION_MAJOR*10000)+(VERSION_MINOR*100)+VERSION_SUBMINOR; } int set_cpuinfo_file(char *filename) { internal_state.custom_cpuinfo=1; strncpy(internal_state.cpuinfo_file,filename,BUFSIZ); return 0; } char *get_cpuinfo_file(void) { return internal_state.cpuinfo_file; } void set_pretty_printing(int value) { internal_state.pretty_printing=value; } int get_pretty_printing(void) { return internal_state.pretty_printing; } linux_logo-5.11/libsysinfo-0.2.2/all/parsing.c0000600004737600013330000000141310653445441021143 0ustar vweaver1dongarra#include char empty_string[]=""; /* take line, give back part after colon */ char *parse_line(char *string) { char *temp_ptr; temp_ptr=strstr(string,":"); if (temp_ptr==NULL) { /* special handling... atoi, aof, strcmp, etc can't handle NULL */ /* Found via zzuf fuzz checking */ return empty_string; } /* skip past the colon */ temp_ptr++; /* skip any white-space */ while (( temp_ptr[0] == ' ') || ( temp_ptr[0] == '\t')) temp_ptr++; return temp_ptr; } char *clip_lf(char *string,int size) { char *temp_ptr; int i=0; temp_ptr=string; while ((*temp_ptr!=0) && (*temp_ptr!='\n') && (i<(size-1))) { i++; temp_ptr++; } *temp_ptr=0; return string; } linux_logo-5.11/libsysinfo-0.2.2/Irix/0000700004737600013330000000000011336274323017474 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/Irix/Makefile0000600004737600013330000000030010642577273021140 0ustar vweaver1dongarrainclude ../Makefile.default all: sysinfo_irix.o sysinfo_irix.o: sysinfo_irix.c $(CROSS)$(CC) $(CFLAGS) -c sysinfo_irix.c clean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/Irix/README0000600004737600013330000000014007250320122020336 0ustar vweaver1dongarraBroken. I will fix at some point. Unfortunately I don't have an Irix box to play with anymore. linux_logo-5.11/libsysinfo-0.2.2/Irix/sysinfo_irix.c0000600004737600013330000000245711337611321022371 0ustar vweaver1dongarra/* sysinfo_irix.c */ #include #include #include #include #include #include #include "../sysinfo.h" #include "../include/uname.h" #include "../include/generic.h" int get_os_info(struct os_info_type *os_info) { return uname_get_os_info(os_info); } /* read from "uptime" maybe? */ int get_uptime (void) { return 0; } /* read from "uptime" maybe? */ void get_load_average(float *load_1,float *load_5,float *load_15) { *load_1=0.0; *load_5=0.0; *load_15=0.0; } char *get_host_name(char *hostname,char *domain) { return uname_get_host_name(hostname,domain); } long long get_mem_size(void) { FILE *fff; long long size; fff=popen("hinv -t memory","r"); fscanf(fff,"%*s%*s%*s %lld",&size); pclose(fff); return size; } int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; /* 1 300 MHZ IP30 Processor */ fff=popen("hinv","r"); fscanf(fff,"%d %f",&cpu_info->num_cpus,&cpu_info->megahertz); pclose(fff); /* Cpu: MIPS R12000 */ fff=popen("hinv -t cpu","r"); fscanf(fff,"%*s %32s %64s",cpu_info->chip_vendor,cpu_info->chip_type); pclose(fff); cpu_info->bogomips=external_bogomips(); return 0; } linux_logo-5.11/libsysinfo-0.2.2/version.h0000600004737600013330000000012110644475303020415 0ustar vweaver1dongarra#define VERSION_MAJOR 0 #define VERSION_MINOR 2 #define VERSION_SUBMINOR 1 linux_logo-5.11/libsysinfo-0.2.2/sysinfo.h0000600004737600013330000000323611337647041020434 0ustar vweaver1dongarra /* */ char *get_sysinfo_version(char *version); int get_numeric_sysinfo_version(void); #define SYSINFO_OS_NAME_SIZE 32 #define SYSINFO_OS_VERSION_SIZE 32 #define SYSINFO_OS_REVISION_SIZE 64 #define SYSINFO_HOSTNAME_SIZE 64 #define SYSINFO_DOMAIN_SIZE 64 #define SYSINFO_CHIP_VENDOR_SIZE 32 #define SYSINFO_CHIP_TYPE_SIZE 64 #define SYSINFO_HARDWARE_STRING_SIZE 64 struct os_info_type { char os_name[SYSINFO_OS_NAME_SIZE+1]; char os_version[SYSINFO_OS_VERSION_SIZE+1]; char os_revision[SYSINFO_OS_REVISION_SIZE+1]; }; int get_os_info(struct os_info_type *os_info); /* host name */ char *get_host_name(char *hostname,char *domain); /* uptime (seconds the system has been up) */ int get_uptime(void); /* load average ( average load across 1, 5 and 15 minutes) */ void get_load_average(float *load_1,float *load_5,float *load_15); struct cpu_info_type { int num_cpus; float megahertz; float bogomips; char chip_vendor[SYSINFO_CHIP_VENDOR_SIZE+1]; char chip_type[SYSINFO_CHIP_TYPE_SIZE+1]; }; int get_cpu_info(struct cpu_info_type *cpu_info); /* Hardware info string */ int get_hardware_info(char *hardware_string); #define MEM_USE_SYSINFO -1 #define MEM_USE_MEMINFO -2 /* mem_size (in megabytes) (will this work on > 4Gig systems?) */ long long get_mem_size(void); /* Use if the generic mem_size routines don't work for your arch */ long long get_arch_specific_mem_size(void); long long get_mem_size_sysinfo(void); long long get_mem_size_meminfo(void); long long get_mem_size_iomem(void); long long get_mem_size_stat(void); /* Debugging */ int set_cpuinfo_file(char *filename); void set_pretty_printing(int value); linux_logo-5.11/libsysinfo-0.2.2/AIX/0000700004737600013330000000000010644465676017220 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/AIX/Makefile0000600004737600013330000000003010640240750020627 0ustar vweaver1dongarraclean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/AIX/README0000600004737600013330000000005707250320022020052 0ustar vweaver1dongarraTemporarily broken. I will fix at some point. linux_logo-5.11/libsysinfo-0.2.2/AIX/sysinfo_aix.c0000600004737600013330000000611711337611160021703 0ustar vweaver1dongarra/* getsysinfo_aix.c *\ \* I was trying to make this easier to add other platforms/ */ /* architectures. Feel free to add yours, and send me the patch. *\ \*----------------------------------------------------------------*/ #include #include #include #include #include #include #include "sysinfo_common.h" #include "vmw_string.h" int external_bogomips(char *bogomips_total); void get_os_info(struct os_info_type *os_info) { struct utsname buf; clear_os_pointers(os_info); uname( &buf); os_info->os_name=strdup(buf.sysname); os_info->os_version=strdup(buf.version); /* switched around, JSt */ /*os_info->os_revision=strdup(buf.version);*/ os_info->host_name=strdup(buf.nodename); os_info->uptime=strdup(utmp_get_uptime());/* Neither of below implemented*/ os_info->load_average=strdup(get_loadavg_noproc()); } void get_hw_info(struct hw_info_type *hw_info, struct linux_logo_info_type *logo_info) { FILE *fff; int cpus=0; long long mem; char temp_string2[BUFSIZ]; char chip[BUFSIZ]="Unknown"; char temp_string[BUFSIZ],bogomips_total[BUFSIZ]="???"; char bogo_total[BUFSIZ]; float megahertz=0.0; /* Print CPU Type and BogoMips -- Handles SMP Correctly now *\ \* To debug other architectures, create copies of the proc files and */ /* fopen() them. */ clear_hw_pointers(hw_info); /* sprintf(cpuinfo,"Unknown CPU");*/ if ((fff=popen("lsattr -El proc0","r") )!=NULL) { while ( fscanf(fff,"%s",(char *)&temp_string2)!=EOF) { if ( !(strcmp(temp_string2,"type")) ) { /* moved &chip, JSt output of lsattr -El proc0 gives state enable Processor state False type POWER2 Processor type False on AIX 4.1.5 systems */ fscanf(fff,"%64s%64s%64s%64s%64s",(char *)&chip,(char *)&temp_string, (char *)&temp_string,(char *)&temp_string,(char *)&temp_string); } } } pclose(fff); /* count cpus ... ugly using wc, JSt */ if ((fff=popen("lsdev -Cc processor -SA|wc -l","r") )!=NULL) { fscanf(fff,"%d",&cpus); } pclose(fff); /* check mem, JSt */ if ((fff=popen("lsattr -E -l sys0 -a realmem -F value","r") )!=NULL) { fscanf(fff,"%lld",&mem); } pclose(fff); if (!logo_info->skip_bogomips) if ( (external_bogomips( (char *)&bogomips_total))==-1 ) snprintf(bogo_total,BUFSIZ," "); else snprintf(bogo_total,BUFSIZ,"%s Bogomips Total",bogomips_total); else snprintf(bogo_total,BUFSIZ," "); /* Added for 3.0 best I could.. have no AIX box to test on --vmw */ snprintf(temp_string,BUFSIZ,"%ldM",(long int)mem/1024); hw_info->mem_size=strdup(temp_string); hw_info->bogo_total=strdup(bogo_total); hw_info->num_cpus=cpus; if (megahertz>1) { snprintf(temp_string,BUFSIZ,"%.0fMHz ",megahertz); hw_info->megahertz=strdup(temp_string); } hw_info->cpu_type=strdup(chip); } linux_logo-5.11/libsysinfo-0.2.2/Linux/0000700004737600013330000000000011470533174017661 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/Linux/Makefile0000600004737600013330000000422011336300433021310 0ustar vweaver1dongarrainclude ../Makefile.default ifneq (,$(findstring 86,$(ARCH))) ARCH := x86 endif ifneq (,$(findstring arm,$(ARCH))) ARCH := arm endif ifneq (,$(findstring sh,$(ARCH))) ARCH := sh endif all: cpuinfo.o sysinfo_linux.o cpuinfo.o: $(ARCH) alpha: cpuinfo_alpha.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_alpha.c arm: cpuinfo_arm.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_arm.c avr32: cpuinfo_avr32.c $(CROSS)$(CC) $(CFLAGS) -o avr32.o -c cpuinfo_avr32.c cris: cpuinfo_cris.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_cris.c frv: cpuinfo_frv.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_frv.c ia64: cpuinfo_ia64.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_ia64.c m32r: cpuinfo_m32r.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_m32r.c m68k: cpuinfo_m68k.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_m68k.c microblaze: cpuinfo_microblaze.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_microblaze.c mips: cpuinfo_mips.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_mips.c mips64: cpuinfo_mips.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_mips.c parisc: cpuinfo_parisc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_parisc.c parisc64: cpuinfo_parisc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_parisc.c ppc: cpuinfo_ppc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_ppc.c ppc64: cpuinfo_ppc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_ppc.c s390: cpuinfo_s390.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_s390.c s390x: cpuinfo_s390x.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_s390x.c sh: cpuinfo_sh3.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_sh3.c sparc: cpuinfo_sparc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_sparc.c sparc64: cpuinfo_sparc.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_sparc.c vax: cpuinfo_vax.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_vax.c x86: cpuinfo_x86.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_x86.c x86_64: cpuinfo_x86_64.c $(CROSS)$(CC) $(CFLAGS) -o cpuinfo.o -c cpuinfo_x86_64.c sysinfo_linux.o: sysinfo_linux.c $(CROSS)$(CC) $(CFLAGS) -c sysinfo_linux.c clean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_ia64.c0000600004737600013330000000745411337611607022327 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles intel chips on Linux architecture */ /* by Vince Weaver */ /* update for IA-64 architecture */ /* by Ludo */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ], model_string[BUFSIZ], plain_model[BUFSIZ]; char family_string[BUFSIZ]; int rev_int = 0; int cpu_count = 0; float megahertz = 0.0, bogomips = 0.0; vendor_string[0] = model_string[0] = plain_model[0] = family_string[0] = 0; /* We get all of our info here from /proc/cpuinfo */ if ((fff = fopen(get_cpuinfo_file(), "r")) != NULL) { while ((fgets(temp_string, BUFSIZ, fff) != NULL)) { /* Assume all CPU's in SMP system are the same */ if (cpu_count == 0) { if (!(strncmp(temp_string, "vendor", 6))) strncpy(vendor_string, parse_line(temp_string), BUFSIZ); if (!strncmp(temp_string, "family", strlen("family"))) strncpy(family_string, parse_line(temp_string), BUFSIZ); /* ** note for later check the model line ** now this line is useless */ if (!(strncmp(temp_string, "model", strlen("model")))) strncpy(model_string, parse_line(temp_string), BUFSIZ); if (!(strncmp(temp_string, "revision", strlen("revision")))) rev_int = atoi(parse_line(temp_string)); if (!(strncmp(temp_string, "cpu MHz", 6))) megahertz = atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string, "bogomips", 8)) || !(strncmp(temp_string, "BogoMips", 8)) || !(strncmp(temp_string, "BogoMIPS", 8))) { bogomips += atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } /* Re-arrange some of the strings for best results */ if (family_string[0] == 0) strncpy(cpu_info->chip_type, "Unknown", 9); else strncpy(cpu_info->chip_type, family_string, SYSINFO_CHIP_TYPE_SIZE); strncpy(cpu_info->chip_vendor, "Unknown", 9); cpu_info->num_cpus = cpu_count; cpu_info->bogomips = bogomips; /*********************************************************/ /* Vendor specific fixups */ /*********************************************************/ /* *************** */ /* Intel Chips */ /* *************** */ if (!strncmp(vendor_string,"GenuineIntel",12)) { strncpy(cpu_info->chip_vendor,"Intel",6); if (rev_int >= 1 && rev_int <= 4) snprintf(cpu_info->chip_type,SYSINFO_CHIP_TYPE_SIZE, "%s [B%i]", clip_lf(family_string, BUFSIZ), rev_int - 1); else if (rev_int == 5) snprintf(cpu_info->chip_type,SYSINFO_CHIP_TYPE_SIZE, "%s [C0]", clip_lf(family_string, BUFSIZ)); else snprintf(cpu_info->chip_type,SYSINFO_CHIP_TYPE_SIZE, "%s", clip_lf(family_string, BUFSIZ)); } cpu_info->megahertz = 0.0; /* Handle Pretty_printing */ if (get_pretty_printing()) { /* Fix MHz */ /* should we still do this? */ if (megahertz > 0.0) cpu_info->megahertz = fix_megahertz(25, megahertz); } else { /* restore RAW vendor string. Do we want this? */ strncpy(cpu_info->chip_type, model_string, SYSINFO_CHIP_TYPE_SIZE); cpu_info->megahertz = megahertz; } return 0; } /* Not implemented on ix86 nor on ia64 */ int get_hardware_info(char *hardware_string) { return 0; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/README0000600004737600013330000000164507250522210020537 0ustar vweaver1dongarraLinux sysinfo gathering: cpuinfo is obtained from parsing /proc/cpuinfo. This can be convoluted at times, especially since every stable kernel release seems to change the format. Thankfully with the advent of the 'cpuinfo' instruction things have stabalized a bit. Some complex parsing goes on to give cleaner output. os_info is obtained using the uname() function. hostname is also obtained using the uname() function memory is obtained by a fstat() on /proc/kcore this sometimes ends up a Megabyte short if ACPI or APM are in use. Other methods are available. + /proc/meminfo tends to always turn up a few megabytes short because it ignores reserved and kernel memory + the sysinfo() function has similar problems uptime is obtained from /proc/uptime loadaverage is obtained from /proc/loadavg + this is proc filesystem dependent of course. Maybe I should look into sysinfo() linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_m32r.c0000600004737600013330000000406411337611655022344 0ustar vweaver1dongarra/* Handle m32r architecture */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; strncpy(vendor_string,"m32r",5); /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu family",10))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if ( !(strncmp(temp_string,"CPU clock",9))) { megahertz=atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPUs */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"system type",11))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We use sysinfo */ return MEM_USE_SYSINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_frv.c0000600004737600013330000000405511337611567022360 0ustar vweaver1dongarra/* Handle FRV architecture */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; strncpy(vendor_string,"FRV",5); /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"CPU:",4))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if ( !(strncmp(temp_string,"Clock-Core",10))) { megahertz=atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPUs */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"system type",11))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We use sysinfo */ return MEM_USE_SYSINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_x86_64.c0000777004737600013330000000000011337662112025026 2cpuinfo_x86.custar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_s390.c0000600004737600013330000000333011337612030022236 0ustar vweaver1dongarra/* Re-written from scratch 14 July 2002 */ /* Handles s390 on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0,megahertz=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"# processors",6))) { cpu_count=atoi(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); } } } /* Hackish, granted */ strncpy(vendor_string,"IBM",7); strncpy(model_string,"S390",4); strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips*cpu_count; return 0; } int get_hardware(char *hardware_string) { return -1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_sh3.c0000600004737600013330000000325111337612045022245 0ustar vweaver1dongarra/* Re-written from scratch 14 July 2002 */ /* Handles SH3 chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu family",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } strncpy(cpu_info->chip_vendor,"SH",SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=0.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { return -1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_arm.c0000600004737600013330000000650411337611432022332 0ustar vweaver1dongarra/* Handles arm chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ],hardware_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0; vendor_string[0]=model_string[0]=hardware_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"Processor",9))) { strncpy(vendor_string,parse_line(temp_string),BUFSIZ); clip_lf(vendor_string,BUFSIZ); } if ( !(strncmp(temp_string,"Processor",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if ( !(strncmp(temp_string,"cpu",3))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } /* Huge big ugly hack */ if (strstr(model_string,"sa11")!=NULL) { strncpy(model_string,"StrongARM",16); } else if (strstr(model_string,"StrongARM")!=NULL) { strncpy(model_string,"StrongARM",14); } else if (strstr(model_string,"XScale")!=NULL) { strncpy(model_string,"XScale",14); } else if (strstr(model_string,"710")!=NULL) { strncpy(model_string,"710",4); } else if (strstr(model_string,"940")!=NULL) { strncpy(model_string,"940",4); } else if (strstr(model_string,"Feroceon")!=NULL) { strncpy(model_string,"Feroceon",9); } if (!strncmp(model_string,"ARMv",4)) { sscanf(model_string,"%s",model_string); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); /* This done off of only 2 cpuinfos, so probably not the best */ if (!strncmp(vendor_string,"ARM",3)) { strncpy(cpu_info->chip_vendor,"ARM",4); } else if (!strncmp(vendor_string,"Intel",5)){ strncpy(cpu_info->chip_vendor,"Intel",6); } else strncpy(cpu_info->chip_vendor,"ARM",4); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=0.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"Hardware",8))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_ppc.c0000600004737600013330000001023011337610743022330 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles ppc chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ],temp[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0,processor_count=0,bogomips_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu",3))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if (!(strncmp(temp_string,"clock",5))) { megahertz=atof(parse_line(temp_string)); } if ( !(strncmp(temp_string,"processor",9))) { processor_count++; } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); bogomips_count++; /* Cheating way to detect number of intel CPU's */ } } } /* on cell, there is no bogomips count! */ if (bogomips_count==0) { cpu_count=processor_count; } else { cpu_count=bogomips_count; } strncpy(cpu_info->chip_vendor,"PPC",4); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); if (strstr(model_string,"POWER3")!=NULL) { strncpy(cpu_info->chip_type,"POWER3",7); } if (strstr(model_string,"POWER4")!=NULL) { strncpy(cpu_info->chip_type,"POWER4",7); } if (strstr(model_string,"POWER5")!=NULL) { strncpy(cpu_info->chip_type,"POWER5",7); } if (strstr(model_string,"POWER6")!=NULL) { strncpy(cpu_info->chip_type,"POWER6",7); } /* I Have an iBook now ;) */ if (strstr(model_string,"745/755")!=NULL) { strncpy(cpu_info->chip_type,"G3",3); } /* But that's not the only iBook around! ;) */ if (strstr(model_string,"750CX")!=NULL) { strncpy(cpu_info->chip_type,"G3",3); } if (strstr(model_string,"750FX")!=NULL) { strncpy(cpu_info->chip_type,"G3",3); } if (strstr(model_string,"7400")!=NULL) { strncpy(cpu_info->chip_type,"7400",5); } /* There should be a way to figure out */ /* G4/G3 more efficiently than this */ if (strstr(model_string,"7410,")!=NULL) { strncpy(cpu_info->chip_type,"G4",3); } if (strstr(model_string,"7455")!=NULL) { strncpy(cpu_info->chip_type,"G4",3); } /* I have a powerbook now too ;) */ if (strstr(model_string,"7457")!=NULL) { strncpy(cpu_info->chip_type,"G4",3); } if (strstr(model_string,"Cell")!=NULL) { strncpy(cpu_info->chip_type,"Cell",5); } if (!strncmp(model_string,"PowerPC",7)) { sscanf(model_string,"%*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"machine",7))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ /* sysinfo is the only way that works on cell? */ /* can we detect that somehow and force it? */ /* For mac the meminfo way is definitely better */ return MEM_USE_MEMINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_microblaze.c0000600004737600013330000000407511337611727023712 0ustar vweaver1dongarra/* Handle microblaze architecture */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; strncpy(vendor_string,"MicroBlaze",11); /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"FPGA-Arch",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if ( !(strncmp(temp_string,"CPU-MHz",7))) { megahertz=atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPUs */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"system type",11))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We use sysinfo */ return MEM_USE_SYSINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_cris.c0000600004737600013330000000325611337611525022517 0ustar vweaver1dongarra/* Re-written from scratch 14 July 2002 */ /* Handles CRIS chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu model",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } strncpy(cpu_info->chip_vendor,"CRIS",SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=0.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { return -1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_alpha.c0000600004737600013330000000545011337611413022636 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles alpha chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ],hardware_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=hardware_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,255,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu model",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } else if ( !(strncmp(temp_string,"cpu ",5)) || !(strncmp(temp_string,"cpu\t",4))) { strncpy(vendor_string,parse_line(temp_string),BUFSIZ); clip_lf(vendor_string,BUFSIZ); } if (!(strncmp(temp_string,"cpus detected",13))) { cpu_count=atoi(parse_line(temp_string)); } /* Older cpuinfo */ if (!(strncmp(temp_string,"CPUs probed",11))) { sscanf(temp_string,"%*s %*s %i",&cpu_count); } if (!(strncmp(temp_string,"cycle frequency",15))) { megahertz=atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); /* Sanity check. You can't run Linux w/o a cpu can you? */ /* an ev5 cpuinfo I have says "cpus detected: 0" */ if (cpu_count==0) cpu_count=1; cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz/1000000.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"platform string",15))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_x86.c0000600004737600013330000003726011470322200022171 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles x86 and x86_64 chips on Linux */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ],plain_model[BUFSIZ]; int family=0; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=plain_model[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (cpu_count==0) { /* Assume all CPU's in SMP system are the same */ if ( !(strncmp(temp_string,"vendor_id",9)) || !(strncmp(temp_string,"vid",3)) ) { /* 1.2.13 kernels */ strncpy(vendor_string,parse_line(temp_string),BUFSIZ); } if ( !(strncmp(temp_string,"model name",9)) ) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } else { /* for older (pre 2.2.x) kernels */ if (!(strncmp(temp_string,"model",5))) { if (strncmp(parse_line(temp_string),"unknown",7)) { strncpy(plain_model,parse_line(temp_string),BUFSIZ); clip_lf(plain_model,BUFSIZ); } } } if ( !(strncmp(temp_string,"cpu MHz",6))) { megahertz=atof(parse_line(temp_string)); } /* We use this for cpu's w/o cpuinfo (386s and 486s) */ if ( !(strncmp(temp_string,"cpu family",10))) { family=atoi(parse_line(temp_string)); } /* Old legacy stuff (2.0.x kernels and earlier) */ if ( !(strncmp(temp_string,"cpu ",5))) { strncpy(plain_model,parse_line(temp_string),BUFSIZ); clip_lf(plain_model,255); } } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } /* Re-arrange some of the strings for best results */ if (model_string[0]==0) { /* For 1.2.13 Kernels */ if (strlen(plain_model)>1) strncpy(model_string,plain_model,BUFSIZ); } if (model_string[0]==0) { strncpy(cpu_info->chip_type,"Unknown",9); } else strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); strncpy(cpu_info->chip_vendor,"Unknown",9); /* sanity */ if (cpu_count<1) cpu_count=1; cpu_info->num_cpus=cpu_count; cpu_info->bogomips=bogomips; /*********************************************************/ /* Vendor specific fixups */ /*********************************************************/ /* ************** */ /* AMD chips */ /* ************** */ if (!strncmp(vendor_string,"AuthenticAMD",12)) { strncpy(cpu_info->chip_vendor,"AMD",4); /* Clean-up K6 model info */ if (strstr(model_string,"K6")!=NULL) { /* Default to K6 */ strncpy(cpu_info->chip_type,"K6",3); /* Original K6 */ if ( !(strncmp(model_string,"AMD-K6tm",8))) strncpy(cpu_info->chip_type,"K6",3); /* Counter-intuitive, but the following are correct */ if ( !(strncmp(model_string,"AMD-K6(tm)-III",14))) strncpy(cpu_info->chip_type,"K6-2+",6); else if ( !(strncmp(model_string,"AMD-K6(tm)",10))) strncpy(cpu_info->chip_type,"K6-2",5); if ( !(strncmp(model_string,"K6-2",4))) strncpy(cpu_info->chip_type,"K6-2",5); if (strstr(model_string,"3D+")!=NULL) { strncpy(cpu_info->chip_type,"K6-III",7); } } /* K5 Chips */ if (strstr(model_string,"K5")!=NULL) { strncpy(cpu_info->chip_type,"K5",3); } /* Some old K7's were reported as such */ if (strstr(model_string,"K7")!=NULL) { strncpy(cpu_info->chip_type,"Athlon",7); } /* Athlons */ if (strstr(model_string,"Athlon(tm) 64 X2")!=NULL) { strncpy(cpu_info->chip_type,"Athlon 64 X2",13); } else if (strstr(model_string,"Athlon(tm) 64")!=NULL) { strncpy(cpu_info->chip_type,"Athlon 64",10); } else if (strstr(model_string,"Athlon")!=NULL) { strncpy(cpu_info->chip_type,"Athlon",7); } /* Specialty Athlons */ /* Should we support MP too? */ /* Should we decode the Speed ratings too (ie, 1600+) */ if (!strncmp(model_string,"AMD Athlon",10)) { if (strstr(model_string,"XP")!=NULL) { strncpy(cpu_info->chip_type,"Athlon XP",10); } } /* Durons */ if (strstr(model_string,"Duron")!=NULL) { strncpy(cpu_info->chip_type,"Duron",6); } /* Unknown */ if (strstr(model_string,"Unknown")!=NULL) { strncpy(cpu_info->chip_type,"Unknown",8); } /* Sempron */ if (strstr(model_string,"Sempron")!=NULL) { strncpy(cpu_info->chip_type,"Sempron",8); } /* Turion */ if (strstr(model_string,"Turion")!=NULL) { strncpy(cpu_info->chip_type,"Turion",8); } /* Opterons */ if (strstr(model_string,"Opteron")!=NULL) { strncpy(cpu_info->chip_type,"Opteron",8); } /* Phenom */ if (strstr(model_string,"Phenom")!=NULL) { if (strstr(model_string,"II")!=NULL) { strncpy(cpu_info->chip_type,"Phenom II",10); } else { strncpy(cpu_info->chip_type,"Phenom",7); } } /* Geode */ if ( strstr(model_string,"Geode")!=NULL) { strncpy(cpu_info->chip_type,"Geode",6); } /* Handle BIOS/kernel too old issue */ if ( strstr(model_string,"unknown")!=NULL) { strncpy(cpu_info->chip_type,"Unknown",8); } /* Work around old kernels */ if (model_string[0]==0) { if (plain_model[0]=='9') { strncpy(cpu_info->chip_type,"K6-III",7); } } } /* ***************** */ /* Centaur Chips */ /* ***************** */ if ( !(strncmp(vendor_string,"CentaurHauls",12))) { /* centaur cpuid is fully customizable, but this */ /* should catch the common case */ strncpy(cpu_info->chip_vendor,"Centaur",8); /* Should this be generic? We should never print processor twice */ { char *processor_begin; processor_begin=strstr(model_string," Processor"); if (processor_begin!=NULL) { /* I hate to use pointer math */ model_string[(processor_begin-model_string)]='\0'; } } /* Is this the proper thing to do? It looks silly */ /* calling them "Centaur VIA" chips */ if (strstr(model_string,"VIA")!=NULL) { strncpy(cpu_info->chip_vendor,"VIA",4); strncpy(cpu_info->chip_type,model_string+4,SYSINFO_CHIP_TYPE_SIZE); } /* Esther */ if (strstr(model_string,"Esther")!=NULL) { strncpy(cpu_info->chip_type,"Esther",7); } } /* *************** */ /* Cyrix Chips */ /* *************** */ if (!strncmp(vendor_string,"CyrixInstead",12)) { strncpy(cpu_info->chip_vendor,"Cyrix",6); if ( strstr(model_string,"MediaGX")!=NULL) strncpy(cpu_info->chip_type,"MediaGX",8); if ( strstr(model_string,"Geode")!=NULL) strncpy(cpu_info->chip_type,"Geode",6); if ( !(strncmp(model_string,"6x86",4))) strncpy(cpu_info->chip_type,"6x86",5); if ( !(strncmp(model_string,"6x86M",5))) strncpy(cpu_info->chip_type,"6x86MMX",8); if ( !(strncmp(model_string,"M III",5))) strncpy(cpu_info->chip_type,"MIII",5); else if ( !(strncmp(model_string,"M II",4))) strncpy(cpu_info->chip_type,"MII",4); } /* *************** */ /* Intel Chips */ /* *************** */ if (!strncmp(vendor_string,"GenuineIntel",12)) { strncpy(cpu_info->chip_vendor,"Intel",6); /* Handle the various Pentium types */ if (!(strncmp(model_string,"Pentium",7))) { if (strstr(model_string,"75")!=NULL) { strncpy(cpu_info->chip_type,"Pentium",8); } if (strstr(model_string,"90")!=NULL) { strncpy(cpu_info->chip_type,"Pentium",8); } if (strstr(model_string,"Pro")!=NULL) { strncpy(cpu_info->chip_type,"Pentium Pro",12); } if (strstr(model_string,"II")!=NULL) { strncpy(cpu_info->chip_type,"Pentium II",11); } if (strstr(model_string,"III")!=NULL) { strncpy(cpu_info->chip_type,"Pentium III",12); } if (strstr(model_string,"IV")!=NULL) { strncpy(cpu_info->chip_type,"Pentium IV",11); } } /* Now handle the ones with annoying (R) and (TM) */ if (strstr(model_string,"Pentium(R) M")!=NULL) { strncpy(cpu_info->chip_type,"Pentium M",10); } if (strstr(model_string,"Pentium(R) III")!=NULL) { strncpy(cpu_info->chip_type,"Pentium III",12); } if (strstr(model_string,"Xeon(TM) MP")!=NULL) { strncpy(cpu_info->chip_type,"Xeon MP",8); } /* Atom */ if (strstr(model_string,"Atom")!=NULL) { strncpy(cpu_info->chip_type,"Atom",5); } /* Should we handle all the various Celeron */ /* types separately?? */ if (strstr(model_string,"Celeron(R) M")!=NULL) { strncpy(cpu_info->chip_type,"Celeron M",10); } else if (strstr(model_string,"Celeron")!=NULL) { strncpy(cpu_info->chip_type,"Celeron",8); } /* Handle values with annoying "Intel(R)" */ if (strstr(model_string,"Intel(R)")!=NULL) { /* Pentium 4 */ if (strstr(model_string,"Pentium(R) 4")) { strncpy(cpu_info->chip_type,"Pentium 4",10); } /* Pentium D */ if (strstr(model_string,"Pentium(R) D")) { strncpy(cpu_info->chip_type,"Pentium D",10); } /* Mobile P4 */ if (strstr(model_string,"Mobile Intel(R) Pentium(R) 4")!=NULL) { if (strstr(model_string,"Pentium(R) 4 - M")!=NULL) { strncpy(cpu_info->chip_type,"Pentium 4 M",12); } else { strncpy(cpu_info->chip_type,"Mobile Pentium 4",17); } } /* Xeons */ /* TODO - determine base type based on model id? */ if ( !(strncmp(model_string,"Intel(R) Xeon(TM) CPU",21)) || !(strncmp(model_string,"Intel(R) Xeon(R) CPU",20)) || !(strncmp(model_string,"Intel(R) Genuine CPU",20)) || !(strncmp(model_string,"Genuine Intel(R) CPU",20)) || !(strncmp(model_string,"Intel(R) XEON(TM)",17)) || !(strncmp(model_string,"Intel(R) Xeon(TM)",17)) ) { strncpy(cpu_info->chip_type,"Pentium Xeon",16); } /* Nehalem */ if (strstr(model_string,"Core(TM) i7")!=NULL) { strncpy(cpu_info->chip_type,"i7",3); } if (strstr(model_string,"Core(TM) i5")!=NULL) { strncpy(cpu_info->chip_type,"i5",3); } if (strstr(model_string,"Core(TM) i3")!=NULL) { strncpy(cpu_info->chip_type,"i3",3); } /* Core and Core2 */ if (strstr(model_string,"Core(TM)2 Duo")!=NULL) { strncpy(cpu_info->chip_type,"Core2 Duo",10); } else if (strstr(model_string,"Core(TM)2 Quad")!=NULL) { strncpy(cpu_info->chip_type,"Core2 Quad",11); } else if (strstr(model_string,"Core(TM)2")!=NULL) { strncpy(cpu_info->chip_type,"Core2",6); } /* UGH! I hate this stupid TXXX naming */ else if ( (strstr(model_string,"T2300")!=NULL) || (strstr(model_string,"T2400")!=NULL) || (strstr(model_string,"T2500")!=NULL) || (strstr(model_string,"T2600")!=NULL)) { strncpy(cpu_info->chip_type,"Core Duo",9); } else if (strstr(model_string,"E2180")!=NULL) { strncpy(cpu_info->chip_type,"Core2 Duo",10); } else if (strstr(model_string,"2140")!=NULL) { strncpy(cpu_info->chip_type,"Core2 Duo",10); } } /* Fix up some older kernels */ if (model_string[0]==0) { if (plain_model[0]=='5') { strncpy(cpu_info->chip_type,"Pentium II",11); } } if (!strncmp(model_string,"00/07",5)) { strncpy(cpu_info->chip_type,"Pentium III",12); } /* Virtual Machines simulated by QEMU */ if (strstr(model_string,"QEMU")!=NULL) { strncpy(cpu_info->chip_type,"QEMU Virtual",13); } } /* ************* */ /* NexGen */ /* ************* */ if ( !(strncmp(vendor_string,"NexGenDriven",12))) { strncpy(cpu_info->chip_vendor,"NexGen",7); } /* ********************************** */ /* National Semiconductor Geode Chips */ /* ********************************** */ if ( !(strncmp(vendor_string,"Geode by NSC",12))) { strncpy(cpu_info->chip_vendor,"NSC",4); strncpy(cpu_info->chip_type,"Geode",6); } /* ************* */ /* Rise */ /* ************* */ if ( !(strncmp(vendor_string,"RiseRiseRise",12))) { strncpy(cpu_info->chip_vendor,"Rise",5); } /* ************** */ /* SiS */ /* ************** */ if ( !(strncmp(vendor_string,"SiS SiS SiS",11))) { strncpy(cpu_info->chip_vendor,"SiS",4); if (family!=0) { sprintf(temp_string,"%i86",family); strncpy(cpu_info->chip_type,temp_string,4); } } /* ************* */ /* Transmeta */ /* ************* */ if ( !(strncmp(vendor_string,"GenuineTMx86",12)) || !(strncmp(vendor_string,"TransmetaCPU",12))) { strncpy(cpu_info->chip_vendor,"Transmeta",10); if (strstr(model_string,"Crusoe")!=NULL) { strncpy(cpu_info->chip_type,"Crusoe",7); } } /* ************** */ /* UMC */ /* ************** */ if ( !(strncmp(vendor_string,"UMC UMC UMC",11))) { strncpy(cpu_info->chip_vendor,"UMC",4); if (!(strncmp(model_string,"SX",2))) { strncpy(cpu_info->chip_type,"486SX",6); } } /* ************** */ /* Vortex */ /* ************** */ if ( !(strncmp(vendor_string,"Vortex86 SoC",11))) { strncpy(cpu_info->chip_vendor,"Vortex",7); if (family!=0) { sprintf(temp_string,"%i86",family); strncpy(cpu_info->chip_type,temp_string,4); } } /* ****************************** */ /* Try to handle cpus w/o cpuinfo */ /* ****************************** */ if ( !(strncmp(cpu_info->chip_vendor,"Unknown",7))) { if (family!=0) { sprintf(temp_string,"%i86",family); strncpy(cpu_info->chip_type,temp_string,4); } else { if (plain_model!=NULL) { strncpy(cpu_info->chip_type,plain_model,SYSINFO_CHIP_TYPE_SIZE); } } } cpu_info->megahertz=0.0; /* Handle Pretty_printing */ if (get_pretty_printing()) { /* Fix MHz */ if (megahertz>0.0) cpu_info->megahertz=fix_megahertz(25,megahertz); } else { /* restore RAW vendor string. Do we want this? */ strncpy(cpu_info->chip_type,model_string,64); cpu_info->megahertz=megahertz; } return 0; } /* Not implemented on ix86 */ int get_hardware_info(char *hardware_string) { return 0; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_mips.c0000600004737600013330000000531511337611760022526 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles mips chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ],temp[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; strncpy(vendor_string,"MIPS",5); /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu model",9))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } else if ( !(strncmp(temp_string,"cpu ",5)) || !(strncmp(temp_string,"cpu\t",4))) { strncpy(vendor_string,parse_line(temp_string),BUFSIZ); clip_lf(vendor_string,BUFSIZ); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPUs */ } } } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); if (!strncmp(model_string,"NEC",3)) { sscanf(model_string,"%*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } else if (!strncmp(model_string,"MIPS",4)) { sscanf(model_string,"%*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } else { sscanf(model_string,"%s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz/1000000.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"system type",11))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We use sysinfo */ return MEM_USE_SYSINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/sysinfo_linux.c0000600004737600013330000001154011470267424022743 0ustar vweaver1dongarra#include #include /* atol, strtol */ #include /* strncmp, strstr,strchr */ #include /* isdigit */ #include /* stat */ #include /* stat */ #include /* sysinfo() */ #include "../sysinfo.h" #include "../include/uname.h" /* This code modeled on the linux sh-utils 1.16 uptime.c code */ int get_uptime (void) { FILE *fff; float uptime_seconds; int result; fff=fopen("/proc/uptime","r"); if (fff!=NULL) { result=fscanf(fff,"%f",&uptime_seconds); fclose (fff); } return uptime_seconds; } /* Based on code contributed by Anders Rundegren */ void get_load_average(float *load_1,float *load_5,float *load_15) { FILE *fff; int result; fff=fopen("/proc/loadavg","r"); if (fff!=NULL) { result=fscanf(fff,"%f" "%f" "%f", load_1, load_5, load_15); fclose (fff); } } int get_os_info(struct os_info_type *os_info) { return uname_get_os_info(os_info); } char *get_host_name(char *hostname,char *domain) { return uname_get_host_name(hostname,domain); } /* This is a newer method to obtain memory info from /proc/iomem memory * map under 2.4.x. It should work with ACPI systems too. */ /* Originally Contributed by Sitsofe Wheeler */ /* Improved a bit (in theory) to handle 64-bit machines -vmw */ long long get_mem_size_iomem(void) { unsigned long long mem_size=0,begin,end; char *pos; char temp_string[BUFSIZ]; FILE *info; if ((info=fopen("/proc/iomem", "r"))) { while (fgets(temp_string, BUFSIZ, info)) { pos=strchr(temp_string, ':'); /* It's safe to +1 to pos because in the worst case we will be on the * end of string marker. I just hope strncmp does bounds checking */ if (pos && (strncmp(pos+1, " System RAM", 10)==0 || strncmp(pos+1, " ACPI", 5)==0)) { /* Extract the upper memory position */ /*printf("Adding %s region ",pos);*/ pos = strchr(temp_string, '-'); if (pos) { *pos=0; end=strtoull(pos+1, NULL, 16); begin=strtoull(temp_string,NULL,16); mem_size+=(end-begin); /*printf("%lld bytes\n",(end-begin));*/ } } } fclose(info); } if (mem_size > 0) { /* if over, round up */ if (mem_size%(1024*1024)) { mem_size = (mem_size/(1024*1024))+1; } else { mem_size = (mem_size/(1024*1024)); } return mem_size; } else return 0; } /* mem_size in megabytes by statting /proc/kcore */ /* This won't work on 32bit machines with > 2Gig of RAM */ long long get_mem_size_stat(void) { long long mem_size=0; struct stat buff; stat("/proc/kcore",&buff); mem_size=buff.st_size; mem_size/=(1024*1024); return mem_size; } long long get_mem_size_sysinfo(void) { long long mem_size=0; struct sysinfo system_info; sysinfo(&system_info); mem_size=(system_info.totalram*system_info.mem_unit)/(1024*1024); return mem_size; } /* get mem size from /proc/meminfo */ long long get_mem_size_meminfo(void) { long long mem_size=0; char temp_string[BUFSIZ]; FILE *info; int position=0; info=fopen("/proc/meminfo", "r"); if (info==NULL) { printf("Error opening /proc/meminfo!\n"); return 0; } while (fgets(temp_string, BUFSIZ, info)) { position=0; /* Skip label */ while (temp_string[position]) { if (isdigit(temp_string[position])) break; position++; } /* Grab values (in kb) */ if (strstr(temp_string, "MemTotal")) mem_size = atoll(temp_string+position); } fclose(info); return mem_size/1024ULL; } /* Try the new 2.4 method of looking in /proc/iomem for memory and if it * fails fall back to the default method of stating /proc/kmem or * filtering /proc/meminfo */ long long get_mem_size(void) { long long mem_size=0; /* First try any arch-specific memsize functions */ mem_size=get_arch_specific_mem_size(); if (mem_size == MEM_USE_MEMINFO) { mem_size = 0; goto use_meminfo; } if (mem_size == MEM_USE_SYSINFO) { mem_size = 0; goto use_sysinfo; } /* Next try the 2.4.x+ method of iomem */ if (mem_size == 0) mem_size = get_mem_size_iomem(); /* Try stat-ing /proc/kcore */ if (mem_size == 0) mem_size = get_mem_size_stat(); use_sysinfo: /* sysinfo should return same as /proc/meminfo */ /* which, sadly, is often from 1MB-20MB off */ if (mem_size == 0) mem_size = get_mem_size_sysinfo(); use_meminfo: /* If all else fails, try using /proc/meminfo */ if (mem_size == 0) mem_size = get_mem_size_meminfo(); return mem_size; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_parisc.c0000600004737600013330000000446211337611777023051 0ustar vweaver1dongarra/* Re-written from scratch 14 July 2002 */ /* Handles PARISC chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0,megahertz=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { /* We use "cpu" here. The model name seems not to be */ /* as generic. */ if ( !(strncmp(temp_string,"cpu",3))) { /* should this be PA-RISC? Or maybe leave it blank? */ if ( !(strncmp(temp_string,"cpu family",10))) { strncpy(vendor_string,"PA-RISC",8); } else if ( !(strncmp(temp_string,"cpu MHz",6))) { megahertz=atof(parse_line(temp_string)); } /* Just "cpu" */ else { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPU's */ } } } if (strstr(model_string,"Forte W")) { strncpy(model_string,"Forte W",8); } else if (strstr(model_string,"Crescendo")) { strncpy(model_string,"Crescendo",10); } strncpy(cpu_info->chip_vendor,vendor_string,SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { return -1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_vax.c0000600004737600013330000000332611337612170022350 0ustar vweaver1dongarra/* Re-written from scratch 14 July 2002 */ /* Handles CRIS chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float bogomips=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu ",5)) || !(strncmp(temp_string,"cpu\t",4))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } strncpy(cpu_info->chip_vendor,"DEC",SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=0.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { return -1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_m68k.c0000600004737600013330000000550211337611673022344 0ustar vweaver1dongarra/* Re-written from scratch 3 March 2001 */ /* Handles m68k chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char cpuinfo_file[BUFSIZ]; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; /* In the old old days we got our info from /proc/hardware */ /* modern versions of Linux report in in /proc/cpuinfo */ /* Like everyone else. Try to auto-detect this... */ strncpy(cpuinfo_file,get_cpuinfo_file(),BUFSIZ); if ( !(strncmp(cpuinfo_file,"/proc/cpuinfo",13))) { fff=fopen(cpuinfo_file,"r"); if (fff==NULL) { strncpy(cpuinfo_file,"/proc/hardware",15); } else { fclose(fff); } } if ((fff=fopen(cpuinfo_file,"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"CPU",3))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if (!(strncmp(temp_string,"Clocking",8))) { megahertz=atof(parse_line(temp_string)); } /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of intel CPU's */ } } } if (strstr(model_string,"COLDFIRE")) { strncpy(model_string,"COLDFIRE",9); } strncpy(cpu_info->chip_vendor,"Motorola",9); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); if (get_pretty_printing()) { /* Fix MHz */ if (megahertz>0.0) cpu_info->megahertz=fix_megahertz(25,megahertz); } else { cpu_info->megahertz=megahertz; } cpu_info->num_cpus=cpu_count; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"Model",15))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We have no special way of detecting RAM */ return 0; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_sparc.c0000600004737600013330000001623011337651141022661 0ustar vweaver1dongarra/* Re-written from scratch 4 March 2001 */ /* Handles sparc chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ],temp[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu",3))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } if ( !(strncmp(temp_string,"ncpus active",12))) { cpu_count=atoi(parse_line(temp_string)); } /* Suggested change by Ben Collins */ if ( !(strncasecmp(temp_string,"bogomips",8)) || !(fnmatch("Cpu[0-9]*Bogo*",temp_string,0))) { #if 0 /* Ugh why must people play with capitalization */ if ( !(strncmp(temp_string,"bogomips",8)) || !(strncmp(temp_string,"BogoMips",8)) || !(strncmp(temp_string,"BogoMIPS",8)) || !(strncmp(temp_string,"Cpu",3))) { #endif bogomips+=atof(parse_line(temp_string)); } } } strncpy(cpu_info->chip_vendor,"Sparc",SYSINFO_CHIP_VENDOR_SIZE); strncpy(cpu_info->chip_type,model_string,SYSINFO_CHIP_TYPE_SIZE); /* Fix up cpuinfo some */ if (!strncmp(model_string,"Cypress",7)) { strncpy(cpu_info->chip_vendor,"Cypress",8); sscanf(model_string,"%*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } if (!strncmp(model_string,"ROSS",4)) { strncpy(cpu_info->chip_vendor,"ROSS",5); sscanf(model_string,"%*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); } if (!strncmp(model_string,"Texas",5)) { strncpy(cpu_info->chip_vendor,"TI",3); sscanf(model_string,"%*s %*s %*s %*s %s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); if (strstr(model_string,"UltraSparc II ")!=NULL) { strncpy(cpu_info->chip_type,"UltraSparc II",14); } } if (strstr(model_string,"SpitFire")!=NULL) { strncpy(cpu_info->chip_type,"SpitFire",9); } else if (strstr(model_string,"Power-UP")!=NULL) { strncpy(cpu_info->chip_type,"Power-UP",9); } else if (strstr(model_string,"UltraSparc II ")!=NULL) { strncpy(cpu_info->chip_type,"UltraSparc II",14); } else if (strstr(model_string,"UltraSparc III+")!=NULL) { strncpy(cpu_info->chip_type,"UltraSparc III+",16); } cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"type",4))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* I don't have a machine to test the below code on. I have */ /* had multiple reports that the PROM code DOESN'T work, so */ /* until someone sends me a patch that fixes it, I have turned */ /* off the PROM code */ #define CROSS_DEBUGGING 1 /* Following routine provided by Ben Collins */ /* Ripped from prtconf: Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) */ #if (CROSS_DEBUGGING==1) long long get_arch_specific_mem_size(void) { /* /proc/kcore does not reflect memsize on sparc */ return MEM_USE_MEMINFO; } #else #include #include #include #include #include #include #include static int promfd; static char buf[4096]; static int prom_root_node, prom_current_node; #define DECL_OP(size) struct openpromio *op = (struct openpromio *)buf; op->oprom_size = (size) static int prom_getsibling(int node) { DECL_OP(sizeof(int)); if (node == -1) return 0; *(int *)op->oprom_array = node; if (ioctl (promfd, OPROMNEXT, op) < 0) return 0; prom_current_node = *(int *)op->oprom_array; return *(int *)op->oprom_array; } static int prom_getchild(int node) { DECL_OP(sizeof(int)); if (!node || node == -1) return 0; *(int *)op->oprom_array = node; if (ioctl (promfd, OPROMCHILD, op) < 0) return 0; prom_current_node = *(int *)op->oprom_array; return *(int *)op->oprom_array; } static char *prom_getproperty(char *prop, int *lenp) { DECL_OP(4096-128-4); strcpy (op->oprom_array, prop); if (ioctl (promfd, OPROMGETPROP, op) < 0) return 0; if (lenp) *lenp = op->oprom_size; return op->oprom_array; } static int prom_searchsiblings(char *name) { char *prop; int len; for (;;) { if (!(prop = prom_getproperty("name", &len))) return 0; prop[len] = 0; if (!strcmp(prop, name)) return prom_current_node; if (!prom_getsibling(prom_current_node)) return 0; } } static inline int is_sparc64(void) { struct utsname uts_info; prom_getsibling(0); uname(&uts_info); if (!strcmp(uts_info.machine, "sparc64")) return 1; return 0; } /* On sparc, the best method of memory detection is the prom. We use * sparse memory, so /proc/kcore is almost never right, and we all know * that /proc/meminfo never reports physical ram accurately. */ long long get_arch_specific_mem_size(void) { long long memory_size = 0; int len, i; unsigned int *prop; promfd = open("/dev/openprom", O_RDONLY); if (promfd == -1) { memory_size=MEM_USE_MEMINFO; goto mem_done; } prom_root_node = prom_getsibling(0); if (!prom_root_node) { memory_size=MEM_USE_MEMINFO; goto mem_done; } prom_getchild(prom_getsibling(0)); if (!prom_searchsiblings("memory")) { memory_size=MEM_USE_MEMINFO; goto mem_done; } prop = (unsigned int *)prom_getproperty("reg", &len); if (!prop || (len % sizeof(int))) goto mem_done; len /= sizeof(int); if (is_sparc64()) { if (len % 4) { goto mem_done; } else { for (i = 0; i < len; i+=4) { memory_size += ((unsigned long long)prop[i + 2] << 32); memory_size += prop[i + 3]; } } } else { if (len % 3) { goto mem_done; } else { for (i = 0; i < len; i+=3) memory_size += prop[i + 2]; } } mem_done: if (promfd >= 0) close(promfd); /* Memory size is megabytes */ return memory_size; } #endif linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_avr32.c0000600004737600013330000000413511337611476022516 0ustar vweaver1dongarra/* Handles avr32 chips on Linux architecture */ /* by Vince Weaver */ #include #include #include /* atof */ #include "../sysinfo.h" #include "../include/generic.h" int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *fff; char temp_string[BUFSIZ]; char vendor_string[BUFSIZ],model_string[BUFSIZ],temp[BUFSIZ]; int cpu_count=0; float megahertz=0.0,bogomips=0.0; vendor_string[0]=model_string[0]=0; strncpy(vendor_string,"ATMEL",6); /* We get all of our info here from /proc/cpuinfo */ if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if ( !(strncmp(temp_string,"cpu type",8))) { strncpy(model_string,parse_line(temp_string),BUFSIZ); clip_lf(model_string,BUFSIZ); } else if ( !(strncmp(temp_string,"cpu family",10))) { strncpy(vendor_string,parse_line(temp_string),BUFSIZ); clip_lf(vendor_string,BUFSIZ); } if ( !(strncmp(temp_string,"bogomips",8))) { bogomips+=atof(parse_line(temp_string)); cpu_count++; /* Cheating way to detect number of CPU's */ } } } sscanf(vendor_string,"%s",temp); strncpy(cpu_info->chip_vendor,temp,SYSINFO_CHIP_VENDOR_SIZE); sscanf(model_string,"%s",temp); strncpy(cpu_info->chip_type,temp,SYSINFO_CHIP_TYPE_SIZE); cpu_info->num_cpus=cpu_count; cpu_info->megahertz=megahertz/1000000.0; cpu_info->bogomips=bogomips; return 0; } int get_hardware(char *hardware_string) { char temp_string[BUFSIZ]; FILE *fff; if ((fff=fopen(get_cpuinfo_file(),"r") )!=NULL) { while ( (fgets(temp_string,BUFSIZ,fff)!=NULL) ) { if (!(strncmp(temp_string,"cpu family",10))) { strncpy(hardware_string,parse_line(temp_string), SYSINFO_HARDWARE_STRING_SIZE); } } } return 1; } /* Some architectures might have better ways of detecting RAM size */ long long get_arch_specific_mem_size(void) { /* We use sysinfo */ return MEM_USE_SYSINFO; } linux_logo-5.11/libsysinfo-0.2.2/Linux/cpuinfo_s390x.c0000777004737600013330000000000011337662112025027 2cpuinfo_s390.custar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/CHANGES0000600004737600013330000001060211320720002017534 0ustar vweaver1dongarra4 March 2001 + Completed the new, separate libsysinfo stuff, splitting it off from linux_logo 27 March 2001 + Added minimal SunOS [Solaris] support. It compiles and displays mostly empty strings. 3 April 2001 + You can do a "make shared" to get a .so linux shared library. It works, but I am sure it's not as robust as a shared lib should be. 30 April 2001 + Fix from Matt so that linux-sparc cpuinfo will be compiled properly. 7 June 2001 + Change to makefile so it doesn't depend on symlinks. But instead it depends on "uname" existing. 22 October 2001 + Fix "arch.h" so things actually work for non-ix86 architectures. Thanks to Ken Moffat + Add support for ia64 architecture thanks to Ludo 28 October 2001 + Fix Cyrix Geode bug + Fix obscure megahertz reporting bug 5 November 2001 + Fix power-pc G4 printing (thanks to Nate Godin ) 4 February 2002 + Fix Athlon XP to be printed properly. Should we detect MP as well? Should we do something with their fake MHz values (1600+)? + Better Linux memory detection using /proc/iomem with the old ways as fallbacks. Thanks to Sitsofe Wheeler for this nice patch 5 February 2002 + Add new "Geode by NSC" cpuinfo + Fix support for chips with Celeron in the name + Added "get_arch_specifig_mem_info()" function, and openprom sparc mem checking mostly based on patches from Ben Collins + Bump version number to 0.0.4 to make tracking any mem related problems easier. 11 February 2002 + Ran my "test_proc compliance tests" and did some minor fixups in the alpha, sparc, and ix86 "via" department. + Added pretty printing for m68k 14 February 2002 + Fix so RAM over 2GB doesn't go negative. Thanks to Andreas S. Krebs for helping debug this. 10 March 2002 + Reverted sparc PROM code because it doesn't seem to work. + Added support for Pentium 4 processors 13 March 2002 + Fix Athlon XP's without a space in them 14 July 2002 + Run through new batch of cpuinfo files, fixing anything needing fixed. + Added cris, s390, sh3, and vax Linux architectures 17 July 2002 + Force SPARC to use /proc/meminfo for now, as it is less inaccurate than /proc/kcore. If John will reboot my SparcStation5 I can try the PROM stuff again. 8 August 2002 + Fix hppa and sh3 architectures so they compile. + Add yet another "sysinfo" memory detection + Fix up some new x86 funnies. 30 December 2002 + A new G3 model in the ppc cpuinfo support from RJ Bergeron 13 March 2004 + Update to work with all known cpuinfos + Barebones support for FreeBSD 30 March 2005 + Added loadavg/uptime info for FreeBSD based on info sent in by Metgod . 14 December 2005 + Make amd64 machines not use /proc/iomem as it seems to be 32bit only and not report proper ram amounts > 2GB (thanks to Alan Chapman ) 20 July 2006 + get rid of "configure" program and try to guess the x86 architecture based uname -m + Fix m68k to try to read from /proc/cpuinfo instead of /proc/hardware (thanks to Christian T. Steigies ) 21 July 2006 + Reintroduced IRIX support. 4 January 2007 + Improve Solaris support. Now can do CPU type and memory size. + Have the makefile handle ppc64 and parisc64 (bug report forwarded by debian maintainer). 27 January 2007 + Patch from Kolbjørn Barmen" to improve the Makefile for detecting ARM and x86 properly + Re-write the iomem memory detection. It seems to work better on all machines I tested it on... 9 July 2007 + Clean up the interface a bit. Make sure all strings are properly checked for length. + The above should not have altered anything, but in case it did upped the minor versoin number by one. 30 July 2007 + A minor change to how the error value of parse_string() is handled. This could cause potential segfaults with invalid /proc/cpuinfo input files. Found with the zzuf fuzz tool. 3 January 2007 + Minor change so AMD Phenom prints properly. 5 June 2009 + Add frv, microblaze and m32r support. + Fix some old Cyrix chips. + Fix Sheeva Plug/ARM. 5 January 2010 + Add Phenom II support, thanks to Mark Rosenstand + Add support for Qemu HVM cases, thanks to Matthias Saou linux_logo-5.11/libsysinfo-0.2.2/IRIX640000777004737600013330000000000011337662112020274 2Irixustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/w32/0000700004737600013330000000000010640240767017176 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/w32/Makefile0000600004737600013330000000003010640240767020631 0ustar vweaver1dongarraclean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/w32/README0000600004737600013330000000026607273314602020062 0ustar vweaver1dongarrayes, there exists a hacked up linux_logo that will report somewhat relevant data on Windows. Unfortunately he seems to be unable to dig up the source. If he does, it will go here. linux_logo-5.11/libsysinfo-0.2.2/TODO0000600004737600013330000000105607532770523017263 0ustar vweaver1dongarra+ Update AIX and Irix ports to the new architecture + Merge in FreeBSD patches + A cygwin port exists for windows. Does anyone have the source? + Separate libsysinfo off as a separate library? + Make libsysinfo a shared-library? + Create a ./configure script? This is painful and large, but maybe I should eventually do this. + Possibly use the intel CPUID instruction ourselves? This would duplicate a lot of linux-kernel code, but would let us have a lot of control, plus the same code could in theory work on all x86 platforms [Linux,*BSD,w32] linux_logo-5.11/libsysinfo-0.2.2/SunOS/0000700004737600013330000000000011337650164017572 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/SunOS/Makefile0000600004737600013330000000027010642772126021234 0ustar vweaver1dongarrainclude ../Makefile.default all: sysinfo_solaris.o sysinfo_solaris.o: sysinfo_solaris.c $(CROSS)$(CC) $(CFLAGS) $(LIBSYSINFO_INCLUDE) -c sysinfo_solaris.c clean: rm -f *~ *.o linux_logo-5.11/libsysinfo-0.2.2/SunOS/README0000600004737600013330000000006010547335653020455 0ustar vweaver1dongarraTodo: figure out how to do uptime on solaris? linux_logo-5.11/libsysinfo-0.2.2/SunOS/sysinfo_solaris.c0000600004737600013330000000576711337611356023205 0ustar vweaver1dongarra#include #include /* atol */ #include /* strstr */ #include /* isdigit */ #include /* stat */ #include /* stat */ #include "sysinfo.h" #include "include/uname.h" /* Not supported under solaris yet */ int get_uptime (void) { // FILE *fff; // float uptime_seconds; return 0; } /* Based on code contributed by Anders Rundegren */ void get_load_average(float *load_1,float *load_5,float *load_15) { FILE *fff; char throw_away[BUFSIZ]; fff=popen("w | head -n 1","r"); if (fff!=NULL) { fscanf(fff,"%64s %64s %64s %64s %64s %64s %64s %f %f %f", throw_away,throw_away,throw_away, throw_away,throw_away,throw_away,throw_away, load_1, load_5, load_15); fclose (fff); } } int get_os_info(struct os_info_type *os_info) { int result,i,after_point=0,j=0; char temp_version[33]; result=uname_get_os_info(os_info); /* This won't work with pre-Solaris versions */ strncpy(os_info->os_name,"Solaris",8); i=0; while(ios_version)) { if (after_point) { temp_version[j]=os_info->os_version[i]; j++; } if (os_info->os_version[i]=='.') { after_point=1; } i++; } temp_version[j]='\0'; strncpy(os_info->os_version,temp_version,SYSINFO_OS_VERSION_SIZE); return result; } char *get_host_name(char *hostname,char *domain) { return uname_get_host_name(hostname,domain); } long long get_mem_size(void) { FILE *pipe; char string[BUFSIZ]; long long memsize; pipe=popen("/usr/sbin/prtconf","r"); fgets(string,BUFSIZ,pipe); /* skip line */ fscanf(pipe,"%*s %*s %lld",&memsize); return memsize; } extern float external_bogomips(void); int get_cpu_info(struct cpu_info_type *cpu_info) { FILE *pipe; char string[BUFSIZ]; int cpus=0; float version; cpu_info->bogomips=external_bogomips(); pipe=popen("/usr/sbin/psrinfo","r"); while(fgets(string,BUFSIZ,pipe)!=NULL) { cpus++; } pclose(pipe); cpu_info->num_cpus=cpus; strncpy(cpu_info->chip_vendor,"SPARC",33); pipe=popen("uname -r","r"); fscanf(pipe,"%f",&version); pclose(pipe); /* Solaris 9 psrinfo doesn't support -p option */ if (version>5.2) { /* don't support -p option, do something else */ pipe=popen("/usr/sbin/psrinfo -v","r"); fgets(string,BUFSIZ,pipe); /* ignore line */ fgets(string,BUFSIZ,pipe); /* ignore line */ fscanf(pipe,"%*s %64s %*s %*s %*s %f",cpu_info->chip_type, &cpu_info->megahertz); pclose(pipe); } else { /* we support -p option... */ pipe=popen("/usr/sbin/psrinfo -p -v","r"); fgets(string,BUFSIZ,pipe); /* ignore line */ fscanf(pipe,"%64s %*s %*s %*s %f",cpu_info->chip_type, &cpu_info->megahertz); pclose(pipe); } return 0; } linux_logo-5.11/libsysinfo-0.2.2/configure0000700004737600013330000000270511212264670020471 0ustar vweaver1dongarra#!/bin/sh # This is not a real autoconf configure script. # I will not ship a configure script that is larger than # the generated linux_logo executable. # This is a simple shell script that gathers the info linux_logo # needs, and should be compatible enough. # - vmw if [ -z "$ARCH" ]; then ARCH=`uname -m` fi OS=`uname` PREFIX=/usr/local INSTALL=`which install` which gcc GCC_MISSING=$? if [ $GCC_MISSING -eq 1 ]; then which cc CC_MISSING=$? if [ $CC_MISSING -eq 1 ]; then echo "C compiler not found!" else CC=cc fi else CC=gcc fi which ar AR_MISSING=$? if [ $AR_MISSING -eq 0 ]; then AR=ar fi if [ $OS = SunOS ]; then AR=/usr/ccs/bin/ar fi if [ $CC = gcc ]; then CFLAGS="-Wall -O2" else CFLAGS="-O2" fi LIBSYSINFO_INCLUDE="-I.." LFLAGS="" echo echo "CONFIGURING LIBSYSINFO" echo " Detected Architecture: "$ARCH echo " Detected Operating System: "$OS #echo " Install prefix: "$PREFIX #echo " Install program: "$INSTALL echo " C Compiler : "$CC echo " AR : "$AR echo " CFLAGS : "$CFLAGS echo echo "CC=$CC" > Makefile.default echo "AR=$AR" >> Makefile.default echo "ARCH=$ARCH" >> Makefile.default echo "OS=$OS" >> Makefile.default echo "PREFIX=$PREFIX" >> Makefile.default echo "INSTALL=$INSTALL" >> Makefile.default echo "CFLAGS=$CFLAGS" >> Makefile.default echo "LIBSYSINFO_INCLUDE=$LIBSYSINFO_INCLUDE" >> Makefile.default echo "LFLAGS=$LFLAGS" >> Makefile.default linux_logo-5.11/libsysinfo-0.2.2/include/0000700004737600013330000000000011212267303020175 5ustar vweaver1dongarralinux_logo-5.11/libsysinfo-0.2.2/include/uname.h0000600004737600013330000000015710644465306021473 0ustar vweaver1dongarraint uname_get_os_info(struct os_info_type *os_info); char *uname_get_host_name(char *hostname,char *domain); linux_logo-5.11/libsysinfo-0.2.2/include/generic.h0000600004737600013330000000032010460217600021756 0ustar vweaver1dongarrachar *get_cpuinfo_file(void); char *parse_line(char *string); char *clip_lf(char *string,int size); int get_pretty_printing(void); float fix_megahertz(int factor,float megahertz); float external_bogomips(); linux_logo-5.11/libsysinfo-0.2.2/BUGS0000600004737600013330000000044607251516230017247 0ustar vweaver1dongarra+ Megahertz pretty printing is still off if the value is really off. 397.9Mhz system does not round to 400Mhz properly. We have to be careful though... does a 377.9Mhz system round to 380Mhz or 375Mhz? + RAM can still end up being 1MB off, usually when ACPI is in use, but not always. linux_logo-5.11/configure0000700004737600013330000000416111337612422015651 0ustar vweaver1dongarra#!/bin/sh # This is not a real autoconf configure script. # I will not ship a configure script that is larger than # the generated linux_logo executable. # This is a simple shell script that gathers the info linux_logo # needs, and should be compatible enough. # Tested on Linux, Irix, Solaris and FreeBSD # - vmw usage() { echo "Usage: $0 [ --prefix=PATH ]" exit 1 } while [ $# -gt 0 ] do case "${1%=*}" in -h|--help) usage;; --prefix) PREFIX="${1#*=}";; esac shift done if [ -z "$ARCH" ]; then ARCH=`uname -m` fi OS=`uname` INSTALL=`which install` if [ -z "$PREFIX" ]; then PREFIX=/usr/local fi which xgettext XGETTEXT_MISSING=$? if [ $XGETTEXT_MISSING -eq 0 ]; then XGETTEXT=xgettext fi which gcc GCC_MISSING=$? if [ $GCC_MISSING -eq 1 ]; then which cc CC_MISSING=$? if [ $CC_MISSING -eq 1 ]; then echo "C compiler not found!" else CC=cc fi else CC=gcc fi LIBSYSINFO=libsysinfo-0.2.2 LDFLAGS="" if [ $CC = gcc ]; then CFLAGS="-Wall -O2" else CFLAGS="-O2" fi $CROSS$CC $CFLAGS -c intl_test.c INTL_MISSING=$? echo echo "CONFIGURING LINUX_LOGO" echo " Detected Architecture: "$ARCH echo " Detected Operating System: "$OS echo " Install prefix: "$PREFIX echo " Install program: "$INSTALL echo " xgettext: "$XGETTEXT if [ $INTL_MISSING -ne 0 ]; then echo " libintl.h not found, disabling i18n support" USE_I18N=0 else USE_I18N=1 fi echo " libsysinfo: "$LIBSYSINFO echo " C Compiler : "$CC echo " CFLAGS : "$CFLAGS echo "CC=$CC" > Makefile.default echo "ARCH=$ARCH" >> Makefile.default echo "OS=$OS" >> Makefile.default echo "PREFIX=$PREFIX" >> Makefile.default echo "INSTALL=$INSTALL" >> Makefile.default echo "CFLAGS=$CFLAGS" >> Makefile.default echo "LIBSYSINFO=$LIBSYSINFO" >> Makefile.default echo "LDFLAGS=$LDFLAGS" >> Makefile.default echo "XGETTEXT=$XGETTEXT" >> Makefile.default echo "USE_I18N=$USE_I18N" >> Makefile.default echo "CONFIGURE_RAN=1" >> Makefile.default echo cd $LIBSYSINFO && ./configure echo echo "If cross compiling set the CROSS and ARCH variables" echo echo "Done configuring, run 'make'" echo linux_logo-5.11/intl_test.c0000600004737600013330000000002510642742521016112 0ustar vweaver1dongarra#include linux_logo-5.11/linux_logo.c0000600004737600013330000010664611470267170016306 0ustar vweaver1dongarra/*-------------------------------------------------------------------------*\ LINUX LOGO 5.11 - Creates Nifty Logo With System Info - 15 November 2010 by Vince Weaver (vince@deater.net, http://www.deater.net/weave ) A program to display text/ansi logos with system information. Thanks to many, many people who sent patches in. See the CHANGES file for a list of all those who helped out. \*-------------------------------------------------------------------------*/ #define VERSION "5.11" #include #include /* calloc() */ #include /* strdup() */ #include /* time() */ #include #define ESCAPE "\033" #include "sysinfo.h" #include "linux_logo.h" #include "logo_types.h" #include "load_logo.h" #if (USE_I18N==1) #undef __OPTIMIZE__ #include #define _(String) gettext((String)) #else #define _(String) (String) #endif /* Change the values in the below file to alter default behavior */ #include "defaults.h" /* Some global variables. Possibly bad in practice, but it saves a lot *\ \* of paramater passing, which has caused bugs to develop before. */ struct logo_info *logo_info_head = NULL; struct logo_info *logo_info_tail = NULL; char *vmw_strcat(char *dest, char *src, int space_remaining) { if (strlen(src) >= space_remaining) { fprintf(stderr,"Error! Not enough room in string!\n\n"); exit(1); } return strcat(dest,src); } /* Convert a number into an ordinal string */ static void strcat_ordinal(int value,char *string, int space) { switch(value) { case 0: vmw_strcat(string,_("Zero"),space); break; case 1: vmw_strcat(string,_("One"),space); break; case 2: vmw_strcat(string,_("Two"),space); break; case 3: vmw_strcat(string,_("Three"),space); break; case 4: vmw_strcat(string,_("Four"),space); break; case 5: vmw_strcat(string,_("Five"),space); break; case 6: vmw_strcat(string,_("Six"),space); break; case 7: vmw_strcat(string,_("Seven"),space); break; case 8: vmw_strcat(string,_("Eight"),space); break; case 9: vmw_strcat(string,_("Nine"),space); break; default: vmw_strcat(string,_("Many"),space); break; } } /* setup the default logos, which are always present */ static void setup_default_logos() { struct logo_info *new_logo; #include "load_logos.h" } /* Setup the "settings" structure to some defaults */ /* Edit the "defaults.h" file to change these */ static void setup_info(struct linux_logo_info_type *settings) { settings->width=DEFAULT_WIDTH; /* Defaults to 80 */ settings->no_periods=DEFAULT_NO_PERIODS; /* Defaults to None */ settings->preserve_xy=DEFAULT_PRESERVE_XY; /* Defaults to Off */ settings->skip_bogomips=DEFAULT_SKIP_BOGOMIPS; /* Defaults to No */ settings->offset=DEFAULT_OFFSET; /* Defaults to 0 */ settings->plain_ascii=DEFAULT_PLAIN_ASCII; /* Defaults to No */ settings->banner_mode=DEFAULT_BANNER_MODE; /* Defualts to Yes */ settings->wipe_screen=DEFAULT_WIPE_SCREEN; /* Defaults to No */ settings->show_uptime=DEFAULT_SHOW_UPTIME; /* Defaults to No */ settings->show_load=DEFAULT_SHOW_LOAD; /* Defaults to No */ settings->narrow_logo=DEFAULT_NARROW_LOGO; /* Defaults to No */ settings->pretty_output=DEFAULT_PRETTY_OUTPUT; /* Defaults to Yes */ set_pretty_printing(DEFAULT_PRETTY_OUTPUT); settings->display_logo_only=0; settings->display_sysinfo_only=0; settings->display_usertext=0; settings->custom_format=0; settings->center_sysinfo=1; settings->user_text[0]=0; settings->format[0]=0; } /* Use ansi codes or spaces to shift the cursor to the right */ static void shift_right(int shift,int plain_ascii) { int i; if (shift<=0) return; if (plain_ascii) { for(i=0;i0) { snprintf(temp_string,BUFSIZ,"%d %s ", up_days,(up_days==1 ? _("day"):_("days"))); vmw_strcat(final_string,temp_string,BUFSIZ-strlen(final_string)); } if (up_hrs>0) { snprintf(temp_string,BUFSIZ,"%d %s ", up_hrs,(up_hrs==1 ? _("hour"):_("hours"))); vmw_strcat(final_string,temp_string,BUFSIZ-strlen(final_string)); } if (up_mins>0) { snprintf(temp_string,BUFSIZ,"%d %s", up_mins,(up_mins==1 ? _("minute"):_("minutes"))); vmw_strcat(final_string,temp_string,BUFSIZ-strlen(final_string)); } vmw_strcat(string,final_string,space); } /* Prints the help */ static void help_message(char *binname, char full) { char temp_version[BUFSIZ]; printf("\nLinux Logo Version %s using libsysinfo %s\n",VERSION, get_sysinfo_version(temp_version)); printf("\tby Vince Weaver \n"); printf(" Newest Versions at:\n"); printf(" http://www.deater.net/weave/vmwprod/linux_logo\n"); printf(" http://metalab.unc.edu/pub/Linux/logos/penguins\n\n"); if (!full) exit(0); printf("Usage: %s [-a] [-b] [-c] [-d] [-D file] [-e file] [-f] " "[-g]\n" " [-h] [-i] [-k] [-l] [-n] [-o num] [-p] [-s] [-t str] " "[-u] [-v]\n" " [-w Num] [-x] [-y] [-F format] " "[-L num | NAME | list | random_xy]\n",binname); printf(" [-a] -- Display an ascii-only Logo\n"); printf(" [-b] -- Display a Banner Logo!\n"); printf(" [-c] -- Display a \"Classic\" type logo\n"); printf(" [-d] -- disable \"prettying\" of output\n"); printf(" [-D file]-- use custom logo from \"file\"\n"); printf(" [-e file]-- Use \"file\" instead of /proc/cpuinfo [for " "debugging]\n"); printf(" [-f] -- force the screen clear before drawing\n"); printf(" [-F format] Format output. See README.\n"); printf(" B [-g] -- give system info only\n"); printf(" [-h] -- this help screen\n"); printf(" [-i] -- ignore ~/.linux_logo and /etc/linux_logo.conf\n"); printf(" [-k] -- keep sysinfo flushed-left (non-centered)\n"); printf(" B [-l] -- display logo only\n"); printf(" C [-o Num] -- offset output Num spaces to the right\n"); printf(" [-p] -- preserve cursor location\n"); printf(" [-s] -- skip Bogomips [speeds up on non-Linux " "platforms]\n"); printf(" [-t str] -- display user-supplied string\n"); printf(" * [-u] -- show uptime\n"); printf(" [-v] -- version information\n"); printf(" [-w Num] -- set width of screen to Num [default 80]\n"); printf(" * [-y] -- show load average\n"); printf(" [-L num | NAME | list | random_xy] -- multiple Logo options. See README\n\n"); printf(" B=Banner mode only, C=Classic Mode Only *=Works Only in Linux" "\n\n"); } /* The nifty customizable sysinfo parser */ static int generate_sysinfo( char ***string, struct linux_logo_info_type *settings) { struct os_info_type os_info; struct cpu_info_type cpu_info; int x=0,len,line=0; char temp_string[BUFSIZ],hostname[BUFSIZ],domain[BUFSIZ]; char temp_line[BUFSIZ]; float load_1,load_5,load_15; char **temp_sysinfo; char char_string[2]={0,0}; int allocated_lines=10; long long mem_size=0; /* Get the system info */ get_os_info(&os_info); get_cpu_info(&cpu_info); len=strlen(settings->format); /* allocate 10 lines to start with */ temp_sysinfo=calloc(allocated_lines,sizeof(char *)); while (xformat[x]!='\n') { /* If not a #, then just print the character */ if (settings->format[x]!='#') { char_string[0]=*((settings->format)+x); vmw_strcat(temp_line,char_string,BUFSIZ-strlen(temp_line)); } else { x++; if (x>len) break; switch(settings->format[x]) { /* double # just prints a # */ case '#': vmw_strcat(temp_line,"#",BUFSIZ-strlen(temp_line)); break; /* #B prints the bogomips */ /* If really high, don't print fractional part */ case 'B': if (cpu_info.bogomips<10000.0) { snprintf(temp_string,BUFSIZ,"%.2f",cpu_info.bogomips); } else { snprintf(temp_string,BUFSIZ,"%.0f",cpu_info.bogomips); } vmw_strcat(temp_line,temp_string,BUFSIZ-strlen(temp_line)); break; /* #C prints OS revision */ case 'C': vmw_strcat(temp_line,os_info.os_revision, BUFSIZ-strlen(temp_line)); break; /* #E prints user text */ case 'E': vmw_strcat(temp_line,settings->user_text, BUFSIZ-strlen(temp_line)); break; /* #H prints hostname */ case 'H': vmw_strcat(temp_line,get_host_name(hostname,domain), BUFSIZ-strlen(temp_line)); break; /* #L prints load average */ case 'L': get_load_average(&load_1,&load_5,&load_15); snprintf(temp_string,BUFSIZ,"%s %.2f, %.2f, %.2f", _("Load Average"),load_1,load_5,load_15); vmw_strcat(temp_line,temp_string,BUFSIZ-strlen(temp_line)); break; /* #M prints Megahertz */ case 'M': if (cpu_info.megahertz>0.0) { if (cpu_info.megahertz>999.0) { snprintf(temp_string,BUFSIZ,"%.3gGHz", cpu_info.megahertz/1000.0); } else { snprintf(temp_string,BUFSIZ,"%.3gMHz", cpu_info.megahertz); } vmw_strcat(temp_line,temp_string, BUFSIZ-strlen(temp_line)); } else { /* No megahertz. Back up the pointer. */ /* This is a hack to avoid extra spaces in the output */ if (strlen(temp_line)>0) { temp_line[strlen(temp_line)-1]=0; } } break; /* #N prints number of CPUs */ /* Spelled out if it is less than 10 */ /* The actual number if less than 100,000 */ /* The word "Many" if more than 100,000 */ case 'N': if (cpu_info.num_cpus<=9) { strcat_ordinal(cpu_info.num_cpus,temp_line, BUFSIZ-strlen(temp_line)); } else if (cpu_info.num_cpus<=99999) { snprintf(temp_string,BUFSIZ,"%d",cpu_info.num_cpus); vmw_strcat(temp_line,temp_string, BUFSIZ-strlen(temp_line)); } else { strcat_ordinal(10,temp_line, BUFSIZ-strlen(temp_line)); } break; /* #O prints the OS name */ case 'O': vmw_strcat(temp_line,os_info.os_name, BUFSIZ-strlen(temp_line)); break; /* #P prints "Processor" or its plural. Sort of a hack */ /* This probably doesn't work with all languages */ case 'P': if (cpu_info.num_cpus!=1) { vmw_strcat(temp_line,_(PROCESSOR_PLURAL), BUFSIZ-strlen(temp_line)); } else { vmw_strcat(temp_line,_(PROCESSOR_SINGULAR), BUFSIZ-strlen(temp_line)); } break; /* #R prints the amount of memory */ case 'R': mem_size=get_mem_size(); if (mem_size>1023*1024*1024) { snprintf(temp_string,BUFSIZ,"%.2gPB", ((double)mem_size)/(1024.0*1024.0*1024.0)); } else if (mem_size>1023*1024*10) { snprintf(temp_string,BUFSIZ,"%.3gTB", ((double)mem_size)/(1024.0*1024.0)); } else if (mem_size>1023*1024) { snprintf(temp_string,BUFSIZ,"%.2gTB", ((double)mem_size)/(1024.0*1024.0)); } else if (mem_size>1023*10) { snprintf(temp_string,BUFSIZ,"%.3gGB", ((double)mem_size/1024.0)); } else if (mem_size>1023) { snprintf(temp_string,BUFSIZ,"%.2gGB", ((double)mem_size/1024.0)); } else { snprintf(temp_string,BUFSIZ,"%lldM",mem_size); } vmw_strcat(temp_line,temp_string, BUFSIZ-strlen(temp_line)); break; /* #S prints "s" if CPU's are more than 1. DEPRECATED */ case 'S': if (cpu_info.num_cpus!=1) { vmw_strcat(temp_line,"s",BUFSIZ-strlen(temp_line)); } break; /* #T prints the CPU type */ case 'T': vmw_strcat(temp_line,cpu_info.chip_type, BUFSIZ-strlen(temp_line)); break; /* #U prints the uptime */ case 'U': strcat_uptime(get_uptime(),temp_line, BUFSIZ-strlen(temp_line)); break; /* #V prints the OS version */ case 'V': vmw_strcat(temp_line,os_info.os_version, BUFSIZ-strlen(temp_line)); break; /* #X Prints the CPU vendor */ case 'X': if (!strncmp(cpu_info.chip_vendor,"Unknown",7)) { if (strlen(temp_line)>0) { temp_line[strlen(temp_line)-1]=0; } } else { vmw_strcat(temp_line,cpu_info.chip_vendor, BUFSIZ-strlen(temp_line)); } break; default: fprintf(stderr,"\nInvalid format '#%c'\n", settings->format[x]); } } x++; if (x>=len) break; } temp_sysinfo[line]=strdup(temp_line); line++; /* If we are using more than the pre-allocated amount */ /* allocate more lines */ if (line>=allocated_lines) { temp_sysinfo=realloc(temp_sysinfo,sizeof(char *)*(line+1)); allocated_lines=line; } /* skip the newline */ x++; } *string=temp_sysinfo; return line; } /* The Main Drawing Routine */ static void draw_logo(struct logo_info *logo_override, struct linux_logo_info_type *settings) { struct logo_info *our_logo_info; char *string_point; int i,ysize,sysinfo_length=0; char **sysinfo_string; sysinfo_length=generate_sysinfo(&sysinfo_string,settings); if (logo_info_head==NULL) { printf("\n\nNo logos available!!\n"); return; } if (logo_override!=NULL) { our_logo_info=logo_override; } else { /* Search for a proper logo! */ our_logo_info=logo_info_head; while (1) { if (our_logo_info==NULL) { printf("\nAppropriate logo not found!\n\n"); return; } if ((settings->banner_mode) && (our_logo_info->sysinfo_position==SYSINFO_BOTTOM)) { if (settings->plain_ascii) { if (our_logo_info->ascii_logo!=NULL) { break; } } else { /* Not ascii */ if (our_logo_info->logo!=NULL) { break; } } } if ((!settings->banner_mode) && (our_logo_info->sysinfo_position==SYSINFO_RIGHT)) { /* Classic mode */ if (settings->plain_ascii) { if (our_logo_info->ascii_logo!=NULL) { break; } } else { /* Not ascii */ if (our_logo_info->logo!=NULL) { break; } } } our_logo_info=our_logo_info->next_logo; } } if (settings->width<80) settings->width=80; /* Right now we don't */ /* handle width < 80 */ if (settings->wipe_screen) clear_screen(settings->plain_ascii); /* Select the proper logo */ if (settings->plain_ascii) { ysize=our_logo_info->ascii_ysize; if (our_logo_info->ascii_logo==NULL) { printf("\nSpecified logo has no ascii version!\n\n"); return; } else string_point=our_logo_info->ascii_logo; } else { ysize=our_logo_info->ysize; if (our_logo_info->logo==NULL) { printf("\nSpecified logo has no non-ascii version!\n\n"); return; } else string_point=our_logo_info->logo; } /* Draw the logos */ if (!settings->display_sysinfo_only) { if (settings->banner_mode) { /* Banner mode */ for(i=0;iwidth-80)/2,settings->plain_ascii); string_point=print_line(string_point); printf("\n"); } if (!settings->display_logo_only) printf("\n"); } else { /* Classic mode logo */ /* Print the first 7 lines of logo */ if (ysize<7) { printf("\nError! Classic logos must be at least 7 lines long!\n"); } if (!settings->plain_ascii) printf("\033[40m\033[40m\n"); for(i=0;i<7;i++) { shift_right(settings->offset,settings->plain_ascii); string_point=print_line(string_point); printf("\n"); } /* The next lines can have cpuinfo after them */ for(i=7;ioffset,settings->plain_ascii); string_point=print_line(string_point); shift_right(2,settings->plain_ascii); if (i-7plain_ascii) printf("\033[1;37;40m"); printf("%s",sysinfo_string[i-7]); if (!settings->plain_ascii) printf("\033[0m"); } printf("\n"); } } } /* Print the sysinfo if we haven't already */ if (!settings->display_logo_only) { if (settings->banner_mode) { for(i=0;icenter_sysinfo) { center(strlen(sysinfo_string[i]),settings->width, settings->plain_ascii); } if (!settings->plain_ascii) printf("\033[1;37;40m"); printf("%s",sysinfo_string[i]); if (!settings->plain_ascii) printf("\033[0m"); printf("\n"); } printf("\n"); } } /* Restore cursor color to normal */ if (!settings->plain_ascii) { printf("\033[0m\033[255D"); } } static char *get_arg(int *index,int argc,char **argv) { char *argument; if (argv[*index][2]=='\0') { (*index)++; if (*index>=argc) { argument=NULL; printf("Missing parameter to option -%c\n\n",argv[(*index)-1][1]); exit(1); } else { argument=argv[*index]; } } else { argument=&(argv[*index][2]); } return argument; } /**************************/ /* logo support functions */ /**************************/ /* global variables, a bit of a hack, should find a better way */ int logo_num=0,random_logo=0,want_list_logos=0; char random_banner='e',random_ascii='e',*logo_name=NULL,*logo_disk=NULL; /* Find a logo by name */ static struct logo_info *get_logo_by_name(char *logo_name) { static struct logo_info *custom_logo; custom_logo=logo_info_head; while(custom_logo!=NULL) { if (!strcmp(custom_logo->name,logo_name)) { return custom_logo; } custom_logo=custom_logo->next_logo; } fprintf(stderr,"Error! No logo with the name %s is available!\n",logo_name); return NULL; } /* Find a logo by number */ static struct logo_info *get_logo_by_number(int logo_num) { int i; static struct logo_info *custom_logo; custom_logo=logo_info_head; i=1; while (inext_logo==NULL) { fprintf(stderr,"\nError! Logo %d is invalid! \"linux_logo -L list\"" " lists valid logo numbers.\n\n",logo_num); custom_logo=logo_info_head; break; } custom_logo=custom_logo->next_logo; i++; } return custom_logo; } /* find a random logo */ static struct logo_info *get_random_logo(int random_banner, int random_ascii, struct linux_logo_info_type *settings) { struct timeval time_time; int i,logo_found; static struct logo_info *custom_logo; gettimeofday(&time_time,NULL); srand(time_time.tv_usec); /* Not really random, but... */ i=rand()%1024; /* Hopefully we have less than 1024 logos FIXME */ custom_logo=logo_info_head; while(i) { if (custom_logo->next_logo==NULL) custom_logo=logo_info_head; else custom_logo=custom_logo->next_logo; i--; } i=0; while (i<2) { logo_found=1; if (random_banner=='b') { /* Want banner mode */ if (!custom_logo->sysinfo_position) logo_found=0; else settings->banner_mode=1; } if (random_banner=='c') { /* Want classic mode */ if (custom_logo->sysinfo_position) logo_found=0; else settings->banner_mode=0; } if (random_banner=='e') { /* Want either */ /* we should be OK */ } if (random_ascii=='e') { /* Any logo at all */ settings->plain_ascii=rand()%2; if (custom_logo->ascii_logo==NULL) { settings->plain_ascii=!settings->plain_ascii; } } if (random_ascii=='a') { /* Want Ascii */ if (custom_logo->ascii_logo==NULL) logo_found=0; else settings->plain_ascii=1; } if (random_ascii=='n') { /* Want non-ascii */ if (custom_logo->logo==NULL) logo_found=0; else settings->plain_ascii=0; break; } if (logo_found) break; if (custom_logo->next_logo==NULL) { custom_logo=logo_info_head; i++; } else custom_logo=custom_logo->next_logo; } if (i>1) { printf("\nSorry, can't generate random logo of that type.\n\n"); exit(1); } return custom_logo; } /* list the logos */ static void list_logos() { int i; struct logo_info *temp_logo; printf("\nAvailable Built-in Logos:\n"); printf("\tNum\tType\tAscii\tName\t\tDescription\n"); temp_logo=logo_info_head; i=1; while (temp_logo!=NULL) { printf("\t%d",i); if (temp_logo->sysinfo_position) printf("\tBanner"); else printf("\tClassic"); if (temp_logo->ascii_logo!=NULL) printf("\tYes"); else printf("\tNo"); printf("\t%s",temp_logo->name); if (strlen(temp_logo->name)<8) printf("\t"); printf("\t%s\n",temp_logo->description); temp_logo=temp_logo->next_logo; i++; } printf("\nDo \"linux_logo -L num\" where num is from " "above to get the appropriate logo.\n"); printf("Remember to also use -a to get ascii version.\n\n"); exit(0); } /*******************************************************/ /* Parse options (from file or command line arguments) */ /*******************************************************/ static void parse_command_line(struct linux_logo_info_type *settings, int argc, char **argv) { int i,x,string_size; char *endptr,*argument; int index=1,option; char *temp_st; if (argc<2) return; while (1) { if (argv[index][0]!='-') { printf("Unknown parameter %s\n",argv[index]); exit(1); } option=argv[index][1]; switch (option) { case 'a': settings->plain_ascii=1; break; case 'b': settings->banner_mode=1; break; case 'c': settings->banner_mode=0; break; case 'd': settings->pretty_output=0; set_pretty_printing(0); break; case 'D': argument=get_arg(&index,argc,argv); logo_disk=strdup(argument); logo_name=NULL; break; case 'e': argument=get_arg(&index,argc,argv); set_cpuinfo_file(argument); break; case 'f': settings->wipe_screen=1; break; case 'F': argument=get_arg(&index,argc,argv); string_size=strlen(argument); if (string_size==0) break; settings->custom_format=1; strncpy(settings->format,argument,BUFSIZ); /* Decode the \n's. */ /* Should I decode other \ codes? */ /* also, \ codes are always smaller, hence why */ /* we can overwrite our own buffer */ i=0; x=0; while(iformat)) { if (settings->format[i]=='\\') { switch(settings->format[i+1]) { case 'n': settings->format[x]='\n'; i++; break; default: settings->format[x]='\\'; break; } } else { settings->format[x]=settings->format[i]; } i++; x++; } settings->format[x]='\0'; break; case 'g': settings->display_sysinfo_only=1; break; case 'h': case '?': help_message(argv[0], 1); exit(0); break; /* FIXME */ case 'i': /* is it even possible to do this right? */ /* we'd have to do two passes, possibly */ /* resetting to defaults in between */ /*ignore_config_file=1; */ break; case 'k': settings->center_sysinfo=0; break; case 'l': settings->display_logo_only=1; break; case 'L': argument=get_arg(&index,argc,argv); /* Reset values in case we get this after reading */ /* the file */ logo_num = 1; random_logo = 0; logo_num=strtol(argument,&endptr,10); if ( endptr == argument ) { /* we leak temp_st, need to fix */ temp_st=strdup(argument); if (!strncmp(temp_st,"list",4)) { want_list_logos=1; } else if (!strncmp(temp_st,"random",6)) { random_logo=1; if (strlen(temp_st)>7) { random_banner=temp_st[7]; } if (strlen(temp_st)>8) { random_ascii=temp_st[8]; } } else { logo_name=strdup(temp_st); } } else { /* It's a number. Override any name */ logo_name=NULL; } break; case 'n': settings->no_periods=1; break; case 'o': argument=get_arg(&index,argc,argv); settings->offset=strtol(argument,&endptr,10); if ( endptr == argument ) { printf("Invalid offset length %s\n\n",argument); exit(1); } break; case 'p': settings->preserve_xy=1; break; case 's': settings->skip_bogomips=1; break; case 't': argument=get_arg(&index,argc,argv); settings->display_usertext=1; strncpy(settings->user_text,argument,BUFSIZ); break; case 'u': settings->show_uptime=1; break; case 'v': help_message(argv[0], 0); exit(0); break; case 'w': argument=get_arg(&index,argc,argv); settings->width=strtol(argument,&endptr,10); if ( endptr == argument ) { printf("Invalid width %s\n\n",argument); exit(1); } break; case 'y': settings->show_load=1; break; default: printf("Unknown option -%c\n",option); exit(1); } index++; if (index>=argc) break; } } /* Look for ~/.linux_logo or /etc/linux_logo config files */ void read_config_file(struct linux_logo_info_type *settings) { int string_size,valid_string=0,i,size=0,counter=0; int fake_data_offset=0,ch,oldch,in_quote=0,fake_argc=0; char *tempst,*fake_data,**fake_argv; FILE *config_file=NULL; char config_string[BUFSIZ]; char config_filename[]="/.linux_logo"; /* Check for the files */ /* look for ~/.linux_logo */ if (getenv("HOME")) { string_size=strlen(getenv("HOME")); tempst=calloc(strlen(config_filename)+string_size+1,sizeof(char)); strncpy(tempst,getenv("HOME"),string_size); strncat(tempst,config_filename,strlen(config_filename)); config_file=fopen(tempst,"r"); free(tempst); /* free the calloc's! */ } /* if no ~/.linux_logo, check for /etc/linux_logo.conf */ if (config_file==NULL) { config_file=fopen("/etc/linux_logo.conf","r"); } /* If no config files, just make do with command-line arguments */ /* Note to Vince of 2000.. this was the most horrible */ /* atrocity of code ever. -- Vince of 2006 */ /* It should be a lot better now. -- Vince of 2007 */ if (config_file!=NULL) { /* skip over whitespace and comments */ while(!valid_string) { if (fgets(config_string,BUFSIZ,config_file)) { for(i=0;i0) fake_data[fake_data_offset]='\0'; fake_data_offset++; fake_argc++; } /* The shell strips quotes and excess whitespace */ /* thought for now we just strip spaces outside of quotations */ if ((ch!='\"') && ((ch!=' ') || ((ch==' ') && (in_quote)))) { fake_data[fake_data_offset]=ch; fake_data_offset++; } /* start/end a quotation */ if (ch=='\"') in_quote= !in_quote; } fclose(config_file); fake_argc+=1; /* plus the last one */ /* Allocate room for the fake argv[] list of pointers */ /* +1 cause NULL at the end */ fake_argv=calloc(fake_argc+1,sizeof(char *)); fake_argv[0]=fake_data; counter=1; /* Actually find the tokens based on the NULLs put before */ for(i=0;isysinfo_position; /**************************************************/ /* Prepare the sysinfo stuff if not done for us */ /* Handle "normal" output by basically faking the */ /* appropriate "custom" output string */ /**************************************************/ if (!settings.custom_format) { /* Set the format for banner or classic mode */ if (settings.banner_mode) { strncpy(settings.format,_(DEFAULT_BANNER_FORMAT),BUFSIZ); } else { strncpy(settings.format,DEFAULT_CLASSIC_FORMAT,BUFSIZ); } /* If usertext specified, add it at beginning */ if (settings.display_usertext) { strncpy(temp_string,settings.format,BUFSIZ); strncpy(settings.format,"#E\n",BUFSIZ); vmw_strcat(settings.format,temp_string,BUFSIZ-strlen(settings.format)); } /* If want system load, add it second-to-last */ if (settings.show_load) { /* put it before the hostname */ temp_pointer=strstr(settings.format,"#H"); /* If for some reason not found, put it at end */ if (temp_pointer==NULL) { vmw_strcat(settings.format,"#L\n",BUFSIZ-strlen(settings.format)); } else { if (strlen(settings.format)+3 /etc/issue.net Should have issue.net updated every 15 minutes. Setting up a crontab file is a bit beyond the scope of this document; please see the manpage for details. Q5. Can I have linux_logo stay on top of the screen while things scroll in a window beneath it? A5. Bill Anderson did some research and came up with this: I did successfully use: clear; /bin/echo -e '\033[018;25r' ; linux_logo to put the linux logo and info on the top 18 lines (fewer if you don't care about the system info) of the screen and let the rest scroll... /bin/echo -e '\033[0;0r' will turn it off again... Q6. How can I keep the system info from being centered? A6. Starting with version 4.03 you can just use the "-k" command line option. On old versions you can use sed to do this. (This only works with the -a ascii output option because otherwise centering is done with ANSI escape sequences). linux_logo -a -g | sed 's/^ *//' Q7. Did you invent the Linux "Tux" logo? A7. No. Sometimes there seems to be some confusion about this. I am only responsible for the program "linux_logo." Tux the Linux penguin was invented by Larry Ewing. See his page here for more info: http://www.isc.tamu.edu/~lewing/linux/ Q8. Why don't you use the GPL3 license? A8. I have been using the GPL2 for 10 years, and trust it, and feel no need to change that now. It's my software, I get to pick the license. Q9. Why don't you use "real" automake config files? A9. I *hate* automake based config files. Sure, when they work it's all happiness and fun, but when something goes wrong good luck figuring out what if you don't have a PhD in the m4 language. I also refuse to ship a "configure" file that's larger than all of the rest of my project put together. So for now you'll have to use my hacked up fake configure program. linux_logo-5.11/BUGS0000600004737600013330000000020010643204212014406 0ustar vweaver1dongarraKNOWN "FEATURES" centering of system info below the banner isn't always exactly center see ./libsysinfo/BUGS for sysinfo BUGS linux_logo-5.11/tests/0000700004737600013330000000000011337661145015110 5ustar vweaver1dongarralinux_logo-5.11/tests/Makefile0000600004737600013330000000102211337647151016546 0ustar vweaver1dongarraCC = gcc CFLAGS = -Wall -O2 LFLAGS = LIBSYSINFO = libsysinfo-0.2.2 all: memory_print memory_method memory_print: memory_print.o $(CC) $(LFLAGS) -o memory_print memory_print.o memory_print.o: memory_print.c $(CC) $(CFLAGS) -c memory_print.c memory_method: memory_method.o ../$(LIBSYSINFO)/libsysinfo.a $(CC) $(LFLAGS) -o memory_method memory_method.o ../$(LIBSYSINFO)/libsysinfo.a memory_method.o: memory_method.c $(CC) $(CFLAGS) -I../$(LIBSYSINFO) -c memory_method.c clean: rm -f *~ *.o memory_print memory_method linux_logo-5.11/tests/README0000600004737600013330000000010010644462644015764 0ustar vweaver1dongarraHere are some tests checking for buffer overruns in linux_logo. linux_logo-5.11/tests/memory_print.c0000600004737600013330000000213411337632373020003 0ustar vweaver1dongarra#include /* takes megabytes */ void print_mem(long long get_mem_size) { if (get_mem_size>1023*1024*1024) { printf("%.2gPB\n", ((double)get_mem_size)/(1024.0*1024.0*1024.0)); } else if (get_mem_size>1023*1024*10) { printf("%.3gTB\n", ((double)get_mem_size)/(1024.0*1024.0)); } else if (get_mem_size>1023*1024) { printf("%.2gTB\n", ((double)get_mem_size)/(1024.0*1024.0)); } else if (get_mem_size>1023*10) { printf("%.3gGB\n", ((double)get_mem_size/1024.0)); } else if (get_mem_size>1023) { printf("%.2gGB\n", ((double)get_mem_size/1024.0)); } else { printf("%lldM\n",get_mem_size); } } int main(int argc, char **argv) { long long i=0; for(i=0;i<10;i++) { print_mem(i); } for(i=1010;i<1050;i+=10) { print_mem(i); } print_mem(1024*1024); print_mem(128*1024); print_mem(500*1024); print_mem(512*1024); print_mem(600*1024); print_mem(2032504/1024); print_mem(4096*1024); print_mem(65536*1024); print_mem(128*1024*1024); print_mem(1024*1024*1024); return 0; } linux_logo-5.11/tests/bogus_cpuinfo0000600004737600013330000001177010644475662017714 0ustar vweaver1dongarraBlargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh model name : AAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIAAAAAAAAAAAAAAAAA Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : Blargh Blargh Blargh Blargh Blragh Test Test test test Test BogoMips bogomips : : : linux_logo-5.11/tests/memory_method.c0000600004737600013330000000301611337653321020123 0ustar vweaver1dongarra#include #include "sysinfo.h" /* takes megabytes */ void print_mem(long long get_mem_size) { if (get_mem_size>1023*1024*1024) { printf("%.2gPB\n", ((double)get_mem_size)/(1024.0*1024.0*1024.0)); } else if (get_mem_size>1023*1024*10) { printf("%.3gTB\n", ((double)get_mem_size)/(1024.0*1024.0)); } else if (get_mem_size>1023*1024) { printf("%.2gTB\n", ((double)get_mem_size)/(1024.0*1024.0)); } else if (get_mem_size>1023*10) { printf("%.3gGB\n", ((double)get_mem_size/1024.0)); } else if (get_mem_size>1023) { printf("%.2gGB\n", ((double)get_mem_size/1024.0)); } else { printf("%lldM\n",get_mem_size); } } int main(int argc, char **argv) { long long mem_size=0; mem_size=1024*1024; mem_size=get_mem_size_iomem(); printf("IOMEM:\n"); printf("\traw: %lld\n",mem_size); printf("\tpretty: "); print_mem(mem_size); mem_size=get_mem_size_stat(); printf("KCORE:\n"); printf("\traw: %lld\n",mem_size); printf("\tpretty: "); print_mem(mem_size); mem_size=get_mem_size_sysinfo(); printf("SYSINFO:\n"); printf("\traw: %lld\n",mem_size); printf("\tpretty: "); print_mem(mem_size); mem_size=get_mem_size_meminfo(); printf("MEMINFO:\n"); printf("\traw: %lld\n",mem_size); printf("\tpretty: "); print_mem(mem_size); mem_size=get_mem_size(); printf("DEFAULT:\n"); printf("\traw: %lld\n",mem_size); printf("\tpretty: "); print_mem(mem_size); return 0; } linux_logo-5.11/tests/test20000700004737600013330000001353610644462603016105 0ustar vweaver1dongarra#!/bin/sh ../linux_logo -F "\ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H \ #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H #H" linux_logo-5.11/tests/test10000700004737600013330000002165010644462377016110 0ustar vweaver1dongarra#!/bin/sh ./linux_logo -t \ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh linux_logo-5.11/tests/memory_results0000600004737600013330000000253711337661140020130 0ustar vweaver1dongarrax86: actual iomem kcore sysinfo meminfo ppro ancient 256 256 256 249 249 p4 cacao 256 256 255 249 249 (2.4.18) athlon torc14 256 256 255 249 249 pIII spruengli 512 512 511 502 502 pIII torc0 512 512 511 503 503 p4 sampaka 2048 2048 896 2026 2026 p4 cluizel 2048 2048 896 2026 2026 opteron hal-01 8192 3583 896 4021 8117 (2.6.9-67.EL) x86_64: phenom venchi 2048 2047 2046 2010 2010 core2 tasse 2048 2047 2046 2011 2011 core2 cl320 2048 2046 2046 1984 1984 pD domori 4096 4096 4864 3947 3947 core2 cluster 8192 3324 8960 7969 7969 (2.6.9-67.EL) nehalem gonzo 18423 19456 18092 18092 istanb ig 131068 131068 128TB 129193 129193 alpha: 21264 bmul 512 0 511 495 495 sparc: niag1 valor 8192 0 0 4007 8103 arm: arm7 beagle 256 256 0 233 233 ppc: power6 bluegrass 15680 0 214 3142 15430 ia64: itanium 1024 1010 1024 915 915 solaris/sparc niag1 16G 16G linux_logo-5.11/po/0000700004737600013330000000000011470533174014362 5ustar vweaver1dongarralinux_logo-5.11/po/Makefile0000600004737600013330000000177211470266202016026 0ustar vweaver1dongarrainclude ../Makefile.default PACKAGE=linux_logo INSTALL_LOCALEPATH=$(PREFIX)/share/locale CATALOGS = da.mo de.mo es.mo fr.mo nb.mo nl.mo it.mo pl.mo pt_BR.mo ru.mo sv.mo uk.mo zh_TW.mo POTFILES= ../*.c ../*.h all: $(PACKAGE).pot update $(CATALOGS) $(PACKAGE).pot: $(POTFILES) $(XGETTEXT) --default-domain=$(PACKAGE) --add-comments --keyword=_ --keyword=S_ $(POTFILES); if cmp -s $(PACKAGE).po $(PACKAGE).pot; then \ rm -f $(PACKAGE).po; \ else \ mv $(PACKAGE).po $(PACKAGE).pot; \ fi clean: rm -f *mo $(PACKAGE).pot *~ *.bac install: $(CATALOGS) for n in $(CATALOGS); do \ l=`basename $$n .mo`; \ $(INSTALL) -c -m 755 -d $(INSTALL_LOCALEPATH)/$$l; \ $(INSTALL) -c -m 755 -d $(INSTALL_LOCALEPATH)/$$l/LC_MESSAGES; \ $(INSTALL) -c -m 644 $$n $(INSTALL_LOCALEPATH)/$$l/LC_MESSAGES/$(PACKAGE).mo; \ done %.mo: %.po msgfmt -o $@ $< update: $(PACKAGE).pot for n in $(CATALOGS); do \ l=`basename $$n .mo`; \ l=$$l".po"; \ mv -f $$l $$l".bac"; \ msgmerge -o $$l $$l".bac" $(PACKAGE).pot; \ done linux_logo-5.11/po/it.po0000600004737600013330000000661511470322214015337 0ustar vweaver1dongarra# Italian messages for linuxlogo. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the linuxlogo package. # Marco Colombo , 2005. # # #B Bogomips "374.37" # #C Compiled Date "#47 Fri Jan 8 10:37:09 EST 1999" # #E User Text [given with the -t] "Given with -t option" # #H Hostname "deranged" # #L Load average "Load average 0.04, 0.01, 0.01" # #M Megahertz [where supported] "188Mhz " # #N Number of CPU's "Two" # #O Operating System Name "Linux" # #P Singular or Plural of "Processor" "Processor" # #R Ram [in Megabytes] "64M" # #S Plural "s" # #T Type of CPU "K6" # #U Uptime "Uptime 10 hours 59 minutes" # #V Version of OS "2.2.0-pre5" # #X CPU Vendor "AMD " # msgid "" msgstr "" "Project-Id-Version: linuxlogo 4.09\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2005-02-15 19:09+0000\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplulars=2; plural=n != 1;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Zero" # NdT: viene sostituito per #N #P: un processore #: ../linux_logo.c:60 msgid "One" msgstr "Un" #: ../linux_logo.c:61 msgid "Two" msgstr "Due" #: ../linux_logo.c:62 msgid "Three" msgstr "Tre" #: ../linux_logo.c:63 msgid "Four" msgstr "Quattro" #: ../linux_logo.c:64 msgid "Five" msgstr "Cinque" #: ../linux_logo.c:65 msgid "Six" msgstr "Sei" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sette" #: ../linux_logo.c:67 msgid "Eight" msgstr "Otto" #: ../linux_logo.c:68 msgid "Nine" msgstr "Nove" #: ../linux_logo.c:69 msgid "Many" msgstr "Tanti" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Quattro" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Quattro" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Nove" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Versione #V, Compilato #C\n" "#N #P #M #X #T, #R RAM, #B Bogomips totali\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Versione #V\n" "Compilato #C\n" "#N #P #M #X #T, #R RAM\n" "#B Bogomips totali\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Processore" #: ../defaults.h:15 msgid "Processors" msgstr "Processori" linux_logo-5.11/po/nl.po0000600004737600013330000000433111470322214015325 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplulars=2; plural=n != 1;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Nul" #: ../linux_logo.c:60 msgid "One" msgstr "Een" #: ../linux_logo.c:61 msgid "Two" msgstr "Twee" #: ../linux_logo.c:62 msgid "Three" msgstr "Drie" #: ../linux_logo.c:63 msgid "Four" msgstr "Vier" #: ../linux_logo.c:64 msgid "Five" msgstr "Vijf" #: ../linux_logo.c:65 msgid "Six" msgstr "Zes" #: ../linux_logo.c:66 #, fuzzy msgid "Seven" msgstr "Sieben" #: ../linux_logo.c:67 msgid "Eight" msgstr "Acht" #: ../linux_logo.c:68 msgid "Nine" msgstr "Negen" #: ../linux_logo.c:69 msgid "Many" msgstr "Veel" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Vier" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Vier" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Negen" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "" #: ../defaults.h:15 msgid "Processors" msgstr "" linux_logo-5.11/po/sv.po0000600004737600013330000000457211470322214015353 0ustar vweaver1dongarra# Swedish translation of linuxlogo. # Copyright (C) 2006 Free Software Foundation, Inc. # Daniel Nylander , 2006. # msgid "" msgstr "" "Project-Id-Version: linuxlogo 4.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2006-09-05 16:05+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Ingen" #: ../linux_logo.c:60 msgid "One" msgstr "En" #: ../linux_logo.c:61 msgid "Two" msgstr "Två" #: ../linux_logo.c:62 msgid "Three" msgstr "Tre" #: ../linux_logo.c:63 msgid "Four" msgstr "Fyra" #: ../linux_logo.c:64 msgid "Five" msgstr "Fem" #: ../linux_logo.c:65 msgid "Six" msgstr "Sex" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sju" #: ../linux_logo.c:67 msgid "Eight" msgstr "Åtta" #: ../linux_logo.c:68 msgid "Nine" msgstr "Nio" #: ../linux_logo.c:69 msgid "Many" msgstr "Många" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Fyra" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Fyra" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Nio" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V, Byggd #C\n" "#N #M #X #T #P, #R RAM, #B bogomips totalt\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V\n" "Byggd #C\n" "#N #M #X #T #P, #R RAM-minne\n" "#B bogomips totalt\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "processor" #: ../defaults.h:15 msgid "Processors" msgstr "processorer" linux_logo-5.11/po/messages.po0000600004737600013330000000302007310302604016514 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2001-03-16 17:23-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" #: ../linux_logo.c:38 msgid "Zero" msgstr "" #: ../linux_logo.c:39 msgid "One" msgstr "" #: ../linux_logo.c:40 msgid "Two" msgstr "" #: ../linux_logo.c:41 msgid "Three" msgstr "" #: ../linux_logo.c:42 msgid "Four" msgstr "" #: ../linux_logo.c:43 msgid "Five" msgstr "" #: ../linux_logo.c:44 msgid "Six" msgstr "" #: ../linux_logo.c:45 msgid "Seven" msgstr "" #: ../linux_logo.c:46 msgid "Eight" msgstr "" #: ../linux_logo.c:47 msgid "Nine" msgstr "" #: ../linux_logo.c:48 msgid "Many" msgstr "" #. This is the default format of the output file. See the README for more *\ #. \* information on how to configure this option. #: ../defaults.h:7 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" #: ../defaults.h:8 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" #: ../defaults.h:9 msgid "" "Processor" msgstr "" #: ../defaults.h:10 msgid "" "Processors" msgstr "" linux_logo-5.11/po/.pot0000600004737600013330000000466610642601514015175 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-07-03 22:17-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:52 msgid "Zero" msgstr "" #: ../linux_logo.c:53 msgid "One" msgstr "" #: ../linux_logo.c:54 msgid "Two" msgstr "" #: ../linux_logo.c:55 msgid "Three" msgstr "" #: ../linux_logo.c:56 msgid "Four" msgstr "" #: ../linux_logo.c:57 msgid "Five" msgstr "" #: ../linux_logo.c:58 msgid "Six" msgstr "" #: ../linux_logo.c:59 msgid "Seven" msgstr "" #: ../linux_logo.c:60 msgid "Eight" msgstr "" #: ../linux_logo.c:61 msgid "Nine" msgstr "" #: ../linux_logo.c:62 msgid "Many" msgstr "" #: ../linux_logo.c:168 msgid "Uptime " msgstr "" #: ../linux_logo.c:172 msgid "day" msgstr "" #: ../linux_logo.c:172 msgid "days" msgstr "" #: ../linux_logo.c:178 msgid "hour" msgstr "" #: ../linux_logo.c:178 msgid "hours" msgstr "" #: ../linux_logo.c:183 msgid "minute" msgstr "" #: ../linux_logo.c:183 msgid "minutes" msgstr "" #. This is the defaults.h file that can be used to change the default *\* Behavior of the linux_logo program. #. This option picks internationalization support. #. If 0, linux_logo always appears in English #. If 1, some parts of it might show up in your native language #. if you have the LANGUAGE environmental variable set. #. #define USE_I18N 1 #. This is the default format of the output file. See the README for more *\* information on how to configure this option. #: ../defaults.h:13 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" #: ../defaults.h:14 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:19 msgid "Processor" msgstr "" #: ../defaults.h:20 msgid "Processors" msgstr "" linux_logo-5.11/po/da.po0000600004737600013330000000424511470322214015304 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST Benjamin , 14-10-2002. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Nul" #: ../linux_logo.c:60 msgid "One" msgstr "Et" #: ../linux_logo.c:61 msgid "Two" msgstr "To" #: ../linux_logo.c:62 msgid "Three" msgstr "Tre" #: ../linux_logo.c:63 msgid "Four" msgstr "Fire" #: ../linux_logo.c:64 msgid "Five" msgstr "Fem" #: ../linux_logo.c:65 msgid "Six" msgstr "Sex" #: ../linux_logo.c:66 msgid "Seven" msgstr "Syv" #: ../linux_logo.c:67 msgid "Eight" msgstr "Otte" #: ../linux_logo.c:68 msgid "Nine" msgstr "Ni" #: ../linux_logo.c:69 msgid "Many" msgstr "Mange" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Fire" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Fire" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Ni" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "" #: ../defaults.h:15 msgid "Processors" msgstr "" linux_logo-5.11/po/pt_BR.po0000600004737600013330000000460211470322214015723 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # Anderson Rocha , 2002. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: linux_logo 4.06\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2002-12-01 12:00-0200\n" "Last-Translator: Anderson Rocha \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Zero" #: ../linux_logo.c:60 msgid "One" msgstr "Um" #: ../linux_logo.c:61 msgid "Two" msgstr "Dois" #: ../linux_logo.c:62 msgid "Three" msgstr "Trs" #: ../linux_logo.c:63 msgid "Four" msgstr "Quatro" #: ../linux_logo.c:64 msgid "Five" msgstr "Cinco" #: ../linux_logo.c:65 msgid "Six" msgstr "Seis" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sete" #: ../linux_logo.c:67 msgid "Eight" msgstr "Oito" #: ../linux_logo.c:68 msgid "Nine" msgstr "Nove" #: ../linux_logo.c:69 msgid "Many" msgstr "Muitos" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Quatro" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Quatro" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Nove" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Verso #V, Compilado #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Verso #V\n" "Compilado #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Processador" #: ../defaults.h:15 msgid "Processors" msgstr "Processadores" linux_logo-5.11/po/zh_TW.po0000600004737600013330000000452511470322214015754 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: linuxlogo 3.9b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2003-01-21 02:34+0800\n" "Last-Translator: Rick Zhang \n" "Language-Team: SayyaBBS <>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=big5\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "s" #: ../linux_logo.c:60 msgid "One" msgstr "" #: ../linux_logo.c:61 msgid "Two" msgstr "" #: ../linux_logo.c:62 msgid "Three" msgstr "T" #: ../linux_logo.c:63 msgid "Four" msgstr "|" #: ../linux_logo.c:64 msgid "Five" msgstr "" #: ../linux_logo.c:65 msgid "Six" msgstr "" #: ../linux_logo.c:66 msgid "Seven" msgstr "C" #: ../linux_logo.c:67 msgid "Eight" msgstr "K" #: ../linux_logo.c:68 msgid "Nine" msgstr "E" #: ../linux_logo.c:69 msgid "Many" msgstr "" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "|" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "|" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "E" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O #V, sĶ #C\n" "#N #M #X #T #P, #R O, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O #V\n" "sĶ #C\n" "#N #M #X #T #P, #R O\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Bz" #: ../defaults.h:15 msgid "Processors" msgstr "Bz" linux_logo-5.11/po/ru.po0000600004737600013330000000463711470322214015353 0ustar vweaver1dongarra# Russian Translation file for linux_logo project. # Copyright (C) 2003 Free Software Foundation, Inc. # Eugene Paskevich , 2003. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: linux_logo 4.07\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Eugene Paskevich \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=KOI8-R\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "" #: ../linux_logo.c:60 msgid "One" msgstr "" #: ../linux_logo.c:61 msgid "Two" msgstr "" #: ../linux_logo.c:62 msgid "Three" msgstr "" #: ../linux_logo.c:63 msgid "Four" msgstr "" #: ../linux_logo.c:64 msgid "Five" msgstr "" #: ../linux_logo.c:65 msgid "Six" msgstr "" #: ../linux_logo.c:66 msgid "Seven" msgstr "" #: ../linux_logo.c:67 msgid "Eight" msgstr "" #: ../linux_logo.c:68 msgid "Nine" msgstr "" #: ../linux_logo.c:69 msgid "Many" msgstr "" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "" #: ../defaults.h:15 msgid "Processors" msgstr "(/)" linux_logo-5.11/po/uk.po0000600004737600013330000000464111470322214015337 0ustar vweaver1dongarra# Ukrainian Translation file for linux_logo project. # Copyright (C) 2003 Free Software Foundation, Inc. # Eugene Paskevich , 2003. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: linux_logo 4.07\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Eugene Paskevich \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=KOI8-U\n" "Content-Transfer-Encoding: 8bit\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "" #: ../linux_logo.c:60 msgid "One" msgstr "" #: ../linux_logo.c:61 msgid "Two" msgstr "" #: ../linux_logo.c:62 msgid "Three" msgstr "" #: ../linux_logo.c:63 msgid "Four" msgstr "" #: ../linux_logo.c:64 msgid "Five" msgstr "'" #: ../linux_logo.c:65 msgid "Six" msgstr "" #: ../linux_logo.c:66 msgid "Seven" msgstr "" #: ../linux_logo.c:67 msgid "Eight" msgstr "Ӧ" #: ../linux_logo.c:68 msgid "Nine" msgstr "'" #: ../linux_logo.c:69 msgid "Many" msgstr "" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "'" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "" #: ../defaults.h:15 msgid "Processors" msgstr "(/)" linux_logo-5.11/po/pl.po0000600004737600013330000000502711470322214015332 0ustar vweaver1dongarra# Polish translation for linux_logo. # Copyright (C) 2007 Free Software Foundation, Inc. # ? # msgid "" msgstr "" "Project-Id-Version: linux_logo 5.01\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2006-02-05 21:30+0100\n" "Last-Translator: Patryk ciborek \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Zero" #: ../linux_logo.c:60 msgid "One" msgstr "Jeden" #: ../linux_logo.c:61 msgid "Two" msgstr "Dwa" #: ../linux_logo.c:62 msgid "Three" msgstr "Trzy" #: ../linux_logo.c:63 msgid "Four" msgstr "Cztery" #: ../linux_logo.c:64 msgid "Five" msgstr "Pi" #: ../linux_logo.c:65 msgid "Six" msgstr "Sze" #: ../linux_logo.c:66 msgid "Seven" msgstr "Siedem" #: ../linux_logo.c:67 msgid "Eight" msgstr "Osiem" #: ../linux_logo.c:68 msgid "Nine" msgstr "Dziewi" #: ../linux_logo.c:69 msgid "Many" msgstr "Wiele" #: ../linux_logo.c:178 msgid "Uptime " msgstr "Dziaa " #: ../linux_logo.c:182 msgid "day" msgstr "dzie" #: ../linux_logo.c:182 msgid "days" msgstr "dni" #: ../linux_logo.c:188 msgid "hour" msgstr "godzin" #: ../linux_logo.c:188 msgid "hours" msgstr "godziny" #: ../linux_logo.c:193 msgid "minute" msgstr "minut" #: ../linux_logo.c:193 msgid "minutes" msgstr "minut" #: ../linux_logo.c:316 msgid "Load Average" msgstr "rednie obcienie" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O wersja #V, skompilowany #C\n" "#N #P #X #T #M, #R RAM, cznie #B bogomips\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O wersja #V\n" "skompilowany #C\n" "#N #P #X #T #M, #R RAM\n" "cznie #B bogomips\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "procesor" #: ../defaults.h:15 msgid "Processors" msgstr "procesory" linux_logo-5.11/po/de.po0000600004737600013330000000462411470322214015311 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplulars=2; plural=n != 1;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Nul" #: ../linux_logo.c:60 msgid "One" msgstr "Ein" #: ../linux_logo.c:61 msgid "Two" msgstr "Zwei" #: ../linux_logo.c:62 msgid "Three" msgstr "Drei" #: ../linux_logo.c:63 msgid "Four" msgstr "Vier" #: ../linux_logo.c:64 msgid "Five" msgstr "Fuenf" #: ../linux_logo.c:65 msgid "Six" msgstr "Sechs" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sieben" #: ../linux_logo.c:67 msgid "Eight" msgstr "Acht" #: ../linux_logo.c:68 msgid "Nine" msgstr "Neun" #: ../linux_logo.c:69 msgid "Many" msgstr "Viele" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Vier" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Vier" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Neun" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Prozessor" #: ../defaults.h:15 msgid "Processors" msgstr "Prozessoren" linux_logo-5.11/po/nb.po0000600004737600013330000000476211470322214015323 0ustar vweaver1dongarra# translation of linux_logo.po to Norwegian Bokmål # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Per Øyvind Karlsen , 2004. # msgid "" msgstr "" "Project-Id-Version: linux_logo\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2004-03-16 02:02+0100\n" "Last-Translator: Per Øyvind Karlsen \n" "Language-Team: Norwegian Bokmål \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Null" #: ../linux_logo.c:60 msgid "One" msgstr "En" #: ../linux_logo.c:61 msgid "Two" msgstr "To" #: ../linux_logo.c:62 msgid "Three" msgstr "Tre" #: ../linux_logo.c:63 msgid "Four" msgstr "Fire" #: ../linux_logo.c:64 msgid "Five" msgstr "Fem" #: ../linux_logo.c:65 msgid "Six" msgstr "Seks" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sju" #: ../linux_logo.c:67 msgid "Eight" msgstr "Åtte" #: ../linux_logo.c:68 msgid "Nine" msgstr "Ni" #: ../linux_logo.c:69 msgid "Many" msgstr "Mange" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Fire" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Fire" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Ni" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Versjon #V, Kompilert #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Totalt\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Versjon #V\n" "Kompilert #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Totalt\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Prosessor" #: ../defaults.h:15 msgid "Processors" msgstr "Prosessorer" linux_logo-5.11/po/es.po0000600004737600013330000000466411470322214015334 0ustar vweaver1dongarra# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: linux_logo 3.9b\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2001-06-05 19:00+0200\n" "Last-Translator: Javier Fernandez-Sanguino Pea \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplulars=2; plural=n != 1;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Cero" #: ../linux_logo.c:60 msgid "One" msgstr "Un" #: ../linux_logo.c:61 msgid "Two" msgstr "Dos" #: ../linux_logo.c:62 msgid "Three" msgstr "Tres" #: ../linux_logo.c:63 msgid "Four" msgstr "Cuatro" #: ../linux_logo.c:64 msgid "Five" msgstr "Cinco" #: ../linux_logo.c:65 msgid "Six" msgstr "Seis" #: ../linux_logo.c:66 msgid "Seven" msgstr "Siete" #: ../linux_logo.c:67 msgid "Eight" msgstr "Ocho" #: ../linux_logo.c:68 msgid "Nine" msgstr "Nueve" #: ../linux_logo.c:69 msgid "Many" msgstr "Muchos" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Cuatro" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Cuatro" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Nueve" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Versin #V, Compilada en #C\n" "#N #M #X #T #P, #R RAM, #B Total Bogomips\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Versin #V\n" "Compilado #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Totales\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Procesador" #: ../defaults.h:15 msgid "Processors" msgstr "Procesadors" linux_logo-5.11/po/fr.po0000600004737600013330000000471111470322214015325 0ustar vweaver1dongarra# linuxlogo fr.po. # Copyright (C) 2001 Free Software Foundation, Inc. # Sbastien Oustric , 2001. # msgid "" msgstr "" "Project-Id-Version: linuxlogo 3.9b4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 16:22-0500\n" "PO-Revision-Date: 2001-10-25 21:18+0200\n" "Last-Translator: Sbastien Oustric \n" "Language-Team: GNOME French Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplulars=2; plural=n>1;\n" #: ../linux_logo.c:59 msgid "Zero" msgstr "Aucun" #: ../linux_logo.c:60 msgid "One" msgstr "Un" #: ../linux_logo.c:61 msgid "Two" msgstr "Deux" #: ../linux_logo.c:62 msgid "Three" msgstr "Trois" #: ../linux_logo.c:63 msgid "Four" msgstr "Quatre" #: ../linux_logo.c:64 msgid "Five" msgstr "Cinq" #: ../linux_logo.c:65 msgid "Six" msgstr "Six" #: ../linux_logo.c:66 msgid "Seven" msgstr "Sept" #: ../linux_logo.c:67 msgid "Eight" msgstr "Huit" #: ../linux_logo.c:68 msgid "Nine" msgstr "Neuf" #: ../linux_logo.c:69 msgid "Many" msgstr "Plusieurs" #: ../linux_logo.c:178 msgid "Uptime " msgstr "" #: ../linux_logo.c:182 msgid "day" msgstr "" #: ../linux_logo.c:182 msgid "days" msgstr "" #: ../linux_logo.c:188 #, fuzzy msgid "hour" msgstr "Quatre" #: ../linux_logo.c:188 #, fuzzy msgid "hours" msgstr "Quatre" #: ../linux_logo.c:193 #, fuzzy msgid "minute" msgstr "Neuf" #: ../linux_logo.c:193 msgid "minutes" msgstr "" #: ../linux_logo.c:316 msgid "Load Average" msgstr "" #. This is the default format of the output file. See the README for more *#. \* information on how to configure this option. #: ../defaults.h:8 msgid "" "#O Version #V, Compiled #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V, Compil #C\n" "#N #M #X #T #P, #R RAM, #B Bogomips Total\n" "#H\n" #: ../defaults.h:9 msgid "" "#O Version #V\n" "Compiled #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" msgstr "" "#O Version #V\n" "Compil #C\n" "#N #M #X #T #P, #R RAM\n" "#B Bogomips Total\n" "#H\n" #. Plural. With the coming of i18n you really can't assume plurals can #. be made by adding a string to the end. Hopefully this can fix it for #. most languages. If they require significant word-order changes then #. we'll have even more problems #: ../defaults.h:14 msgid "Processor" msgstr "Processeur" #: ../defaults.h:15 msgid "Processors" msgstr "Processeurs"