⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtcfg_frame.h

📁 硬实时linux补丁rtai下的网络协议栈 最新
💻 H
字号:
/*** * *  include/rtcfg/rtcfg_frame.h * *  Real-Time Configuration Distribution Protocol * *  Copyright (C) 2003 Jan Kiszka <jan.kiszka@web.de> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */#ifndef __RTCFG_FRAME_H_#define __RTCFG_FRAME_H_#include <linux/init.h>#include <linux/if_packet.h>#include <asm/byteorder.h>#include <rtcfg/rtcfg_event.h>#define ETH_RTCFG                   0x9022#define RTCFG_SKB_PRIO \    RTSKB_PRIO_VALUE(QUEUE_MIN_PRIO-1, RTSKB_DEF_NRT_CHANNEL)#define RTCFG_ID_STAGE_1_CFG        0#define RTCFG_ID_ANNOUNCE_NEW       1#define RTCFG_ID_ANNOUNCE_REPLY     2#define RTCFG_ID_STAGE_2_CFG        3#define RTCFG_ID_STAGE_2_CFG_FRAG   4#define RTCFG_ID_ACK_CFG            5#define RTCFG_ID_READY              6#define RTCFG_ID_HEARTBEAT          7#define RTCFG_ID_DEAD_STATION       8#define RTCFG_ADDRSIZE_MAC          0#define RTCFG_ADDRSIZE_IP           4#define RTCFG_MAX_ADDRSIZE          RTCFG_ADDRSIZE_IP#define RTCFG_FLAG_STAGE_2_DATA     1#define RTCFG_FLAG_READY            2struct rtcfg_frm_head {#if defined(__LITTLE_ENDIAN_BITFIELD)    u8 id:5;    u8 version:3;#elif defined(__BIG_ENDIAN_BITFIELD)    u8 version:3;    u8 id:5;#else    #error unsupported byte order#endif} __attribute__((packed));struct rtcfg_frm_stage_1_cfg {    struct rtcfg_frm_head head;    u8                    addr_type;    u8                    client_addr[0];    u8                    server_addr[0];    u8                    burstrate;    u16                   cfg_len;    u8                    cfg_data[0];} __attribute__((packed));struct rtcfg_frm_announce {    struct rtcfg_frm_head head;    u8                    addr_type;    u8                    addr[0];    u8                    flags;    u8                    burstrate;} __attribute__((packed));struct rtcfg_frm_stage_2_cfg {    struct rtcfg_frm_head head;    u8                    flags;    u32                   stations;    u16                   heartbeat_period;    u32                   cfg_len;    u8                    cfg_data[0];} __attribute__((packed));struct rtcfg_frm_stage_2_cfg_frag {    struct rtcfg_frm_head head;    u32                   frag_offs;    u8                    cfg_data[0];} __attribute__((packed));struct rtcfg_frm_ack_cfg {    struct rtcfg_frm_head head;    u32                   ack_len;} __attribute__((packed));struct rtcfg_frm_simple {    struct rtcfg_frm_head head;} __attribute__((packed));struct rtcfg_frm_dead_station {    struct rtcfg_frm_head head;    u8                    addr_type;    u8                    logical_addr[0];    u8                    physical_addr[32];} __attribute__((packed));int rtcfg_send_stage_1(struct rtcfg_connection *conn);int rtcfg_send_stage_2(struct rtcfg_connection *conn, int send_data);int rtcfg_send_stage_2_frag(struct rtcfg_connection *conn);int rtcfg_send_announce_new(int ifindex);int rtcfg_send_announce_reply(int ifindex, u8 *dest_mac_addr);int rtcfg_send_ack(int ifindex);int rtcfg_send_dead_station(struct rtcfg_connection *conn);int rtcfg_send_simple_frame(int ifindex, int frame_id, u8 *dest_addr);#define rtcfg_send_ready(ifindex)                                   \    rtcfg_send_simple_frame(ifindex, RTCFG_ID_READY, NULL)#define rtcfg_send_heartbeat(ifindex)                               \    rtcfg_send_simple_frame(ifindex, RTCFG_ID_HEARTBEAT,            \                            device[ifindex].spec.clt.srv_mac_addr)int __init rtcfg_init_frames(void);void rtcfg_cleanup_frames(void);#endif /* __RTCFG_FRAME_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -