diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/message/i2o/i2o_lan.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/message/i2o/i2o_lan.h')
-rw-r--r-- | drivers/message/i2o/i2o_lan.h | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/drivers/message/i2o/i2o_lan.h b/drivers/message/i2o/i2o_lan.h new file mode 100644 index 000000000000..561d63304d7e --- /dev/null +++ b/drivers/message/i2o/i2o_lan.h | |||
@@ -0,0 +1,159 @@ | |||
1 | /* | ||
2 | * i2o_lan.h I2O LAN Class definitions | ||
3 | * | ||
4 | * I2O LAN CLASS OSM May 26th 2000 | ||
5 | * | ||
6 | * (C) Copyright 1999, 2000 University of Helsinki, | ||
7 | * Department of Computer Science | ||
8 | * | ||
9 | * This code is still under development / test. | ||
10 | * | ||
11 | * Author: Auvo Häkkinen <Auvo.Hakkinen@cs.Helsinki.FI> | ||
12 | * Juha Sievänen <Juha.Sievanen@cs.Helsinki.FI> | ||
13 | * Taneli Vähäkangas <Taneli.Vahakangas@cs.Helsinki.FI> | ||
14 | */ | ||
15 | |||
16 | #ifndef _I2O_LAN_H | ||
17 | #define _I2O_LAN_H | ||
18 | |||
19 | /* Default values for tunable parameters first */ | ||
20 | |||
21 | #define I2O_LAN_MAX_BUCKETS_OUT 96 | ||
22 | #define I2O_LAN_BUCKET_THRESH 18 /* 9 buckets in one message */ | ||
23 | #define I2O_LAN_RX_COPYBREAK 200 | ||
24 | #define I2O_LAN_TX_TIMEOUT (1*HZ) | ||
25 | #define I2O_LAN_TX_BATCH_MODE 2 /* 2=automatic, 1=on, 0=off */ | ||
26 | #define I2O_LAN_EVENT_MASK 0 /* 0=None, 0xFFC00002=All */ | ||
27 | |||
28 | /* LAN types */ | ||
29 | #define I2O_LAN_ETHERNET 0x0030 | ||
30 | #define I2O_LAN_100VG 0x0040 | ||
31 | #define I2O_LAN_TR 0x0050 | ||
32 | #define I2O_LAN_FDDI 0x0060 | ||
33 | #define I2O_LAN_FIBRE_CHANNEL 0x0070 | ||
34 | #define I2O_LAN_UNKNOWN 0x00000000 | ||
35 | |||
36 | /* Connector types */ | ||
37 | |||
38 | /* Ethernet */ | ||
39 | #define I2O_LAN_AUI (I2O_LAN_ETHERNET << 4) + 0x00000001 | ||
40 | #define I2O_LAN_10BASE5 (I2O_LAN_ETHERNET << 4) + 0x00000002 | ||
41 | #define I2O_LAN_FIORL (I2O_LAN_ETHERNET << 4) + 0x00000003 | ||
42 | #define I2O_LAN_10BASE2 (I2O_LAN_ETHERNET << 4) + 0x00000004 | ||
43 | #define I2O_LAN_10BROAD36 (I2O_LAN_ETHERNET << 4) + 0x00000005 | ||
44 | #define I2O_LAN_10BASE_T (I2O_LAN_ETHERNET << 4) + 0x00000006 | ||
45 | #define I2O_LAN_10BASE_FP (I2O_LAN_ETHERNET << 4) + 0x00000007 | ||
46 | #define I2O_LAN_10BASE_FB (I2O_LAN_ETHERNET << 4) + 0x00000008 | ||
47 | #define I2O_LAN_10BASE_FL (I2O_LAN_ETHERNET << 4) + 0x00000009 | ||
48 | #define I2O_LAN_100BASE_TX (I2O_LAN_ETHERNET << 4) + 0x0000000A | ||
49 | #define I2O_LAN_100BASE_FX (I2O_LAN_ETHERNET << 4) + 0x0000000B | ||
50 | #define I2O_LAN_100BASE_T4 (I2O_LAN_ETHERNET << 4) + 0x0000000C | ||
51 | #define I2O_LAN_1000BASE_SX (I2O_LAN_ETHERNET << 4) + 0x0000000D | ||
52 | #define I2O_LAN_1000BASE_LX (I2O_LAN_ETHERNET << 4) + 0x0000000E | ||
53 | #define I2O_LAN_1000BASE_CX (I2O_LAN_ETHERNET << 4) + 0x0000000F | ||
54 | #define I2O_LAN_1000BASE_T (I2O_LAN_ETHERNET << 4) + 0x00000010 | ||
55 | |||
56 | /* AnyLAN */ | ||
57 | #define I2O_LAN_100VG_ETHERNET (I2O_LAN_100VG << 4) + 0x00000001 | ||
58 | #define I2O_LAN_100VG_TR (I2O_LAN_100VG << 4) + 0x00000002 | ||
59 | |||
60 | /* Token Ring */ | ||
61 | #define I2O_LAN_4MBIT (I2O_LAN_TR << 4) + 0x00000001 | ||
62 | #define I2O_LAN_16MBIT (I2O_LAN_TR << 4) + 0x00000002 | ||
63 | |||
64 | /* FDDI */ | ||
65 | #define I2O_LAN_125MBAUD (I2O_LAN_FDDI << 4) + 0x00000001 | ||
66 | |||
67 | /* Fibre Channel */ | ||
68 | #define I2O_LAN_POINT_POINT (I2O_LAN_FIBRE_CHANNEL << 4) + 0x00000001 | ||
69 | #define I2O_LAN_ARB_LOOP (I2O_LAN_FIBRE_CHANNEL << 4) + 0x00000002 | ||
70 | #define I2O_LAN_PUBLIC_LOOP (I2O_LAN_FIBRE_CHANNEL << 4) + 0x00000003 | ||
71 | #define I2O_LAN_FABRIC (I2O_LAN_FIBRE_CHANNEL << 4) + 0x00000004 | ||
72 | |||
73 | #define I2O_LAN_EMULATION 0x00000F00 | ||
74 | #define I2O_LAN_OTHER 0x00000F01 | ||
75 | #define I2O_LAN_DEFAULT 0xFFFFFFFF | ||
76 | |||
77 | /* LAN class functions */ | ||
78 | |||
79 | #define LAN_PACKET_SEND 0x3B | ||
80 | #define LAN_SDU_SEND 0x3D | ||
81 | #define LAN_RECEIVE_POST 0x3E | ||
82 | #define LAN_RESET 0x35 | ||
83 | #define LAN_SUSPEND 0x37 | ||
84 | |||
85 | /* LAN DetailedStatusCode defines */ | ||
86 | #define I2O_LAN_DSC_SUCCESS 0x00 | ||
87 | #define I2O_LAN_DSC_DEVICE_FAILURE 0x01 | ||
88 | #define I2O_LAN_DSC_DESTINATION_NOT_FOUND 0x02 | ||
89 | #define I2O_LAN_DSC_TRANSMIT_ERROR 0x03 | ||
90 | #define I2O_LAN_DSC_TRANSMIT_ABORTED 0x04 | ||
91 | #define I2O_LAN_DSC_RECEIVE_ERROR 0x05 | ||
92 | #define I2O_LAN_DSC_RECEIVE_ABORTED 0x06 | ||
93 | #define I2O_LAN_DSC_DMA_ERROR 0x07 | ||
94 | #define I2O_LAN_DSC_BAD_PACKET_DETECTED 0x08 | ||
95 | #define I2O_LAN_DSC_OUT_OF_MEMORY 0x09 | ||
96 | #define I2O_LAN_DSC_BUCKET_OVERRUN 0x0A | ||
97 | #define I2O_LAN_DSC_IOP_INTERNAL_ERROR 0x0B | ||
98 | #define I2O_LAN_DSC_CANCELED 0x0C | ||
99 | #define I2O_LAN_DSC_INVALID_TRANSACTION_CONTEXT 0x0D | ||
100 | #define I2O_LAN_DSC_DEST_ADDRESS_DETECTED 0x0E | ||
101 | #define I2O_LAN_DSC_DEST_ADDRESS_OMITTED 0x0F | ||
102 | #define I2O_LAN_DSC_PARTIAL_PACKET_RETURNED 0x10 | ||
103 | #define I2O_LAN_DSC_SUSPENDED 0x11 | ||
104 | |||
105 | struct i2o_packet_info { | ||
106 | u32 offset : 24; | ||
107 | u32 flags : 8; | ||
108 | u32 len : 24; | ||
109 | u32 status : 8; | ||
110 | }; | ||
111 | |||
112 | struct i2o_bucket_descriptor { | ||
113 | u32 context; /* FIXME: 64bit support */ | ||
114 | struct i2o_packet_info packet_info[1]; | ||
115 | }; | ||
116 | |||
117 | /* Event Indicator Mask Flags for LAN OSM */ | ||
118 | |||
119 | #define I2O_LAN_EVT_LINK_DOWN 0x01 | ||
120 | #define I2O_LAN_EVT_LINK_UP 0x02 | ||
121 | #define I2O_LAN_EVT_MEDIA_CHANGE 0x04 | ||
122 | |||
123 | #include <linux/netdevice.h> | ||
124 | #include <linux/fddidevice.h> | ||
125 | |||
126 | struct i2o_lan_local { | ||
127 | u8 unit; | ||
128 | struct i2o_device *i2o_dev; | ||
129 | |||
130 | struct fddi_statistics stats; /* see also struct net_device_stats */ | ||
131 | unsigned short (*type_trans)(struct sk_buff *, struct net_device *); | ||
132 | atomic_t buckets_out; /* nbr of unused buckets on DDM */ | ||
133 | atomic_t tx_out; /* outstanding TXes */ | ||
134 | u8 tx_count; /* packets in one TX message frame */ | ||
135 | u16 tx_max_out; /* DDM's Tx queue len */ | ||
136 | u8 sgl_max; /* max SGLs in one message frame */ | ||
137 | u32 m; /* IOP address of the batch msg frame */ | ||
138 | |||
139 | struct work_struct i2o_batch_send_task; | ||
140 | int send_active; | ||
141 | struct sk_buff **i2o_fbl; /* Free bucket list (to reuse skbs) */ | ||
142 | int i2o_fbl_tail; | ||
143 | spinlock_t fbl_lock; | ||
144 | |||
145 | spinlock_t tx_lock; | ||
146 | |||
147 | u32 max_size_mc_table; /* max number of multicast addresses */ | ||
148 | |||
149 | /* LAN OSM configurable parameters are here: */ | ||
150 | |||
151 | u16 max_buckets_out; /* max nbr of buckets to send to DDM */ | ||
152 | u16 bucket_thresh; /* send more when this many used */ | ||
153 | u16 rx_copybreak; | ||
154 | |||
155 | u8 tx_batch_mode; /* Set when using batch mode sends */ | ||
156 | u32 i2o_event_mask; /* To turn on interesting event flags */ | ||
157 | }; | ||
158 | |||
159 | #endif /* _I2O_LAN_H */ | ||