29#include <linux/netdevice.h>
30#include <rtnet_port.h>
35#define ETHER1394_REGION_ADDR_LEN 4096
36#define ETHER1394_REGION_ADDR 0xfffff0200000ULL
37#define ETHER1394_REGION_ADDR_END (ETHER1394_REGION_ADDR + ETHER1394_REGION_ADDR_LEN)
40#define ETHER1394_GASP_SPECIFIER_ID 0x00005E
41#define ETHER1394_GASP_SPECIFIER_ID_HI ((ETHER1394_GASP_SPECIFIER_ID >> 8) & 0xffff)
42#define ETHER1394_GASP_SPECIFIER_ID_LO (ETHER1394_GASP_SPECIFIER_ID & 0xff)
43#define ETHER1394_GASP_VERSION 1
45#define ETHER1394_GASP_OVERHEAD (2 * sizeof(quadlet_t))
47#define ETHER1394_GASP_BUFFERS 16
49#define ETH1394_BC_CHANNEL 31
51#define ALL_NODES 0x003f
53#define NODE_SET (ALL_NODES + 1)
55enum eth1394_bc_states { ETHER1394_BC_CLOSED, ETHER1394_BC_OPENED,
56 ETHER1394_BC_CHECK, ETHER1394_BC_ERROR,
58 ETHER1394_BC_STOPPED };
60#define TX_RING_SIZE 32
64 struct list_head list;
70#include <asm/byteorder.h>
73#if defined __BIG_ENDIAN_BITFIELD
74struct eth1394_uf_hdr {
78} __attribute__((packed));
79#elif defined __LITTLE_ENDIAN_BITFIELD
80struct eth1394_uf_hdr {
84} __attribute__((packed));
86#error Unknown bit field type
92#define ETH1394_HDR_LF_UF 0
93#define ETH1394_HDR_LF_FF 1
94#define ETH1394_HDR_LF_LF 2
95#define ETH1394_HDR_LF_IF 3
97#define IP1394_HW_ADDR_LEN 2
108 unsigned char s_uniq_id[ETH_ALEN];
117#define ETHER1394_TIMEOUT 100000
120#if defined __BIG_ENDIAN_BITFIELD
121struct eth1394_ff_hdr {
128} __attribute__((packed));
129#elif defined __LITTLE_ENDIAN_BITFIELD
130struct eth1394_ff_hdr {
137} __attribute__((packed));
139#error Unknown bit field type
143#if defined __BIG_ENDIAN_BITFIELD
144struct eth1394_sf_hdr {
152} __attribute__((packed));
153#elif defined __LITTLE_ENDIAN_BITFIELD
154struct eth1394_sf_hdr {
162} __attribute__((packed));
164#error Unknown bit field type
167#if defined __BIG_ENDIAN_BITFIELD
168struct eth1394_common_hdr {
171} __attribute__((packed));
172#elif defined __LITTLE_ENDIAN_BITFIELD
173struct eth1394_common_hdr {
176} __attribute__((packed));
178#error Unknown bit field type
181struct eth1394_hdr_words {
189 struct eth1394_common_hdr common;
190 struct eth1394_uf_hdr uf;
191 struct eth1394_ff_hdr ff;
192 struct eth1394_sf_hdr sf;
193 struct eth1394_hdr_words words;
196typedef enum {ETH1394_GASP, ETH1394_WRREQ} eth1394_tx_type;
202 int outstanding_pkts;
203 eth1394_tx_type tx_type;
205 struct hpsb_packet *packet;
206 struct eth1394_priv *priv;
207 union eth1394_hdr hdr;
210 unsigned int priority;
215 struct net_device_stats stats;
216 struct hpsb_host *host;
217 u16 maxpayload[NODE_SET];
218 unsigned char sspd[NODE_SET];
220 int broadcast_channel;
221 enum eth1394_bc_states bc_state;
222 struct hpsb_iso *iso;
223 struct pdg_list pdg[ALL_NODES];
227 struct rtskb *tx_skbuff[TX_RING_SIZE];
228 struct rtskb *rx_skbuff[RX_RING_SIZE];
229 struct packet_task ptask_list[20];
235 struct hpsb_host *host;
236 struct rtnet_device *dev;
pipeline_spinlock_t rtdm_lock_t
Lock variable.
Definition driver.h:552