亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sysinit.c

?? 這是單板上DPRAM的驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* @(#) pSOSystem PowerPC/V2.2.2: configs/sysinit.c (ppc) 3.203 97/11/10 10:08:57 */
/***********************************************************************/
/*                                                                     */
/*   MODULE:  configs/std/sysinit.c                                    */
/*   DATE:    97/11/10                                                 */
/*   PURPOSE: Main system configuration file                           */
/*                                                                     */
 /*-------------------------------------------------------------------*/
/*                                                                     */
/*           Copyright 1991 - 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. */
/*                                                                     */
/*---------------------------------------------------------------------*/
/*                                                                     */
/*   This code in this module controls the configuration of the        */
/*   operating system.  Many configurations are possible, based on     */
/*   these inputs:                                                     */
/*     * Options selected in "sys_conf.h"                              */
/*     * The capabilities of the board-support package being used,     */
/*       as defined in "bsp.h"                                         */
/*     * Answers given to questions in the startup configuration       */
/*       dialog, if it is enabled                                      */
/*                                                                     */
/***********************************************************************/
#if __cplusplus
extern "C" {
#endif

#define _SYSINIT_C 1
#include "sys_conf.h"
#include "bsp.h"
#include <bspfuncs.h>
#include <pna.h>
#include <configs.h>
#include <sysvars.h>
#include <apdialog.h>
#include <version.h>
#include <machine.h>


#if (VERSION != BSP_VERSION)
    #error "BSP_VERSION and pSOSystem VERSION do not match!"
#endif

#if SC_PSOS && SC_PSOSM
    #error "Cannot use both pSOS+ and pSOS+m!"
#endif


#if SC_PSOSM
     #define PSOS_INIT pSOSm_Init
#else
     #define PSOS_INIT pSOS_Init
#endif

static void Delay5sec(void);

extern ULONG Dialog(void);

/*---------------------------------------------------------------------*/
/* Compile-time checks                                                 */
/*---------------------------------------------------------------------*/
#if (SC_DEV_SERIAL && BSP_SERIAL)
    #if(SC_DEV_SERIAL > SC_DEVMAX)
        #error "SC_DEV_SERIAL cannot be > SC_DEVMAX"
    #endif
#endif
#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
#endif
#if SC_DEV_RAMDISK
    #if(SC_DEV_RAMDISK > SC_DEVMAX)
        #error "SC_DEV_RAMDISK cannot be > SC_DEVMAX"
    #endif
#endif
#if (SC_DEV_SCSI && BSP_SCSI)
    #if(SC_DEV_SCSI > SC_DEVMAX)
        #error "SC_DEV_SCSI cannot be > SC_DEVMAX"
    #endif
#endif
#if (SC_DEV_TFTP)
    #if(SC_DEV_TFTP > SC_DEVMAX)
        #error "SC_DEV_TFTP cannot be > SC_DEVMAX"
    #endif
#endif

/*---------------------------------------------------------------------*/
/* External function declarations                                      */
/*---------------------------------------------------------------------*/
extern ULONG Print(char *format, ...);

#if !BSP_NEW_SERIAL
    extern void SerialSetup(ULONG, ULONG, ULONG);
#endif

#define MAGIC 0x05291989
#define ALIGN(addr, boundary) ((addr + boundary - 1) & ~(boundary - 1))

extern UCHAR FreeMemStart[];
#if (GHS || __DIAB)
extern UCHAR TextEnd[];
extern UCHAR DataStart[];
extern UCHAR DataEnd[];
#endif	/* GHS || __DIAB */

extern const char MemErrMsg[] =
  "System Initialization Failed: insufficient memory available!";

NV_Parms NVVars;

#define  PROBE_CON_SER_PORT  SC_PROBE_CONSOLE

#if BSP_NEW_SERIAL
    /*-----------------------------------------------------------------*/
    /* Set up the non pSOS port array.                                 */
    /*-----------------------------------------------------------------*/
    int Non_pSOSChan[SC_NumNon_pSOSChan+2];
    int NumNon_pSOSChan;
    int SysBaud;
    int SysConsole;
#endif

extern UCHAR *PnaSetup(UCHAR *,  NODE_CT *);
extern UCHAR *PrepcSetup(UCHAR *,  NODE_CT *);
extern UCHAR *PsosSetup(UCHAR *,  NODE_CT *);
extern UCHAR *PhileSetup(UCHAR *,  NODE_CT *);
extern UCHAR *PrpcSetup(UCHAR *,  NODE_CT *);
extern UCHAR *ProbeSetup(UCHAR *,  NODE_CT *);
extern UCHAR *PmontSetup(UCHAR *, NODE_CT *);
extern UCHAR *PseSetup(UCHAR *,  NODE_CT *);
#if (SC_PX)
extern UCHAR *PxSetup(UCHAR *,  NODE_CT *);
#endif

#if ((SC_PSOS == USEROM) || (SC_PSOSM == USEROM))

#if (SC_BOOT_ROM == YES)
#error "Must not use SC_PSOS or SC_PSOSM USEROM with SC_BOOT_ROM code"
#endif /* SC_BOOT_ROM */

ULONG (*pSOS_tmp)(void);
#else
extern void PSOS_INIT(void);
#endif

#if (SC_PROBE == USEROM)

#if (SC_BOOT_ROM == YES)
#error "Must not use SC_PROBE USEROM with SC_BOOT_ROM code"
#endif /* SC_BOOT_ROM */

ULONG (*pROBE_tmp)(void);
#endif

static const struct SD_parms SysVarsDefaults =
    {
    SC_SD_DEBUG_MODE,
    0, 0, 0,
    SD_STARTUP_DELAY,
    SD_DEF_BAUD,
    SD_VME_BASE_ADDR,
    SD_DEF_GTWY_IP,
    SD_LAN1,
    0, 0, 0,
    SD_LAN1_IP,
    SD_LAN1_SUBNET_MASK,
    SD_SM_NODE,
    SD_NISM,
    0, 0, 0,
    SD_NISM_IP,
    SD_NISM_SUBNET_MASK,
    SD_NISM_DIRADDR,
    SD_KISM,
    SD_KISM_DIRADDR,
    };

#if BSP_NEW_SERIAL
    #if (BSP_MMU == YES)
        UCHAR *gGsBlkArea;          /* Start address of the GS block area */
        ULONG  gGsBlkAreaSize = 0;  /* Size of the allocated region */
    #endif
                                                    
    extern UCHAR *GSblkSetup(UCHAR *, ULONG, ULONG *);
    extern void SerialInit(void);

    /*-----------------------------------------------------------------*/
    /* Global variables set here used by dipi                          */
    /*-----------------------------------------------------------------*/
    int ProbeCon, ProbeHst;

#endif

#if !BSP_NEW_SERIAL && BSP_PARALLEL
        extern UCHAR *GSblkSetup(UCHAR *, ULONG, ULONG *);
    #if (BSP_MMU == YES)
        UCHAR *gGsBlkArea;          /* Start address of the GS block area */
        ULONG  gGsBlkAreaSize = 0;  /* Size of the allocated region */
    #endif
#endif
 
NODE_CT *oldanchor;

/*---------------------------------------------------------------------*/
/* Node anchor and node configuration table.  The anchor address is    */
/* defined in the linker command file.  The anchor is a pointer to the */
/* node configuration table, which in turn points to the configuration */
/* tables for the various components.                                  */
/*---------------------------------------------------------------------*/
extern NODE_CT *anchor;
extern NODE_CT *rom_anchor;
NODE_CT NodeCfg;


/*******************************************************************/
/*    CheckSum: Calculate the checksum for a STORAGE structure     */
/*                                                                 */
/*      INPUTS: StructPtr - ptr to structure to checksum           */
/*              StructSize - size of structure in bytes            */
/*     RETURNS: Checksum for the structure                         */
/*        NOTE: We consider the "checksum" to be simply the sum of */
/*              the individual bytes in the structure              */
/*                                                                 */
/*******************************************************************/
ULONG CheckSum(void *StructPtr, int StructSize)
{
UCHAR *p = (UCHAR *)StructPtr;
USHORT tot = 0;

while(StructSize--)
    tot += *p++ & 0xFF;
return tot;
}


/***********************************************************************/
/* AdjustSysVars: Make any run-time adjustments necessary to the       */
/*                system variables                                     */
/*                                                                     */
/*        NOTE: This should be called after the system variables have  */
/*              been "finalized" by reading from parameter storage and */
/*              possibly being changed by the startup dialog           */
/*                                                                     */
/***********************************************************************/
static void AdjustSysVars(void)
{
#if (!SC_PSOS && !SC_PSOSM)
    if (SysVars.DebugMode == DBG_AP)
        {
        #if SC_STARTUP_DIALOG
            Print("Configured to run application, but pSOS+ not "
              "present, so setting to stand-alone pROBE+\n");
        #endif
        SysVars.DebugMode = DBG_SA;
        }
#endif

#if !SC_PNA
    if (SysVars.DebugMode == DBG_XN)
        {
        #if SC_STARTUP_DIALOG
            Print("Operating mode was remote debug/networked, "
              "but pNA not present\n");
            Print("Setting pROBE+ mode to standalone!\n");
        #endif
        SysVars.DebugMode = DBG_SA;
        }
#endif

#if !SC_RBUG_PORT
    if (SysVars.DebugMode == DBG_XS)
        {
        #if SC_STARTUP_DIALOG
            Print("Operating mode was remote debug/Serial, but "
              "SC_RBUG_PORT is not set.\n");
            Print("Setting pROBE+ mode to standalone!\n");
        #endif
        SysVars.DebugMode = DBG_SA;
        }
#endif

#if !BSP_LAN1
    if (SysVars.Lan1)
        {
        #if SC_STARTUP_DIALOG
            Print("LAN interface requested, but BSP does not "
              "support it\n");
        #endif
        SysVars.Lan1 = 0;
        }
#endif
}

/***********************************************************************/
/* BuildConfigTables: Build the component configuration tables, using  */
/*                    information from the system variables (SysVars). */
/*                                                                     */
/*       INPUT: FreeMemPtr - Pointer to first byte of available memory */
/*                                                                     */
/***********************************************************************/
static UCHAR *BuildConfigTables(UCHAR *FreeMemPtr)
{

#if (SC_BOOT_ROM == YES)
    oldanchor = (void *)0;
#else /* SC_BOOT_ROM */
    oldanchor = rom_anchor;
#endif /* SC_BOOT_ROM */

/* This is where the component's configuration functions are called */
#if SC_PROBE
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = ProbeSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PNA
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PnaSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PREPC
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PrepcSetup(FreeMemPtr, &NodeCfg);
#endif
#if (SC_PHILE || SC_DEV_RAMDISK || SC_DEV_SCSI)
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PhileSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PRPC
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PrpcSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PX
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PxSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PSE
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PseSetup(FreeMemPtr, &NodeCfg);
#endif
#if SC_PMONT
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PmontSetup(FreeMemPtr, &NodeCfg);
#endif

/*---------------------------------------------------------------------*/
/* Perform any BSP specific configuration functions. Most of the node  */
/* configuration table can be used by BspSetup(). Only PsosSetup has   */
/* not been done when BspSetup is called. BspSetup may rely on this.   */
/*---------------------------------------------------------------------*/
FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
FreeMemPtr = (UCHAR *)BspSetup(FreeMemPtr, &NodeCfg);

#if (BSP_MMU == YES)
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = BspMmuInit((ULONG) FreeMemPtr);
#endif
 
#if (SC_PSOS || SC_PSOSM)
    /*-----------------------------------------------------------------*/
    /* PsosSetup() must be called after all other Setup functions.     */
    /*                                                                 */
    /* If pSOS+ has been configured into the system, the FreeMemPtr is */
    /* now part of pSOS+ region zero!  So it can't be used to allocate */
    /* any more memory after this.                                     */
    /*-----------------------------------------------------------------*/
    FreeMemPtr = (UCHAR *)ALIGN((ULONG)FreeMemPtr, 4);
    FreeMemPtr = PsosSetup(FreeMemPtr, &NodeCfg);
#endif

/*---------------------------------------------------------------------*/
/* Finally, finish up node configuration table and set node anchor to  */
/* point to it.                                                        */
/*---------------------------------------------------------------------*/
NodeCfg.cputype = BspCpuType();
if( ((NodeCfg.cputype & 0xff) == PPC603e) ||
    ((NodeCfg.cputype & 0xff) == PPC603p) )
     NodeCfg.cputype =  (NodeCfg.cputype & ~0xff) | PPC603;
else if( ((NodeCfg.cputype & 0xff) == PPC604e) ||
         ((NodeCfg.cputype & 0xff) == PPC604r) ||
         ((NodeCfg.cputype & 0xff) == PPC604p) )
     NodeCfg.cputype =  (NodeCfg.cputype & ~0xff) | PPC604;
else if( (NodeCfg.cputype & 0xff) == PPC860) 
     NodeCfg.cputype =  (NodeCfg.cputype & ~0xff) | PPC821;

#if (BSP_MMU == YES)
    NodeCfg.cputype |= 0x200;
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美aⅴ一区二区三区视频| 国产在线日韩欧美| 亚洲欧美激情一区二区| 亚洲精品高清在线观看| 亚洲国产三级在线| 精品一区二区综合| 成年人午夜久久久| 欧美日韩中文字幕一区二区| 欧美精品一级二级三级| 国产农村妇女精品| 视频一区在线播放| 风间由美性色一区二区三区| av在线不卡电影| 69久久99精品久久久久婷婷| 欧美国产日产图区| 日韩av不卡一区二区| 国产成人午夜电影网| 欧美日韩国产一区二区三区地区| 欧美一区二区三区日韩| 久久久不卡网国产精品二区| 亚洲人成伊人成综合网小说| 性做久久久久久免费观看 | 欧美一区二区三区免费视频| 久久这里只有精品首页| 亚洲欧美一区二区三区孕妇| 久久成人18免费观看| 91视频你懂的| 国产欧美日韩另类一区| 久久国产精品免费| 91麻豆123| 日韩一区二区三区视频在线| 中文字幕一区二区三区四区不卡| 日韩高清在线电影| 国产成人在线网站| 欧美videossexotv100| 亚洲综合图片区| av一区二区三区在线| 欧美大片一区二区三区| 日韩影院免费视频| 91成人在线免费观看| 国产精品天天看| 国产一区二区精品久久99| 欧美日本视频在线| 中文字幕中文字幕一区| 国产剧情在线观看一区二区| 欧美一区二区在线免费观看| 一区二区三区四区中文字幕| proumb性欧美在线观看| 国产亚洲一区字幕| 国产一区二区伦理片| 久久久亚洲精品一区二区三区| 亚洲综合视频在线| 国产一区二区成人久久免费影院| 欧美一级搡bbbb搡bbbb| 亚洲h在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产乱人伦偷精品视频不卡| 日韩一卡二卡三卡国产欧美| 日韩av一区二区在线影视| 制服丝袜中文字幕亚洲| 日韩精品亚洲专区| 成人免费黄色在线| 精品剧情v国产在线观看在线| 日韩在线一二三区| 久久这里只有精品6| 国产成人亚洲精品狼色在线| 国产精品欧美一区喷水| 9l国产精品久久久久麻豆| 亚洲欧美aⅴ...| 色琪琪一区二区三区亚洲区| 亚洲欧美在线视频| 国产精品一区二区久久不卡| 一区二区三区四区不卡视频| 日本乱人伦aⅴ精品| 首页国产丝袜综合| 精品国产区一区| 国产二区国产一区在线观看| 日韩伦理电影网| 欧美精品一二三四| 国产一区二区影院| 国产蜜臀97一区二区三区| 色狠狠一区二区| 久久激情五月婷婷| 中文字幕一区二区三区四区 | 免费人成精品欧美精品| 久久久不卡网国产精品一区| 99久久久久久| 亚洲.国产.中文慕字在线| 精品99久久久久久| 色哟哟欧美精品| 亚洲国产综合在线| 久久久综合九色合综国产精品| 91影院在线免费观看| 日韩av电影天堂| 国产精品色哟哟| 欧美一区二区视频在线观看2020 | 7777精品伊人久久久大香线蕉经典版下载 | 在线播放中文一区| 国产精品亚洲人在线观看| 亚洲综合激情小说| 欧美三级视频在线| 国产成人丝袜美腿| 天堂午夜影视日韩欧美一区二区| 亚洲国产精品v| 欧美成人猛片aaaaaaa| 91免费看`日韩一区二区| 乱一区二区av| 亚洲成在人线免费| 中文字幕不卡的av| 日韩免费看网站| 欧美三级电影在线看| 久久成人精品无人区| 亚洲成人中文在线| 国产精品久久久久久久久晋中 | 精品无码三级在线观看视频| 午夜久久久影院| 午夜影视日本亚洲欧洲精品| 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕一区二区不卡| 国产精品欧美一级免费| 国产精品免费av| 综合久久久久久久| 亚洲精品日韩综合观看成人91| 18欧美乱大交hd1984| 亚洲欧美国产高清| 亚洲女与黑人做爰| 一区二区三区不卡视频| 亚洲综合一区二区三区| 亚洲永久精品大片| 日韩精品久久久久久| 久久不见久久见免费视频7| 美国毛片一区二区三区| 激情综合五月天| 国产成人免费在线观看不卡| 国产成人亚洲精品狼色在线| 99免费精品视频| 欧洲激情一区二区| 欧美videos中文字幕| 欧美国产乱子伦| 亚洲精品亚洲人成人网| 日韩av高清在线观看| 国产成人aaa| 欧美性猛交xxxxxx富婆| 精品美女在线播放| 中文字幕一区二区三区在线播放| 亚洲va天堂va国产va久| 免播放器亚洲一区| eeuss鲁片一区二区三区在线观看| 91久久线看在观草草青青| 欧美肥胖老妇做爰| 国产精品热久久久久夜色精品三区| 亚洲精品成人a在线观看| 久久国产精品99久久久久久老狼| 成人在线视频一区| 欧美男女性生活在线直播观看| 精品国产1区2区3区| 一区二区视频免费在线观看| 久久精品国产亚洲5555| 99精品视频中文字幕| 欧美一级欧美三级| 国产精品护士白丝一区av| 喷水一区二区三区| 成人黄色av电影| 91.麻豆视频| 自拍偷在线精品自拍偷无码专区| 麻豆免费精品视频| 91免费观看国产| 久久久久久久久久久久久女国产乱 | www.成人网.com| 日韩欧美一级在线播放| 亚洲免费毛片网站| 国产一二三精品| 制服丝袜亚洲播放| 亚洲欧美一区二区在线观看| 美女视频免费一区| 欧洲精品在线观看| 国产精品视频你懂的| 免费成人av资源网| 欧美亚洲综合久久| 最新日韩在线视频| 国产电影一区二区三区| 91精品国产欧美一区二区成人| 亚洲视频一区二区在线| 国产成人综合视频| 欧美成人精品福利| 视频一区视频二区在线观看| 91成人免费在线视频| 国产精品久久久久久久久图文区| 国产在线不卡一卡二卡三卡四卡| 3d动漫精品啪啪1区2区免费 | 国产免费成人在线视频| 国内一区二区视频| 日韩欧美www| 久久国产精品一区二区| 日韩欧美成人一区| 久久99国产精品久久| 精品国产伦一区二区三区观看体验| 午夜影院久久久| 8x福利精品第一导航| 日本欧美在线观看|