00001 /* 00002 ** $Id$ 00003 ** 00004 ** perf-event.h 00005 ** 00006 ** Copyright (C) 2002 Sourcefire,Inc 00007 ** Marc Norton <mnorton@sourcefire.com> 00008 ** Dan Roelker <droelker@sourcefire.com> 00009 ** 00010 ** NOTES 00011 ** 5.28.02 - Initial Source Code. Norton/Roelker 00012 ** 00013 ** 00014 ** This program is free software; you can redistribute it and/or modify 00015 ** it under the terms of the GNU General Public License as published by 00016 ** the Free Software Foundation; either version 2 of the License, or 00017 ** (at your option) any later version. 00018 ** 00019 ** This program is distributed in the hope that it will be useful, 00020 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 ** GNU General Public License for more details. 00023 ** 00024 ** You should have received a copy of the GNU General Public License 00025 ** along with this program; if not, write to the Free Software 00026 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00027 ** 00028 */ 00029 00030 #ifndef __PERF_EVENT__ 00031 #define __PERF_EVENT__ 00032 00033 #include "perf.h" 00034 00035 typedef struct _SFEVENT { 00036 00037 UINT64 NQEvents; 00038 UINT64 QEvents; 00039 00040 UINT64 TotalEvents; 00041 00042 } SFEVENT; 00043 00044 typedef struct _SFEVENT_STATS { 00045 00046 UINT64 NQEvents; 00047 UINT64 QEvents; 00048 00049 UINT64 TotalEvents; 00050 00051 double NQPercent; 00052 double QPercent; 00053 00054 } SFEVENT_STATS; 00055 00056 /* 00057 ** These functions are for interfacing with the main 00058 ** perf module. 00059 */ 00060 int InitEventStats(SFEVENT *sfEvent); 00061 int ProcessEventStats(SFEVENT *sfEvent); 00062 00063 /* 00064 ** These functions are external for updating the 00065 ** SFEVENT structure. 00066 */ 00067 int UpdateNQEvents(); 00068 int UpdateQEvents(); 00069 00070 #endif