diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
commit | 86464aed71025541805e7b1515541aee89879e33 (patch) | |
tree | e01a457a4912a8553bc65524aa3125d51f29f810 /drivers/net/rclanmtl.h | |
parent | 88f99939ecc6a95a79614574cb7d95ffccfc3466 (diff) |
Merge with Linux 2.2.1.
Diffstat (limited to 'drivers/net/rclanmtl.h')
-rw-r--r-- | drivers/net/rclanmtl.h | 637 |
1 files changed, 637 insertions, 0 deletions
diff --git a/drivers/net/rclanmtl.h b/drivers/net/rclanmtl.h new file mode 100644 index 000000000..2521b1cee --- /dev/null +++ b/drivers/net/rclanmtl.h @@ -0,0 +1,637 @@ +/* +** ************************************************************************* +** +** +** R C L A N M T L . H $Revision: 5 $ +** +** +** RedCreek I2O LAN Message Transport Layer header file. +** +** --------------------------------------------------------------------- +** --- Copyright (c) 1997-1999, RedCreek Communications Inc. --- +** --- All rights reserved. --- +** --------------------------------------------------------------------- +** +** File Description: +** +** Header file for host I2O (Intelligent I/O) LAN message transport layer +** API and data types. +** +** 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 RCLANMTL_H +#define RCLANMTL_H + +/* Linux specific includes */ +#define kprintf printk +#ifdef RC_LINUX_MODULE /* linux modules need non-library version of string functions */ +#include <linux/string.h> +#else +#include <string.h> +#endif + +/* PCI/45 Configuration space values */ +#define RC_PCI45_VENDOR_ID 0x4916 +#define RC_PCI45_DEVICE_ID 0x1960 + + + /* RedCreek API function return values */ +#define RC_RTN_NO_ERROR 0 +#define RC_RTN_I2O_NOT_INIT 1 +#define RC_RTN_FREE_Q_EMPTY 2 +#define RC_RTN_TCB_ERROR 3 +#define RC_RTN_TRANSACTION_ERROR 4 +#define RC_RTN_ADAPTER_ALREADY_INIT 5 +#define RC_RTN_MALLOC_ERROR 6 +#define RC_RTN_ADPTR_NOT_REGISTERED 7 +#define RC_RTN_MSG_REPLY_TIMEOUT 8 +#define RC_RTN_NO_I2O_STATUS 9 +#define RC_RTN_NO_FIRM_VER 10 +#define RC_RTN_NO_LINK_SPEED 11 + +/* Driver capability flags */ +#define WARM_REBOOT_CAPABLE 0x01 + + /* scalar data types */ +typedef unsigned char U8; +typedef unsigned char* PU8; +typedef unsigned short U16; +typedef unsigned short* PU16; +typedef unsigned long U32; +typedef unsigned long* PU32; +typedef unsigned long BF; +typedef int RC_RETURN; + + + /* + ** type PFNWAITCALLBACK + ** + ** pointer to void function - type used for WaitCallback in some functions + */ +typedef void (*PFNWAITCALLBACK)(void); /* void argument avoids compiler complaint */ + + /* + ** type PFNTXCALLBACK + ** + ** Pointer to user's transmit callback function. This user function is + ** called from RCProcI2OMsgQ() when packet have been transmitted from buffers + ** given in the RCI2OSendPacket() function. BufferContext is a pointer to + ** an array of 32 bit context values. These are the values the user assigned + ** and passed in the TCB to the RCI2OSendPacket() function. PcktCount + ** indicates the number of buffer context values in the BufferContext[] array. + ** The User's TransmitCallbackFunction should recover (put back in free queue) + ** the packet buffers associated with the buffer context values. + */ +typedef void (*PFNTXCALLBACK)(U32 Status, + U16 PcktCount, + PU32 BufferContext, + U16 AdaterID); + + /* + ** type PFNRXCALLBACK + ** + ** Pointer to user's receive callback function. This user function + ** is called from RCProcI2OMsgQ() when packets have been received into + ** previously posted packet buffers throught the RCPostRecvBuffers() function. + ** The received callback function should process the Packet Descriptor Block + ** pointed to by PacketDescBlock. See Packet Decription Block below. + */ +typedef void (*PFNRXCALLBACK)(U32 Status, + U8 PktCount, + U32 BucketsRemain, + PU32 PacketDescBlock, + U16 AdapterID); + + /* + ** type PFNCALLBACK + ** + ** Pointer to user's generic callback function. This user function + ** can be passed to LANReset or LANShutdown and is called when the + ** the reset or shutdown is complete. + ** Param1 and Param2 are invalid for LANReset and LANShutdown. + */ +typedef void (*PFNCALLBACK)(U32 Status, + U32 Param1, + U32 Param2, + U16 AdapterID); + +/* +** Status - Transmit and Receive callback status word +** +** A 32 bit Status is returned to the TX and RX callback functions. This value +** contains both the reply status and the detailed status as follows: +** +** 32 24 16 0 +** +------+------+------------+ +** | Reply| | Detailed | +** |Status| 0 | Status | +** +------+------+------------+ +** +** Reply Status and Detailed Status of zero indicates No Errors. +*/ + /* reply message status defines */ +#define I2O_REPLY_STATUS_SUCCESS 0x00 +#define I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER 0x02 +#define I2O_REPLY_STATUS_TRANSACTION_ERROR 0x0A + + +/* DetailedStatusCode defines */ +#define I2O_LAN_DSC_SUCCESS 0x0000 +#define I2O_LAN_DSC_DEVICE_FAILURE 0x0001 +#define I2O_LAN_DSC_DESTINATION_NOT_FOUND 0x0002 +#define I2O_LAN_DSC_TRANSMIT_ERROR 0x0003 +#define I2O_LAN_DSC_TRANSMIT_ABORTED 0x0004 +#define I2O_LAN_DSC_RECEIVE_ERROR 0x0005 +#define I2O_LAN_DSC_RECEIVE_ABORTED 0x0006 +#define I2O_LAN_DSC_DMA_ERROR 0x0007 +#define I2O_LAN_DSC_BAD_PACKET_DETECTED 0x0008 +#define I2O_LAN_DSC_OUT_OF_MEMORY 0x0009 +#define I2O_LAN_DSC_BUCKET_OVERRUN 0x000A +#define I2O_LAN_DSC_IOP_INTERNAL_ERROR 0x000B +#define I2O_LAN_DSC_CANCELED 0x000C +#define I2O_LAN_DSC_INVALID_TRANSACTION_CONTEXT 0x000D +#define I2O_LAN_DSC_DESTINATION_ADDRESS_DETECTED 0x000E +#define I2O_LAN_DSC_DESTINATION_ADDRESS_OMITTED 0x000F +#define I2O_LAN_DSC_PARTIAL_PACKET_RETURNED 0x0010 + + +/* +** Packet Description Block (Received packets) +** +** A pointer to this block structure is returned to the ReceiveCallback +** function. It contains the list of packet buffers which have either been +** filled with a packet or returned to host due to a LANReset function. +** Currently there will only be one packet per receive bucket (buffer) posted. +** +** 32 24 0 +** +-----------------------+ -\ +** | Buffer 1 Context | \ +** +-----------------------+ \ +** | 0xC0000000 | / First Bucket Descriptor +** +-----+-----------------+ / +** | 0 | packet 1 length | / +** +-----------------------+ -\ +** | Buffer 2 Context | \ +** +-----------------------+ \ +** | 0xC0000000 | / Second Bucket Descriptor +** +-----+-----------------+ / +** | 0 | packet 2 length | / +** +-----+-----------------+ - +** | ... | ----- more bucket descriptors +** +-----------------------+ -\ +** | Buffer n Context | \ +** +-----------------------+ \ +** | 0xC0000000 | / Last Bucket Descriptor +** +-----+-----------------+ / +** | 0 | packet n length | / +** +-----+-----------------+ - +** +** Buffer Context values are those given to adapter in the TCB on calls to +** RCPostRecvBuffers(). +** +*/ + + + +/* +** Transaction Control Block (TCB) structure +** +** A structure like this is filled in by the user and passed by reference to +** RCI2OSendPacket() and RCPostRecvBuffers() functions. Minimum size is five +** 32-bit words for one buffer with one segment descriptor. +** MAX_NMBR_POST_BUFFERS_PER_MSG defines the maximum single segment buffers +** that can be described in a given TCB. +** +** 32 0 +** +-----------------------+ +** | Buffer Count | Number of buffers in the TCB +** +-----------------------+ +** | Buffer 1 Context | first buffer reference +** +-----------------------+ +** | Buffer 1 Seg Count | number of segments in buffer +** +-----------------------+ +** | Buffer 1 Seg Desc 1 | first segment descriptor (size, physical address) +** +-----------------------+ +** | ... | more segment descriptors (size, physical address) +** +-----------------------+ +** | Buffer 1 Seg Desc n | last segment descriptor (size, physical address) +** +-----------------------+ +** | Buffer 2 Context | second buffer reference +** +-----------------------+ +** | Buffer 2 Seg Count | number of segments in buffer +** +-----------------------+ +** | Buffer 2 Seg Desc 1 | segment descriptor (size, physical address) +** +-----------------------+ +** | ... | more segment descriptors (size, physical address) +** +-----------------------+ +** | Buffer 2 Seg Desc n | +** +-----------------------+ +** | ... | more buffer descriptor blocks ... +** +-----------------------+ +** | Buffer n Context | +** +-----------------------+ +** | Buffer n Seg Count | +** +-----------------------+ +** | Buffer n Seg Desc 1 | +** +-----------------------+ +** | ... | +** +-----------------------+ +** | Buffer n Seg Desc n | +** +-----------------------+ +** +** +** A TCB for one contigous packet buffer would look like the following: +** +** 32 0 +** +-----------------------+ +** | 1 | one buffer in the TCB +** +-----------------------+ +** | <user's Context> | user's buffer reference +** +-----------------------+ +** | 1 | one segment buffer +** +-----------------------+ _ +** | <buffer size> | size \ +** +-----------------------+ \ segment descriptor +** | <physical address> | physical address of buffer / +** +-----------------------+ _/ +** +*/ + + /* Buffer Segment Descriptor */ +typedef struct +{ + U32 size; + U32 phyAddress; +} + BSD, *PBSD; + +typedef PU32 PRCTCB; +/* +** ------------------------------------------------------------------------- +** Exported functions comprising the API to the LAN I2O message transport layer +** ------------------------------------------------------------------------- +*/ + + + /* + ** InitRCI2OMsgLayer() + ** + ** Called once prior to using the I2O LAN message transport layer. User + ** provides both the physical and virual address of a locked page buffer + ** that is used as a private buffer for the RedCreek I2O message + ** transport layer. This buffer must be a contigous memory block of a + ** minimum of 16K bytes and long word aligned. The user also must provide + ** the base address of the RedCreek PCI adapter assigned by BIOS or operating + ** system. The user provided value AdapterID is a zero based index of the + ** Ravlin 45/PCI adapter. This interface number is used in all subsequent API + ** calls to identify which adpapter for which the function is intended. + ** Up to sixteen interfaces are supported with this API. + ** + ** Inputs: AdapterID - interface number from 0 to 15 + ** pciBaseAddr - virual base address of PCI (set by BIOS) + ** p_msgbuf - virual address to private message block (min. 16K) + ** p_phymsgbuf - physical address of private message block + ** TransmitCallbackFunction - address of user's TX callback function + ** ReceiveCallbackFunction - address of user's RX callback function + ** + */ +RC_RETURN RCInitI2OMsgLayer(U16 AdapterID, U32 pciBaseAddr, + PU8 p_msgbuf, PU8 p_phymsgbuf, + PFNTXCALLBACK TransmitCallbackFunction, + PFNRXCALLBACK ReceiveCallbackFunction, + PFNCALLBACK RebootCallbackFunction); + + /* + ** RCSetRavlinIPandMask() + ** + ** Set the Ravlin 45/PCI cards IP address and network mask. + ** + ** IP address and mask must be in network byte order. + ** For example, IP address 1.2.3.4 and mask 255.255.255.0 would be + ** 0x04030201 and 0x00FFFFFF on a little endian machine. + ** + */ +RC_RETURN RCSetRavlinIPandMask(U16 AdapterID, U32 ipAddr, U32 netMask); + + +/* +** ========================================================================= +** RCGetRavlinIPandMask() +** +** get the IP address and MASK from the card +** +** ========================================================================= +*/ +RC_RETURN +RCGetRavlinIPandMask(U16 AdapterID, PU32 pIpAddr, PU32 pNetMask, + PFNWAITCALLBACK WaitCallback); + + /* + ** RCProcI2OMsgQ() + ** + ** Called from user's polling loop or Interrupt Service Routine for a PCI + ** interrupt from the RedCreek PCI adapter. User responsible for determining + ** and hooking the PCI interrupt. This function will call the registered + ** callback functions, TransmitCallbackFunction or ReceiveCallbackFunction, + ** if a TX or RX transaction has completed. + */ +void RCProcI2OMsgQ(U16 AdapterID); + + + /* + ** Disable and Enable I2O interrupts. I2O interrupts are enabled at Init time + ** but can be disabled and re-enabled through these two function calls. + ** Packets will still be put into any posted recieved buffers and packets will + ** be sent through RCI2OSendPacket() functions. Disabling I2O interrupts + ** will prevent hardware interrupt to host even though the outbound I2O msg + ** queue is not emtpy. + */ +RC_RETURN RCEnableI2OInterrupts(U16 adapterID); +RC_RETURN RCDisableI2OInterrupts(U16 AdapterID); + + + /* + ** RCPostRecvBuffers() + ** + ** Post user's page locked buffers for use by the PCI adapter to + ** return ethernet packets received from the LAN. Transaction Control Block, + ** provided by user, contains buffer descriptor(s) which includes a buffer + ** context number along with buffer size and physical address. See TCB above. + ** The buffer context and actual packet length are returned to the + ** ReceiveCallbackFunction when packets have been received. Buffers posted + ** to the RedCreek adapter are considered owned by the adapter until the + ** context is return to user through the ReceiveCallbackFunction. + */ +RC_RETURN RCPostRecvBuffers(U16 AdapterID, PRCTCB pTransactionCtrlBlock); +#define MAX_NMBR_POST_BUFFERS_PER_MSG 32 + + /* + ** RCI2OSendPacket() + ** + ** Send user's ethernet packet from a locked page buffer. + ** Packet must have full MAC header, however without a CRC. + ** Initiator context is a user provided value that is returned + ** to the TransmitCallbackFunction when packet buffer is free. + ** Transmit buffer are considered owned by the adapter until context's + ** returned to user through the TransmitCallbackFunction. + */ +RC_RETURN RCI2OSendPacket(U16 AdapterID, + U32 context, + PRCTCB pTransactionCtrlBlock); + + + /* Ethernet Link Statistics structure */ +typedef struct tag_RC_link_stats +{ + U32 TX_good; /* good transmit frames */ + U32 TX_maxcol; /* frames not TX due to MAX collisions */ + U32 TX_latecol; /* frames not TX due to late collisions */ + U32 TX_urun; /* frames not TX due to DMA underrun */ + U32 TX_crs; /* frames TX with lost carrier sense */ + U32 TX_def; /* frames deferred due to activity on link */ + U32 TX_singlecol; /* frames TX with one and only on collision */ + U32 TX_multcol; /* frames TX with more than one collision */ + U32 TX_totcol; /* total collisions detected during TX */ + U32 Rcv_good; /* good frames received */ + U32 Rcv_CRCerr; /* frames RX and discarded with CRC errors */ + U32 Rcv_alignerr; /* frames RX with alignment and CRC errors */ + U32 Rcv_reserr; /* good frames discarded due to no RX buffer */ + U32 Rcv_orun; /* RX frames lost due to FIFO overrun */ + U32 Rcv_cdt; /* RX frames with collision during RX */ + U32 Rcv_runt; /* RX frames shorter than 64 bytes */ +} + RCLINKSTATS, *P_RCLINKSTATS; + + /* + ** RCGetLinkStatistics() + ** + ** Returns link statistics in user's structure at address StatsReturnAddr + ** If given, not NULL, the function WaitCallback is called during the wait + ** loop while waiting for the adapter to respond. + */ +RC_RETURN RCGetLinkStatistics(U16 AdapterID, + P_RCLINKSTATS StatsReturnAddr, + PFNWAITCALLBACK WaitCallback); + + /* + ** RCGetLinkStatus() + ** + ** Return link status, up or down, to user's location addressed by ReturnAddr. + ** If given, not NULL, the function WaitCallback is called during the wait + ** loop while waiting for the adapter to respond. + */ +RC_RETURN RCGetLinkStatus(U16 AdapterID, + PU32 pReturnStatus, + PFNWAITCALLBACK WaitCallback); + + /* Link Status defines - value returned in pReturnStatus */ +#define RC_LAN_LINK_STATUS_DOWN 0 +#define RC_LAN_LINK_STATUS_UP 1 + + /* + ** RCGetMAC() + ** + ** Get the current MAC address assigned to user. RedCreek Ravlin 45/PCI + ** has two MAC addresses. One which is private to the PCI Card, and + ** another MAC which is given to the user as its link layer MAC address. The + ** adapter runs in promiscous mode because of the dual address requirement. + ** The MAC address is returned to the unsigned char array pointer to by mac. + */ +RC_RETURN RCGetMAC(U16 AdapterID, PU8 mac, PFNWAITCALLBACK WaitCallback); + + /* + ** RCSetMAC() + ** + ** Set a new user port MAC address. This address will be returned on + ** subsequent RCGetMAC() calls. + */ +RC_RETURN RCSetMAC(U16 AdapterID, PU8 mac); + + /* + ** RCSetLinkSpeed() + ** + ** set adapter's link speed based on given input code. + */ +RC_RETURN RCSetLinkSpeed(U16 AdapterID, U16 LinkSpeedCode); + /* Set link speed codes */ +#define LNK_SPD_AUTO_NEG_NWAY 0 +#define LNK_SPD_100MB_FULL 1 +#define LNK_SPD_100MB_HALF 2 +#define LNK_SPD_10MB_FULL 3 +#define LNK_SPD_10MB_HALF 4 + + + + + /* + ** RCGetLinkSpeed() + ** + ** Return link speed code. + */ + /* Return link speed codes */ +#define LNK_SPD_UNKNOWN 0 +#define LNK_SPD_100MB_FULL 1 +#define LNK_SPD_100MB_HALF 2 +#define LNK_SPD_10MB_FULL 3 +#define LNK_SPD_10MB_HALF 4 + +RC_RETURN +RCGetLinkSpeed(U16 AdapterID, PU32 pLinkSpeedCode, PFNWAITCALLBACK WaitCallback); +/* +** ========================================================================= +** RCSetPromiscuousMode(U16 AdapterID, U16 Mode) +** +** Defined values for Mode: +** 0 - turn off promiscuous mode +** 1 - turn on promiscuous mode +** +** ========================================================================= +*/ +#define PROMISCUOUS_MODE_OFF 0 +#define PROMISCUOUS_MODE_ON 1 +RC_RETURN +RCSetPromiscuousMode(U16 AdapterID, U16 Mode); +/* +** ========================================================================= +** RCGetPromiscuousMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback) +** +** get promiscuous mode setting +** +** Possible return values placed in pMode: +** 0 = promisuous mode not set +** 1 = promisuous mode is set +** +** ========================================================================= +*/ +RC_RETURN +RCGetPromiscuousMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback); + +/* +** ========================================================================= +** RCSetBroadcastMode(U16 AdapterID, U16 Mode) +** +** Defined values for Mode: +** 0 - turn off promiscuous mode +** 1 - turn on promiscuous mode +** +** ========================================================================= +*/ +#define BROADCAST_MODE_OFF 0 +#define BROADCAST_MODE_ON 1 +RC_RETURN +RCSetBroadcastMode(U16 AdapterID, U16 Mode); +/* +** ========================================================================= +** RCGetBroadcastMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback) +** +** get broadcast mode setting +** +** Possible return values placed in pMode: +** 0 = broadcast mode not set +** 1 = broadcast mode is set +** +** ========================================================================= +*/ +RC_RETURN +RCGetBroadcastMode(U16 AdapterID, PU32 pMode, PFNWAITCALLBACK WaitCallback); +/* +** ========================================================================= +** RCReportDriverCapability(U16 AdapterID, U32 capability) +** +** Currently defined bits: +** WARM_REBOOT_CAPABLE 0x01 +** +** ========================================================================= +*/ +RC_RETURN +RCReportDriverCapability(U16 AdapterID, U32 capability); + +/* +** RCGetFirmwareVer() +** +** Return firmware version in the form "SoftwareVersion : Bt BootVersion" +** +** WARNING: user's space pointed to by pFirmString should be at least 60 bytes. +*/ +RC_RETURN +RCGetFirmwareVer(U16 AdapterID, PU8 pFirmString, PFNWAITCALLBACK WaitCallback); + +/* +** ---------------------------------------------- +** LAN adapter Reset and Shutdown functions +** ---------------------------------------------- +*/ + /* resource flag bit assignments for RCResetLANCard() & RCShutdownLANCard() */ +#define RC_RESOURCE_RETURN_POSTED_RX_BUCKETS 0x0001 +#define RC_RESOURCE_RETURN_PEND_TX_BUFFERS 0x0002 + + /* + ** RCResetLANCard() + ** + ** Reset LAN card operation. Causes a software reset of the ethernet + ** controller and restarts the command and receive units. Depending on + ** the ResourceFlags given, the buffers are either returned to the + ** host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER and + ** detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be + ** posted after issuing this) OR the buffers are kept and reused by + ** the ethernet controller. If CallbackFunction is not NULL, the function + ** will be called when the reset is complete. If the CallbackFunction is + ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset + ** to complete (please disable I2O interrupts during this method). + ** Any outstanding transmit or receive buffers that are complete will be + ** returned via the normal reply messages before the requested resource + ** buffers are returned. + ** A call to RCPostRecvBuffers() is needed to return the ethernet to full + ** operation if the receive buffers were returned during LANReset. + ** Note: The IOP status is not affected by a LAN reset. + */ +RC_RETURN RCResetLANCard(U16 AdapterID, U16 ResourceFlags, PU32 ReturnAddr, PFNCALLBACK CallbackFunction); + + + /* + ** RCShutdownLANCard() + ** + ** Shutdown LAN card operation and put into an idle (suspended) state. + ** The LAN card is restarted with RCResetLANCard() function. + ** Depending on the ResourceFlags given, the buffers are either returned + ** to the host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER + ** and detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be + ** posted after issuing this) OR the buffers are kept and reused by + ** the ethernet controller. If CallbackFunction is not NULL, the function + ** will be called when the reset is complete. If the CallbackFunction is + ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset + ** to complete (please disable I2O interrupts during this method). + ** Any outstanding transmit or receive buffers that are complete will be + ** returned via the normal reply messages before the requested resource + ** buffers are returned. + ** Note: The IOP status is not affected by a LAN shutdown. + */ +RC_RETURN +RCShutdownLANCard(U16 AdapterID, U16 ResourceFlags, PU32 ReturnAddr, PFNCALLBACK CallbackFunction); + + /* + ** RCResetIOP(); + ** Initializes IOPState to I2O_IOP_STATE_RESET. + ** Stops access to outbound message Q. + ** Discards any outstanding transmit or posted receive buffers. + ** Clears outbound message Q. + */ +RC_RETURN +RCResetIOP(U16 AdapterID); + +#endif /* RCLANMTL_H */ |