cmdpkt.h

来自「LINUX 2.6.17.4的源码」· C头文件 代码 · 共 184 行

H
184
字号
/*** -----------------------------------------------------------------------------****  Perle Specialix driver for Linux**  Ported from existing RIO Driver for SCO sources. * *  (C) 1990 - 2000 Specialix International Ltd., Byfleet, Surrey, UK. * *      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.****	Module		: cmdpkt.h**	SID		: 1.2**	Last Modified	: 11/6/98 11:34:09**	Retrieved	: 11/6/98 11:34:20****  ident @(#)cmdpkt.h	1.2**** -----------------------------------------------------------------------------*/#ifndef __rio_cmdpkt_h__#define __rio_cmdpkt_h__#ifdef SCCS_LABELS#ifndef lintstatic char *_cmdpkt_h_sccs_ = "@(#)cmdpkt.h	1.2";#endif#endif/*** overlays for the data area of a packet. Used in both directions** (to build a packet to send, and to interpret a packet that arrives)** and is very inconvenient for MIPS, so they appear as two separate** structures - those used for modifying/reading packets on the card** and those for modifying/reading packets in real memory, which have an _M** suffix.*/#define	RTA_BOOT_DATA_SIZE (PKT_MAX_DATA_LEN-2)/*** The boot information packet looks like this:** This structure overlays a PktCmd->CmdData structure, and so starts** at Data[2] in the actual pkt!*/struct BootSequence {	u16 NumPackets;	u16 LoadBase;	u16 CodeSize;};#define	BOOT_SEQUENCE_LEN	8struct SamTop {	u8 Unit;	u8 Link;};struct CmdHdr {	u8 PcCommand;	union {		u8 PcPhbNum;		u8 PcLinkNum;		u8 PcIDNum;	} U0;};struct PktCmd {	union {		struct {			struct CmdHdr CmdHdr;			struct BootSequence PcBootSequence;		} S1;		struct {			u16 PcSequence;			u8 PcBootData[RTA_BOOT_DATA_SIZE];		} S2;		struct {			u16 __crud__;			u8 PcUniqNum[4];	/* this is really a uint. */			u8 PcModuleTypes;	/* what modules are fitted */		} S3;		struct {			struct CmdHdr CmdHdr;			u8 __undefined__;			u8 PcModemStatus;			u8 PcPortStatus;			u8 PcSubCommand;	/* commands like mem or register dump */			u16 PcSubAddr;	/* Address for command */			u8 PcSubData[64];	/* Date area for command */		} S4;		struct {			struct CmdHdr CmdHdr;			u8 PcCommandText[1];			u8 __crud__[20];			u8 PcIDNum2;	/* It had to go somewhere! */		} S5;		struct {			struct CmdHdr CmdHdr;			struct SamTop Topology[LINKS_PER_UNIT];		} S6;	} U1;};struct PktCmd_M {	union {		struct {			struct {				u8 PcCommand;				union {					u8 PcPhbNum;					u8 PcLinkNum;					u8 PcIDNum;				} U0;			} CmdHdr;			struct {				u16 NumPackets;				u16 LoadBase;				u16 CodeSize;			} PcBootSequence;		} S1;		struct {			u16 PcSequence;			u8 PcBootData[RTA_BOOT_DATA_SIZE];		} S2;		struct {			u16 __crud__;			u8 PcUniqNum[4];	/* this is really a uint. */			u8 PcModuleTypes;	/* what modules are fitted */		} S3;		struct {			u16 __cmd_hdr__;			u8 __undefined__;			u8 PcModemStatus;			u8 PcPortStatus;			u8 PcSubCommand;			u16 PcSubAddr;			u8 PcSubData[64];		} S4;		struct {			u16 __cmd_hdr__;			u8 PcCommandText[1];			u8 __crud__[20];			u8 PcIDNum2;	/* Tacked on end */		} S5;		struct {			u16 __cmd_hdr__;			struct Top Topology[LINKS_PER_UNIT];		} S6;	} U1;};#define Command		U1.S1.CmdHdr.PcCommand#define PhbNum		U1.S1.CmdHdr.U0.PcPhbNum#define IDNum		U1.S1.CmdHdr.U0.PcIDNum#define IDNum2		U1.S5.PcIDNum2#define LinkNum		U1.S1.CmdHdr.U0.PcLinkNum#define Sequence	U1.S2.PcSequence#define BootData	U1.S2.PcBootData#define BootSequence	U1.S1.PcBootSequence#define UniqNum		U1.S3.PcUniqNum#define ModemStatus	U1.S4.PcModemStatus#define PortStatus	U1.S4.PcPortStatus#define SubCommand	U1.S4.PcSubCommand#define SubAddr		U1.S4.PcSubAddr#define SubData		U1.S4.PcSubData#define CommandText	U1.S5.PcCommandText#define RouteTopology	U1.S6.Topology#define ModuleTypes	U1.S3.PcModuleTypes#endif

⌨️ 快捷键说明

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