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

📄 drv_conf.c

📁 用于TM1300/PNX1300系列DSP(主要用于视频处理)的外部设备的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/* @(#) pSOSystem/PowerPC V2.1.2: apps/xxxx/drv_conf.c (std) 2.32 95/08/07 09:50:01 */ 
/***********************************************************************/
/*                                                                     */
/*   MODULE:  drv_conf.c                                               */
/*   DATE:    95/08/07                                                 */
/*   PURPOSE: pSOSystem driver configuration and initialization        */
/*                                                                     */
/*            There are two functions in this file:                    */
/*                                                                     */
/*            SetUpDrivers to setup drivers except for Network drivers */
/*            SetUpNI      to setup Network drivers                    */
/*                                                                     */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*           Copyright 1993 - 1995, Integrated Systems, Inc.           */
/*                      ALL RIGHTS RESERVED                            */
/*                                                                     */
/*   Permission is hereby granted to licensees of Integrated Systems,  */
/*   Inc. products to use or abstract this computer program for the    */
/*   sole purpose of implementing a product based on Integrated        */
/*   Systems, Inc. products.   No other rights to reproduce, use,      */
/*   or disseminate this computer program, whether in part or in       */
/*   whole, are granted.                                               */
/*                                                                     */
/*   Integrated Systems, Inc. makes no representation or warranties    */
/*   with respect to the performance of this computer program, and     */
/*   specifically disclaims any responsibility for any damages,        */
/*   special or consequential, connected with the use of this program. */
/*                                                                     */
/***********************************************************************/
#include "sys_conf.h"
#include "bsp.h"
#include <bspfuncs.h>
#include <configs.h>
#include <sysvars.h>
#include <pna.h>
#if SC_DEV_SPI
    #include "spi.h"
#endif
#if (SC_PSE)
#include <psecfg.h>
#include <sys/stream.h>
#endif
#if (SC_DEV_DLPI)
extern long DlpiEnet();
#endif

#define NULLF (ULONG) ((void (*)()) 0)

extern struct SD_parms SysVars;
void InstallNi(int (*entry)(), int, int, int, int, int, int);

static const char RarpErrTimeout[] =
  "RARP request failed: Check for a RARP server";
static const char RarpErrNet[] =
  "RARP request failed: Network Error";

#if SC_PSOS || SC_PSOSM
/***********************************************************************/
/* SetUpDrivers: installs drivers in PsosIO table via a call to        */
/*               InstallDriver and then calls driver setup function if */
/*               needed. NOTE: If the driver is to be part of the      */
/*               Network Interface then it should be placed in the     */
/*               SetUpNI function.                                     */
/*                                                                     */
/*       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.                                       */
/*                                                                     */
/*        NOTE: This function does many precompile checks so errors    */
/*              can be found during compile-time rather then at run-   */
/*              time.                                                  */
/*                                                                     */
/* To add a non-Network driver to pSOSystem, call InstallDriver().     */
/* This adds a device driver to the PsosIO table.  InstallDriver()     */
/* takes the following arguments:                                      */
/*                                                                     */
/*     unsigned short major_number    device major number              */
/*     void (*dev_init)(),            device init procedure            */
/*     void (*dev_open)(),            device open procedure            */
/*     void (*dev_close)(),           device close procedure           */
/*     void (*dev_read)(),            device read procedure            */
/*     void (*dev_write)(),           device write procedure           */
/*     void (*dev_ioctl)(),           device control procedure         */
/*     unsigned long rsvd1,           reserved                         */
/*     unsigned long rsvd2)           reserved                         */
/*                                                                     */
/* InstallDriver() does not return a value.  InstallDriver() assumes   */
/* SC_DEVMAX is defined in sys_conf.h and is useful only before pSOS+  */
/* has been initialized.                                               */
/*                                                                     */
/* 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 *SetUpDrivers(UCHAR *FreeMemPtr)
{
/*---------------------------------------------------------------------*/
/* Install the pSOSystem serial device driver.                         */
/*---------------------------------------------------------------------*/
#if (SC_DEV_SERIAL && BSP_SERIAL)
    #if(SC_DEV_SERIAL > SC_DEVMAX)
        #error "SC_DEV_SERIAL cannot be > SC_DEVMAX"
    #endif
    InstallDriver(SC_DEV_SERIAL, CnslInit, NULLF, NULLF,CnslRead,
                  CnslWrite, CnslCntrl, 0, 0);
    FreeMemPtr = CnslSetup(FreeMemPtr, SysVars.DefBaud,
                           SC_APP_CONSOLE);
#endif

/*---------------------------------------------------------------------*/
/* Install the pSOSystem tick timer.                                   */
/*---------------------------------------------------------------------*/
#if SC_DEV_TIMER
    #if(SC_DEV_TIMER > SC_DEVMAX)
        #error "SC_DEV_TIMER cannot be > SC_DEVMAX"
    #endif
    #if (!SC_PSOS && !SC_PSOSM)
        #error "Must have pSOS+ or pSOS+m in system to use tick timer!"
    #endif
    InstallDriver(SC_DEV_TIMER, RtcInit, NULLF, NULLF, NULLF, NULLF,
                  NULLF, 0, 0);
#endif

/*---------------------------------------------------------------------*/
/* Install the pSOSystem ramdisk driver.                               */
/*---------------------------------------------------------------------*/
#if SC_DEV_RAMDISK
    #if(SC_DEV_RAMDISK > SC_DEVMAX)
        #error "SC_DEV_RAMDISK cannot be > SC_DEVMAX"
    #endif
    InstallDriver(SC_DEV_RAMDISK, RdskInit, NULLF, NULLF, RdskRead,
                  RdskWrite, NULLF, 0, 0);
#endif

/*---------------------------------------------------------------------*/
/* Install the pSOSystem SCSI driver.                                  */
/*---------------------------------------------------------------------*/
#if (SC_DEV_SCSI && BSP_SCSI)
    #if(SC_DEV_SCSI > SC_DEVMAX)
        #error "SC_DEV_SCSI cannot be > SC_DEVMAX"
    #endif
    InstallDriver(SC_DEV_SCSI, SdrvInit, NULLF, NULLF, SdskRead,
                  SdskWrite, SdrvCntrl, 0, 0);
#endif

/*---------------------------------------------------------------------*/
/* Install the pSOSystem SCSI Tape driver.                             */
/*---------------------------------------------------------------------*/
#if (SC_DEV_SCSI_TAPE && BSP_SCSI_TAPE)
    #if(SC_DEV_SCSI_TAPE > SC_DEVMAX)
        #error "SC_DEV_SCSI_TAPE cannot be > SC_DEVMAX"
    #endif
    InstallDriver(SC_DEV_SCSI_TAPE, SdrvInit, StapeOpen, StapeClose,
                  StapeRead, StapeWrite, SdrvCntrl, 0, 0);
 
    /*-----------------------------------------------------------------*/
    /* Don't need to call SdrvSetup this time since it was done before */
    /*-----------------------------------------------------------------*/
    /* SdrvSetup(); */
#endif

/*---------------------------------------------------------------------*/
/* Install the pSOSystem TFTP driver.                                  */
/*---------------------------------------------------------------------*/
#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);
#endif

/*---------------------------------------------------------------------*/
/* Install the SPI driver                                              */
/*---------------------------------------------------------------------*/
#if (SC_DEV_SPI)
    #if(SC_DEV_SPI > SC_DEVMAX)
        #error "SC_DEV_SPI cannot be > SC_DEVMAX"

⌨️ 快捷键说明

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