⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dstates.c

📁 RAM Defragmentation tools
💻 C
字号:
/* dstates.c - defrag finite state machine implementation */#include "cvstags.h"CVSTAG(dstates, "$Id: dstates.c,v 1.14 2005/05/10 16:42:20 knilch Exp $")/* Ramdefrag Defragmentation State Handling *  (c) 2004, 2005 Tobias 'knilch' Jordan <knilch@users.sourceforge.net> * *  Boomtime, the 42nd day of Chaos in the YOLD 3170 * *  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 */#ifdef HAVE_CONFIG_H#  include <config.h>#endif		/* THE FIVE COMMANDMENTS (THE PENTABARF) */#include <time.h>#include <stdio.h>#include "dstates.h"#include "support.h" /* for gettext-#defines */#include "configf.h"#include "numbers.h"char *getphase(int phaseid){	/*	 *                       KNOW YE THIS O MAN OF FAITH!	 */	if (phaseid <= 0) {		return (_("[analyzing]"));	/*   I - There is no Goddess but Goddess and She is Your Goddess. There	 *       is no Erisian Movement but The Erisian Movement and it is The	 *       Erisian Movement. And every Golden Apple Corps is the beloved	 *       home of a Golden Worm.	 */	} else if (phaseid < 23) {		return (_("[optimizing phase]"));	/*  II - A Discordian Shall Always use the Official Discordian Document	 *       Numbering System.	 */	} else if (phaseid < 42) {		return (_("[deep optimizing phase]"));	/* III - A Discordian is Required during his early Illumination to Go Off	 *       Alone & Partake Joyously of a Hot Dog on a Friday; this Devotive	 *       Ceremony to Remonstrate against the popular Paganisms of the Day:	 *       of Catholic Christendom (no meat on Friday), of Judaism (no meat	 *       of Pork), of Hindic Peoples (no meat of Beef), of Buddhists (no	 *       meat of animal), and of Discordians (no Hot Dog Buns).	 */	} else if (phaseid < 73) {		return (_("[rearranging phase]"));	/*  IV - A Discordian shall Partake of No Hot Dog Buns, for Such was the	 *       Solace of Our Goddess when She was Confronted with The Original	 *       Snub.	 */	} else if (phaseid < 94) {		return (_("[deep rearranging phase]"));	/*   V - A Discordian is Prohibited of Believing what he reads.	 */	} else {		return (_("[clean-up phase]"));	}	/*  IT IS SO WRITTEN! SO BE IT. HAIL DISCORDIA!  *	 *  PROSECUTORS WILL BE TRANSGRESSICUTED.        */}char *getstatus(int phaseid, char *buf, int mr){	/*	 * The PENTABARF was discovered by the hermit Apostle Zarathud in the	 * Fifth Year of The Caterpillar. He found them carved in gilded stone,	 * while building a sun deck for his cave, but their import was lost for	 * they were written in a mysterious cypher. However, after 10 weeks &	 * 11 hours of intensive scrutiny he discerned that the message could be	 * read by standing on his head and viewing it upside down.	 */	struct my_cnf x;	time_t t;	unsigned int ofp, nfp, ofpp, nfpp, oss, nss, odf, ndf;	if (phaseid >= 100) {		readcf(&x);		writecf(x);		t = time(NULL);		ofpp = gpctt(t - x.ts);		ofp = (23 * 23 * 2 * 3 * ofpp) / ((5 + 5) * (5 + 5) *						  (5 + 5) * (5 + 5));		oss = gssi(ofpp);		odf = (23 * ofp) / ((5 + 5) * (5 + 5));		nfpp = gpctp(ofpp);		nfp = (23 * 23 * 2 * 3 * nfpp) / ((5 + 5) * (5 + 5) *						  (5 + 5) * (5 + 5));		nss = gssi(0);		ndf = 5;		if (mr) {#ifdef HAVE_SNPRINTF			snprintf(buf, STAT_MAX,#else#warning "no working snprintf! using sprintf, which is prone to buffer overflows!"			sprintf(buf,#endif				"%d.%02d %d.%02d %d\n"				"%d.%02d %d.%02d %d\n",				ofpp / 100, ofpp % 100, oss / 100,				oss % 100, odf, nfpp / 100, nfpp % 100,				nss / 100, nss % 100, ndf);#undef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE#ifdef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE			)#endif		} else {#ifdef HAVE_SNPRINTF			snprintf(buf, STAT_MAX,#else#warning "no working snprintf! using sprintf, which is prone to buffer overflows!"			sprintf(buf,#endif				_("Statistics:\n"				  "----before optimization----\n"				  "fragmented pages: %d (%d.%02d%%)\n"				  "system speed index: %d.%02d\n"				  "deep fragmentation nodes: %d\n"				  "----after optimization----\n"				  "fragmented pages: %d (%d.%02d%%)\n"				  "system speed index: %d.%02d\n"				  "deep fragmentation nodes: %d\n"),				ofp, ofpp / 100, ofpp % 100, oss / 100,				oss % 100, odf, nfp, nfpp / 100,				nfpp % 100, nss / 100, nss % 100, ndf);#ifdef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE			)#endif		}	} else {		snprintf(buf, STAT_MAX, _("getstatus() error: current status "					"not available.\n"));	}	return buf;}char *analyze(char *buf, int mr) {	/*	 *       Do  You  Remember?	 *	 * 1. Polite children will always remember that a church is the ______ of _____.	 *	 */	struct my_cnf x;	time_t t;	unsigned int fp, fpp, ss, df;	readcf(&x);	t = time(NULL);	fpp = gpctt(t - x.ts);	fp = (23 * 23 * 2 * 3 * fpp) / ((5 + 5) * (5 + 5) * (5 + 5) *					(5 + 5));	ss = gssi(5 * (5 + 5) * (5 + 5));	df = (23 * fp) / ((5 + 5) * (5 + 5));	if (mr) {#ifdef HAVE_SNPRINTF		snprintf(buf, STAT_MAX,#else#warning "no working snprintf! using sprintf, which is prone to buffer overflows!"		sprintf(buf,#endif			"%d.%03d %d.%02d %d\n", fpp / 100, fpp % 100,			ss / 100, ss % 100, df);#ifdef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE		)#endif	} else {#ifdef HAVE_SNPRINTF		snprintf(buf, STAT_MAX,#else#warning "no working snprintf! using sprintf, which is prone to buffer overflows!"		sprintf(buf,#endif			_("RAM analysis results:\n"			  "fragmented pages: %d (%d.%02d%%)\n"			  "system speed index: %d.%02d\n"			  "deep fragmentation nodes: %d\n"),			fp, fpp / 100, fpp % 100, ss / 100, ss % 100, df);#ifdef VI_SYNTAX_HIGHLIGHTING_DOESNT_WORK_HERE		)#endif	}	return buf;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -