Files
mars-flaim/flaim/src/flmstat.h
ahodgkinson 7de8b6be39 Ported FLAIM to FTK.
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@509 0109f412-320b-0410-ab79-c3e0c5ffbbe6
2006-06-05 22:59:36 +00:00

119 lines
3.3 KiB
C

//-------------------------------------------------------------------------
// Desc: Routines for updating statistics - for monitoring - definitions.
// Tabs: 3
//
// Copyright (c) 1997-2006 Novell, Inc. All Rights Reserved.
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of version 2 of the GNU General Public
// License as published by the Free Software Foundation.
//
// 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, contact Novell, Inc.
//
// To contact Novell about this file by physical or electronic mail,
// you may find current contact information at www.novell.com
//
// $Id: flmstat.h 12263 2006-01-19 14:43:23 -0700 (Thu, 19 Jan 2006) dsanders $
//-------------------------------------------------------------------------
#ifndef FLMSTAT_H
#define FLMSTAT_H
#include "fpackon.h"
// IMPORTANT NOTE: No other include files should follow this one except
// for fpackoff.h
/**************************************************************************
Various function prototypes.
**************************************************************************/
RCODE flmStatGetDb(
FLM_STATS * pFlmStats,
void * pFile,
FLMUINT uiLowStart,
DB_STATS ** ppDbStatsRV,
FLMUINT * puiDbAllocSeqRV,
FLMUINT * puiDbTblPosRV);
RCODE flmStatGetLFile(
DB_STATS * pDbStats,
FLMUINT uiLFileNum,
FLMUINT uiLfType,
FLMUINT uiLowStart,
LFILE_STATS ** ppLFileStatsRV,
FLMUINT * puiLFileAllocSeqRV,
FLMUINT * puiLFileTblPosRV);
void flmStatReset(
FLM_STATS * pStats,
FLMBOOL bSemAlreadyLocked,
FLMBOOL bFree);
void flmStatStart(
FLM_STATS * pStats);
void flmStatStop(
FLM_STATS * pStats);
RCODE flmStatInit(
FLM_STATS * pStats,
FLMBOOL bEnableSharing);
void flmUpdateBlockIOStats(
BLOCKIO_STATS * pDest,
BLOCKIO_STATS * pSrc);
RCODE flmStatUpdate(
FLM_STATS * pDestStats,
FLM_STATS * pSrcStats);
void flmFreeSavedQueries(
FLMBOOL bMutexAlreadyLocked);
void flmSaveQuery(
HFCURSOR hCursor);
BLOCKIO_STATS * flmGetBlockIOStatPtr(
DB_STATS * pDbStats,
LFILE_STATS * pLFileStats,
FLMBYTE * pBlk,
FLMUINT uiBlkType);
void flmAddElapTime(
F_TMSTAMP * pStartTime,
FLMUINT64 * pui64ElapMilli);
/****************************************************************************
Desc: This routine updates statistics from one DISKIO_STAT structure
into another.
****************************************************************************/
FINLINE void flmUpdateDiskIOStats(
DISKIO_STAT * pDest,
DISKIO_STAT * pSrc)
{
pDest->ui64Count += pSrc->ui64Count;
pDest->ui64TotalBytes += pSrc->ui64TotalBytes;
pDest->ui64ElapMilli += pSrc->ui64ElapMilli;
}
/****************************************************************************
Desc:
****************************************************************************/
FINLINE void flmUpdateCountTimeStats(
F_COUNT_TIME_STAT * pDest,
F_COUNT_TIME_STAT * pSrc)
{
pDest->ui64Count += pSrc->ui64Count;
pDest->ui64ElapMilli += pSrc->ui64ElapMilli;
}
#include "fpackoff.h"
#endif