Import 2.3.18pre1
[davej-history.git] / drivers / net / rclanmtl.h
blob2e594440cdf294a342fc48a079cc9403fe9acd6c
1 /*
2 ** *************************************************************************
3 **
4 **
5 ** R C L A N M T L . H $Revision: 6 $
6 **
7 **
8 ** RedCreek I2O LAN Message Transport Layer header file.
9 **
10 ** ---------------------------------------------------------------------
11 ** --- Copyright (c) 1997-1999, RedCreek Communications Inc. ---
12 ** --- All rights reserved. ---
13 ** ---------------------------------------------------------------------
15 ** File Description:
17 ** Header file for host I2O (Intelligent I/O) LAN message transport layer
18 ** API and data types.
20 ** This program is free software; you can redistribute it and/or modify
21 ** it under the terms of the GNU General Public License as published by
22 ** the Free Software Foundation; either version 2 of the License, or
23 ** (at your option) any later version.
25 ** This program is distributed in the hope that it will be useful,
26 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
27 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 ** GNU General Public License for more details.
30 ** You should have received a copy of the GNU General Public License
31 ** along with this program; if not, write to the Free Software
32 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
34 ** *************************************************************************
37 #ifndef RCLANMTL_H
38 #define RCLANMTL_H
40 /* Linux specific includes */
41 #define kprintf printk
42 #ifdef RC_LINUX_MODULE /* linux modules need non-library version of string functions */
43 #include <linux/string.h>
44 #else
45 #include <string.h>
46 #endif
48 /* PCI/45 Configuration space values */
49 #define RC_PCI45_VENDOR_ID 0x4916
50 #define RC_PCI45_DEVICE_ID 0x1960
53 /* RedCreek API function return values */
54 #define RC_RTN_NO_ERROR 0
55 #define RC_RTN_I2O_NOT_INIT 1
56 #define RC_RTN_FREE_Q_EMPTY 2
57 #define RC_RTN_TCB_ERROR 3
58 #define RC_RTN_TRANSACTION_ERROR 4
59 #define RC_RTN_ADAPTER_ALREADY_INIT 5
60 #define RC_RTN_MALLOC_ERROR 6
61 #define RC_RTN_ADPTR_NOT_REGISTERED 7
62 #define RC_RTN_MSG_REPLY_TIMEOUT 8
63 #define RC_RTN_NO_I2O_STATUS 9
64 #define RC_RTN_NO_FIRM_VER 10
65 #define RC_RTN_NO_LINK_SPEED 11
67 /* Driver capability flags */
68 #define WARM_REBOOT_CAPABLE 0x01
70 /* scalar data types */
71 typedef unsigned char U8;
72 typedef unsigned char* PU8;
73 typedef unsigned short U16;
74 typedef unsigned short* PU16;
75 typedef unsigned long U32;
76 typedef unsigned long* PU32;
77 typedef unsigned long BF;
78 typedef int RC_RETURN;
81 /*
82 ** type PFNWAITCALLBACK
84 ** pointer to void function - type used for WaitCallback in some functions
86 typedef void (*PFNWAITCALLBACK)(void); /* void argument avoids compiler complaint */
89 ** type PFNTXCALLBACK
91 ** Pointer to user's transmit callback function. This user function is
92 ** called from RCProcI2OMsgQ() when packet have been transmitted from buffers
93 ** given in the RCI2OSendPacket() function. BufferContext is a pointer to
94 ** an array of 32 bit context values. These are the values the user assigned
95 ** and passed in the TCB to the RCI2OSendPacket() function. PcktCount
96 ** indicates the number of buffer context values in the BufferContext[] array.
97 ** The User's TransmitCallbackFunction should recover (put back in free queue)
98 ** the packet buffers associated with the buffer context values.
100 typedef void (*PFNTXCALLBACK)(U32 Status,
101 U16 PcktCount,
102 PU32 BufferContext,
103 U16 AdaterID);
106 ** type PFNRXCALLBACK
108 ** Pointer to user's receive callback function. This user function
109 ** is called from RCProcI2OMsgQ() when packets have been received into
110 ** previously posted packet buffers throught the RCPostRecvBuffers() function.
111 ** The received callback function should process the Packet Descriptor Block
112 ** pointed to by PacketDescBlock. See Packet Decription Block below.
114 typedef void (*PFNRXCALLBACK)(U32 Status,
115 U8 PktCount,
116 U32 BucketsRemain,
117 PU32 PacketDescBlock,
118 U16 AdapterID);
121 ** type PFNCALLBACK
123 ** Pointer to user's generic callback function. This user function
124 ** can be passed to LANReset or LANShutdown and is called when the
125 ** the reset or shutdown is complete.
126 ** Param1 and Param2 are invalid for LANReset and LANShutdown.
128 typedef void (*PFNCALLBACK)(U32 Status,
129 U32 Param1,
130 U32 Param2,
131 U16 AdapterID);
134 ** Status - Transmit and Receive callback status word
136 ** A 32 bit Status is returned to the TX and RX callback functions. This value
137 ** contains both the reply status and the detailed status as follows:
139 ** 32 24 16 0
140 ** +------+------+------------+
141 ** | Reply| | Detailed |
142 ** |Status| 0 | Status |
143 ** +------+------+------------+
145 ** Reply Status and Detailed Status of zero indicates No Errors.
147 /* reply message status defines */
148 #define I2O_REPLY_STATUS_SUCCESS 0x00
149 #define I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER 0x02
150 #define I2O_REPLY_STATUS_TRANSACTION_ERROR 0x0A
153 /* DetailedStatusCode defines */
154 #define I2O_LAN_DSC_SUCCESS 0x0000
155 #define I2O_LAN_DSC_DEVICE_FAILURE 0x0001
156 #define I2O_LAN_DSC_DESTINATION_NOT_FOUND 0x0002
157 #define I2O_LAN_DSC_TRANSMIT_ERROR 0x0003
158 #define I2O_LAN_DSC_TRANSMIT_ABORTED 0x0004
159 #define I2O_LAN_DSC_RECEIVE_ERROR 0x0005
160 #define I2O_LAN_DSC_RECEIVE_ABORTED 0x0006
161 #define I2O_LAN_DSC_DMA_ERROR 0x0007
162 #define I2O_LAN_DSC_BAD_PACKET_DETECTED 0x0008
163 #define I2O_LAN_DSC_OUT_OF_MEMORY 0x0009
164 #define I2O_LAN_DSC_BUCKET_OVERRUN 0x000A
165 #define I2O_LAN_DSC_IOP_INTERNAL_ERROR 0x000B
166 #define I2O_LAN_DSC_CANCELED 0x000C
167 #define I2O_LAN_DSC_INVALID_TRANSACTION_CONTEXT 0x000D
168 #define I2O_LAN_DSC_DESTINATION_ADDRESS_DETECTED 0x000E
169 #define I2O_LAN_DSC_DESTINATION_ADDRESS_OMITTED 0x000F
170 #define I2O_LAN_DSC_PARTIAL_PACKET_RETURNED 0x0010
174 ** Packet Description Block (Received packets)
176 ** A pointer to this block structure is returned to the ReceiveCallback
177 ** function. It contains the list of packet buffers which have either been
178 ** filled with a packet or returned to host due to a LANReset function.
179 ** Currently there will only be one packet per receive bucket (buffer) posted.
181 ** 32 24 0
182 ** +-----------------------+ -\
183 ** | Buffer 1 Context | \
184 ** +-----------------------+ \
185 ** | 0xC0000000 | / First Bucket Descriptor
186 ** +-----+-----------------+ /
187 ** | 0 | packet 1 length | /
188 ** +-----------------------+ -\
189 ** | Buffer 2 Context | \
190 ** +-----------------------+ \
191 ** | 0xC0000000 | / Second Bucket Descriptor
192 ** +-----+-----------------+ /
193 ** | 0 | packet 2 length | /
194 ** +-----+-----------------+ -
195 ** | ... | ----- more bucket descriptors
196 ** +-----------------------+ -\
197 ** | Buffer n Context | \
198 ** +-----------------------+ \
199 ** | 0xC0000000 | / Last Bucket Descriptor
200 ** +-----+-----------------+ /
201 ** | 0 | packet n length | /
202 ** +-----+-----------------+ -
204 ** Buffer Context values are those given to adapter in the TCB on calls to
205 ** RCPostRecvBuffers().
212 ** Transaction Control Block (TCB) structure
214 ** A structure like this is filled in by the user and passed by reference to
215 ** RCI2OSendPacket() and RCPostRecvBuffers() functions. Minimum size is five
216 ** 32-bit words for one buffer with one segment descriptor.
217 ** MAX_NMBR_POST_BUFFERS_PER_MSG defines the maximum single segment buffers
218 ** that can be described in a given TCB.
220 ** 32 0
221 ** +-----------------------+
222 ** | Buffer Count | Number of buffers in the TCB
223 ** +-----------------------+
224 ** | Buffer 1 Context | first buffer reference
225 ** +-----------------------+
226 ** | Buffer 1 Seg Count | number of segments in buffer
227 ** +-----------------------+
228 ** | Buffer 1 Seg Desc 1 | first segment descriptor (size, physical address)
229 ** +-----------------------+
230 ** | ... | more segment descriptors (size, physical address)
231 ** +-----------------------+
232 ** | Buffer 1 Seg Desc n | last segment descriptor (size, physical address)
233 ** +-----------------------+
234 ** | Buffer 2 Context | second buffer reference
235 ** +-----------------------+
236 ** | Buffer 2 Seg Count | number of segments in buffer
237 ** +-----------------------+
238 ** | Buffer 2 Seg Desc 1 | segment descriptor (size, physical address)
239 ** +-----------------------+
240 ** | ... | more segment descriptors (size, physical address)
241 ** +-----------------------+
242 ** | Buffer 2 Seg Desc n |
243 ** +-----------------------+
244 ** | ... | more buffer descriptor blocks ...
245 ** +-----------------------+
246 ** | Buffer n Context |
247 ** +-----------------------+
248 ** | Buffer n Seg Count |
249 ** +-----------------------+
250 ** | Buffer n Seg Desc 1 |
251 ** +-----------------------+
252 ** | ... |
253 ** +-----------------------+
254 ** | Buffer n Seg Desc n |
255 ** +-----------------------+
258 ** A TCB for one contigous packet buffer would look like the following:
260 ** 32 0
261 ** +-----------------------+
262 ** | 1 | one buffer in the TCB
263 ** +-----------------------+
264 ** | <user's Context> | user's buffer reference
265 ** +-----------------------+
266 ** | 1 | one segment buffer
267 ** +-----------------------+ _
268 ** | <buffer size> | size \
269 ** +-----------------------+ \ segment descriptor
270 ** | <physical address> | physical address of buffer /
271 ** +-----------------------+ _/
275 /* Buffer Segment Descriptor */
276 typedef struct
278 U32 size;
279 U32 phyAddress;
281 BSD, *PBSD;
283 typedef PU32 PRCTCB;
285 ** -------------------------------------------------------------------------
286 ** Exported functions comprising the API to the LAN I2O message transport layer
287 ** -------------------------------------------------------------------------
292 ** InitRCI2OMsgLayer()
294 ** Called once prior to using the I2O LAN message transport layer. User
295 ** provides both the physical and virual address of a locked page buffer
296 ** that is used as a private buffer for the RedCreek I2O message
297 ** transport layer. This buffer must be a contigous memory block of a
298 ** minimum of 16K bytes and long word aligned. The user also must provide
299 ** the base address of the RedCreek PCI adapter assigned by BIOS or operating
300 ** system. The user provided value AdapterID is a zero based index of the
301 ** Ravlin 45/PCI adapter. This interface number is used in all subsequent API
302 ** calls to identify which adpapter for which the function is intended.
303 ** Up to sixteen interfaces are supported with this API.
305 ** Inputs: AdapterID - interface number from 0 to 15
306 ** pciBaseAddr - virual base address of PCI (set by BIOS)
307 ** p_msgbuf - virual address to private message block (min. 16K)
308 ** p_phymsgbuf - physical address of private message block
309 ** TransmitCallbackFunction - address of user's TX callback function
310 ** ReceiveCallbackFunction - address of user's RX callback function
313 RC_RETURN RCInitI2OMsgLayer(U16 AdapterID, U32 pciBaseAddr,
314 PU8 p_msgbuf, PU8 p_phymsgbuf,
315 PFNTXCALLBACK TransmitCallbackFunction,
316 PFNRXCALLBACK ReceiveCallbackFunction,
317 PFNCALLBACK RebootCallbackFunction);
320 ** RCSetRavlinIPandMask()
322 ** Set the Ravlin 45/PCI cards IP address and network mask.
324 ** IP address and mask must be in network byte order.
325 ** For example, IP address 1.2.3.4 and mask 255.255.255.0 would be
326 ** 0x04030201 and 0x00FFFFFF on a little endian machine.
329 RC_RETURN RCSetRavlinIPandMask(U16 AdapterID, U32 ipAddr, U32 netMask);
333 ** =========================================================================
334 ** RCGetRavlinIPandMask()
336 ** get the IP address and MASK from the card
338 ** =========================================================================
340 RC_RETURN
341 RCGetRavlinIPandMask(U16 AdapterID, PU32 pIpAddr, PU32 pNetMask,
342 PFNWAITCALLBACK WaitCallback);
345 ** RCProcI2OMsgQ()
347 ** Called from user's polling loop or Interrupt Service Routine for a PCI
348 ** interrupt from the RedCreek PCI adapter. User responsible for determining
349 ** and hooking the PCI interrupt. This function will call the registered
350 ** callback functions, TransmitCallbackFunction or ReceiveCallbackFunction,
351 ** if a TX or RX transaction has completed.
353 void RCProcI2OMsgQ(U16 AdapterID);
357 ** Disable and Enable I2O interrupts. I2O interrupts are enabled at Init time
358 ** but can be disabled and re-enabled through these two function calls.
359 ** Packets will still be put into any posted recieved buffers and packets will
360 ** be sent through RCI2OSendPacket() functions. Disabling I2O interrupts
361 ** will prevent hardware interrupt to host even though the outbound I2O msg
362 ** queue is not emtpy.
364 RC_RETURN RCEnableI2OInterrupts(U16 adapterID);
365 RC_RETURN RCDisableI2OInterrupts(U16 AdapterID);
369 ** RCPostRecvBuffers()
371 ** Post user's page locked buffers for use by the PCI adapter to
372 ** return ethernet packets received from the LAN. Transaction Control Block,
373 ** provided by user, contains buffer descriptor(s) which includes a buffer
374 ** context number along with buffer size and physical address. See TCB above.
375 ** The buffer context and actual packet length are returned to the
376 ** ReceiveCallbackFunction when packets have been received. Buffers posted
377 ** to the RedCreek adapter are considered owned by the adapter until the
378 ** context is return to user through the ReceiveCallbackFunction.
380 RC_RETURN RCPostRecvBuffers(U16 AdapterID, PRCTCB pTransactionCtrlBlock);
381 #define MAX_NMBR_POST_BUFFERS_PER_MSG 32
384 ** RCI2OSendPacket()
386 ** Send user's ethernet packet from a locked page buffer.
387 ** Packet must have full MAC header, however without a CRC.
388 ** Initiator context is a user provided value that is returned
389 ** to the TransmitCallbackFunction when packet buffer is free.
390 ** Transmit buffer are considered owned by the adapter until context's
391 ** returned to user through the TransmitCallbackFunction.
393 RC_RETURN RCI2OSendPacket(U16 AdapterID,
394 U32 context,
395 PRCTCB pTransactionCtrlBlock);
398 /* Ethernet Link Statistics structure */
399 typedef struct tag_RC_link_stats
401 U32 TX_good; /* good transmit frames */
402 U32 TX_maxcol; /* frames not TX due to MAX collisions */
403 U32 TX_latecol; /* frames not TX due to late collisions */
404 U32 TX_urun; /* frames not TX due to DMA underrun */
405 U32 TX_crs; /* frames TX with lost carrier sense */
406 U32 TX_def; /* frames deferred due to activity on link */
407 U32 TX_singlecol; /* frames TX with one and only on collision */
408 U32 TX_multcol; /* frames TX with more than one collision */
409 U32 TX_totcol; /* total collisions detected during TX */
410 U32 Rcv_good; /* good frames received */
411 U32 Rcv_CRCerr; /* frames RX and discarded with CRC errors */
412 U32 Rcv_alignerr; /* frames RX with alignment and CRC errors */
413 U32 Rcv_reserr; /* good frames discarded due to no RX buffer */
414 U32 Rcv_orun; /* RX frames lost due to FIFO overrun */
415 U32 Rcv_cdt; /* RX frames with collision during RX */
416 U32 Rcv_runt; /* RX frames shorter than 64 bytes */
418 RCLINKSTATS, *P_RCLINKSTATS;
421 ** RCGetLinkStatistics()
423 ** Returns link statistics in user's structure at address StatsReturnAddr
424 ** If given, not NULL, the function WaitCallback is called during the wait
425 ** loop while waiting for the adapter to respond.
427 RC_RETURN RCGetLinkStatistics(U16 AdapterID,
428 P_RCLINKSTATS StatsReturnAddr,
429 PFNWAITCALLBACK WaitCallback);
432 ** RCGetLinkStatus()
434 ** Return link status, up or down, to user's location addressed by ReturnAddr.
435 ** If given, not NULL, the function WaitCallback is called during the wait
436 ** loop while waiting for the adapter to respond.
438 RC_RETURN RCGetLinkStatus(U16 AdapterID,
439 PU32 pReturnStatus,
440 PFNWAITCALLBACK WaitCallback);
442 /* Link Status defines - value returned in pReturnStatus */
443 #define RC_LAN_LINK_STATUS_DOWN 0
444 #define RC_LAN_LINK_STATUS_UP 1
447 ** RCGetMAC()
449 ** Get the current MAC address assigned to user. RedCreek Ravlin 45/PCI
450 ** has two MAC addresses. One which is private to the PCI Card, and
451 ** another MAC which is given to the user as its link layer MAC address. The
452 ** adapter runs in promiscous mode because of the dual address requirement.
453 ** The MAC address is returned to the unsigned char array pointer to by mac.
455 RC_RETURN RCGetMAC(U16 AdapterID, PU8 mac, PFNWAITCALLBACK WaitCallback);
458 ** RCSetMAC()
460 ** Set a new user port MAC address. This address will be returned on
461 ** subsequent RCGetMAC() calls.
463 RC_RETURN RCSetMAC(U16 AdapterID, PU8 mac);
466 ** RCSetLinkSpeed()
468 ** set adapter's link speed based on given input code.
470 RC_RETURN RCSetLinkSpeed(U16 AdapterID, U16 LinkSpeedCode);
471 /* Set link speed codes */
472 #define LNK_SPD_AUTO_NEG_NWAY 0
473 #define LNK_SPD_100MB_FULL 1
474 #define LNK_SPD_100MB_HALF 2
475 #define LNK_SPD_10MB_FULL 3
476 #define LNK_SPD_10MB_HALF 4
482 ** RCGetLinkSpeed()
484 ** Return link speed code.
486 /* Return link speed codes */
487 #define LNK_SPD_UNKNOWN 0
488 #define LNK_SPD_100MB_FULL 1
489 #define LNK_SPD_100MB_HALF 2
490 #define LNK_SPD_10MB_FULL 3
491 #define LNK_SPD_10MB_HALF 4
493 RC_RETURN
494 RCGetLinkSpeed(U16 AdapterID, PU32 pLinkSpeedCode, PFNWAITCALLBACK WaitCallback);
496 ** =========================================================================
497 ** RCSetPromiscuousMode(U16 AdapterID, U16 Mode)
499 ** Defined values for Mode:
500 ** 0 - turn off promiscuous mode
501 ** 1 - turn on promiscuous mode
503 ** =========================================================================
505 #define PROMISCUOUS_MODE_OFF 0
506 #define PROMISCUOUS_MODE_ON 1
507 RC_RETURN
508 RCSetPromiscuousMode(U16 AdapterID, U16 Mode);
510 ** =========================================================================
511 ** RCGetPromiscuousMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback)
513 ** get promiscuous mode setting
515 ** Possible return values placed in pMode:
516 ** 0 = promisuous mode not set
517 ** 1 = promisuous mode is set
519 ** =========================================================================
521 RC_RETURN
522 RCGetPromiscuousMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback);
525 ** =========================================================================
526 ** RCSetBroadcastMode(U16 AdapterID, U16 Mode)
528 ** Defined values for Mode:
529 ** 0 - turn off promiscuous mode
530 ** 1 - turn on promiscuous mode
532 ** =========================================================================
534 #define BROADCAST_MODE_OFF 0
535 #define BROADCAST_MODE_ON 1
536 RC_RETURN
537 RCSetBroadcastMode(U16 AdapterID, U16 Mode);
539 ** =========================================================================
540 ** RCGetBroadcastMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback)
542 ** get broadcast mode setting
544 ** Possible return values placed in pMode:
545 ** 0 = broadcast mode not set
546 ** 1 = broadcast mode is set
548 ** =========================================================================
550 RC_RETURN
551 RCGetBroadcastMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback);
553 ** =========================================================================
554 ** RCReportDriverCapability(U16 AdapterID, U32 capability)
556 ** Currently defined bits:
557 ** WARM_REBOOT_CAPABLE 0x01
559 ** =========================================================================
561 RC_RETURN
562 RCReportDriverCapability(U16 AdapterID, U32 capability);
565 ** RCGetFirmwareVer()
567 ** Return firmware version in the form "SoftwareVersion : Bt BootVersion"
569 ** WARNING: user's space pointed to by pFirmString should be at least 60 bytes.
571 RC_RETURN
572 RCGetFirmwareVer(U16 AdapterID, PU8 pFirmString, PFNWAITCALLBACK WaitCallback);
575 ** ----------------------------------------------
576 ** LAN adapter Reset and Shutdown functions
577 ** ----------------------------------------------
579 /* resource flag bit assignments for RCResetLANCard() & RCShutdownLANCard() */
580 #define RC_RESOURCE_RETURN_POSTED_RX_BUCKETS 0x0001
581 #define RC_RESOURCE_RETURN_PEND_TX_BUFFERS 0x0002
584 ** RCResetLANCard()
586 ** Reset LAN card operation. Causes a software reset of the ethernet
587 ** controller and restarts the command and receive units. Depending on
588 ** the ResourceFlags given, the buffers are either returned to the
589 ** host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER and
590 ** detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be
591 ** posted after issuing this) OR the buffers are kept and reused by
592 ** the ethernet controller. If CallbackFunction is not NULL, the function
593 ** will be called when the reset is complete. If the CallbackFunction is
594 ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset
595 ** to complete (please disable I2O interrupts during this method).
596 ** Any outstanding transmit or receive buffers that are complete will be
597 ** returned via the normal reply messages before the requested resource
598 ** buffers are returned.
599 ** A call to RCPostRecvBuffers() is needed to return the ethernet to full
600 ** operation if the receive buffers were returned during LANReset.
601 ** Note: The IOP status is not affected by a LAN reset.
603 RC_RETURN RCResetLANCard(U16 AdapterID, U16 ResourceFlags, PU32 ReturnAddr, PFNCALLBACK CallbackFunction);
607 ** RCShutdownLANCard()
609 ** Shutdown LAN card operation and put into an idle (suspended) state.
610 ** The LAN card is restarted with RCResetLANCard() function.
611 ** Depending on the ResourceFlags given, the buffers are either returned
612 ** to the host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER
613 ** and detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be
614 ** posted after issuing this) OR the buffers are kept and reused by
615 ** the ethernet controller. If CallbackFunction is not NULL, the function
616 ** will be called when the reset is complete. If the CallbackFunction is
617 ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset
618 ** to complete (please disable I2O interrupts during this method).
619 ** Any outstanding transmit or receive buffers that are complete will be
620 ** returned via the normal reply messages before the requested resource
621 ** buffers are returned.
622 ** Note: The IOP status is not affected by a LAN shutdown.
624 RC_RETURN
625 RCShutdownLANCard(U16 AdapterID, U16 ResourceFlags, PU32 ReturnAddr, PFNCALLBACK CallbackFunction);
628 ** RCResetIOP();
629 ** Initializes IOPState to I2O_IOP_STATE_RESET.
630 ** Stops access to outbound message Q.
631 ** Discards any outstanding transmit or posted receive buffers.
632 ** Clears outbound message Q.
634 RC_RETURN
635 RCResetIOP(U16 AdapterID);
637 #endif /* RCLANMTL_H */