/*
 * sum_flt_3f.h
 *
 *  Created on: 30-07-2019
 *      Author: Krzysztof Jakubczyk
 */

#ifndef SUM_FLT_3F_H_
#define SUM_FLT_3F_H_

#include "tdefs.h"

struct sum_flt_3f_logic
{
	float *in_l1a;
	float *in_l1b;
	float *in_l2a;
	float *in_l2b;
	float *in_l3a;
	float *in_l3b;
	float *in_3i0a;
	float *in_3i0b;
	float *out_l1;
	float *out_l2;
	float *out_l3;
	float *out_3i0;
};

struct sum_flt_3f_io
{
	u32 in_l1a_float_in;
	u32 in_l1b_float_in;
	u32 in_l2a_float_in;
	u32 in_l2b_float_in;
	u32 in_l3a_float_in;
	u32 in_l3b_float_in;
	u32 in_3i0a_float_in;
	u32 in_3i0b_float_in;
	u32 out_l1_float_out;
	u32 out_l2_float_out;
	u32 out_l3_float_out;
	u32 out_3i0_float_out;
}__attribute__((__packed__));

struct sum_flt_3f_params
{
	double m1;
	double m2;
}__attribute__((__packed__));

struct sum_flt_3f_args
{
	struct sum_flt_3f_io io;
	struct sum_flt_3f_params params;
//	u16 crc;
}__attribute__((__packed__));

extern void sum_flt_3f(void *args, void *logic);
extern int sum_flt_3f_initlog(void *arguments, void *logic);

#endif /* SUM_FLT_3F_H_ */
