⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drv_conf.h

📁 wm PNE 3.3 source code, running at more than vxworks6.x version.
💻 H
📖 第 1 页 / 共 2 页
字号:
#endif/*---------------------------------------------------------------------*//* Setup pSOSystem printer driver                                      *//*---------------------------------------------------------------------*/#if (SC_DEV_PARALLEL && BSP_PARALLEL)    #if (SC_DEV_PARALLEL >SC_DEVMAX)    #error "SC_DEV_PARALLEL cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_PARALLEL, ParInit, ParOpen, ParClose, NULLF,                  ParWrite, ParCntrl, 0, 0, 0);#endif /*---------------------------------------------------------------------*//* Setup pSOSystem floppy diskette driver                              *//* NOTE: This driver must be called from a task it cannot use the      *//*       auto initialization freature of pSOS+                         *//*---------------------------------------------------------------------*/#if (SC_DEV_FLOPPY && BSP_FLOPPY)    #if (SC_DEV_FLOPPY >SC_DEVMAX)    #error "SC_DEV_FLOPPY cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_FLOPPY, FlpInit, NULLF, NULLF, FlpRead,                  FlpWrite, NULLF, 0, 0, 0);#endif /*---------------------------------------------------------------------*//* Setup pSOSystem IDE disk driver                                     *//* NOTE: This driver must be called from a task it cannot use the      *//*       auto initialization freature of pSOS+                         *//*---------------------------------------------------------------------*/#if (SC_DEV_IDE && BSP_IDE)    #if (SC_DEV_IDE >SC_DEVMAX)    #error "SC_DEV_IDE cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_IDE, IDEInit, NULLF, NULLF, IDERead,                  IDEWrite, IDECntrl, 0, 0, 0);#endif/*---------------------------------------------------------------------*//* Install the pSOSystem TFTP driver.                                  *//* NOTE: This driver must be called from a task it cannot use the      *//*       auto initialization freature of pSOS+                         *//*---------------------------------------------------------------------*/#if (SC_DEV_TFTP)    #if(SC_DEV_TFTP > SC_DEVMAX)        #error "SC_DEV_TFTP cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_TFTP, TftpInit, TftpOpen, TftpClose, TftpRead,                  NULLF, TftpCntl, 0, 0, 0);#endif/*---------------------------------------------------------------------*//* Install the SPI driver                                              *//* NOTE: This driver must be called from a task it cannot use the      *//*       auto initialization freature of pSOS+                         *//*---------------------------------------------------------------------*/#if (SC_DEV_SPI)    #if(SC_DEV_SPI > SC_DEVMAX)        #error "SC_DEV_SPI cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_SPI, SPI_init, SPI_open, SPI_close, NULLF,                  NULLF, SPI_io, 0, 0, 0);#endif/*---------------------------------------------------------------------*//* Install pSE DLPI driver                                             *//* NOTE: This driver must be called from a task it cannot use the      *//*       auto initialization freature of pSOS+                         *//*---------------------------------------------------------------------*/#if (SC_DEV_DLPI)  {    #if(SC_DEV_DLPI > SC_DEVMAX)        #error "SC_DEV_DLPI cannot be > SC_DEVMAX"    #endif    extern long DlpiNullNI();    extern UCHAR *DlpiInit(UCHAR *, long, long);    extern int DlpiAddNI(long, long(*)(), long, long, char *, long);    extern void enetinit();    extern struct streamtab enetinfo;    char *DlpiErrMsg = "DlpiAddNI failed: NI Error";    static const psedrvparam_t eth0param = {"eth0", DT_CLONE,                                             &enetinfo, 0, 0};    InstallDriver(SC_DEV_DLPI, enetinit, NULLF, NULLF, NULLF,                  NULLF, NULLF, (long)&eth0param, 0, 0);    /*-------------------------------------------------------------*/    /* Call DlpiInit to initialize the Streams DLPI driver         */    /*   Arguments passed to DlpiInit are:                         */    /*     1. Free memory address                                  */    /*     2. Maximum NI interface number                          */    /*     3. Maximum number of streams per interface              */    /*-------------------------------------------------------------*/    FreeMemPtr = DlpiInit(FreeMemPtr, 1, 6);    /*-------------------------------------------------------------*/    /* Call DlpiAddNI to add an NI interface to the Streams DLPI   */    /* driver.  DlpiAddNI must be called for each NI driver        */    /* interface used with the Streams DLPI driver.                */    /*   Arguments passed to DlpiAddNI are:                        */    /*     1. NI interface number (should correspond to the pNA+   */    /*          interface number if driver is shared with pNA+)    */    /*     2. NI entry point                                       */    /*     3. NI flags                                             */    /*          IFF_SELFLOOP 0x0001  loopback for self-address     */    /*          IFF_POLL_NI  0x0002  driver must be polled         */    /*          IFF_RAWMEM   0x2000  driver accepts mblk link list */    /*     4. NI major device number                               */    /*     5. NI multicast address                                 */    /*     6. NI poll frequency (every # of elapsed ticks)         */    /*-------------------------------------------------------------*/    #if (BSP_LAN1 && SE_SHARE_NI)        if (DlpiAddNI(1, (long(*)())BSP_LAN1_ENTRY, 0x2000,                SC_DEV_DLPI, 0, 0))            SysInitFail(DlpiErrMsg);    #else        if (DlpiAddNI(0, (long(*)())DlpiNullNI, 0, SC_DEV_DLPI, 0, 0))            SysInitFail(DlpiErrMsg);    #endif  }#endif/*-------------------------------------------------------------------*//* Install pSOSystem Watchdog driver                                 *//*-------------------------------------------------------------------*/#if (SC_DEV_WATCHDOG)    #if(SC_DEV_WATCHDOG > SC_DEVMAX)    #error "SC_DEV_WATCHDOG cannot be > SC_DEVMAX"    #endif    InstallDriver(SC_DEV_WATCHDOG, WdtInit, NULLF, NULLF, NULLF,                  NULLF, NULLF, 0, 0, 0);#endif/*---------------------------------------------------------------------*//* Additional drivers may be installed here.                           *//*---------------------------------------------------------------------*/return FreeMemPtr;}#endif /* SC_PSOS || SC_PSOSM */#if SC_PNA/***********************************************************************//*     SetUpNI: Set up Network Interfaces for pNA+                     *//*                                                                     *//*       INPUT: FreeMemPtr = A pointer to unused memory that can be    *//*                           used to allocate space for a driver.      *//*                           NOTE: Be sure to advance FreeMemPtr if    *//*                           memory is allocates!                      *//*                                                                     *//*     RETURNS: The new address of free memory after the drivers have  *//*              allocated space.                                       *//*                                                                     *//*       NOTES: This function does many precompile checks so errors    *//*              can be found during compile-time rather then at run-   *//*              time.                                                  *//*                                                                     *//*              Also, the Network Interface Table must be allocated    *//*              before this function can be called.  There cannot be   *//*              more then NC_NNI entries in this table.  NC_NNI is set *//*              in sys_conf.h.  Before adding another interface, be    *//*              sure to check sys_conf.h to see if NC_NNI is set to    *//*              accommodate another one!                               *//*                                                                     *//*              See the pSOSystem Programmers Reference Manual         *//*              for more information.                                  *//*                                                                     *//* To add a Network driver to pSOSystem, call InstallNi().  This adds  *//* the Network Interface to the pNA+ Network Interface Table.          *//* InstallNi() takes the following arguments:                          *//*                                                                     *//*     int (*entry)();        address of NI entry point                *//*     int ipadd;             IP address                               *//*     int mtu;               maximum transmission length              *//*     int hwalen;            length of hardware address               *//*     int flags;             intErface flags                          *//*     int subnetaddr;        subnet mask                              *//*     int dstipaddr;         destination ip address                   *//*                                                                     *//* See pSOSystem Programmer`s Reference Manual, Configuration Tables   *//* Section, for more information about the Network Interface Table.    *//* InstallNi() does not return a value.                                *//*                                                                     *//* If you are adding a driver that needs to be initialized before      *//* either pSOS+ is initialized or the driver's init function is        *//* called, then you can call a setup function (that you create) for    *//* the driver (for example, see the CnslSetup call for the serial      *//* device driver).  If your initialization function needs to allocate  *//* memory, you may pass it the FreeMemPtr.  The function should return *//* a new FreeMemPtr which points to the end of the memory it has       *//* allocated.                                                          *//*                                                                     *//* When adding code to install a new driver, it is a good idea to add  *//* precompile checks so errors can be found during compile-time rather *//* then at run-time.  Precompile checks are used, for example, in the  *//* code that installs the pSOSystem serial device driver below.        *//*                                                                     *//***********************************************************************/UCHAR *SetUpNI(UCHAR *FreeMemPtr){int IPaddr;/*---------------------------------------------------------------------*//* Install the pSOSystem NI.                                           *//*---------------------------------------------------------------------*/#if BSP_LAN1    if (SysVars.Lan1)        {        /*-------------------------------------------------------------*/        /* If RARP is specified for the IP address, use it now to      */        /* obtain the IP address for this interface.                   */        /*-------------------------------------------------------------*/        if (SysVars.Lan1IP == USE_RARP)            {            #if (SC_DEV_DLPI && SE_SHARE_NI)                IPaddr = RarpEth((long (*)())DlpiEnet);            #else                IPaddr = RarpEth((long (*)())BSP_LAN1_ENTRY);            #endif            if (IPaddr == 0)                SysInitFail(RarpErrTimeout);            if (IPaddr == -1)               SysInitFail(RarpErrNet);            }        else            IPaddr = SysVars.Lan1IP;         #if (SC_DEV_DLPI && SE_SHARE_NI)            InstallNi((int (*)())DlpiEnet, IPaddr,        #else            InstallNi((int (*)())BSP_LAN1_ENTRY, IPaddr,        #endif                  BSP_LAN1_MTU, BSP_LAN1_HWALEN, BSP_LAN1_FLAGS,                  SysVars.Lan1SubnetMask, 0);        }#endif/*---------------------------------------------------------------------*//* Install the shared memory NI.                                       *//*---------------------------------------------------------------------*/#if BSP_SMEM    #if ((SC_NISM_LEVEL != 1) && (SC_NISM_LEVEL != 2))        #error "Illegal value for SC_NISM_LEVEL"    #endif    if (SysVars.Nism)        {        InstallNi((int (*)())NiSmem, SysVars.NismIP, NISM_MTU, 4, 0x8002,                  SysVars.NismSubnetMask, 0);        /*-------------------------------------------------------------*/        /* Set up the NI Shared Memory driver by calling its function  */        /*  "NiSmemSetup".                                             */        /*-------------------------------------------------------------*/        FreeMemPtr = NiSmemSetup(SC_NISM_BUFFS, FreeMemPtr,                                 SC_NISM_LEVEL);        }#endif/*---------------------------------------------------------------------*//* Additional Network drivers may be installed here.                   *//*---------------------------------------------------------------------*/return FreeMemPtr;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -