!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/src/linux-2.4.18-xfs-1.1/drivers/net/   drwxr-xr-x
Free 318.34 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     rclanmtl.h (26.03 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
** *************************************************************************
**
**
**     R C L A N M T L . H             $Revision: 6 $
**
**
**  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 */
#include <asm/types.h>
#ifdef RC_LINUX_MODULE        /* linux modules need non-library version of string functions */
#include <linux/string.h>
#else
#include <string.h>
#endif
#include <linux/delay.h>    /* for udelay() */

#include <linux/netdevice.h>
#include <linux/if_ether.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>

#include <asm/io.h>

/* Debug stuff. Define for debug output */
#undef RCDEBUG

#ifdef RCDEBUG
#define dprintk(args...) printk("rc: " args)
#else
#define dprintk(args...) { }
#endif

/* Typedefs */

 /* scalar data types */
typedef __u8 U8;
typedef __u16 U16;
typedef __u32 U32;
typedef __u8 *PU8;
typedef __u16 *PU16;
typedef __u32 *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, struct net_device *);

 /* 
    ** 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, struct net_device *);

 /* 
    ** 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, struct net_device * dev);

/*
**  Message Unit CSR definitions for RedCreek PCI45 board
*/
typedef struct tag_rcatu {
    volatile unsigned long APICRegSel;    /* APIC Register Select */
    volatile unsigned long reserved0;
    volatile unsigned long APICWinReg;    /* APIC Window Register */
    volatile unsigned long reserved1;
    volatile unsigned long InMsgReg0;    /* inbound message register 0 */
    volatile unsigned long InMsgReg1;    /* inbound message register 1 */
    volatile unsigned long OutMsgReg0;    /* outbound message register 0 */
    volatile unsigned long OutMsgReg1;    /* outbound message register 1 */
    volatile unsigned long InDoorReg;    /* inbound doorbell register */
    volatile unsigned long InIntStat;    /* inbound interrupt status register */
    volatile unsigned long InIntMask;    /* inbound interrupt mask register */
    volatile unsigned long OutDoorReg;    /* outbound doorbell register */
    volatile unsigned long OutIntStat;    /* outbound interrupt status register */
    volatile unsigned long OutIntMask;    /* outbound interrupt mask register */
    volatile unsigned long reserved2;
    volatile unsigned long reserved3;
    volatile unsigned long InQueue;    /* inbound queue port */
    volatile unsigned long OutQueue;    /* outbound queue port */
    volatile unsigned long reserved4;
    volatile unsigned long reserver5;
    /* RedCreek extension */
    volatile unsigned long EtherMacLow;
    volatile unsigned long EtherMacHi;
    volatile unsigned long IPaddr;
    volatile unsigned long IPmask;
} *PATU;

 /* 
    ** typedef PAB
    **
    ** PCI Adapter Block - holds instance specific information.
  */
typedef struct {
    PATU p_atu;        /* ptr to  ATU register block */
    PU8 pPci45LinBaseAddr;
    PU8 pLinOutMsgBlock;
    U32 outMsgBlockPhyAddr;
    PFNTXCALLBACK pTransCallbackFunc;
    PFNRXCALLBACK pRecvCallbackFunc;
    PFNCALLBACK pRebootCallbackFunc;
    PFNCALLBACK pCallbackFunc;
    U16 IOPState;
    U16 InboundMFrameSize;
} *PPAB;

/*
 * Driver Private Area, DPA.
 */
typedef struct {
    U8 id;            /* the AdapterID */

    /* These two field are basically for the RCioctl function.
     * I could not determine if they could be avoided. (RAA)*/
    U32 pci_addr;        /* the pci address of the adapter */
    U32 pci_addr_len;

    struct timer_list timer;    /*  timer */
    struct net_device_stats stats;    /* the statistics structure */
    unsigned long numOutRcvBuffers;    /* number of outstanding receive buffers */
    unsigned char shutdown;
    unsigned char reboot;
    unsigned char nexus;
    PU8 msgbuf;        /* Pointer to Lan Api Private Area */
    PU8 PLanApiPA;        /* Pointer to Lan Api Private Area (aligned) */
    PPAB pPab;        /* Pointer to the PCI Adapter Block */
} *PDPA;

/* 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

/*
** 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.  
    **
    ** Inputs:  dev - the net_device struct for the device.
    **          TransmitCallbackFunction - address of user's TX callback function
    **          ReceiveCallbackFunction  - address of user's RX callback function
    **          RebootCallbackFunction  - address of user's reboot callback function
    **
  */
RC_RETURN RCInitI2OMsgLayer (struct net_device *dev,
                 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 (struct net_device *dev, U32 ipAddr,
                U32 netMask);

/*
** =========================================================================
** RCGetRavlinIPandMask()
**
** get the IP address and MASK from the card
** 
** =========================================================================
*/
RC_RETURN
RCGetRavlinIPandMask (struct net_device *dev, 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 (struct net_device *dev);

 /*
    ** 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 received 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 (struct net_device *dev);
RC_RETURN RCDisableI2OInterrupts (struct net_device *dev);

 /* 
    ** 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 (struct net_device *dev,
                 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 (struct net_device *dev,
               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 (struct net_device *dev,
                   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 (struct net_device *dev,
               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 (struct net_device *dev, PFNWAITCALLBACK WaitCallback);

 /*
    ** RCSetMAC()
    **
    ** Set a new user port MAC address.  This address will be returned on
    ** subsequent RCGetMAC() calls.
  */
RC_RETURN RCSetMAC (struct net_device *dev, PU8 mac);

 /*
    ** RCSetLinkSpeed()
    **
    ** set adapter's link speed based on given input code.
  */
RC_RETURN RCSetLinkSpeed (struct net_device *dev, 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 (struct net_device *dev, PU32 pLinkSpeedCode,
        PFNWAITCALLBACK WaitCallback);
/*
** =========================================================================
** RCSetPromiscuousMode(struct net_device *dev, 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 (struct net_device *dev, U16 Mode);
/*
** =========================================================================
** RCGetPromiscuousMode(struct net_device *dev, 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 (struct net_device *dev, PU32 pMode,
              PFNWAITCALLBACK WaitCallback);

/*
** =========================================================================
** RCSetBroadcastMode(struct net_device *dev, 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 (struct net_device *dev, U16 Mode);
/*
** =========================================================================
** RCGetBroadcastMode(struct net_device *dev, 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 (struct net_device *dev, PU32 pMode,
            PFNWAITCALLBACK WaitCallback);
/*
** =========================================================================
** RCReportDriverCapability(struct net_device *dev, U32 capability)
**
** Currently defined bits:
** WARM_REBOOT_CAPABLE   0x01
**
** =========================================================================
*/
RC_RETURN RCReportDriverCapability (struct net_device *dev, 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 (struct net_device *dev, 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 (struct net_device *dev, 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 (struct net_device *dev, 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 (struct net_device *dev);

#endif                /* RCLANMTL_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0247 ]--