?? usrconfig.c
字號:
}
}
#endif /* INCLUDE_NTPASSFS */
/* initialize object module loader */
#ifdef INCLUDE_LOADER
moduleLibInit (); /* initialize module manager */
#if defined(INCLUDE_AOUT)
loadAoutInit (); /* use a.out format */
#else /* coff or ecoff */
#if defined(INCLUDE_ECOFF)
loadEcoffInit (); /* use ecoff format */
#else /* ecoff */
#if defined(INCLUDE_COFF)
loadCoffInit (); /* use coff format */
#else /* coff */
#if defined(INCLUDE_ELF)
loadElfInit (); /* use elf format */
#else
#if defined(INCLUDE_SOM_COFF)
loadSomCoffInit ();
#else
#if defined(INCLUDE_PECOFF)
{
extern int loadPecoffInit();
loadPecoffInit ();
}
#endif
#endif
#endif
#endif
#endif
#endif
#endif /* INCLUDE_LOADER */
/* initialize network */
#ifdef INCLUDE_NET_INIT
usrBootLineInit (sysStartType); /* crack the bootline */
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("before usrNetInit()\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
usrNetInit (BOOT_LINE_ADRS); /* initialize network support */
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("after usrNetInit()\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
#endif /* INCLUDE_NET_INIT */
#ifdef INCLUDE_PASSFS
{
extern STATUS passFsInit ();
extern void *passFsDevInit ();
char passName [256];
if (passFsInit (1) == OK)
{
extern char vxsim_hostname[];
extern char vxsim_cwd[];
sprintf (passName, "%s:", vxsim_hostname);
if (passFsDevInit (passName) == NULL)
{
#ifdef INCLUDE_STDIO
printf ("passFsDevInit failed for <%s>\n", passName);
#endif /* INCLUDE_STDIO */
}
else
{
sprintf (passName, "%s:%s", vxsim_hostname, vxsim_cwd);
ioDefPathSet (passName);
}
}
else
#ifdef INCLUDE_STDIO
printf ("passFsInit failed\n");
#endif /* INCLUDE_STDIO */
}
#endif /* INCLUDE_PASSFS */
#ifdef INCLUDE_DOS_DISK
{
char unixName [80];
extern void unixDrv ();
extern void unixDiskInit ();
extern char *u_progname; /* home of executable */
char *pLastSlash;
unixDrv ();
pLastSlash = strrchr (u_progname, '/');
pLastSlash = (pLastSlash == NULL) ? u_progname : (pLastSlash + 1);
sprintf (unixName, "/tmp/%s%d.dos", pLastSlash, sysProcNumGet());
unixDiskInit (unixName, "A:", 0);
}
#endif /* INCLUDE_DOS_DISK */
/* initialize shared memory objects */
#ifdef INCLUDE_SM_OBJ /* unbundled shared memory objects */
usrSmObjInit (BOOT_LINE_ADRS);
#endif /* INCLUDE_SM_OBJ */
/* initialize WindMP */
#ifdef INCLUDE_VXFUSION /* unbundled VxFusion (distributed objects) */
usrVxFusionInit (BOOT_LINE_ADRS);
#ifdef INCLUDE_SHOW_ROUTINES
{
extern void msgQDistShowInit();
extern void distNameShowInit ();
extern void distIfShowInit ();
extern void msgQDistGrpShowInit ();
msgQDistShowInit();
distNameShowInit ();
distIfShowInit ();
msgQDistGrpShowInit ();
}
#endif /* INCLUDE_SHOW_ROUTINES */
#endif /* INCLUDE_WINDMP */
/* write protect text segment & vector table only after bpattach () */
#ifdef INCLUDE_MMU_FULL /* unbundled mmu product */
#ifdef INCLUDE_PROTECT_TEXT
if (vmTextProtect () != OK)
printf ("\nError protecting text segment. errno = %x\n", errno);
#endif /* INCLUDE_PROTECT_TEXT */
#ifdef INCLUDE_PROTECT_VEC_TABLE
if (intVecTableWriteProtect () != OK)
printf ("\nError protecting vector table. errno = %x\n", errno);
#endif /* INCLUDE_PROTECT_VEC_TABLE */
#endif /* INCLUDE_MMU_FULL */
/* install select hook only after NFS/RPC for proper delete hook order */
#ifdef INCLUDE_SELECT
selTaskDeleteHookAdd ();
#endif /* INCLUDE_SELECT */
/* create system and status symbol tables */
#ifdef INCLUDE_STANDALONE_SYM_TBL
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("before symTblCreate()\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
sysSymTbl = symTblCreate (SYM_TBL_HASH_SIZE_LOG2, TRUE, memSysPartId);
printf ("\nAdding %ld symbols for standalone.\n", standTblSize);
/* fill in from built in table*/
for (ix = 0; (ULONG) ix < standTblSize; ix++)
#if ((CPU_FAMILY == ARM) && ARM_THUMB)
thumbSymTblAdd (sysSymTbl, &(standTbl[ix]));
#else
symTblAdd (sysSymTbl, &(standTbl[ix]));
#endif /* CPU_FAMILY == ARM */
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("sysSymTbl complete.\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
#endif /* INCLUDE_STANDALONE_SYM_TBL */
#ifdef INCLUDE_NET_SYM_TBL
sysSymTbl = symTblCreate (SYM_TBL_HASH_SIZE_LOG2, TRUE, memSysPartId);
netLoadSymTbl (); /* fill in table from host */
#endif /* INCLUDE_NET_SYM_TBL */
#ifdef INCLUDE_STAT_SYM_TBL
statSymTbl = symTblCreate (STAT_TBL_HASH_SIZE_LOG2, FALSE, memSysPartId);
for (ix = 0; (ULONG)ix < statTblSize; ix ++) /* fill in from builtin table*/
symTblAdd (statSymTbl, &(statTbl [ix]));
#endif /* INCLUDE_STAT_SYM_TBL */
#ifdef INCLUDE_SYM_TBL_SYNC
/* initialize wtx client to synchronize host and target symbol tables */
symSyncLibInit ();
#endif /* INCLUDE_SYM_TBL_SYNC */
/* initialize C++ support library */
#if defined (INCLUDE_CPLUS) && defined (INCLUDE_CPLUS_MIN)
#error Define only one of INCLUDE_CPLUS or INCLUDE_CPLUS_MIN, not both
#endif
#if defined (INCLUDE_CPLUS) || defined (INCLUDE_CPLUS_MIN)
#ifndef INCLUDE_CTORS_DTORS
#define INCLUDE_CTORS_DTORS
#endif
#endif
#ifdef INCLUDE_CTORS_DTORS
/*
* call compiler generated init functions (usually - but not necessarily -
* C++ related)
*/
cplusCtorsLink ();
#endif
#ifdef INCLUDE_CPLUS /* all standard C++ runtime support */
cplusLibInit ();
#endif
#ifdef INCLUDE_CPLUS_MIN /* minimal C++ runtime support */
cplusLibMinInit ();
#endif
#ifdef INCLUDE_CPLUS_DEMANGLER
cplusDemanglerInit ();
#endif
/* initialize COM/DCOM runtime support */
#ifdef INCLUDE_COM
comLibInit ();
#endif
#ifdef INCLUDE_DCOM
dcomLibInit ();
#endif
/* initialize Wind Web Server */
#ifdef INCLUDE_HTTP
httpd ();
#endif /* INCLUDE_HTTP */
#ifdef INCLUDE_RBUFF /* install rBuff support */
rBuffLibInit();
#ifdef INCLUDE_SHOW_ROUTINES
rBuffShowInit (); /* install rBuff show routine */
#endif /* INCLUDE_SHOW_ROUTINES */
#endif /* INCLUDE_RBUFF */
#ifdef INCLUDE_WINDVIEW
windviewConfig ();
#endif /* INCLUDE_WINDVIEW */
/* initialize the WDB debug agent */
#ifdef INCLUDE_WDB
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("before wdbConfig()\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
wdbConfig();
# if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
logMsg ("after wdbConfig()\n", 1,2,3,4,5,6);
taskDelay (2); /* allow time for message to be displayed */
# endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
#ifdef INCLUDE_WDB_BANNER
#if (WDB_COMM_TYPE == WDB_COMM_NETWORK)
#define WDB_COMM_TYPE_STR "WDB_COMM_NETWORK"
#endif /* WDB_COMM_TYPE == WDB_COMM_NETWORK */
#if (WDB_COMM_TYPE == WDB_COMM_SERIAL)
#define WDB_COMM_TYPE_STR "WDB_COMM_SERIAL"
#endif /* WDB_COMM_TYPE == WDB_COMM_SERIAL */
#if (WDB_COMM_TYPE == WDB_COMM_TYCODRV_5_2)
#define WDB_COMM_TYPE_STR "WDB_COMM_TYCODRV_5_2"
#endif /* WDB_COMM_TYPE == WDB_COMM_TYCODRV_5_2 */
#if (WDB_COMM_TYPE == WDB_COMM_NETROM)
#define WDB_COMM_TYPE_STR "WDB_COMM_NETROM"
#endif /* WDB_COMM_TYPE == WDB_COMM_NETROM */
#if (WDB_COMM_TYPE == WDB_COMM_VTMD)
#define WDB_COMM_TYPE_STR "WDB_COMM_VTMD"
#endif /* WDB_COMM_TYPE == WDB_COMM_VTMD */
#if (WDB_COMM_TYPE == WDB_COMM_END)
#define WDB_COMM_TYPE_STR "WDB_COMM_END"
#endif /* WDB_COMM_TYPE == WDB_COMM_END */
#if (WDB_COMM_TYPE == WDB_COMM_CUSTOM)
#define WDB_COMM_TYPE_STR "WDB_COMM_CUSTOM"
#endif /* WDB_COMM_TYPE == WDB_COMM_CUSTOM */
#if (WDB_COMM_TYPE == WDB_COMM_PIPE)
#define WDB_COMM_TYPE_STR "WDB_COMM_PIPE"
#endif /* WDB_COMM_TYPE == WDB_COMM_PIPE */
#ifndef WDB_COMM_TYPE_STR
#define WDB_COMM_TYPE_STR "Unknown"
#endif /* WDB_COMM_TYPE_STR */
#ifndef INCLUDE_SHELL
/* WDB banner same as printed by usrWdbBanner */
printf ("\n\n");
printf ("%23s\n\n", runtimeName);
printf ("Copyright 1984-2002 Wind River Systems, Inc.\n\n");
printf (" CPU: %s\n", sysModel ());
printf (" Runtime Name: %s\n", runtimeName);
printf ("Runtime Version: %s\n", runtimeVersion);
printf (" BSP version: " BSP_VERSION BSP_REV "\n");
printf (" Created: %s\n", creationDate);
printf (" WDB Comm Type: %s\n", WDB_COMM_TYPE_STR);
printf (" WDB: %s.\n\n",
((wdbRunsExternal () || wdbRunsTasking ()) ?
"Ready" : "Agent configuration failed") );
#endif /*INCLUDE_SHELL*/
#endif /*INCLUDE_WDB_BANNER*/
#endif /* INCLUDE_WDB */
/* initialize interactive shell */
#ifdef INCLUDE_SHELL
#ifdef INCLUDE_SECURITY /* include shell security */
if ((sysFlags & SYSFLG_NO_SECURITY) == 0)
{
loginInit (); /* initialize login table */
shellLoginInstall (loginPrompt, NULL); /* install security program */
/* add additional users here as required */
loginUserAdd (LOGIN_USER_NAME, LOGIN_PASSWORD);
}
#endif /* INCLUDE_SECURITY */
printLogo (); /* print out the banner page */
printf (" ");
printf ("CPU: %s. Processor #%d.\n", sysModel (), sysProcNumGet ());
printf (" ");
#ifdef HITACHI_SH_KERNEL_ON_SDRAM
printf ("Memory Size: 0x%x.", (UINT)(sysMemTop () - (char *)FREE_RAM_ADRS));
#else /* HITACHI_SH_KERNEL_ON_SDRAM */
printf ("Memory Size: 0x%x.", (UINT)(sysMemTop () - (char *)LOCAL_MEM_LOCAL_ADRS));
#endif /* HITACHI_SH_KERNEL_ON_SDRAM */
printf (" BSP version " BSP_VERSION BSP_REV ".");
#if defined(INCLUDE_WDB) && defined(INCLUDE_WDB_BANNER)
printf ("\n ");
printf ("WDB Comm Type: %s", WDB_COMM_TYPE_STR);
printf ("\n ");
printf ("WDB: %s.",
((wdbRunsExternal () || wdbRunsTasking ()) ?
"Ready" : "Agent configuration failed") );
#endif /*INCLUDE_WDB && INCLUDE_WDB_BANNER*/
printf ("\n\n");
#ifdef INCLUDE_STARTUP_SCRIPT /* run a startup script */
if (sysBootParams.startupScript [0] != EOS)
usrStartupScript (sysBootParams.startupScript);
#endif /* INCLUDE_STARTUP_SCRIPT */
shellInit (SHELL_STACK_SIZE, TRUE); /* create the shell */
/* only include the simple demo if the shell is NOT included */
#else
#if defined(INCLUDE_DEMO) /* create demo w/o shell */
taskSpawn ("demo", 20, 0, 2000, (FUNCPTR)usrDemo, 0,0,0,0,0,0,0,0,0,0);
#endif /* mips cpp no elif */
#endif /* INCLUDE_SHELL */
#ifdef INCLUDE_WINDML
usrWindMlInit ();
#endif /* INCLUDE_WINDML */
#if defined (INCLUDE_SOUND) && defined(INCLUDE_SB16)
sb16Drv (); /* install sound driver SB16 */
sb16DevCreate ("/sound", 0x220, 5, 1, 5);
#endif /* INCLUDE_SOUND && INCLUDE_SB16 */
#if defined(INCLUDE_JAVA)
javaConfig ();
#endif /* INCLUDE_JAVA */
#ifdef INCLUDE_HTML
usrHtmlInit ();
#endif /* INCLUDE_HTML */
#if CPU==SIMNT
win_ReleaseMutex(simUpMutex);
#endif
#ifdef INCLUDE_USER_APPL
/* Startup the user's application */
USER_APPL_INIT; /* must be a valid C statement or block */
#endif
}
/*******************************************************************************
*
* usrClock - user-defined system clock interrupt routine
*
* This routine is called at interrupt level on each clock interrupt.
* It is installed by usrRoot() with a sysClkConnect() call.
* It calls all the other packages that need to know about clock ticks,
* including the kernel itself.
*
* If the application needs anything to happen at the system clock interrupt
* level, it can be added to this routine.
*
* RETURNS: N/A
*/
void usrClock ()
{
tickAnnounce (); /* announce system tick to kernel */
}
#ifdef INCLUDE_DEMO
/********************************************************************************
* usrDemo - example application without shell
*
* This routine is spawned as a task at the end of usrRoot(), if INCLUDE_DEMO
* is defined, and INCLUDE_SHELL is NOT defined in configAll.h or config.h.
* It is intended to indicate how a shell-less application can be linked,
* loaded, and ROMed.
*
* NOMANUAL
*/
void usrDemo (void)
{
char string [40];
printf ("VxWorks (for %s) version %s.\n", sysModel (), vxWorksVersion);
printf ("Kernel: %s.\n", kernelVersion ());
printf ("Made on %s.\n", creationDate);
FOREVER
{
printf ("\nThis is a test. Type something: ");
fioRdString (STD_IN, string, sizeof (string));
printf ("\nYou typed \"%s\".\n", string);
if (strcmp (string, "0") == 0)
memShow (0);
if (strcmp (string, "1") == 0)
memShow (1);
}
}
#endif /* INCLUDE_DEMO */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -