91 lines
2.0 KiB
C
91 lines
2.0 KiB
C
/*
|
|
* eth_ench.h
|
|
*
|
|
* Created on: 17-05-2024
|
|
* Author: Krzysztof Jakubczyk
|
|
*/
|
|
|
|
#ifndef ETH_ENCH_H_
|
|
#define ETH_ENCH_H_
|
|
|
|
#include "tdefs.h"
|
|
#include "mkstream.h"
|
|
#include "helper.h"
|
|
#include "comm.h"
|
|
|
|
#define ETH_ENCH_STREAMS (ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS)
|
|
|
|
struct eth_ench_logic
|
|
{
|
|
struct binary_io clr;
|
|
struct binary_io ping;
|
|
struct stream_frame stream_out[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
struct binary_io stream_act[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
struct binary_io link[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
float *stream_errs[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
float *stream_synt_errs[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
float *ping_time;
|
|
u16 s_delay;
|
|
u32 state;
|
|
u32 tcnt;
|
|
u32 prev_pos[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
u32 link_timeout_cnt[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
u32 link_up_cnt[ETH_MAX_RECV_STREAMS-ETH_MAX_STREAMS];
|
|
u16 prev_timestamp;
|
|
};
|
|
|
|
struct eth_ench_io
|
|
{
|
|
u32 clr_in;
|
|
u32 stream3_ptr_out;
|
|
u32 stream3_act_out;
|
|
u32 stream4_ptr_out;
|
|
u32 stream4_act_out;
|
|
u32 stream5_ptr_out;
|
|
u32 stream5_act_out;
|
|
u32 stream6_ptr_out;
|
|
u32 stream6_act_out;
|
|
u32 stream7_ptr_out;
|
|
u32 stream7_act_out;
|
|
u32 link3_out;
|
|
u32 stream3_errs_float_out;
|
|
u32 link4_out;
|
|
u32 stream4_errs_float_out;
|
|
u32 link5_out;
|
|
u32 stream5_errs_float_out;
|
|
u32 link6_out;
|
|
u32 stream6_errs_float_out;
|
|
u32 link7_out;
|
|
u32 stream7_errs_float_out;
|
|
u32 stream3_synt_errs_float_out;
|
|
u32 stream4_synt_errs_float_out;
|
|
u32 stream5_synt_errs_float_out;
|
|
u32 stream6_synt_errs_float_out;
|
|
u32 stream7_synt_errs_float_out;
|
|
}__attribute__((__packed__));
|
|
|
|
|
|
//bits
|
|
#define ETH_EN 0x01
|
|
#define ETH_EN_BCASTS 0x02
|
|
#define ETH_NO_SYNC 0x04
|
|
|
|
struct eth_ench_params
|
|
{
|
|
u32 bits;
|
|
u32 sample_delay;
|
|
u32 multicast_id;
|
|
}__attribute__((__packed__));
|
|
|
|
struct eth_ench_args
|
|
{
|
|
struct eth_ench_io io;
|
|
struct eth_ench_params params;
|
|
// u16 crc;
|
|
}__attribute__((__packed__));
|
|
|
|
extern void ethernet_ench(void *args, void *logic);
|
|
extern int ethernet_ench_initlog(void *arguments, void *logic);
|
|
|
|
#endif
|