//----------------------------------------------------
/**
	\file		hal.h
	\ingroup	ALL

	\brief		Rodic HAL vrstvy

	\author		ConTeK s.r.o., Bazika P.
	\version	01.00
	\date		03.06.2010
*/
//----------------------------------------------------
#ifndef _HAL_H_
#define _HAL_H_

#include "appsets.h"

struct _HAL_CTX;

typedef void (*hmRead_t) (struct _HAL_CTX * const _ctx);			//!< Definice obsluhy cteni v hal
typedef void (*hmWrite_t) (struct _HAL_CTX * const _ctx);			//!< Definice obsluhy zapisu v hal
typedef void (*hmFinalize_t) (const struct _HAL_CTX * const _ctx);	//!< Definice obsluhy ukonceni v hal

//----------------------------------------------------
/**
	\brief	Definice rozhrani hal
*/
//----------------------------------------------------
typedef struct _HAL_CTX
{
	hmRead_t		ReadTick;	//!< Rutina cteni
	hmWrite_t		WriteTick;	//!< Rutina zapisu
	hmFinalize_t	Finalize;	//!< Rutina ukonceni cinnosti

} HAL_CTX;

//----------------------------------------------------
/**
	\brief	Inicializace hal
	\param	_ctx	Kontext hal
*/
//----------------------------------------------------
void HalInitialize(HAL_CTX * const _ctx);

//----------------------------------------------------
/**
	\brief	Ukonceni hal
	\param	_ctx	Kontext hal
*/
//----------------------------------------------------
void HalFinalize(HAL_CTX * const _ctx);

#endif /* _HAL_H_ */
