#ifndef LACZ_H_
#define LACZ_H_

#include <stdint.h>

//#include "pawel_usun_to.h"

#include "tdefs.h"

struct lacz_logic
{
	u8* we_ON;
	u8 we_ON_bit_mask;    
	u8* we_OFF;
	u8 we_OFF_bit_mask;	
	u8* we_zamk1;
	u8 we_zamk1_bit_mask;
	u8* we_zamk2;
	u8 we_zamk2_bit_mask;	
	u8* we_otw1;
	u8 we_otw1_bit_mask;
	u8* we_otw2;
	u8 we_otw2_bit_mask;	
	u8* we_blk_zamk;
	u8 we_blk_zamk_bit_mask;	
	u8* we_blk_otw;
	u8 we_blk_otw_bit_mask;
	
	u8* wy_ON;
	u8 wy_ON_bit_mask;	
	u8* wy_NZG;
	u8 wy_NZG_bit_mask;
	u8* wy_imp_zamk;
	u8 wy_imp_zamk_bit_mask;
	u8* wy_imp_otw;
	u8 wy_imp_otw_bit_mask;
 	
 	u16 licz_t_on;
    u16 licz_t_off;
 	u16 licz_t_nzg; 	
 	u16 licz_nast_on;
    u16 licz_nast_off;
 	u16 licz_nast_nzg; 	
 	u8 we_zamk_pop;
 	u8 we_otw_pop;
 	
};

struct lacz_params
{

   	double t_on; 
    double t_off; 	
   	double t_nzg; 
   	
}__attribute__((__packed__));

struct lacz_io
{
	u32 we_ON;         
	u32 we_OFF;
	u32 we_zamk1;
	u32 we_zamk2;
	u32 we_otw1;
	u32 we_otw2;	
	u32 we_blk_zamk;	
	u32 we_blk_otw;		
	
	u32 wy_ON;
	u32 wy_NZG;
	u32 wy_imp_zamk;
	u32 wy_imp_otw;

}__attribute__((__packed__));

struct lacz_args
{
	struct lacz_io io;
	struct lacz_params params;
}__attribute__((__packed__));

extern void lacz(void *args, void *logic);
extern int lacz_initlog(void *arguments, void *logic);

#endif /*LACZ_H_*/
