25 #ifndef __TDMA_PROTO_H_ 26 #define __TDMA_PROTO_H_ 30 #include <rtmac/tdma/tdma.h> 33 #define TDMA_FRM_VERSION 0x0201 35 #define TDMA_FRM_SYNC 0x0000 36 #define TDMA_FRM_REQ_CAL 0x0010 37 #define TDMA_FRM_RPL_CAL 0x0011 40 struct tdma_frm_head {
43 } __attribute__((packed));
46 #define SYNC_FRM(head) ((struct tdma_frm_sync *)(head)) 48 struct tdma_frm_sync {
49 struct tdma_frm_head head;
53 } __attribute__((packed));
56 #define REQ_CAL_FRM(head) ((struct tdma_frm_req_cal *)(head)) 58 struct tdma_frm_req_cal {
59 struct tdma_frm_head head;
62 u64 reply_slot_offset;
63 } __attribute__((packed));
66 #define RPL_CAL_FRM(head) ((struct tdma_frm_rpl_cal *)(head)) 68 struct tdma_frm_rpl_cal {
69 struct tdma_frm_head head;
70 u64 request_xmit_stamp;
73 } __attribute__((packed));
76 void tdma_xmit_sync_frame(
struct tdma_priv *tdma);
77 int tdma_xmit_request_cal_frame(
struct tdma_priv *tdma, u32 reply_cycle,
78 u64 reply_slot_offset);
80 int tdma_rt_packet_tx(
struct rtskb *rtskb,
struct rtnet_device *rtdev);
81 int tdma_nrt_packet_tx(
struct rtskb *rtskb);
83 int tdma_packet_rx(
struct rtskb *rtskb);
85 unsigned int tdma_get_mtu(
struct rtnet_device *rtdev,
unsigned int priority);