📄 drv_conf.h
字号:
/* $Header: /usr/cvsroot/target/h/wrn/wm/util/port/isisnmp/x86226/drv_conf.h,v 1.1.1.1 2001/11/05 17:47:11 tneale Exp $ *//* * Copyright (C) 1999-2004 Wind River Systems, Inc. * All rights reserved. Provided under license only. * Distribution or other use of this software is only * permitted pursuant to the terms of a license agreement * from Wind River Systems (and is otherwise prohibited). * Refer to that license agreement for terms of use. *//**************************************************************************** * Copyright 1993-1997 Epilogue Technology Corporation. * Copyright 1998 Integrated Systems, Inc. * All rights reserved. ****************************************************************************//* * $Log: drv_conf.h,v $ * Revision 1.1.1.1 2001/11/05 17:47:11 tneale * Tornado shuffle * * Revision 1.5 2001/01/19 22:23:00 paul * Update copyright. * * Revision 1.4 2000/03/17 00:10:13 meister * Update copyright message * * Revision 1.3 1998/08/20 18:01:21 josh * sys_conf.h cleanup * * Revision 1.2 1998/08/19 21:38:34 josh * adding copyright stuff. * * *//* [clearcase]modification history-------------------*//* @(#) pSOSystem x86/V2.2.6: apps.v22/xxxx/drv_conf.c 3.3 (snmpv2) 98/01/09 12:28:00 *//***********************************************************************//* *//* MODULE: drv_conf.c *//* DATE: 98/01/09 *//* 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 - 1997, 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)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 short rsvd2) reserved *//* unsigned short flags; If set to IO_AUTOINIT pSOS will *//* automatically call the *//* drivers initialization *//* function. The SC_AUTOINIT *//* #define which is set in *//* sys_conf.h can be used to set *//* this element. *//* *//* 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, SC_AUTOINIT); FreeMemPtr = CnslSetup(FreeMemPtr, SysVars.DefBaud, SC_APP_CONSOLE);#endif/*---------------------------------------------------------------------*//* Install Pseudo driver *//* NOTE: This driver must be called from a task it cannot use the *//* auto initialization freature of pSOS+ *//*---------------------------------------------------------------------*/#if (SC_DEV_PSEUDO) InstallDriver(SC_DEV_PSEUDO, PseudoIOInit, NULLF, NULLF, PseudoIORead, PseudoIOWrite, PseudoIOCntrl, 0, 0, 0);#endif/*--------------------------------------------------------------------*//* Setup pSOSystem PC console device driver *//*--------------------------------------------------------------------*/#if (SC_DEV_CONSOLE && BSP_CONSOLE) #if (SC_DEV_CONSOLE >SC_DEVMAX) #error "SC_DEV_CONSOLE cannot be > SC_DEVMAX" #endif InstallDriver(SC_DEV_CONSOLE, PcCnslInit, NULLF, NULLF, PcCnslRead, PcCnslWrite, PcCnslCntrl, 0, 0, SC_AUTOINIT);#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, SC_AUTOINIT);#endif/*---------------------------------------------------------------------*//* Install the pSOSystem ramdisk driver. *//* NOTE: This driver must be called from a task it cannot use the *//* auto initialization freature of pSOS+ *//*---------------------------------------------------------------------*/#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, 0);#endif/*---------------------------------------------------------------------*//* Install the pSOSystem SCSI driver. *//* NOTE: This driver must be called from a task it cannot use the *//* auto initialization freature of pSOS+ *//*---------------------------------------------------------------------*/#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, 0);#endif/*---------------------------------------------------------------------*//* Install the pSOSystem SCSI Tape driver. *//* NOTE: This driver must be called from a task it cannot use the *//* auto initialization freature of pSOS+ *//*---------------------------------------------------------------------*/#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, 0); /*-----------------------------------------------------------------*/ /* Don't need to call SdrvSetup this time since it was done before */ /*-----------------------------------------------------------------*/ /* SdrvSetup(); */#endif/*---------------------------------------------------------------------*//* Setup pSOSystem CMOS clock driver *//*---------------------------------------------------------------------*/#if (SC_DEV_CMOS && BSP_CLOCK) #if (SC_DEV_CMOS >SC_DEVMAX) #error "SC_DEV_CMOS cannot be > SC_DEVMAX" #endif InstallDriver(SC_DEV_CMOS, NULLF, NULLF, NULLF, CmcRead, CmcWrite, NULLF, 0, 0, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -