/***********************************************
 * File 	: include/linux/ktau/ktau_datatype.h
 * Version	: $Id: ktau_datatype.h,v 1.2 2005/02/25 20:50:28 suravee Exp $
 * ********************************************/
#ifndef _KTAU_DATATYPE_H_
#define _KTAU_DATATYPE_H_

/*
 * This struct is timer data type
 */
typedef struct _ktau_timer{
        unsigned int count;
        unsigned int addr;
        unsigned long long start;
        unsigned long long total;
} ktau_timer;

/*
 * This struct is event data type
 */
typedef struct _ktau_event{
        unsigned int count;
} ktau_event;

/*------------------------------------*/

/*
 * This struct is used for each data type
 */
typedef union _ktau_data{
        ktau_timer timer;
        ktau_event event;
} ktau_data;

/*------------------------------------*/

#define KTAU_TIMER      0
#define KTAU_EVENT      1

/*
 * This struct is used in each entry of the
 * hash table
 */
typedef struct _h_ent{
        unsigned int type;
        ktau_data data;
} h_ent;

/*
 * This struct is used to wrap over each 
 * hash table entry when output to ktau_proc 
 */
typedef struct _o_ent{
        unsigned int index;
	h_ent entry;	
} o_ent;

/*
 * This struct is the output to ktau_proc
 */
typedef struct _ktau_output{
	unsigned int size;
 	unsigned int pid;
	o_ent *ent_lst;
} ktau_output;

#endif /*_KTAU_DATATYPE_H_*/
