usrConfig.c
上传用户:dqzhongke1
上传日期:2022-06-26
资源大小:667k
文件大小:81k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* usrConfig.c - user-defined system configuration library */
  2. /*
  3.  * Copyright (c) 1984-2007 Wind River Systems, Inc.
  4.  *
  5.  * The right to copy, distribute, modify or otherwise make use
  6.  * of this software may be licensed only pursuant to the terms
  7.  * of an applicable Wind River license agreement.
  8.  */
  9. /*
  10. modification history
  11. --------------------
  12. 27b,22mar07,jmt  Initialize usrBootLineInit for bootrom when INCLUDE_NETWORK
  13.                  is not defined.
  14. 27a,28feb07,jmt  Add INCLUDE_BOOT_EDR_SUPPORT component
  15. 26z,24feb07,jmt  Fix problem with ATA support in bootroms
  16. 26y,16feb07,jmt  Move INCLUDE_BOOT_ADDMEM earlier in init sequence
  17. 26x,08feb07,jmt  Add Filesystem boot support
  18. 26w,23jan07,jmt  Add BootApp USB components
  19. 26v,28nov06,h_k  added INCLUDE_BOOT_ETH_ADR_SET. (CQ:81271)
  20. 26u,15nov06,jmt  Defect 81462: Update BootApp init function
  21. 26p,17oct06,gls  made maxIsrJobs argument a UINT (Defect #00059580)
  22. 26t,24oct06,jmt  Add INCLUDE_BOOT_ETH_MAC_HANDLER
  23. 26s,05sep06,tcr  add initialization for INCLUDE_POSIX_TRACE_TIMESTAMP
  24. 26r,16aug06,jmt  Add bootApp components
  25. 26q,15jul06,kch  Added configNetParams.h include statement. Also replaced 
  26.                  INCLUDE_NET_MICRO_STACK with INCLUDE_COMMON_NET.
  27. 26p,30may06,tkf  Remove usrBootLineGet() routine.
  28. 26o,19may06,tkf  Add usrBootLineGet() routine.
  29. 26n,17jul06,ggz  added initialization of TIPC WV instrumentation
  30. 26m,10jul06,gls  added sigeventLibInit()
  31. 26l,07jul06,pcs  update call to fn memRtpLibInit with 2nd parameter as
  32.                  MEM_PART_DEFAULT_OPTIONS
  33. 26k,06jul06,jln  added thread SPORADIC scheduling support
  34. 26j,04jul06,tcr  add INCLUDE_POSIX_TRACE
  35. 26i,16jun06,zl   added INCLUDE_MEM_MGR_INFO support.
  36. 26h,05may06,tcr  Ensure rBuffMgr priority set before calling rBuffLibInit()
  37. 26g,19apr06,dcc  fixed SPR 120265
  38. 26f,07apr06,dgp  doc: fix SEE ALSO references for library
  39. 26e,23feb06,jlk  added initialization of POSIX advisory file locking component
  40. 26d,14feb06,jln  added initialization of thread CPU-time clock
  41. 26c,13feb06,bwa  removed references to vxfusion.
  42. 26b,10feb06,jlk  Updated iosInit() call to take the IOS_POSIX_PSE52_MODE
  43.                  parameter.
  44. 26a,09feb06,gls  added posixMode parameter to sigInit()
  45. 25z,03feb06,md   SPR 117455, fix ED&R stub initialialisation
  46. 25y,20jan06,pad  Updated call to rtpLibInit() to pass the maximum number of
  47.                  file descriptors.
  48. 25x,17jan06,bpn  Simplified the initialization of the system symbol table.
  49. 25w,10jan06,agf  moving symbols from sysLib to here so as not to generate
  50.                  warning with sysComms in prj builds (SPR 114346)
  51. 25v,10jan06,zl   added INCLUDE_MAPPED_FILES_SHOW support.
  52. 25u,21dec05,rfr  Added INCLUDE_VRFS
  53. 25t,20dec05,pcm  added parameter to cdromFsInit() call
  54. 25s,26oct05,zl   added POSIX shared memory objects and memory mapped files.
  55. 25r,09oct05,mmi  added CPU power management initialization.
  56. 25q,28sep05,pcm  re-added usrFdConfig() as it was got lost
  57. 25p,21sep05,pcm  added calls to usrFdConfig() after fdDrv()
  58. 25o,15sep05,jln  Added taskPxLib initialization
  59. 25n,14sep05,ami  Initialization of USB Stack moved after the Initialization of
  60.                  Network Stack (SPR #111676)
  61. 25m,08sep05,dcc  removed INCLUDE_TAPEFS component (SPR# 111788).
  62. 25l,08aug05,dcc  added dosFs cache initialization.
  63. 25k,16jul05,jln  Added INCLUDE_POSIX_PTHREAD_SCEHD initialization 
  64. 25j,12jul05,mil  Added memAllotLibInit for minimal kernel.
  65. 25i,08jul05,mil  Conditionalized out memPartLibInit().
  66. 25h,04aug05,dcc  added an extra parameter to usrDosfsInit().
  67. 25g,04aug05,aeg  added inclusion of cdromFsLib.h
  68. 25f,03aug05,pcm  added parameters to usrDosfsInit()
  69. 25e,28jul05,pcm  simplified initialization of DosFs
  70. 25d,25jul05,jmp  added usrCoreDumpInit().
  71. 25c,19jul05,pcm  added INCLUDE_XBD_BLK_DEV
  72. 25e,24aug05,mmi  Add CPU Power Magmt. FrameWork
  73. 25m,15aug05,h_k  added INCLUDE_MMU_GLOBAL_MAP.
  74. 25l,05aug05,jln  removed configuration of POSIX scheduler
  75. 25k,04aug05,wap  Changes for microstack
  76. 25j,20jul05,pcm  added INCLUDE_XBD_BLK_DEV
  77. 25i,16jul05,jln  Added INCLUDE_POSIX_PTHREAD_SCEHD initialization 
  78. 25h,12jul05,mil  Added memAllotLibInit for minimal kernel.
  79. 25g,08jul05,mil  Conditionalized out memPartLibInit().
  80. 24f,23jun05,jlk  Fixed up fs event lib
  81. 24e,23jun05,jlk  Added fsPathWaitLibInit(). Removed inclusion of copyright 
  82.                  header file
  83. 24d,17jun05,pcm  used configlette init routines for dosfs & hrfs
  84. 24c,13jun05,pcm  added new component init routines
  85. 25b,06jun05,dbt  Added support for Wind River Agent Proxy.
  86. 25a,16may05,ebh  update for distributed SNS services
  87. 24z,22apr05,dr   SPR# 108100 - added call to aimFppLibInit.
  88. 24y,31mar05,hch  change the INCLUDE_USB_AUDIO_DEMO typo
  89. 24x,23mar05,dcc  added cdromFsInit() to usrRoot().
  90. 24w,21mar05,pcm  added tapeFsInit() to usrRoot()
  91. 24v,18mar05,yvp  Scalability mods.
  92. 24u,15dec04,md   Moved ED&R stub init code to below clock init code
  93. 24t,25feb05,pcs  Modified to reflect the change to the prototype of fn.
  94.                  rtpLibInit
  95. 24s,25feb05,h_k  removed prototype declaration for aimMmuShowInit(). (SPR
  96.                  #106193)
  97. 24r,07feb05,zl   enable text protection early
  98. 24q,08feb05,pch  SPR 102772: add INCLUDE_PROTECT_INTERRUPT_STACK
  99. 24o,01feb05,gls  added usrKernelCoreInit() (SPR #102214)
  100. 24n,22nov04,zl   test KERNEL_HEAP_SIZE parameter against sysMemTop().
  101. 24m,15nov04,yvp  Changed prototype for usrRtpAppInitString().
  102. 24l,11nov04,job  Moved location of system call initialization routines
  103. 24k,01nov04,slk  SPR92598: Add _WRS_OSM_INIT define for call to excOsmInit
  104.  add MIPS support for excOsmInit.
  105. 24j,01nov04,slk  Remove MIPS from architectures calling excOsmInit
  106. 24i,29oct04,slk  SPR 92598: Add MIPS to valid CPUs that can call excOsmInit()
  107. 24h,28oct04,pch  SPR 92598: add excOsmInit (exception stack overflow)
  108.  add excIntNestLogInit (LOG_FRAMELESS and LOG_DISPATCH support)
  109. 24g,27oct04,rec  fix power management compilation warning
  110. 24f,26oct04,dtr  Remove gnu compiler warning for IMPORT aimMmuShowInit.
  111. 24e,26oct04,fr   added msgQOpenInit() and timerOpenInit() (SPR 101491)
  112. 24d,19oct04,zl   call usrTextProtect() instead of vmTextProtect().
  113. 24c,15oct04,pad  Swapped order of calls to rtpHookLibInit() and rtpLibInit():
  114.                  rtpHookLibInit() must come first (SPR #102595).
  115. 24b,13oct04,dlk  Added NBIO_LOG.
  116. 24a,12oct04,rec  fix merge problem
  117. 23z,20sep04,ami  NET2280 tested on High Speed
  118. 23r,16aug04,pdg  Fix for long booting time of OHCI and EHCI
  119. 23q,09aug04,hch  added USB peripheral keyboard and mouse initialization
  120.  moved the pegasus driver initialization after usrNetInit
  121. 23p,04aug04,hch  add USB peripheral mass storage driver initialization
  122. 23o,29sep04,dtr  Add AIM MMU Show init. SPR 101412.
  123. 23n,21sep04,mig  Clear bss segment before cacheLibInit().
  124. 23m,23sep04,ann  merge from networking: Remove obsolete sysctl refs, 
  125. 23y,06oct04,zl   corrected location of vmShowShellCmdInit() prototype
  126. 23x,02oct04,gls  sdLibInit() and sdShowInit() now declared in sdLibP.h
  127. 23w,01oct04,zl   added memory management shell commands.
  128. 23w,01oct04,aeg  moved msgQLibInit/msgQShowInit out of usrKernelInit.
  129. 23v,30sep04,tam  removed INCLUDE_EDR_KH; added INCLUDE_PROTECT_TASK_STACK and
  130.  INCLUDE_TASK_STACK_NO_EXEC
  131. 23u,23sep04,kk   added rtpShowShellInit() initialization
  132. 23x,29sep04,dbt  Make use of usrWdbBanner.c configlette. wdbConfig() is
  133.  replaced by usrWdbInit().
  134. 23w,23sep04,md   fix ED&R debug flag message
  135. 23v,23sep04,ann  merge from networking: Remove obsolete sysctl refs, 
  136.  ftp login and security changes, SPR #100002.
  137. 23j,08sep04,jyo  Fixing SPR 100119: Removing references to RT11.
  138. 23u,24sep04,yvp  Fix SPR 99907: Stop calling ioGlobalStdSet in pre-kernel code.
  139. 23u,23sep04,jn   Add configuration parameter for system symbol table
  140. 23t,18sep04,jn   Add initialization routine for unldLib
  141. 23s,17sep04,jmp  made passFs cache configureable.
  142. 23r,09sep04,md   add carriage return to ED&R message
  143. 23q,13sep04,zl   corrected MM private headers.
  144. 23p,09sep04,bpn  Added shell command init routines.
  145. 23o,07sep04,yvp  rtpHookLibInit() prototype change.
  146. 23n,03sep04,ans  added INCLUDE_JOB_TASK and updated excInit () parameter list
  147. 23m,01sep04,jmp  removed simulator specific code.
  148. 23l,27aug04,gls  added SD_HOOK_TBL_SIZE parameter to sdLibInit()
  149. 23l,17sep04,sru  Add sysTextProtect global; undef MIPS vmTextProtect().
  150. 23k,24aug04,job  Changed call of posixScInit() to usrPosixScInit()
  151. 23j,28jul04,md   removed INCLUDE_EDR_SYMBOLIC, INCLUDE_SC_EDR; SPR78837
  152. 23j,15sep04,dtr  Remove usrSpeInit call with COPROCLIB.
  153. 23i,06jul04,dtr  Add in call to usrMmuOptimize and usrAimMmuConfig.
  154. 23h,07jul04,c_c  Get rid of romfs_image.h
  155. 23g,29jun04,job  INCLUDE_SYSCTL_HW inclusion dependent on INCLUDE_SYSCTL
  156. 23f,28jun04,job  changed INCLUDE_SYSCTL_API to INCLUDE_SYSCTL
  157. 23e,14jun04,job  Renamed usrSysctl2 to usrSysctl
  158. 23d,11jun04,dcc  added clockLibInit() call.
  159. 23c,09jun04,zl   removed references to vxVMI (INCLUDE_MMU_FULL).
  160. 23g,01jun04,mem  added call to palInit().
  161. 23t,14may04,syy  Remove DHCPv6 initilization code
  162. 23s,14may04,kk   added shlShellCmdInit() call
  163. 23r,08jun04,elg  Add ability to start WDB before kernel.
  164. 23q,02jun04,bpn  Register shell commands for the loader and the unloader.
  165. 23p,06may04,md   include cmd shell ED&R routines using INCLUDE_EDR_SHOW
  166. 23o,20may04,gls  renamed mmScLibInit to mmanScLibInit
  167. 23n,18may04,yvp  Added INCLUDE_RTP_APPL_INIT_CMD_SHELL_SCRIPT.
  168. 23m,18may04,bpn  Added call to usrRtpLibInit().
  169. 23l,06may04,md   include cmd shell ED&R routines using INCLUDE_EDR_SHOW
  170. 23k,03may04,kk   added INCLUDE_SHL_SHOW
  171. 23j,30apr04,fr   added edrShellCmdInit call
  172. 23i,02apr04,dms  Added INCLUDE_SHL.
  173. 23h,18mar04,md   added procfs component specific init calls
  174. 23g,14apr04,syy  Added DHCP6 client initialization
  175. 23f,07may04,yvp  Added support for various RTP Startup facility components.
  176. 23e,30apr04,kk  enable RTP_SHOW & SD_SHOW to be included standalone
  177. 23d,28apr04,zl   added memEdrRtpShowInit()
  178. 23c,27apr04,tam  fixed prototype of memRtpLibInit()
  179. 23b,27apr04,bpn  Replace loginPrompt() with loginPrompt2().
  180. 23a,21apr04,dat  move selectInit after iosInit, before tyLibInit (96540)
  181. 22z,14apr04,syy  Added DHCP6 client initialization
  182. 22y,14apr04,pch  SPR 95355: enable interrupts in root task after MMU is set up.
  183.  Fix warnings re constant conditionals involving NUM_TTY.
  184. 22x,09apr04,gls  added sdShowInit()
  185. 22w,06apr04,yp   reworking adrSpaceLib initialization
  186. 22v,06apr04,job  Pass TASK_STACK_OVERFLOW_SIZE and TASK_STACK_UNDERFLOW_SIZE
  187.  to rtpLibInit()
  188. 22u,06apr04,jn   Fix build warning in bsp builds.  Move loader related
  189.  includes here from usrConfig.h.
  190. 22t,01apr04,dat  adding INCLUDE_MEMDRV, (93390), INCLUDE_PTYDRV (6294)
  191. 22s,18mar04,dat  adding support for poolLib, poolShow, setLib
  192. 22r,10mar04,dbt  vi editing mode should be the default for the shell.
  193. 22q,23feb04,tcr  fix use of INCLUDE_TIMESTAMP
  194. 22p,23feb04,asr  Added protection around loginUserAdd
  195. 22o,20feb04,vvv  made changes for socket/sysctl separation from stack
  196. 22n,20feb04,yvp  Added RTP startup facility (INCLUDE_RTP_APPL).
  197. 22m,18feb04,ans  Added RTP_SIGNAL_QUEUE_SIZE for RTP initialization.
  198. 22l,11feb04,mil  Fixed shell not enabling SPE task option.
  199. 22k,18feb04,md   added INCLUDE_SC_EDR init code (ED&R syscall)
  200. 22j,03feb04,dat  chg init order for POSIX_AIO
  201. 22i,26jan04,elg  Add initialization of WDB hooks.
  202. 22h,26jan04,zl   added memEdrLib configuration.
  203. 22g,23jan04,syy  Eliminate compile warnings on wvNetDInit()
  204. 22f,16jan04,syy  Added wvNetDInit() to usrRoot()
  205. 22e,09jan04,als  correct pathname for SNS server RTP initialization (SPR#92606)
  206. 22d,08jan04,md   fix procfsFsDevCreate() prototype (SPR #92703)
  207. 22c,15dec03,dat  Copyright update to 2004
  208. 22b,08oct03,tcr  fix WindView timestamp inclusion for bsp builds
  209. 22a,04sep03,tcr  update WindView upload paths
  210. 21z,12dec03,yvp  Changed syscall.c to syscallTbl.h.
  211. 21y,09dec03,yvp  Added #include of syscall.c
  212. 21x,08dec03,m_s  included posix header files
  213. 21w,07dec03,md   moved procfs init code.
  214. 21v,05dec03,zl   added call of memRtpLibInit().
  215. 21u,04dec03,ans  Corrected #ifdef INCLUDE_POSIX_MMAN to #ifdef INCLUDE_SC_POSIX.
  216. 21t,02dec03,dbs  fix call to edrSystemDebugModeGet()
  217. 21s,24nov03,p_r  added SAL components
  218. 21r,18nov03,yp   code review changes
  219. 21q,12nov03,yp   adding adrSpaceShow
  220. 21p,04nov03,kk   added shared data initialization
  221. 21o,29oct03,gls  added pgMgrShowInit()
  222. 21n,23oct03,tam  fixed initialization of memPoolStartArs
  223. 21m,21oct03,dat  added IO system call component
  224. 21l,14oct03,gls  added INCLUDE_PG_MGR_LIB
  225. 21k,19nov03,cjj  Removed duplicate call to rtpLibInit().
  226. 21j,17nov03,yvp  Changed rtpLibInit() call to use new prototype.
  227. 21i,05nov03,cfc  USB2 Development Integration
  228. 21h,10oct03,md   Add new procfs init parameter
  229. 21g,08oct03,ans  Added timerLibInit.
  230. 21f,06oct03,dbs  add EDR KH support
  231. 21e,05oct03,kk   moved RTP initialize earlier, after pgPoolShowInit()
  232. 21d,25sep03,jkf  fixing comment error on endif
  233. 21c,22sep03,bpn  Modified shell initialization. Added command support for 
  234.  RTP and DISK_UTIL components.
  235. 21b,17sep03,kk   moved RTP initialization earlier.
  236. 21a,16sep03,zl   added INCLUDE_PROCFS
  237. 20z,12sep03,dbs  move ED&R init as early as possible
  238. 20y,11sep03,dbs  move edr init diagnosis into configlette
  239. 20x,10sep03,dbs  use edrStub to inject boot event
  240. 20w,09sep03,zl   added INCLUDE_SC_MMAN initialization.
  241. 20v,22aug03,dcc  added INCLUDE_SC_KERNEL initialization.
  242. 20u,29aug03,dbs  add diagnostic if ED&R init fails
  243. 20t,26aug03,dbs  added ED&R features
  244. 20s,18aug03,job  Add RTP show routine support
  245. 20r,16aug03,yp  fixing pgPoolLib header
  246. 20q,11aug03,yp  adding page pool library support
  247. 20p,06aug03,kk   add RTP support
  248. 20o,24jul03,jeg  added VxSim virtualDisk support
  249. 20n,22jul03,jmp  modified to share usrPassFsInit() and usrDosDiskInit() code
  250.  with comps/src.
  251. 20m,02jul03,md   added INCLUDE_ROMFS
  252. 20l,27jun03,tam  enabled text & vector table write-protection with MMU_BASIC
  253. 20k,29may03,rec  Power Management
  254. 20j,14may03,jmp  initialized passFs directory to CWD instead of BSP dir.
  255. 20i,23apr03,jmp  made passFsInit code common to all simulators.
  256. 20h,22apr03,dbt  Added SIMLINUX support.
  257. 20g,10apr03,pes  PAL Coprocessor Abstraction
  258. 20f,09apr03,bpn  Modified the shell initialisation to use the configlet.
  259. 20e,31mar03,bpn  Fixed typo error.
  260. 20d,26mar03,jeg  updated to use passFs for simsolaris and simnt
  261. 20c,20mar03,bpn  Changed ledRegister() to ledModeRegister().
  262. 20b,17mar03,lcs  Modify ledLib initialization code.
  263. 20a,20feb03,jmp  cleanup simulator code.
  264. 19z,17feb03,bpn  Reworked shell initialization code.
  265. 19y,20jun03,t_m  added pccardlib
  266. 19x,12nov02,dbt  Reworked symbol table synchronization initialization code
  267.  (SPR #25509).
  268. 19w,15may02,sbs  changing default sys clock rate to a macro (SPR #1918)
  269. 19v,24apr02,j_s  make WDB Banner the same as in
  270.  target/config/comps/src/usrWdbBanner.c (SPR #76099)
  271.  updated 2001 to 2002
  272. 19u,19apr02,pch  SPR 74348: Enable PPC Machine Check exception ASAP
  273. 19t,05apr02,hbh  Fixed SPR# 30368 and improved ntPassFs initialization.
  274. 19s,04mar02,pch  SPR 73609
  275. 19r,11feb02,jkf  SPR#73173, adding INCLUDE_DOSFS_MAIN init section.
  276. 19q,21jan02,sn   added INCLUDE_CTORS_DTORS
  277. 19p,10dec01,jlb  Change UGL to WindML product
  278. 19o,07dec01,wef  add USB initialization code.
  279. 19n,07dec01,sn   added INCLUDE_CPLUS_DEMANGLER
  280. 19m,08nov01,jmp  removed useless routeAdd() for SIMNT.
  281. 19l,31oct01,gls  added pthread code
  282. 19k,27oct01,dat  Adding trap for misaligned data section SPR 9006
  283. 19j,21sep01,aeg  updated initialization sequence of selectLib (SPR #31319).
  284. 19i,17sep01,pcm  added excShowInit() (SPR 7333), and lstLibInit () (SPR 20698)
  285. 19h,15may01,pch  Move call of usrAltivecInit() from sysLib.c to usrConfig.c,
  286.  to fix an undefined reference when building bootrom.
  287. 19g,20jan99,dbs  change VXCOM to COM
  288. 19f,18dec98,dbs  add VXCOM as separate item
  289. 19e,06nov98,dbs  add DCOM init when INCLUDE_DCOM is set
  290. 19g,22feb01,scm  add fast dram support capabilities for XScale...
  291. 19f,16mar99,jpd  changed copyright yearfrom 1998 to 1999.
  292. 19e,13nov98,jpd  call usrMmuInit if INCLUDE_MMU_MPU defined; conditionally
  293.  add sysHwInit0() call before cacheLibInit(); added
  294.  INCLUDE_INITIAL_MEM_ALLOCATION
  295.     cdp  make Thumb support for ARM CPUs dependent on ARM_THUMB.
  296. 19j,27feb01,hk   update INCLUDE_WDB_BANNER copyright notice to cover 2001.
  297. 19i,08jun00,csi  Merginf usrConfig.c for vxfusion
  298. 19h,19apr00,zl   updated copyright year to 2000.
  299. 19g,02mar00,zl   merged SH support into T2.
  300. 01g,07mar01,sn   simplify job of host val by using creationDate (which
  301.  is overridable) rather than __DATE__
  302. 19g,14oct99,jk   added conditional init code for sound driver support.
  303. 19i,30jul99,jkf  fixed SPR#4429. ideDrv, ataDrv, fdDrv, warn on ERROR.
  304. 19h,16mar99,jpd  changed copyright yearfrom 1998 to 1999.
  305. 19g,10mar99,drm  Changing WINDMP to VXFUSION to reflect new product name.
  306. 19f,13nov98,jpd  call usrMmuInit if INCLUDE_MMU_MPU defined; conditionally
  307.  add sysHwInit0() call before cacheLibInit(); added
  308.  INCLUDE_INITIAL_MEM_ALLOCATION
  309.     cdp  make Thumb support for ARM CPUs dependent on ARM_THUMB.
  310. 19e,08oct98,rlp  added support for UGL and HTML.
  311. 19d,17sep98,ms   call cplusDemanglerInit if INCLUDE_CPLUS and INCLUDE_LOADER
  312. 19c,17sep98,cym  added code to calculate proper IP address for PCSIM.
  313. 19b,01sep98,drm  added code to initialize WindMP
  314. 19a,10aug98,cym  added code to inform tornado when the NT simulator is up.
  315. 18z,23apr98,yp   merged in TrueFFS support
  316. 18y,22apr98,elp  created group 1 module when standalone (fixed SPR# 20301).
  317. 18w,22apr98,hdn  added comment for tffsDrv().
  318. 18t,17apr98,nps  added support for rBuffShow.
  319. 18s,09mar98,sjw  merge in HTTP and JAVA changes for conflict resolution
  320. 18r,18dec97,cth  replaced windview, timestamp initialization with windviewConfig
  321. 18q,13nov97,cth  changed WV evtInstInit to wvLibInit2; removed connRtnSet,
  322.  evtTaskInit; added include wvLib.h, rBuffLib.h
  323. 18p,18aug97,nps  changed WV buffer initialization with the rBuff API.
  324. 18x,06mar98,ms   changed copyright year from 1996 to 1998.
  325. 18v,04feb98,jpd  fix unsigned/signed warning (usrRoot); updated copyright date.
  326. 18u,25feb98,jgn  removed call to excShowInit(), it is called by excInit()
  327.  if needed (SPR #20625)
  328. 18t,19jan98,hdn  changed a condition macro to include tffsDrv().
  329. 18p,06jan98,cym  added SIMNT as processor not to clear bss.
  330. 18s,23sep97,yp   added support for TFFS.
  331. 18r,13aug97,cdp  add Thumb (ARM7TDMI_T) support;
  332.  'fix' unsigned/signed comparison in usrRoot.
  333. 18q,26feb97,dat  added INCLUDE_USER_APPL and USER_APPL_INIT, spr 8071.
  334. 18p,05feb97,cdp  remove ARM test hook (_func_armStartup).
  335. 18o,12dec96,cdp  added _func_armStartup for ARM platforms.
  336. 18n,13dec96,elp  changed syncLibInit() into symSyncLibInit().
  337. 18m,18nov96,dds  SPR 2529: return status for sysScsiInit is now checked.
  338. 18l,06nov96,ms   removed 17n hack to usrClock.
  339. 18k,01nov96,hdn  added support for PCMCIA.
  340. 18j,21oct96,hdn  changed paramerters for new LPT driver.
  341. 18i,04oct96,elp  added INCLUDE_SYM_TBL_SYNC (SPR# 6775).
  342. 18h,11jul96,tam  changed copyright year from 1995 to 1996.
  343. 18l,19jul96,hdn  added support for ATA driver.
  344. 18k,25jun96,jmb  Eliminated alternative WDB macro names (SPR #5707).
  345. 18j,25jun96,dbt  Initialized _func_selWakeupListInit before tyLib (SPR #3314).
  346. 18i,21jun96,jmb  update copyright. SPR #6364
  347. 18h,21jun96,jmb  long modhist -- deleted entries prior to 1994.  SPR #6528
  348. 18g,12mar96,tam  removed all #if (CPU == PPC403).
  349. 18p,06jun96,ism  bumped copyright to 1996.
  350. 18o,26jan96,ism  cleaned up vxsim/solaris version
  351. 18f,02oct95,kvk  added sysHwInit2() for PPC603.
  352. 18e,27sep95,tpr  removed #if (CPU_FAMILY != PPC) staff.
  353. 18n,07nov95,srh  fixed C++ support comments.
  354. 18m,29oct95,dat  fixed warnings about printf arguments
  355. 18l,11oct95,jdi  doc: changed .pG to .tG.
  356. 18k,10oct95,dat  new BSP revision id. Added WDB Banner printing
  357. 18j,15jun95,ms  updated for new serial drivers.
  358. 18i,09jun95,ms  cleaned up console initialization
  359. 18h,30may95,p_m  added initialization of formatted I/O library.
  360.  replaced spyStop() by spyLibInit().
  361. 18g,22may95,p_m  no longer initialize object format specific libraries if
  362.  loader is not included.
  363. 18f,22may95,myz  modified new serial device initialization for x86 support
  364. 18e,22may95,ms   added some WDB agent support
  365. 18e,30oct95,ism  updated for SIMSPARCSOLARIS
  366. 18d,28mar95,kkk  added scalability support, changed edata and end to arrays
  367.  (SPR #3917), changed baud rate to be a macro in configAll.h
  368. 18g,25may95,yao  changed to bzero bss segment for PPC.
  369. 18f,04apr95,caf  added PPC cache support.
  370. 18e,03mar95,yao  added shsHwInit2 () for PPC403.
  371. 18d,24feb95,caf  added PPC support.
  372. 18c,20nov94,kdl  added hashLibInit() when using dosFs.
  373. 18b,09nov94,jds  additions for scsi backward compatability ; scsi[12]IfInit()
  374. 18a,04nov94,kdl  merge cleanup.
  375. 17l,02aug94,tpr  added cacheEnable (BRANCH_CACHE) for the MC68060.
  376. 17m,15oct94,hdn  added LPT driver.
  377. 17o,20jul94,ms   changed INCLUDE_AOUT_HPPA to INCLUDE_SOM_COFF
  378. 17n,02may94,ms   added VxSim HP hack to usrClock().
  379. 17q,15mar94,smb  renamed tEvtTask parameters.
  380. 17p,15feb94,smb  defined WV_MODE, EVTBUFFER_ADDRESS for wvInstInit().
  381. 17o,12jan94,kdl  modified posix initialization; added queued signal init.
  382. */
  383. /*
  384. DESCRIPTION
  385. This library is the WRS-supplied configuration module for VxWorks.  It
  386. contains the root task, the primary system initialization routine, the
  387. network initialization routine, and the clock interrupt routine.
  388. The include file config.h includes a number of system-dependent parameters used
  389. in this file.
  390. In an effort to simplify the presentation of the configuration of vxWorks,
  391. this file has been split into smaller files.  These additional configuration
  392. source files are located in '../../src/config/usr[xxx].c' and are #included 
  393. into this file below.  This file contains the bulk of the code a customer is
  394. likely to customize.
  395. The module usrDepend.c contains checks that guard against unsupported
  396. configurations such as INCLUDE_NFS without INCLUDE_RPC.  The module
  397. usrKernel.c contains the core initialization of the kernel which is rarely
  398. customized, but provided for information.  The module usrNetwork.c now
  399. contains all network initialization code.  Finally, the module usrExtra.c
  400. contains the conditional inclusion of the optional packages selected in
  401. configAll.h.
  402. The source code necessary for the configuration selected is entirely
  403. included in this file during compilation as part of a standard build in
  404. the board support package.  No other make is necessary.
  405. INCLUDE FILES:
  406. config.h
  407. SEE ALSO:
  408. The VxWorks programmer guides.
  409. */
  410. #include <vxWorks.h> /* always first */
  411. #include <config.h> /* board support configuration header */
  412. #include <usrConfig.h> /* general configuration header */
  413. #include <usrDepend.c> /* include dependency rules */
  414. #include <configNetParams.h>  /* header for network configuration parameters */
  415. #include <usrKernel.c> /* kernel configuration */
  416. #include <usrExtra.c> /* conditionally included packages */
  417. #ifdef INCLUDE_HTTP
  418. #include <http/httpLib.h> /* Wind Web Server interfaces */
  419. #endif
  420. #ifdef INCLUDE_VRFS
  421. #include <vrfsLib.h>
  422. #endif
  423. #ifdef INCLUDE_ROMFS
  424. #include <romfsLib.h> /* read-only file system interfaces */
  425. #include <romfsDrv.h> /* romfs block device driver */
  426. /* 
  427.  * ROM filesystem image will come from romfs_image.o object file, which defines
  428.  * two symbols (see below): 
  429.  */
  430. extern const char romfsImage[];               /* The file system */
  431. extern const char romfsImageEnd[];    /* address of its end */
  432. int romfsImageLen;    /* size of ROM fs */
  433. #endif
  434. #if defined(INCLUDE_PG_POOL_LIB)
  435. #include <private/pgPoolLibP.h>
  436. #endif /* INCLUDE_PG_POOL_LIB */
  437. #if defined(INCLUDE_PG_POOL_VIRT_LIB)
  438. #include <private/pgPoolVirtLibP.h>
  439. #endif /* INCLUDE_PG_POOL_VIRT_LIB */
  440. #if defined(INCLUDE_PG_POOL_PHYS_LIB)
  441. #include <private/pgPoolPhysLibP.h>
  442. #endif /* INCLUDE_PG_POOL_PHYS_LIB */
  443. #if defined(INCLUDE_PG_MGR_LIB)
  444. #include <private/pgMgrLibP.h>
  445. #endif /* INCLUDE_PG_MGR_LIB */
  446. #ifdef INCLUDE_FD
  447. extern STATUS usrFdConfig (int, int, char *);
  448. #endif
  449. #ifdef INCLUDE_SIGEVENT
  450. #include <private/sigeventP.h>
  451. #endif
  452. #ifdef INCLUDE_RTP
  453. #include <rtpLib.h>
  454. #include <syscallTbl.h>
  455. extern char * pRtpStartupField;
  456. #ifdef INCLUDE_SHL
  457. #include <shlLib.h>
  458. extern STATUS shlLibInit (void);
  459. extern STATUS shlScLibInit (void);
  460. #endif /* INCLUDE_SHL */
  461. #ifdef INCLUDE_POSIX_MAPPED_FILES
  462. extern mmanFdLibInit (void);
  463. #endif
  464. #ifdef INCLUDE_POSIX_SHM
  465. extern STATUS shmFsLibInit (const char * devName);
  466. #endif
  467. #if defined (INCLUDE_ADR_SPACE_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  468. extern STATUS adrSpaceShellCmdInit (void);
  469. #endif
  470. #if defined (INCLUDE_MAPPED_FILES_SHOW)
  471. extern STATUS mmanShowInit (void);
  472. extern STATUS mmanShellCmdInit (void);
  473. #endif
  474. #include <rtpStartupFacility.c> /* RTP Startup Facility Components */
  475. #endif /* INCLUDE_RTP */
  476. #if defined (INCLUDE_VM_SHOW) || 
  477.     defined (INCLUDE_SHOW_ROUTINES) && defined (INCLUDE_MMU_BASIC)
  478. extern STATUS vmShowShellCmdInit (void);
  479. #endif
  480. #ifdef INCLUDE_SHARED_DATA
  481. #include <private/sdLibP.h>
  482. extern STATUS sdShowShellCmdInit (void);
  483. #endif /* INCLUDE_SHARED_DATA */
  484. #ifdef INCLUDE_COM
  485. extern int comLibInit ();
  486. #endif
  487. #ifdef INCLUDE_DCOM
  488. extern int dcomLibInit ();
  489. #endif
  490. #ifdef INCLUDE_NBIO_LOG
  491. #include <private/nbioLogLibP.h>
  492. #endif
  493. #ifdef INCLUDE_SC_IOS
  494. #include <iosScLib.h>
  495. #endif
  496. #ifdef INCLUDE_MEM_RTP
  497. extern void memRtpLibInit (UINT rtpHeapSize, UINT rtpHeapOptions);
  498. #endif
  499. #ifdef INCLUDE_SC_KERNEL
  500. extern STATUS windScInit (void);
  501. #endif
  502. #ifdef INCLUDE_SC_MMAN
  503. extern STATUS mmanScLibInit (void);
  504. #endif
  505. #ifdef INCLUDE_SC_POSIX
  506. extern void usrPosixScInit (void);
  507. #endif
  508. #ifdef INCLUDE_POSIX_ADVISORY_FILE_LOCKING
  509. #include "usrPosixAdvLock.c"
  510. #endif
  511. #ifdef INCLUDE_SC_SYSCTL
  512. extern STATUS sysctlScLibInit (void);
  513. #endif
  514. #ifdef INCLUDE_SC_SD
  515. extern STATUS sdScInit(void);
  516. #endif
  517. #ifdef INCLUDE_MEM_EDR_SHOW
  518. extern STATUS memEdrShowInit (void);
  519. extern STATUS memEdrShellCmdInit (void);
  520. #endif
  521. #ifdef INCLUDE_MEM_EDR_RTP_SHOW
  522. extern STATUS memEdrRtpShowInit (void);
  523. extern STATUS memEdrRtpShellCmdInit (void);
  524. #endif
  525. #ifdef INCLUDE_POSIX_CLOCKS
  526. extern int clockLibInit (void);
  527. #endif
  528. #ifdef INCLUDE_POSIX_TIMERS
  529. extern STATUS timerLibInit (void);
  530. #ifdef INCLUDE_OBJ_OPEN
  531. extern void timerOpenInit (void);
  532. #endif
  533. #endif
  534. #ifdef INCLUDE_POWER_MGMT_CPU_BSP_SUPPORT
  535. void sysCpuPwrEnable (void);
  536. #endif
  537. #if (defined (INCLUDE_CPU_PWR_MGMT) && (CPU_FAMILY == I80X86))
  538. #include <cpuPwrMgr.h>
  539. #include <cpuPwrLib.h>
  540. #include <private/cpuPwrLibP.h>
  541. #endif
  542. #ifdef INCLUDE_POSIX_SEM
  543. #include <private/semPxLibP.h>
  544. #ifdef INCLUDE_SHOW_ROUTINES
  545. #include <semPxShow.h>
  546. #endif
  547. #endif
  548. #ifdef INCLUDE_POSIX_MQ
  549. #include <private/mqPxLibP.h>
  550. #ifdef INCLUDE_SHOW_ROUTINES
  551. #include <mqPxShow.h>
  552. #endif
  553. #endif
  554. #ifdef INCLUDE_POSIX_THREAD_CPUTIME
  555. #include <private/pxCpuTimeLibP.h>
  556. #endif
  557. #if     defined(INCLUDE_LOADER)
  558. #include <loadElfLib.h>
  559. #endif
  560. #if     defined(INCLUDE_NET_SYM_TBL)
  561. #include <private/loadLibP.h>
  562. #endif
  563. #ifdef INCLUDE_STANDALONE_SYM_TBL
  564. #include <symbol.h>
  565. #endif /* INCLUDE_STANDALONE_SYM_TBL */
  566. #ifdef INCLUDE_POOL
  567. #include <poolLib.h>
  568. #endif
  569. #ifdef INCLUDE_SET
  570. #include <setLib.h>
  571. #endif
  572. #ifdef INCLUDE_MEMDRV
  573. #include <memDrv.h>
  574. #endif
  575. #ifdef INCLUDE_PTYDRV
  576. #include <ptyDrv.h>
  577. #endif
  578. #ifdef INCLUDE_TYLIB
  579. #include <tyLib.h>
  580. #endif
  581. #ifdef INCLUDE_EXC_TASK
  582. extern STATUS   excInit (UINT maxIsrJobs);
  583. #endif
  584. #ifdef INCLUDE_JOB_TASK
  585. extern STATUS jobLibInit (int jobTaskStackSize);
  586. #endif
  587. #ifdef INCLUDE_ERF
  588. extern STATUS erfLibInit (UINT16 maxUserCat, UINT16 maxUserType);
  589. #endif
  590. #ifdef INCLUDE_DEVICE_MANAGER
  591. extern STATUS devInit (uint16_t ndevs);
  592. #endif
  593. #ifdef INCLUDE_XBD
  594. extern STATUS xbdInit (void);
  595. #endif
  596. #ifdef INCLUDE_XBD_BLK_DEV
  597. extern STATUS xbdBlkDevLibInit (void);
  598. #endif
  599. #ifdef INCLUDE_FS_MONITOR
  600. extern STATUS fsMonitorInit (void);
  601. #endif
  602. #ifdef INCLUDE_FS_EVENT_UTIL
  603. extern STATUS fsEventUtilLibInit (void);
  604. #endif
  605. #ifdef INCLUDE_HRFS_FORMAT
  606. extern STATUS hrfsFormatLibInit (void);
  607. #endif
  608. #ifdef INCLUDE_DOSFS_MAIN
  609. #include "usrDosfs.c"
  610. #endif
  611. #if defined (INCLUDE_HRFS) || defined (INCLUDE_HRFS_READONLY)
  612. #include "usrHrfs.c"
  613. #endif
  614. /* include INCLUDE_BOOT_LINE_INIT configlet for bootroms with
  615.  * Networking disabled.
  616.  */
  617. #if (defined(INCLUDE_BOOT_APP) && defined(INCLUDE_BOOT_LINE_INIT)) 
  618. #if (!defined(INCLUDE_NETWORK) && !defined(INCLUDE_COMMON_NET))
  619. extern int sysStartType;
  620. #include "net/coreip/usrBootLine.c"
  621. #endif   /* !INCLUDE_NETWORK && !INCLUDE_COMMON_NET */
  622. #endif   /* INCLUDE_BOOT_APP && INCLUDE_BOOT_LINE_INIT */
  623. #ifdef INCLUDE_CDROMFS
  624. #include "cdromFsLib.h"
  625. #endif /* INCLUDE_CDROMFS */
  626. #if defined (WV_INSTRUMENTATION) && defined (INCLUDE_WVNETD)
  627. #if defined(__STDC__) || defined(__cplusplus)
  628. extern void wvNetDInit (void);
  629. #else /* __STDC__ */
  630. extern void wvNetDInit ();
  631. #endif /* __STDC__ */
  632. #endif /* WV_INSTRUMENTATION && INCLUDE_WVNETD */
  633. #if defined (WV_INSTRUMENTATION) && defined (INCLUDE_WVTIPC)
  634. #if defined(__STDC__) || defined(__cplusplus)
  635. extern void wvTipcInit (void);
  636. #else /* __STDC__ */
  637. extern void wvTipcInit ();
  638. #endif /* __STDC__ */
  639. #endif /* WV_INSTRUMENTATION && INCLUDE_WVTIPC */
  640. #ifdef INCLUDE_POSIX_TRACE
  641. extern STATUS pxTraceStreamLibInit (void);
  642. #endif /* INCLUDE_POSIX_TRACE */
  643. #ifdef INCLUDE_POSIX_TRACE_TIMESTAMP
  644. #include <wvTmrLib.h>
  645. #endif /* INCLUDE_POSIX_TRACE_TIMESTAMP */
  646. #ifdef INCLUDE_WDB_PROXY
  647. #include <wrProxyLib.h>
  648. #endif /* INCLUDE_WDB_PROXY */
  649. /* defines - must be after include of usrDepend.c */
  650. #ifdef INCLUDE_WDB
  651. #define FREE_MEM_START_ADRS (FREE_RAM_ADRS + WDB_POOL_SIZE)
  652. #else
  653. #define FREE_MEM_START_ADRS FREE_RAM_ADRS
  654. #endif
  655. #ifdef INCLUDE_INITIAL_MEM_ALLOCATION
  656. #define MEM_POOL_START_ADRS 
  657.     (ROUND_UP(FREE_MEM_START_ADRS, (INITIAL_MEM_ALIGNMENT)) + 
  658.     (INITIAL_MEM_SIZE))
  659. #else /* INCLUDE_INITIAL_MEM_ALLOCATION */
  660. #define MEM_POOL_START_ADRS FREE_MEM_START_ADRS
  661. #endif /* INCLUDE_INITIAL_MEM_ALLOCATION */
  662. #if defined INCLUDE_PROTECT_TASK_STACK 
  663. || defined INCLUDE_PROTECT_INTERRUPT_STACK
  664. # if defined(_WRS_OSM_INIT)
  665. void excOsmInit (int, int);
  666. # endif /* defined(_WRS_OSM_INIT) */
  667. # if defined INCLUDE_PROTECT_INTERRUPT_STACK
  668. void usrKernelIntStkProtect(void);
  669. # endif /* INCLUDE_PROTECT_INTERRUPT_STACK */
  670. #endif /* INCLUDE_PROTECT_TASK_STACK || INCLUDE_PROTECT_INTERRUPT_STACK */
  671. #if (CPU_FAMILY == PPC)
  672. void excIntNestLogInit(void);
  673. #endif /* (CPU_FAMILY == PPC) */
  674. #if (CPU_FAMILY == MIPS)
  675. void palInit (void);
  676. #endif  /* (CPU_FAMILY == MIPS) */
  677. #ifdef INCLUDE_BOOT_APP
  678. void bootApp (void);
  679. #ifdef INCLUDE_BOOT_EXC_HANDLER
  680. STATUS bootAppExcInit (void);
  681. #endif
  682. #if defined(INCLUDE_BOOT_INIT) || defined(INCLUDE_BOOT_DELAYED_INIT)
  683. STATUS bootAppInit (BOOL delayedInit, UINT32 memBase, BOOL disableMmuBeforeEntry);
  684. #endif
  685. #ifdef INCLUDE_ELF
  686. STATUS bootElfInit (void);
  687. #endif
  688. #ifdef INCLUDE_BOOT_SHELL
  689. STATUS bootAppShellInit (void);
  690. #ifdef INCLUDE_BOOT_MEM_CMDS
  691. STATUS bootAppMemInit (UINT32 memBase);
  692. #endif
  693. #ifdef INCLUDE_BOOT_EDR_SUPPORT
  694. STATUS bootAppEdrInit (void);
  695. #endif
  696. #endif /* INCLUDE_BOOT_SHELL */
  697. #ifdef INCLUDE_BOOT_FILESYSTEMS
  698. STATUS bootFsLoadInit (void);
  699. #ifdef INCLUDE_BOOT_FD_LOADER
  700. STATUS bootFdLoadInit (char * pDevName);
  701. #endif
  702. #ifdef INCLUDE_BOOT_ATA_LOADER
  703. STATUS bootAtaLoadInit  (char *, char *, char *, char *);
  704. #endif
  705. #ifdef INCLUDE_BOOT_PCMCIA_LOADER
  706. STATUS bootPcmciaLoadInit (int numDosfsFiles);
  707. #endif
  708. #ifdef INCLUDE_BOOT_USB_FS_LOADER
  709. STATUS bootUsbFsLoadInit (void);
  710. #endif
  711. #ifdef INCLUDE_BOOT_SCSI_LOADER
  712. STATUS bootScsiLoadInit (void);
  713. #endif
  714. #ifdef INCLUDE_BOOT_TFFS_LOADER
  715. STATUS bootTffsLoadInit (char * pDevName);
  716. #endif
  717. #ifdef INCLUDE_BOOT_TSFS_LOADER
  718. STATUS bootTsfsLoadInit (void);
  719. #endif
  720. #endif /* INCLUDE_BOOT_FILESYSTEMS */
  721. #ifdef INCLUDE_BOOT_NETWORK
  722. STATUS bootNetLoadInit (void);
  723. #ifdef INCLUDE_BOOT_FTP_LOADER
  724. STATUS bootFtpLoadInit (void);
  725. #endif
  726. #ifdef INCLUDE_BOOT_TFTP_LOADER
  727. STATUS bootTftpLoadInit (void);
  728. #endif
  729. #ifdef INCLUDE_BOOT_RSH_LOADER
  730. STATUS bootRshLoadInit (void);
  731. #endif
  732. #ifdef INCLUDE_BOOT_END
  733. STATUS bootEndSupportInit (void);
  734. #endif
  735. #ifdef INCLUDE_BOOT_VXBUS
  736. STATUS bootVxBusSupportInit (void);
  737. #endif
  738. #ifdef ETHERNET_MAC_HANDLER
  739. #define INCLUDE_BOOT_ETH_MAC_HANDLER
  740. #endif /* ETHERNET_MAC_HANDLER */
  741. #ifdef ETHERNET_ADR_SET
  742. #define INCLUDE_BOOT_ETH_ADR_SET
  743. #endif  /* ETHERNET_ADR_SET */
  744. #ifdef INCLUDE_BOOT_ETH_MAC_HANDLER
  745. void bootEthMacHandlerInit (int maxMacAdrs, int maxMacDevs,
  746.                             UINT32 defEnetAdrs, int macAdrsLen);
  747. #ifdef INCLUDE_BOOT_ETH_ADR_SET
  748. #error "ETHERNET_MAC_HANDLER and ETHERNET_ADR_SET are mutually exclusive"
  749. #endif  /* INCLUDE_BOOT_ETH_ADR_SET */
  750. #elif  defined(INCLUDE_BOOT_ETH_ADR_SET)
  751. void bootEthAdrSetInit (UINT32 defEnetAdrs);
  752. #endif /* INCLUDE_BOOT_ETH_MAC_HANDLER */
  753. #endif /* INCLUDE_BOOT_NETWORK */
  754. #ifdef INCLUDE_BOOT_ADDMEM
  755. STATUS bootAddMemInit(UINT32 addr, UINT32 size);
  756. #endif 
  757. #endif /* INCLUDE_BOOT_APP */
  758. /* global variables */
  759. int consoleFd; /* fd of initial console device */
  760. char consoleName[20]; /* console device name, eg. "/tyCo/0" */
  761. SYMTAB_ID statSymTbl; /* system error status symbol table id*/
  762. SYMTAB_ID standAloneSymTbl; /* STANDALONE version symbol table id */
  763. SYMTAB_ID sysSymTbl; /* system symbol table id */
  764. BOOT_PARAMS sysBootParams; /* parameters from boot line */
  765. int sysStartType; /* type of boot (WARM, COLD, etc) */
  766. int sysFlags; /* boot flags */
  767. char sysBootHost [BOOT_FIELD_LEN];   /* name of boot host */
  768. char sysBootFile [BOOT_FIELD_LEN];   /* name of boot file */
  769. char * memPoolEndAdrs; /* end of the kernel memory pool */
  770. #ifdef INCLUDE_PROTECT_TEXT
  771. int sysTextProtect = 1;
  772. #else  /* INCLUDE_PROTECT_TEXT */
  773. int sysTextProtect = 0;
  774. #endif /* INCLUDE_PROTECT_TEXT */
  775. #if (CPU_FAMILY == PPC)
  776. IMPORT _RType taskMsrDefault;   /* from taskArchLib.c */
  777. #endif /* (CPU_FAMILY == PPC) */
  778. extern char * startupScriptFieldSplit (char *);
  779. /* Two magic cookies used to detect data section misalignment */
  780. #define TRAP_VALUE_1 0x12348765
  781. #define TRAP_VALUE_2 0x5a5ac3c3
  782. LOCAL volatile UINT32 trapValue1 = TRAP_VALUE_1;
  783. LOCAL volatile UINT32 trapValue2 = TRAP_VALUE_2;
  784. /*******************************************************************************
  785. *
  786. * usrInit - user-defined system initialization routine
  787. *
  788. * This is the first C code executed after the system boots.  This routine is
  789. * called by the assembly language start-up routine sysInit() which is in the
  790. * sysALib module of the target-specific directory.  It is called with
  791. * interrupts locked out.  The kernel is not multitasking at this point.
  792. *
  793. * This routine starts by clearing BSS; thus all variables are initialized to 0,
  794. * as per the C specification.  It then initializes the hardware by calling
  795. * sysHwInit(), sets up the interrupt/exception vectors, and starts kernel
  796. * multitasking with usrRoot() as the root task.
  797. *
  798. * RETURNS: N/A
  799. *
  800. * SEE ALSO: kernelLib
  801. *
  802. * ARGSUSED0
  803. */
  804. void usrInit
  805.     (
  806.     int startType
  807.     )
  808.     {
  809.     /*
  810.      * This trap will catch improper loading of the data section.
  811.      * We check the magic cookie values to make sure the data section is
  812.      * in the expected memory location. We do not want
  813.      * to proceed further if the data segment is not correct.
  814.      *
  815.      * It should be easy to detect entry into the trap using an ICE, JTAG,
  816.      * or logic analyzer. Without the trap, the processor is likely to run
  817.      * away out of control.
  818.      *
  819.      * Data section misalignment can occur when there is a change in tool
  820.      * chain, build rules, compiler, host utilites,  etc. 
  821.      */
  822.     while (trapValue1 != TRAP_VALUE_1 || trapValue2 != TRAP_VALUE_2)
  823. {
  824. /* infinite loop */;
  825. }
  826.     
  827. #if (CPU_FAMILY == MIPS)
  828.     palInit ();
  829. #endif /* (CPU_FAMILY == MIPS) */
  830. #if (CPU_FAMILY == SPARC)
  831.     excWindowInit (); /* SPARC window management */
  832. #endif
  833. #ifdef INCLUDE_SYS_HW_INIT_0
  834.     /*
  835.      * Perform any BSP-specific initialisation that must be done before
  836.      * cacheLibInit() is called and/or BSS is cleared.
  837.      */
  838.     SYS_HW_INIT_0 ();
  839. #endif /* INCLUDE_SYS_HW_INIT_0 */
  840.     /* configure data and instruction cache if available and leave disabled */
  841.     /* don't assume bss variables are zero before this call */
  842.     bzero (edata, end - edata); /* zero out bss variables */
  843. #ifdef  INCLUDE_CACHE_SUPPORT
  844.     /*
  845.      * SPR 73609:  If a cache is not to be enabled, don't require
  846.      * its mode to be defined.  Instead, default it to disabled.
  847.      */
  848. # if (!defined(USER_D_CACHE_ENABLE) && !defined(USER_D_CACHE_MODE))
  849. #  define USER_D_CACHE_MODE CACHE_DISABLED
  850. # endif /* !USER_D_CACHE_ENABLE && !USER_D_CACHE_MODE */
  851. # if (!defined(USER_I_CACHE_ENABLE) && !defined(USER_I_CACHE_MODE))
  852. #  define USER_I_CACHE_MODE CACHE_DISABLED
  853. # endif /* !USER_I_CACHE_ENABLE && !USER_I_CACHE_MODE */
  854.     cacheLibInit (USER_I_CACHE_MODE, USER_D_CACHE_MODE);
  855. #endif  /* INCLUDE_CACHE_SUPPORT */
  856.     sysStartType = startType; /* save type of system start */
  857.     intVecBaseSet ((FUNCPTR *) VEC_BASE_ADRS); /* set vector base table */
  858. #if (CPU_FAMILY == AM29XXX)
  859.     excSpillFillInit (); /* am29k stack cache managemt */
  860. #endif
  861. #ifdef  INCLUDE_EXC_HANDLING
  862. # if (CPU_FAMILY == PPC) && defined(INCLUDE_EXC_SHOW)
  863.     /*
  864.      * Do this ahead of excVecInit() to set up _func_excPanicHook, in case
  865.      * the enabling of Machine Check there allows a pending one to occur.
  866.      * excShowInit() will be called again later, harmlessly.
  867.      */
  868.     excShowInit ();
  869. # endif  /* CPU_FAMILY == PPC && defined(INCLUDE_EXC_SHOW) */
  870.     excVecInit (); /* install exception vectors */
  871. #endif  /* INCLUDE_EXC_HANDLING */
  872.     sysHwInit (); /* initialize system hardware */
  873.  
  874. #ifdef  INCLUDE_CACHE_SUPPORT
  875. #ifdef  USER_I_CACHE_ENABLE
  876.     cacheEnable (INSTRUCTION_CACHE); /* enable instruction cache */
  877. #endif /* USER_I_CACHE_ENABLE */
  878. #ifdef USER_D_CACHE_ENABLE
  879.     cacheEnable (DATA_CACHE); /* enable data cache */
  880. #endif  /* USER_D_CACHE_ENABLE */
  881. #if (CPU == MC68060)
  882. #ifdef  USER_B_CACHE_ENABLE
  883.     cacheEnable (BRANCH_CACHE); /* enable branch cache */
  884. #endif /* USER_B_CACHE_ENABLE */
  885. #endif /* (CPU == MC68060) */
  886. #endif  /* INCLUDE_CACHE_SUPPORT */
  887.     usrKernelInit (); /* configure the Wind kernel */
  888.     /* configure memory manager ED&R library (pre-kernel part) */
  889. #ifdef INCLUDE_MEM_EDR
  890.     memEdrInit ();
  891. #endif
  892.     /* if wanted, start WDB before kernel */
  893. #if defined (INCLUDE_WDB) && (WDB_INIT == WDB_PRE_KERNEL_INIT)
  894.     usrWdbInit ();
  895.     wdbSystemSuspend ();
  896. #endif /* defined (INCLUDE_WDB) && (WDB_INIT == WDB_PRE_KERNEL_INIT) */
  897. #ifdef INCLUDE_RTP
  898.     memPoolEndAdrs = min ((char *) MEM_POOL_START_ADRS + KERNEL_HEAP_SIZE, 
  899.   sysMemTop());
  900. #else
  901.     memPoolEndAdrs = sysMemTop();
  902. #endif
  903.     /* start the kernel specifying usrRoot as the root task */
  904.     kernelInit ((FUNCPTR) usrRoot, ROOT_STACK_SIZE,
  905. (char *) MEM_POOL_START_ADRS, memPoolEndAdrs,
  906. ISR_STACK_SIZE, INT_LOCK_LEVEL);
  907.     }
  908. /*******************************************************************************
  909. *
  910. * usrRoot - the root task
  911. *
  912. * This is the first task to run under the multitasking kernel.  It performs
  913. * all final initialization and then starts other tasks.
  914. *
  915. * It initializes the I/O system, installs drivers, creates devices, and sets
  916. * up the network, etc., as necessary for a particular configuration.  It
  917. * may also create and load the system symbol table, if one is to be included.
  918. * It may then load and spawn additional tasks as needed.  In the default
  919. * configuration, it simply initializes the VxWorks shell.
  920. *
  921. * RETURNS: N/A
  922. */
  923. void usrRoot
  924.     (
  925.     char * pMemPoolStart, /* start of system memory partition */
  926.     unsigned memPoolSize /* initial size of mem pool */
  927.     )
  928.     {
  929. #if defined(INCLUDE_TTY_DEV) || defined(INCLUDE_PC_CONSOLE) || 
  930.     defined(INCLUDE_STAT_SYM_TBL) || defined(INCLUDE_ATA)
  931.     int  ix;
  932. #if defined(INCLUDE_TTY_DEV) || defined(INCLUDE_PC_CONSOLE)
  933.     char tyName [20];
  934. #endif
  935. #endif  /* INCLUDE_{TTY_DEV,PC_CONSOLE,STAT_SYM_TBL,ATA} */
  936.     /* initialize core kernel facilities */
  937.     usrKernelCoreInit();
  938.     /* New CPU power management only available on Pentium */
  939. #if defined (INCLUDE_CPU_PWR_MGMT) && (CPU_FAMILY == I80X86)
  940.     cpuPwrFrameWorkInit
  941. (
  942. CPU_PWR_TASK_P_STATE,
  943. CPU_PWR_ISR_P_STATE,
  944. CPU_PWR_UTIL_PERIOD1,
  945. CPU_PWR_UTIL_PERIOD2,
  946. CPU_PWR_HIGH_THRESHOLD,
  947. CPU_PWR_LOW_THRESHOLD
  948. );
  949. #ifdef INCLUDE_CPU_UTIL_PWR_MGR
  950.     cpuPwrUtilMgrInit (CPU_PWR_UP_UTIL, CPU_PWR_DOWN_UTIL);
  951. #else
  952.     cpuPwrLightMgrInit ();
  953. #endif
  954. #endif
  955.     /* Initialize the memory pool before initializing any other package.
  956.      * The memory associated with the root task will be reclaimed at the
  957.      * completion of its activities.
  958.      */
  959. #ifdef INCLUDE_MEM_ALLOT
  960.     /* initialize memory manager */
  961.     memAllotLibInit (pMemPoolStart, memPoolSize);
  962. #else  /* INCLUDE_MEM_ALLOT */
  963. # ifdef INCLUDE_MEM_MGR_FULL
  964.     memInit (pMemPoolStart, memPoolSize, MEM_PART_DEFAULT_OPTIONS);
  965. # else
  966.     memPartLibInit (pMemPoolStart, memPoolSize);
  967. # endif /* INCLUDE_MEM_MGR_FULL */
  968. # ifdef INCLUDE_MEM_MGR_INFO
  969.     memInfoInit();
  970. # endif /* INCLUDE_MEM_MGR_INFO */
  971. #endif  /* INCLUDE_MEM_ALLOT */
  972.     /* configure memory manager ED&R library (post kernel init part) */
  973. #ifdef INCLUDE_MEM_EDR
  974.     memEdrInit2 ();
  975. #ifdef INCLUDE_MEM_EDR_SHOW
  976.     memEdrShowInit ();
  977. #endif
  978. #endif
  979.     /* memEdrRtpShow is dependent on RTP support, but not on MEM_EDR */
  980. #ifdef INCLUDE_RTP
  981. #ifdef INCLUDE_MEM_EDR_RTP_SHOW
  982.     memEdrRtpShowInit ();
  983. #endif
  984. #endif
  985. #ifdef INCLUDE_SHOW_ROUTINES
  986.     memShowInit (); /* initialize memShow routine */
  987. #endif /* INCLUDE_SHOW_ROUTINES */
  988. #ifdef INCLUDE_USB
  989.     usbdPciInit ();
  990. #endif
  991. #ifdef INCLUDE_USB_TARG
  992.     usrUsbTargPciInit ();
  993. #endif
  994.     /* Initialize sysctl support */
  995. #ifdef INCLUDE_SYSCTL
  996.     usrSysctlInit();                            /* System control function */
  997. #ifdef INCLUDE_SYSCTL_HW
  998.     usrHwSysctlInit();                          /* System control h/w access */
  999. #endif /* INCLUDE_SYSCTL_HW */ 
  1000. #endif /* INCLUDE_SYSCTL */ 
  1001.     /* 
  1002.      * Initialization of RTP should be early. Memory allocations
  1003.      * may vary depending on whether RTP is initialized or not.
  1004.      */
  1005. /*
  1006.  * RTP initialization is up here because the MM code relies on it. This needs
  1007.  * to be moved once the dependency is removed. 
  1008.  */
  1009. #ifdef  INCLUDE_RTP
  1010. #ifdef        INCLUDE_RTP_HOOKS
  1011.     rtpHookLibInit (RTP_HOOK_TBL_SIZE);
  1012. #endif        /* INCLUDE_RTP_HOOKS */
  1013.     rtpLibInit (RTP_HOOK_TBL_SIZE, 
  1014.                 SYSCALL_HOOK_TBL_SIZE, 
  1015.                 RTP_SIGNAL_QUEUE_SIZE,
  1016.                 TASK_USER_EXC_STACK_OVERFLOW_SIZE,
  1017.                 TASK_USER_EXEC_STACK_OVERFLOW_SIZE,
  1018.                 TASK_USER_EXEC_STACK_UNDERFLOW_SIZE,
  1019. RTP_FD_NUM_MAX
  1020. );
  1021. #ifdef        INCLUDE_SYSCALL_HOOKS
  1022.     syscallHookLibInit ();
  1023. #endif        /* INCLUDE_RTP_HOOKS */
  1024. #if defined (INCLUDE_RTP_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1025.     rtpShowInit ();                             /* initialize rtpShow routine */
  1026. #endif  /* INCLUDE_SHOW_ROUTINES */
  1027. #ifdef INCLUDE_SHARED_DATA
  1028.     sdLibInit (SD_HOOK_TBL_SIZE); /* initialize shared data */
  1029. #if defined(INCLUDE_SHARED_DATA_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1030.     sdShowInit ();                             /* initialize sdShow routine */
  1031. #endif  /* INCLUDE_SHOW_ROUTINES */
  1032. #endif /* INCLUDE_SHARED_DATA */
  1033. #ifdef INCLUDE_SHL
  1034.     shlLibInit (); /* initialize shared library */
  1035. #if defined (INCLUDE_SHL_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1036.     shlShowInit(); /* initialize SHL show ruotines */
  1037. #endif /* INCLUDE_SHL_SHOW || INCLUDE_SHOW_ROUTINES */
  1038. #endif /* INCLUDE_SHL */
  1039. #endif  /* INCLUDE_RTP */
  1040.     /* setup the page pool library */
  1041.     /*
  1042.      * The MMU intialization code relies on the address space allocator being
  1043.      * initialized. The address space allocator relies on the page pool
  1044.      * libraries being initialized. Therefore this order needs to be
  1045.      * preserved.
  1046.      */
  1047. #ifdef INCLUDE_PG_POOL_LIB
  1048.     pgPoolLibInit();    /* always returns OK */
  1049. #endif /* INCLUDE_PG_POOL_LIB */
  1050. #ifdef INCLUDE_PG_POOL_VIRT_LIB
  1051.     pgPoolVirtLibInit();        /* always returns OK */
  1052. #endif /* INCLUDE_PG_POOL_VIRT_LIB */
  1053. #ifdef INCLUDE_PG_POOL_PHYS_LIB
  1054.     pgPoolPhysLibInit();        /* always returns OK */
  1055. #endif /* INCLUDE_PG_POOL_PHYS_LIB */
  1056. #if    defined(INCLUDE_MMU_BASIC) || defined(INCLUDE_MMU_GLOBAL_MAP)
  1057. #ifdef INCLUDE_AIM_MMU_CONFIG
  1058.     usrAimMmuConfig();
  1059. #endif /* INCLUDE_AIM_MMU_CONFIG */
  1060.     usrMmuInit ((VIRT_ADDR) pMemPoolStart, memPoolSize);/* initialize the mmu */
  1061. #endif /* defined(INCLUDE_MMU_BASIC) || defined(INCLUDE_MMU_GLOBAL_MAP) */
  1062. #if    defined(INCLUDE_MMU_BASIC)
  1063. #ifdef INCLUDE_PROTECT_TEXT
  1064.     usrTextProtect ();
  1065. #endif /* INCLUDE_PROTECT_TEXT */
  1066.     /*
  1067.      * For arch which provide an OSM initialization function, it must be
  1068.      * called if guard regions are being defined for either task stacks or
  1069.      * the interrupt stack.  If the interrupt stack is protected and task
  1070.      * stacks are not, pass the task stack overflow size parameter as zero.
  1071.      */
  1072. #if defined INCLUDE_PROTECT_TASK_STACK 
  1073. || defined INCLUDE_PROTECT_INTERRUPT_STACK
  1074. # if defined(_WRS_OSM_INIT)
  1075. #  if defined INCLUDE_PROTECT_TASK_STACK
  1076.     excOsmInit (TASK_USER_EXC_STACK_OVERFLOW_SIZE, VM_PAGE_SIZE);
  1077. #  else  /* INCLUDE_PROTECT_TASK_STACK */
  1078.     excOsmInit (0, VM_PAGE_SIZE);
  1079. #  endif /* INCLUDE_PROTECT_TASK_STACK */
  1080. # endif /* defined(_WRS_OSM_INIT) */
  1081. #endif /* INCLUDE_PROTECT_TASK_STACK || INCLUDE_PROTECT_INTERRUPT_STACK */
  1082. #if defined INCLUDE_PROTECT_INTERRUPT_STACK
  1083.     /* Apply protection to interrupt stack guard regions */
  1084.     usrKernelIntStkProtect();
  1085. #endif /* INCLUDE_PROTECT_INTERRUPT_STACK */
  1086. #if defined INCLUDE_PROTECT_TASK_STACK
  1087.     taskStackGuardPageEnable ();
  1088. #endif /* INCLUDE_PROTECT_TASK_STACK */
  1089. #ifdef INCLUDE_TASK_STACK_NO_EXEC
  1090.     taskStackNoExecEnable ();
  1091. #endif /* INCLUDE_TASK_STACK_NO_EXEC */
  1092. #ifdef INCLUDE_AIM_MMU_SHOW
  1093.     aimMmuShowInit();
  1094. #endif
  1095. #endif /* defined(INCLUDE_MMU_BASIC) */
  1096. #if (CPU_FAMILY == PPC)
  1097.     excIntNestLogInit(); /* frameless nesting logger */
  1098.     /* Enable interrupts immediately after MMU */
  1099.     vxMsrSet(vxMsrGet() | taskMsrDefault);
  1100. #endif /* (CPU_FAMILY == PPC) */
  1101. #ifdef INCLUDE_RTP
  1102. #ifdef INCLUDE_PG_MGR_LIB
  1103.     pgMgrLibInit();    /* always returns OK */
  1104. #endif /* INCLUDE_PG_MGR_LIB */
  1105. #if defined (INCLUDE_RTP_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1106.     pgPoolShowInit (); /* initialize pgPoolShow lib */
  1107.     pgMgrShowInit (); /* initialize pgMgrShow lib */
  1108. #endif /* defined(INCLUDE_RTP_SHOW) */
  1109. #if defined (INCLUDE_ADR_SPACE_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1110.     adrSpaceShowInit (); /* initialize adrSpaceShow */
  1111. #endif /* defined(INCLUDE_ADR_SPACE_SHOW) */
  1112. #if defined (INCLUDE_MAPPED_FILES_SHOW)
  1113.     mmanShowInit (); /* initialize mmanShow lib */
  1114. #endif
  1115. #endif /* INCLUDE_RTP */
  1116. /* 
  1117.  * ED&R initialization needs to be as early as possible in the boot
  1118.  * sequence, in order to catch early exceptions. It is here,
  1119.  * immediately after the MMU is initialised, since it uses the
  1120.  * services of vmLib.
  1121.  */
  1122. #ifdef INCLUDE_EDR_PM
  1123.     usrPmInit ();
  1124. #endif /* INCLUDE_EDR_PM */
  1125. #ifdef INCLUDE_EDR_ERRLOG
  1126.     /* initialize the ED&R subsystem */
  1127.     usrEdrInit ();
  1128. #ifdef INCLUDE_EDR_SHOW
  1129.     edrShowInit ();
  1130. #endif /* INCLUDE_EDR_SHOW */
  1131. #endif /* INCLUDE_EDR_ERRLOG */
  1132. #ifdef INCLUDE_EDR_SYSDBG_FLAG
  1133.     edrSystemDebugModeInit ();
  1134. #endif /* INCLUDE_EDR_SYSDBG_FLAG */
  1135. #ifdef INCLUDE_BOOT_EDR_SUPPORT
  1136.     edrSystemDebugModeSet (FALSE);  /* always run in deployed mode */
  1137. #endif
  1138. #ifndef INCLUDE_BOOT_APP
  1139.     /* Now inject a 'boot' ED&R event - this takes place outside
  1140.      * the INCLUDE_EDR guards, as the stub is always included.
  1141.      * 
  1142.      * Do not inject this event for a bootrom build
  1143.      */
  1144.     edrStubInit ();
  1145. #endif
  1146. #ifdef INCLUDE_CORE_DUMP
  1147.     usrCoreDumpInit ();
  1148. #endif /* INCLUDE_CORE_DUMP */
  1149.     /* set up system timer */
  1150.     sysClkConnect ((FUNCPTR) usrClock, 0); /* connect clock ISR */
  1151.     sysClkRateSet (SYS_CLK_RATE); /* set system clock rate */
  1152.     sysClkEnable (); /* start it */
  1153. #if defined(INCLUDE_BOOT_APP) && defined(INCLUDE_BOOT_ADDMEM)
  1154.     bootAddMemInit(ADDED_BOOTMEM_ADDR, ADDED_BOOTMEM_SIZE);
  1155. #endif  /* INCLUDE_BOOT_ADDMEM defined */
  1156. #ifdef INCLUDE_FAST_DRAM
  1157. /*
  1158.  * make use of data cache as fast DRAM,
  1159.  * establish parameters in config.h, MMU
  1160.  * must be initialed before data cache is
  1161.  * initialized as data ram...
  1162.  */
  1163.   cacheCreateInternalDataRAM((UINT32 *)FD_ORIGIN, FD_NUMLINES);
  1164. #endif
  1165. #ifdef  INCLUDE_SET
  1166.     setLibInit ();
  1167. #endif
  1168.     /* initialize I/O system */
  1169. #ifdef  INCLUDE_IO_SYSTEM
  1170.     iosInit (NUM_DRIVERS, NUM_FILES, "/null", IOS_POSIX_PSE52_MODE);
  1171.     consoleFd = NONE;                           /* assume no console device */
  1172.     /*
  1173.      * The select library needs to be initialized before the tyLib module
  1174.      * since the _func_selWakeupListInit FUNCPTR is required (SPR #3314).
  1175.      * The installation of the select task delete hooks is performed
  1176.      * later in usrRoot() after NFS and RPC have been initialized.
  1177.      */
  1178. #ifdef  INCLUDE_SELECT
  1179.     selectInit (NUM_FILES);
  1180. #endif /* INCLUDE_SELECT */
  1181.     /* initialize process file system */
  1182. #ifdef  INCLUDE_PROCFS
  1183.     {
  1184.     extern int procfsFsDevCreate (char *, int);
  1185.     extern int rtpProcfsInit (void);
  1186.     extern int edrProcfsInit (void);
  1187.     procfsFsDevCreate ("/proc", 5);
  1188. #ifdef INCLUDE_RTP
  1189.     rtpProcfsInit(); /* install RTP specific entries */
  1190. #endif /* INCLUDE_RTP */
  1191. #ifdef INCLUDE_EDR_ERRLOG
  1192.     edrProcfsInit(); /* install ED&R specific entries */
  1193. #endif /* INCLUDE_EDR_ERRLOG */
  1194.     }
  1195. #endif /* INCLUDE_PROCFS */
  1196. #ifdef INCLUDE_TYLIB
  1197.     tyLibInit (TYLIB_XOFF_PCNT, TYLIB_XON_PCNT, TYLIB_WRT_THRESHLD);
  1198. #endif
  1199. #ifdef  INCLUDE_TYCODRV_5_2
  1200. #ifdef  INCLUDE_TTY_DEV
  1201.     if ((NUM_TTY > 0))
  1202. {
  1203. tyCoDrv (); /* install console driver */
  1204. for (ix = 0; ix < NUM_TTY; ix++) /* create serial devices */
  1205.     {
  1206.     sprintf (tyName, "%s%d", "/tyCo/", ix);
  1207.     (void) tyCoDevCreate (tyName, ix, 512, 512);
  1208.     if (ix == CONSOLE_TTY)
  1209. strcpy (consoleName, tyName); /* store console name */
  1210.     }
  1211. consoleFd = open (consoleName, O_RDWR, 0);
  1212. /* set baud rate */
  1213. (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE);
  1214. (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);
  1215. }
  1216. #endif /* INCLUDE_TTY_DEV */
  1217. #else   /* !INCLUDE_TYCODRV_5_2 */
  1218. #ifdef  INCLUDE_TTY_DEV
  1219.     ttyDrv (); /* install console driver */
  1220.     if ((NUM_TTY > 0))
  1221. {
  1222. for (ix = 0; ix < NUM_TTY; ix++) /* create serial devices */
  1223.     {
  1224. #if     (defined(INCLUDE_WDB) && (WDB_COMM_TYPE == WDB_COMM_SERIAL))
  1225.     if (ix == WDB_TTY_CHANNEL) /* don't use WDBs channel */
  1226. continue;
  1227. #endif
  1228.     sprintf (tyName, "%s%d", "/tyCo/", ix);
  1229.     (void) ttyDevCreate (tyName, sysSerialChanGet(ix), 512, 512);
  1230.     if (ix == CONSOLE_TTY) /* init the tty console */
  1231. {
  1232. strcpy (consoleName, tyName);
  1233. consoleFd = open (consoleName, O_RDWR, 0);
  1234. (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE);
  1235. (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);
  1236. }
  1237.     }
  1238. }
  1239. #endif  /* INCLUDE_TTY_DEV */
  1240. #ifdef INCLUDE_PC_CONSOLE
  1241.     pcConDrv ();
  1242.     for (ix = 0; ix < N_VIRTUAL_CONSOLES; ix++)
  1243. {
  1244. sprintf (tyName, "%s%d", "/pcConsole/", ix);
  1245. (void) pcConDevCreate (tyName,ix, 512, 512);
  1246. if (ix == PC_CONSOLE) /* init the console device */
  1247.     {
  1248.     strcpy (consoleName, tyName);
  1249.     consoleFd = open (consoleName, O_RDWR, 0);
  1250.     (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE);
  1251.     (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL);
  1252.     }
  1253. }
  1254. #endif /* INCLUDE_PC_CONSOLE */
  1255. #endif  /* !INCLUDE_TYCODRV_5_2 */
  1256.     ioGlobalStdSet (STD_IN,  consoleFd);
  1257.     ioGlobalStdSet (STD_OUT, consoleFd);
  1258.     ioGlobalStdSet (STD_ERR, consoleFd);
  1259. #endif  /* INCLUDE_IO_SYSTEM */
  1260. #if defined (_WRS_PAL_COPROC_LIB)
  1261.     coprocLibInit();
  1262. #ifdef INCLUDE_HW_FP
  1263.     aimFppLibInit();        /* dummy function to include fppTaskRegsSet/Get */
  1264. #endif
  1265. #endif /* _WRS_PAL_COPROC_LIB */
  1266.     /* initialize symbol table facilities */
  1267. #ifdef INCLUDE_SYM_TBL
  1268.     hashLibInit (); /* initialize hash table package */
  1269.     symLibInit ();                 /* initialize symbol table package */
  1270. #ifdef  INCLUDE_SHOW_ROUTINES
  1271.     symShowInit (); /* initialize symbol table show */
  1272. #endif /* INCLUDE_SHOW_ROUTINES */
  1273. #endif /* INCLUDE_SYM_TBL */
  1274.     /* initialize exception handling */
  1275. #if     defined(INCLUDE_EXC_HANDLING) && defined(INCLUDE_EXC_TASK)
  1276. #ifdef INCLUDE_EXC_SHOW
  1277.     excShowInit ();
  1278. #endif
  1279.     /* initialize exception handling */
  1280.     excInit (MAX_ISR_JOBS);
  1281. #endif  /* defined(INCLUDE_EXC_HANDLING) && defined(INCLUDE_EXC_TASK) */
  1282. #if defined(INCLUDE_JOB_TASK)
  1283.     jobLibInit (JOB_TASK_STACK_SIZE);
  1284. #endif /* INCLUDE_JOB_TASK */
  1285. #ifdef INCLUDE_LSTLIB
  1286.     lstLibInit ();
  1287. #endif
  1288. #ifdef INCLUDE_LOGGING
  1289.     logInit (consoleFd, MAX_LOG_MSGS); /* initialize logging */
  1290. # ifdef INCLUDE_LOG_STARTUP
  1291.     logMsg ("logging started to %s [%d], queue size %dn",
  1292. consoleName, consoleFd, MAX_LOG_MSGS, 4,5,6);
  1293.     taskDelay (2); /* allow time for message to be displayed */
  1294. # endif /* INCLUDE_LOG_STARTUP */
  1295. #endif /* INCLUDE_LOGGING */
  1296. #ifdef INCLUDE_NBIO_LOG
  1297.     nbioLogInit (consoleFd, INIT_NBIO_MSGS);
  1298. #endif /* INCLUDE_NBIO_LOG */
  1299. #ifdef INCLUDE_SIGNALS
  1300.     sigInit (POSIX_SIGNAL_MODE);        /* initialize signals */
  1301. #endif /* INCLUDE_SIGNALS */
  1302. #ifdef INCLUDE_POSIX_CLOCKS
  1303.     clockLibInit (); /* initialize clock */
  1304. #endif /* INCLUDE_POSIX_CLOCKS */
  1305. #ifdef INCLUDE_POSIX_TIMERS
  1306.     timerLibInit (); /* initialize timers */
  1307. #ifdef INCLUDE_OBJ_OPEN
  1308.     timerOpenInit ();
  1309. #endif
  1310. #endif /* INCLUDE_POSIX_TIMERS */
  1311. #ifdef INCLUDE_POSIX_SHM
  1312.     shmFsLibInit (SHM_DEV_NAME); /* initialize POSIX shared memory */
  1313. /* objects option */
  1314. #endif
  1315. #ifdef INCLUDE_POSIX_MAPPED_FILES
  1316.     mmanFdLibInit(); /* initialize POSIX memory mapped */
  1317. /* files option */
  1318. #endif
  1319. #ifdef INCLUDE_POSIX_ADVISORY_FILE_LOCKING
  1320.     usrPosixAdvLockInit();
  1321. #endif
  1322.     /* initialize debugging */
  1323. #ifdef INCLUDE_DEBUG
  1324.     dbgInit (); /* initialize debugging */
  1325. #endif /* INCLUDE_DEBUG */
  1326.     /* initialize pipe driver */
  1327. #ifdef INCLUDE_PIPES
  1328.     pipeDrv (); /* install pipe driver */
  1329. #endif /* INCLUDE_PIPES */
  1330.     /* initialize POSIX async I/O support */
  1331. #ifdef INCLUDE_POSIX_AIO
  1332.     aioPxLibInit (MAX_LIO_CALLS);
  1333. #ifdef INCLUDE_POSIX_AIO_SYSDRV
  1334.     aioSysInit (MAX_AIO_SYS_TASKS, AIO_TASK_PRIORITY, AIO_TASK_STACK_SIZE);
  1335. #endif  /* INCLUDE_POSIX_AIO_SYSDRV */
  1336. #endif  /* INCLUDE_POSIX_AIO */
  1337.     /* initialize standard I/O package */
  1338. #ifdef INCLUDE_STDIO
  1339.     stdioInit (); /* initialize standard I/O library */
  1340. #ifdef  INCLUDE_SHOW_ROUTINES
  1341.     stdioShowInit ();
  1342. #endif  /* INCLUDE_SHOW_ROUTINES */
  1343. #endif /* INCLUDE_STDIO */
  1344.     /* initialize POSIX queued signals */
  1345. #if defined(INCLUDE_POSIX_SIGNALS) && defined(INCLUDE_SIGNALS)
  1346.     sigqueueInit (NUM_SIGNAL_QUEUES); /* initialize queued signals */
  1347. #endif
  1348.     /* initialize POSIX semaphores */
  1349. #ifdef  INCLUDE_POSIX_SEM
  1350.     semPxLibInit ();
  1351. #ifdef INCLUDE_SHOW_ROUTINES
  1352.     semPxShowInit ();
  1353. #endif  /* INCLUDE_SHOW_POUTINES */
  1354. #endif  /* INCLUDE_POSIX_SEM */
  1355.     /* initialize POSIX threads */
  1356. #ifdef INCLUDE_POSIX_PTHREADS
  1357.     pthreadLibInit ();
  1358. #endif  /* INCLUDE_POSIX_PTHREADS */
  1359.     /* initialize POSIX scheduler interface to pthread */
  1360. #ifdef INCLUDE_POSIX_PTHREAD_SCHEDULER
  1361.     taskPxLibInit ();
  1362. #ifdef INCLUDE_PX_SCHED_SPORADIC_POLICY
  1363.     pxSSThreadLibInit ();
  1364. #endif /* INCLUDE_PX_SCHED_SPORADIC_POLICY */
  1365. #endif /* INCLUDE_POSIX_PTHREAD_SCHEDULER */
  1366.     /* initialize Signal Events */
  1367. #ifdef INCLUDE_SIGEVENT
  1368.     sigeventLibInit ();
  1369. #endif  /* INCLUDE_SIGEVENT */
  1370.     /* initialize POSIX message queues */
  1371. #ifdef INCLUDE_POSIX_MQ
  1372.     mqPxLibInit (MQ_HASH_SIZE);
  1373. #ifdef INCLUDE_SHOW_ROUTINES
  1374.     mqPxShowInit ();
  1375. #endif  /* INCLUDE_SHOW_ROUTINES */
  1376. #endif  /* INCLUDE_POSIX_MQ */
  1377. #ifdef INCLUDE_POSIX_THREAD_CPUTIME
  1378.     pxCpuTimeLibInit();
  1379. #endif
  1380. #ifdef INCLUDE_ERF
  1381.     erfLibInit (ERF_MAX_USR_CATEGORIES, ERF_MAX_USR_TYPES);
  1382. #endif
  1383. #ifdef INCLUDE_DEVICE_MANAGER
  1384.     devInit (DEVICE_MANAGER_MAX_NUM_DEVICES);
  1385. #endif
  1386. #ifdef INCLUDE_XBD
  1387.     xbdInit ();
  1388. #endif
  1389. #ifdef INCLUDE_XBD_BLK_DEV
  1390.     xbdBlkDevLibInit ();
  1391. #endif
  1392. #ifdef INCLUDE_FS_MONITOR
  1393.     fsMonitorInit ();
  1394. #endif
  1395. #ifdef INCLUDE_FS_EVENT_UTIL
  1396.     fsEventUtilLibInit ();
  1397. #endif
  1398. #if defined(INCLUDE_HRFS) || defined (INCLUDE_HRFS_READONLY)
  1399.     usrHrfsInit (HRFS_DEFAULT_MAX_BUFFERS, HRFS_DEFAULT_MAX_FILES);
  1400. #endif
  1401. #ifdef INCLUDE_CBIO /* init main CBIO module, cbioLib() */
  1402.     cbioLibInit();
  1403. #endif /* INCLUDE_CBIO */
  1404.     /* initialize filesystems and disk drivers */
  1405. #ifdef INCLUDE_DOSFS_MAIN  /* dosFs2 file system initialization */
  1406.     usrDosfsInit (DOSFS_DEFAULT_MAX_FILES, DOSFS_DEFAULT_CREATE_OPTIONS);
  1407. #endif /* INCLUDE_DOSFS_MAIN */
  1408. #ifdef INCLUDE_DOSFS_CACHE
  1409.     dosFsCacheLibInit (DOSFS_DEFAULT_CACHE_SIZE);
  1410. #endif
  1411. #ifdef INCLUDE_RAWFS
  1412.     rawFsInit (NUM_RAWFS_FILES);  /* init rawFs filesystem */
  1413. #endif /* INCLUDE_RAWFS */
  1414. #ifdef INCLUDE_HRFS_FORMAT
  1415.     hrfsFormatLibInit ();
  1416. #endif
  1417. #ifdef INCLUDE_RAMDRV
  1418.     ramDrv (); /* initialize ram disk driver */
  1419. #endif /* INCLUDE_RAMDRV */
  1420. #ifdef INCLUDE_CDROMFS
  1421.     cdromFsInit (CDROM_COM_BUF_SIZE);   /* initialize the cdromFs library */
  1422. #endif
  1423. #ifdef INCLUDE_MEMDRV
  1424.     memDrv (); /* initialize memory disk driver */
  1425. #endif /* INCLUDE_MEMDRV */
  1426. #ifdef INCLUDE_PTYDRV
  1427.     ptyDrv (); /* initialize pseudo-terminal driver */
  1428. #endif /* INCLUDE_PTYDRV */
  1429. #ifdef INCLUDE_VRFS
  1430.     vrfsInit();
  1431.     vrfsDevCreate();
  1432. #endif
  1433. #ifdef INCLUDE_ROMFS
  1434.     romfsImageLen = romfsImageEnd-romfsImage;
  1435.     if (romfsImageLen != 0) /* initialize ROMFS file system */
  1436. {
  1437. BLK_DEV *pBlkDev;
  1438. void *pVolDesc;
  1439. pBlkDev=(BLK_DEV *)romfsBlkDevCreate((char *)&romfsImage,
  1440.   romfsImageLen, 0);
  1441. if (pBlkDev == NULL)
  1442.     {
  1443.     printErr ("Error creating romfs block device!n");
  1444.     }
  1445. else
  1446.     {
  1447.     pVolDesc = (void *)romfsFsDevCreate ("/romfs", pBlkDev);
  1448.     }
  1449. }
  1450. #endif /* INCLUDE_ROMFS */
  1451.     /* Initialize PCCARD services */
  1452. #ifdef INCLUDE_PCCARD
  1453.     csInit (CS_PCCARD_STACK);
  1454. #ifdef INCLUDE_PCCARD_SHOW
  1455.     csShowInit ();
  1456. #endif /* INCLUDE_PCCARD_SHOW */
  1457. #endif /* INCLUDE_PCCARD */
  1458. #ifdef INCLUDE_SCSI
  1459.     /*
  1460.      * initialize either the SCSI1 or SCSI2 interface; initialize SCSI2 when
  1461.      * the SCSI2 interface is available.
  1462.      */
  1463. #ifndef INCLUDE_SCSI2
  1464.     scsi1IfInit ();
  1465. #else
  1466.     scsi2IfInit ();
  1467. #endif
  1468.     /* initialize SCSI controller */
  1469.     if (sysScsiInit () == OK)
  1470. {
  1471. usrScsiConfig (); /* configure SCSI peripherals */
  1472.         }
  1473.     else
  1474.         {
  1475. #ifdef INCLUDE_STDIO
  1476.         printf ("sysScsiInit() Failed, SCSI system not initializedn");
  1477. #endif  /* INCLUDE_STDIO */
  1478.         }
  1479. #endif /* INCLUDE_SCSI */
  1480. #ifdef  INCLUDE_FD     /* initialize floppy disk driver */
  1481.     if ((fdDrv (FD_INT_VEC, FD_INT_LVL)) == ERROR)
  1482.      {
  1483. #ifdef INCLUDE_STDIO
  1484. printf ("fdDrv returned ERROR from usrRoot.n");
  1485. #endif /* INCLUDE_STDIO */
  1486. }
  1487.     usrFdConfig (0, FD_0_TYPE, FD_DEV_NAME "0");
  1488.     usrFdConfig (1, FD_1_TYPE, FD_DEV_NAME "1");
  1489. #endif /* INCLUDE_FD */
  1490. #ifdef  INCLUDE_IDE
  1491.     /* init IDE disk driver */
  1492.     if ((ideDrv (IDE_INT_VEC, IDE_INT_LVL, IDE_CONFIG)) == ERROR)
  1493. {
  1494. #ifdef INCLUDE_STDIO
  1495. printf ("ideDrv returned ERROR from usrRoot.n");
  1496. #endif /* INCLUDE_STDIO */
  1497. }
  1498. #endif  /* INCLUDE_IDE */
  1499. #ifdef  INCLUDE_ATA
  1500.     usrAtaInit ();
  1501.     if (strcmp (FS_NAMES_ATA_PRIMARY_MASTER, "" ))        
  1502.         usrAtaConfig (0, 0, FS_NAMES_ATA_PRIMARY_MASTER); 
  1503.     if (strcmp (FS_NAMES_ATA_PRIMARY_SLAVE, "" ))         
  1504.         usrAtaConfig (0, 1, FS_NAMES_ATA_PRIMARY_SLAVE);  
  1505.     if (strcmp (FS_NAMES_ATA_SECONDARY_MASTER, "" ))      
  1506.         usrAtaConfig (1, 0, FS_NAMES_ATA_SECONDARY_MASTER); 
  1507.     if (strcmp (FS_NAMES_ATA_SECONDARY_SLAVE, "" ))       
  1508.         usrAtaConfig (1, 1, FS_NAMES_ATA_SECONDARY_SLAVE);
  1509. #ifdef  INCLUDE_SHOW_ROUTINES
  1510.     ataShowInit ();                     /* install ATA/IDE show routine */
  1511. #endif  /* INCLUDE_SHOW_ROUTINES */
  1512. #endif  /* INCLUDE_ATA */
  1513. #ifdef INCLUDE_PCCARD
  1514.     csClientLoad (CS_ATA_ENABLER);
  1515. #endif /* INCLUDE_PCCARD */
  1516. #ifdef  INCLUDE_LPT
  1517.     {
  1518.     IMPORT LPT_RESOURCE lptResources[];
  1519.     lptDrv (LPT_CHANNELS, &lptResources[0]); /* init LPT parallel driver */
  1520.     }
  1521. #endif  /* INCLUDE_LPT */
  1522. #ifdef  INCLUDE_PCMCIA
  1523. #ifdef  INCLUDE_SHOW_ROUTINES
  1524.     pcmciaShowInit (); /* install PCMCIA show routines */
  1525. #endif  /* INCLUDE_SHOW_ROUTINES */
  1526.     pcmciaInit (); /* init PCMCIA Lib */
  1527. #endif  /* INCLUDE_PCMCIA */
  1528. #ifdef INCLUDE_TFFS
  1529.     tffsDrv (); /* it should be after pcmciaInit() */
  1530. #endif /* INCLUDE_TFFS */
  1531. #ifdef  INCLUDE_FLASH
  1532.     flashFsLibInit();
  1533. #endif  /* INCLUDE_FLASH */
  1534. #ifdef INCLUDE_TFFS_MOUNT
  1535.     usrTffsConfig (TFFS_DRIVE_NUMBER, TFFS_REMOVABLE, TFFS_MOUNT_POINT );
  1536. #endif /* INCLUDE_TFFS_MOUNT */
  1537. #ifdef  INCLUDE_FORMATTED_IO
  1538.     fioLibInit (); /* initialize formatted I/O */
  1539. #endif  /* INCLUDE_FORMATTED_IO */
  1540.     /* initialize floating point facilities */
  1541. #ifdef INCLUDE_FLOATING_POINT
  1542.     floatInit (); /* initialize floating point I/O */
  1543. #endif /* INCLUDE_FLOATING_POINT */
  1544.     /* install software floating point emulation (if applicable) */
  1545. #ifdef INCLUDE_SW_FP
  1546.     mathSoftInit (); /* use software emulation for fp math */
  1547. #endif /* INCLUDE_SW_FP */
  1548. #if defined (_WRS_PAL_COPROC_LIB) && defined(INCLUDE_SHOW_ROUTINES)
  1549.     coprocShowInit();
  1550. #endif /* _WRS_PAL_COPROC_LIB && INCLUDE_SHOW_ROUTINES */
  1551. #if !defined (_WRS_PAL_COPROC_LIB)
  1552.     /* install hardware floating point support (if applicable) */
  1553. #ifdef INCLUDE_HW_FP
  1554.     mathHardInit ();  /* do fppInit() & install hw fp math */
  1555. #ifdef INCLUDE_SHOW_ROUTINES
  1556.     fppShowInit (); /* install hardware fp show routine */
  1557. #endif /* INCLUDE_SHOW_ROUTINES */
  1558. #endif /* INCLUDE_HW_FP */
  1559.     /* install dsp support (if applicable) */
  1560. #ifdef INCLUDE_DSP
  1561.     usrDspInit ();  /* do dspInit() */
  1562. #endif /* INCLUDE_DSP */
  1563.     /* initialize AltiVec library (if applicable) */
  1564. #ifdef INCLUDE_ALTIVEC
  1565.     usrAltivecInit ();
  1566. #endif /* INCLUDE_ALTIVEC */
  1567.     /* initialize Spe library (if applicable) */
  1568. #ifdef INCLUDE_SPE
  1569.     usrSpeInit ();
  1570. #endif /* INCLUDE_SPE */
  1571. #endif /* _WRS_PAL_COPROC_LIB */
  1572.    /* Initialize system calls */
  1573. #ifdef INCLUDE_RTP
  1574. #ifdef INCLUDE_SC_POSIX
  1575.     usrPosixScInit ();
  1576. #endif
  1577. #ifdef INCLUDE_MEM_RTP
  1578.     memRtpLibInit (RTP_HEAP_INIT_SIZE, MEM_PART_DEFAULT_OPTIONS);
  1579. #endif
  1580. #ifdef INCLUDE_SC_KERNEL
  1581.     windScInit ();
  1582. #endif
  1583. #ifdef INCLUDE_SC_MMAN
  1584.     mmanScLibInit ();
  1585. #endif
  1586. #ifdef INCLUDE_SHL
  1587.     shlScLibInit (); /* initialize SL syscalls */
  1588. #endif /* INCLUDE_SHL */
  1589. #ifdef INCLUDE_SC_IOS
  1590.     iosScLibInit ();
  1591. #endif
  1592. #ifdef  INCLUDE_SC_SYSCTL
  1593.     sysctlScLibInit();                          /* Syscall support for sysctl */
  1594. #endif /* INCLUDE_SC_SYSCTL */
  1595. #ifdef INCLUDE_SC_SD
  1596.     sdScInit();
  1597. #endif
  1598. #endif /* INCLUDE_RTP */
  1599.     /* initialize performance monitoring tools */
  1600. #ifdef INCLUDE_SPY
  1601.     spyLibInit (); /* install task cpu utilization tool */
  1602. #endif /* INCLUDE_SPY */
  1603. #ifdef INCLUDE_TIMEX
  1604.     timexInit (); /* install function timing tool */
  1605. #endif /* INCLUDE_TIMEX */
  1606. #ifdef  INCLUDE_ENV_VARS
  1607.     envLibInit (ENV_VAR_USE_HOOKS); /* initialize environment variable */
  1608. #endif /* INCLUDE_ENV_VARS */
  1609.     /* initialize object module loader and unloader */
  1610. #ifdef INCLUDE_LOADER
  1611.     moduleLibInit (); /* initialize module manager */
  1612.     loadLibInit (STORE_ABS_SYMBOLS);            /* Initialize loader */
  1613.     loadElfInit (); /* use elf format */
  1614. #endif /* INCLUDE_LOADER */
  1615. #ifdef INCLUDE_UNLOADER
  1616.     unldLibInit ();
  1617. #endif /* INCLUDE_UNLOADER */
  1618. /* if networking is not included as part of the bootrom, still
  1619.  * initialize the INCLUDE_BOOT_LINE_INIT component if included.
  1620.  */
  1621. #if (defined(INCLUDE_BOOT_APP) && defined(INCLUDE_BOOT_LINE_INIT)) 
  1622. #if (!defined(INCLUDE_NETWORK) && !defined(INCLUDE_COMMON_NET))
  1623.     usrBootLineInit (sysStartType); /* crack the bootline */
  1624. #endif   /* !INCLUDE_NETWORK && !INCLUDE_COMMON_NET */
  1625. #endif   /* INCLUDE_BOOT_APP && INCLUDE_BOOT_LINE_INIT */
  1626. /*
  1627.  * Initialize network if network support is included. If network support is not
  1628.  * included call usrNetworkCommonInit() which initializes common components
  1629.  * like sockets, sysctl if support for these has been included.
  1630.  */
  1631. #if  defined(INCLUDE_NETWORK) || defined(INCLUDE_COMMON_NET)
  1632. #ifdef  INCLUDE_NET_INIT
  1633. #ifdef INCLUDE_BOOT_LINE_INIT
  1634.     usrBootLineInit (sysStartType); /* crack the bootline */
  1635. #endif /* INCLUDE_BOOT_LINE_INIT */
  1636. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1637.     logMsg ("before usrNetInit()n", 1,2,3,4,5,6);
  1638.     taskDelay (2); /* allow time for message to be displayed */
  1639. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1640.     usrNetInit (BOOT_LINE_ADRS); /* initialize network support */
  1641. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1642.     logMsg ("after usrNetInit()n", 1,2,3,4,5,6);
  1643.     taskDelay (2); /* allow time for message to be displayed */
  1644. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1645. #endif /* INCLUDE_NET_INIT */
  1646. #else   /* INCLUDE_NETWORK */
  1647.     usrNetworkCommonInit ();
  1648. #endif  /* INCLUDE_NETWORK || INCLUDE_COMMON_NET */
  1649. #ifdef INCLUDE_PASSFS
  1650.     usrPassFsInit (PASSFS_CACHE);
  1651. #endif /* INCLUDE_PASSFS */
  1652. /* initialize USB components */
  1653. #ifdef INCLUDE_USB_INIT
  1654.     usbInit ();  /* USB Host Stack Initialization */
  1655. #endif
  1656. #ifdef INCLUDE_UHCI_INIT
  1657.     usrUsbHcdUhciAttach ();  /* UHCI Initialization */
  1658. #endif
  1659. #ifdef INCLUDE_OHCI_INIT
  1660.     usrUsbHcdOhciAttach ();  /* OHCI Initialization */
  1661. #endif
  1662. #ifdef INCLUDE_EHCI_INIT
  1663.     usrUsbHcdEhciAttach ();     /* EHCI Initialization */
  1664. #endif
  1665. #ifdef INCLUDE_USB_MOUSE_INIT
  1666.     usrUsbMseInit ();  /* Mouse Driver Initialization */
  1667. #endif
  1668. #ifdef INCLUDE_USB_KEYBOARD_INIT
  1669.     usrUsbKbdInit ();  /* Keyboard Driver Initialization */
  1670. #endif
  1671. #ifdef INCLUDE_USB_PRINTER_INIT
  1672.     usrUsbPrnInit ();  /* Printer Driver Initialization */
  1673. #endif
  1674. #ifdef INCLUDE_USB_SPEAKER_INIT
  1675.     usrUsbSpkrInit ();  /* Speaker Driver Initialization */
  1676. #endif
  1677. #ifdef INCLUDE_USB_AUDIO_DEMO
  1678.     usrUsbAudioDemo ();  /* USB Audio Demo */
  1679. #endif
  1680. #ifdef INCLUDE_USB_MS_BULKONLY_INIT
  1681.     usrUsbBulkDevInit();  /* Bulk Driver Initialization */
  1682. #endif
  1683. #ifdef INCLUDE_USB_MS_CBI_INIT
  1684.     usrUsbCbiUfiDevInit ();  /* CBI Driver Initialization */
  1685. #endif
  1686. #ifdef INCLUDE_USB_PEGASUS_END_INIT
  1687.     usrUsbPegasusEndInit ();    /* Pegasus Driver Initialization */
  1688. #endif
  1689. #ifdef INCLUDE_PHILIPS1582
  1690.     /* The following is to workaround the PCI interrupt issue with ISP1582 */
  1691.     sysIsp1582PciDisconnect ();
  1692. #endif
  1693. #ifdef INCLUDE_MS_EMULATOR_INIT
  1694.     /* Peripheral Mass Storage driver initialization */
  1695.     usbTargMsInit();
  1696. #endif
  1697. #ifdef INCLUDE_KBD_EMULATOR_INIT
  1698.     usrUsbTargKbdInit ();        /* Peripheral Keyboard driver initialization */
  1699. #endif
  1700. #ifdef INCLUDE_PRN_EMULATOR_INIT
  1701.     usrUsbTargPrnInit ();        /* Peripheral Printer driver initialization */
  1702. #endif
  1703. #ifdef INCLUDE_DOS_DISK
  1704.     usrDosDiskInit ();
  1705. #endif /* INCLUDE_DOS_DISK */
  1706. #ifdef INCLUDE_VIRTUAL_DISK
  1707.     virtualDiskInit ();
  1708. #endif /* INCLUDE_VIRTUAL_DISK */
  1709.     /* initialize shared memory objects */
  1710. #ifdef INCLUDE_SM_OBJ /* unbundled shared memory objects */
  1711.     usrSmObjInit (BOOT_LINE_ADRS);
  1712. #endif /* INCLUDE_SM_OBJ */
  1713.     /* 
  1714.      * write protect vector table only after shared memory has been 
  1715.      * initialized. The anchor may shares a page with it.
  1716.      */
  1717. #if defined(INCLUDE_MMU_BASIC)
  1718. #ifdef INCLUDE_PROTECT_VEC_TABLE
  1719.     intVecTableWriteProtect ();
  1720. #endif /* INCLUDE_PROTECT_VEC_TABLE */
  1721. #endif /* INCLUDE_MMU_BASIC */
  1722.     /* install select hook only after NFS/RPC for proper delete hook order */
  1723. #ifdef INCLUDE_SELECT
  1724.     selTaskDeleteHookAdd ();
  1725. #endif /* INCLUDE_SELECT */
  1726.     /* create system and status symbol tables */
  1727. #if defined(INCLUDE_SYM_TBL_INIT)
  1728. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1729.     logMsg ("before symTblCreate()n", 1,2,3,4,5,6);
  1730.     taskDelay (2); /* allow time for message to be displayed */
  1731. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1732.     usrSysSymTblInit ();
  1733. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1734.     logMsg ("sysSymTbl initialization complete.n", 1,2,3,4,5,6);
  1735.     taskDelay (2); /* allow time for message to be displayed */
  1736. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1737. #endif /* INCLUDE_SYM_TBL_INIT */
  1738. #ifdef  INCLUDE_STANDALONE_SYM_TBL
  1739.     usrStandaloneInit ();
  1740. #elif (defined(INCLUDE_NET_SYM_TBL) || defined(INCLUDE_PASSFS_SYM_TBL))
  1741.     usrLoadSyms ();
  1742. #endif /* INCLUDE_NET_SYM_TBL || INCLUDE_PASSFS_SYM_TBL */
  1743. #ifdef  INCLUDE_STAT_SYM_TBL
  1744.     usrStatTblInit ();
  1745. #endif /* INCLUDE_STAT_SYM_TBL */
  1746.     /* initialize C++ support library */
  1747. #if defined (INCLUDE_CPLUS) && defined (INCLUDE_CPLUS_MIN)
  1748. #error Define only one of INCLUDE_CPLUS or INCLUDE_CPLUS_MIN, not both
  1749. #endif
  1750. #if defined (INCLUDE_CPLUS) || defined (INCLUDE_CPLUS_MIN)
  1751. #ifndef INCLUDE_CTORS_DTORS
  1752. #define INCLUDE_CTORS_DTORS
  1753. #endif
  1754. #endif
  1755. #ifdef  INCLUDE_CTORS_DTORS 
  1756.   /* 
  1757.    * call compiler generated init functions (usually - but not necessarily -
  1758.    * C++ related)
  1759.    */
  1760.    cplusCtorsLink ();
  1761. #endif
  1762. #ifdef INCLUDE_CPLUS /* all standard C++ runtime support */
  1763.     cplusLibInit ();
  1764. #endif
  1765. #ifdef INCLUDE_CPLUS_MIN /* minimal C++ runtime support */
  1766.     cplusLibMinInit ();
  1767. #endif
  1768. #ifdef INCLUDE_CPLUS_DEMANGLER
  1769.     cplusDemanglerInit ();
  1770. #endif
  1771.     /* initialize COM/DCOM runtime support */
  1772. #ifdef INCLUDE_COM
  1773.     comLibInit ();
  1774. #endif
  1775. #ifdef INCLUDE_DCOM
  1776.     dcomLibInit ();
  1777. #endif
  1778.     /* initialize Wind Web Server */
  1779. #ifdef INCLUDE_HTTP
  1780.     httpd ();
  1781. #endif /* INCLUDE_HTTP */
  1782. #ifdef INCLUDE_WINDVIEW
  1783. #ifdef INCLUDE_WVUPLOAD_SOCK
  1784.     wvSockUploadPathLibInit ();
  1785. #endif /* INCLUDE_WVUPLOAD_SOCK */
  1786.     
  1787. #ifdef INCLUDE_WVUPLOAD_FILE
  1788.     wvFileUploadPathLibInit ();
  1789. #endif /* INCLUDE_WVUPLOAD_FILE */
  1790. #ifdef INCLUDE_WVUPLOAD_TSFSSOCK
  1791.     wvTsfsUploadPathLibInit ();
  1792. #endif /* INCLUDE_WVUPLOAD_TSFSSOCK */
  1793.     windviewConfig ();
  1794. #ifdef   INCLUDE_RBUFF                  /* install rBuff support */
  1795.     rBuffLibInit();
  1796. #ifdef  INCLUDE_SHOW_ROUTINES
  1797.     rBuffShowInit ();                   /* install rBuff show routine */
  1798. #endif  /* INCLUDE_SHOW_ROUTINES */
  1799. #endif /* INCLUDE_RBUFF */
  1800. #ifdef INCLUDE_WVNETD
  1801.     wvNetDInit();
  1802. #endif /* INCLUDE_WVNETD */
  1803. #if defined (WV_INSTRUMENTATION) && defined (INCLUDE_WVTIPC)
  1804.     wvTipcInit();
  1805. #endif /* INCLUDE_WVTIPC */
  1806. /* If WindView included, must have a timestamp of some sort */
  1807. #if defined (INCLUDE_SYS_TIMESTAMP) || defined (INCLUDE_POSIX_TRACE)
  1808.     wvTmrRegister ((UINTFUNCPTR) sysTimestamp,
  1809.                    (UINTFUNCPTR) sysTimestampLock,
  1810.                    (FUNCPTR)     sysTimestampEnable,
  1811.                    (FUNCPTR)     sysTimestampDisable,
  1812.                    (FUNCPTR)     sysTimestampConnect,
  1813.                    (UINTFUNCPTR) sysTimestampPeriod,
  1814.                    (UINTFUNCPTR) sysTimestampFreq);
  1815. #else /* INCLUDE_SYS_TIMESTAMP */
  1816.     wvTmrRegister ((UINTFUNCPTR) seqStamp,
  1817.                    (UINTFUNCPTR) seqStampLock,
  1818.                    (FUNCPTR)     seqEnable,
  1819.                    (FUNCPTR)     seqDisable,
  1820.                    (FUNCPTR)     seqConnect,
  1821.                    (UINTFUNCPTR) seqPeriod,
  1822.                    (UINTFUNCPTR) seqFreq);
  1823. #endif /* INCLUDE_SYS_TIMESTAMP */
  1824. #endif /* INCLUDE_WINDVIEW */
  1825. #ifdef INCLUDE_POSIX_TRACE
  1826.     traceTmrRegister ((UINTFUNCPTR) sysTimestamp,
  1827.                       (FUNCPTR)sysTimestampEnable,
  1828.                       (FUNCPTR)sysTimestampDisable,
  1829.                       (FUNCPTR)sysTimestampConnect,
  1830.                       (UINTFUNCPTR)sysTimestampPeriod,
  1831.                       (UINTFUNCPTR)sysTimestampFreq);
  1832.     pxTraceStreamLibInit ();
  1833. #endif /* INCLUDE_POSIX_TRACE */
  1834.     /* Include Sysctl command line support */
  1835. #ifdef INCLUDE_SYSCTL_CLI
  1836.     sysctlLibInit();                               /* Command line SYSCTL */
  1837. #endif /* INCLUDE_SYSCTL_CLI */ 
  1838.     /* initialize the WDB debug agent */
  1839. #if defined (INCLUDE_WDB) && (WDB_INIT == WDB_POST_KERNEL_INIT)
  1840. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1841.     logMsg ("before usrWdbInit()n", 1,2,3,4,5,6);
  1842.     taskDelay (2); /* allow time for message to be displayed */
  1843. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1844.     usrWdbInit();
  1845. # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP)
  1846.     logMsg ("after usrWdbInit()n", 1,2,3,4,5,6);
  1847.     taskDelay (2); /* allow time for message to be displayed */
  1848. # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */
  1849. #ifdef INCLUDE_WDB_BANNER
  1850. #ifndef INCLUDE_SHELL
  1851.     usrWdbBanner ();
  1852. #endif /* INCLUDE_SHELL */
  1853. #endif /* INCLUDE_WDB_BANNER */
  1854. #endif  /* defined (INCLUDE_WDB) && (WDB_INIT == WDB_POST_KERNEL_INIT) */
  1855.     /* initialize interactive shell */
  1856. #ifdef  INCLUDE_SHELL
  1857. #ifdef INCLUDE_SECURITY /* include shell security */
  1858.     /* initialize login table */
  1859.     loginInit ();
  1860.     /* add additional users here as required */
  1861. #if defined(LOGIN_USER_NAME) && defined(LOGIN_PASSWORD)
  1862.     loginUserAdd (LOGIN_USER_NAME, LOGIN_PASSWORD);
  1863. #endif
  1864.     if ((sysFlags & SYSFLG_NO_SECURITY) == 0)
  1865. {
  1866.         /* install security program */
  1867.         shellLoginInstall (loginPrompt2, 0);
  1868. }
  1869. #endif /* INCLUDE_SECURITY */
  1870. #if 0
  1871.     printLogo (); /* print out the banner page */
  1872. #endif
  1873.     printf (" CPU: %s.  Processor #%d.n", sysModel (), sysProcNumGet ());
  1874.     printf (" Memory Size: 0x%x.",
  1875. #ifdef HITACHI_SH_KERNEL_ON_SDRAM
  1876.      (UINT)(sysMemTop () - (char *)FREE_RAM_ADRS));
  1877. #else /* HITACHI_SH_KERNEL_ON_SDRAM */
  1878.      (UINT)(sysMemTop () - (char *)LOCAL_MEM_LOCAL_ADRS));
  1879. #endif /* HITACHI_SH_KERNEL_ON_SDRAM */
  1880.     printf ("  BSP version " BSP_VERSION BSP_REV ".n");
  1881.     printf (" Created: %sn", creationDate);
  1882.     printf (" ED&R Policy Mode: %sn",
  1883. #ifdef INCLUDE_EDR_SYSDBG_FLAG
  1884.     edrIsDebugMode() ? "lab" : "deployed");
  1885. #else
  1886.     "Permanently Deployed");
  1887. #endif
  1888. #if defined(INCLUDE_WDB) && defined(INCLUDE_WDB_BANNER)
  1889.     printf (" WDB Comm Type: %sn", WDB_COMM_TYPE_STR);
  1890.     printf (" WDB: %s.n",
  1891.     ((wdbRunsExternal () || wdbRunsTasking ()) ?
  1892.  "Ready" : "Agent configuration failed") );
  1893. #endif /*INCLUDE_WDB && INCLUDE_WDB_BANNER*/
  1894. #if (!defined(INCLUDE_SHELL_EMACS_MODE) && !defined(INCLUDE_SHELL_VI_MODE)) || defined (INCLUDE_SHELL_VI_MODE)
  1895.     /*
  1896.      * Editing mode similar to the vi editing mode - this will be the
  1897.      * default mode
  1898.      */
  1899.     ledModeRegister (viLedLibInit);
  1900. #endif
  1901. #ifdef INCLUDE_SHELL_EMACS_MODE
  1902.     /* Editing mode similar to the emacs editing mode */
  1903.     ledModeRegister (emacsLedLibInit);
  1904. #endif
  1905. #if (!defined(INCLUDE_SHELL_INTERP_CMD) && !defined(INCLUDE_SHELL_INTERP_C)) || defined (INCLUDE_SHELL_INTERP_C)
  1906.     /* The C interpreter for the target-resident shell */
  1907.     shellInterpRegister (shellInterpCInit);
  1908. #endif
  1909. #ifdef INCLUDE_SHELL_INTERP_CMD
  1910.     /* The command interpreter for the target-resident shell */
  1911.     shellInterpRegister (shellInterpCmdInit);
  1912. #ifdef INCLUDE_DISK_UTIL
  1913.     /* Add the shell commands for the file system support */
  1914.     usrFsShellCmdInit ();
  1915. #endif
  1916. #if defined (INCLUDE_VM_SHOW) || 
  1917.     defined (INCLUDE_SHOW_ROUTINES) && defined (INCLUDE_MMU_BASIC)
  1918.     vmShowShellCmdInit (); /* initialize shell commands for vmShow */
  1919. #endif
  1920. #ifdef INCLUDE_RTP
  1921. #ifdef INCLUDE_DEBUG
  1922.     dbgRtpInit (); /* initialize process debugging */
  1923. #endif /* INCLUDE_DEBUG */
  1924.     /* Add the shell commands for the RTP */ 
  1925.     
  1926.     rtpShellCmdInit (); /* initialize shell commands for RTPs */
  1927. #ifdef INCLUDE_SHOW_ROUTINES
  1928.     {
  1929.     extern STATUS rtpShowShellCmdInit(void);
  1930.     rtpShowShellCmdInit(); /* initialize shell commands for RTP info */
  1931.     }
  1932. #endif /* INCLUDE_RTP_SHOW */
  1933. #ifdef INCLUDE_SHL
  1934.     shlShellCmdInit (); /* initialize shell commands for SHLs */
  1935. #endif /* INCLUDE_SHL */
  1936. #if defined (INCLUDE_SHARED_DATA_SHOW) || 
  1937.     defined (INCLUDE_SHARED_DATA) && defined (INCLUDE_SHOW_ROUTINES)
  1938.     sdShowShellCmdInit (); /* initialize shell commands for SDs */
  1939. #endif /* INCLUDE_SHARED_DATA_SHOW */
  1940. #if defined (INCLUDE_ADR_SPACE_SHOW) || defined (INCLUDE_SHOW_ROUTINES)
  1941.     adrSpaceShellCmdInit(); /* initialize shell commands for adrSpaceShow */
  1942. #endif /* INCLUDE_ADR_SPACE_SHOW */
  1943. #if defined (INCLUDE_MAPPED_FILES_SHOW)
  1944.     mmanShowShellCmdInit(); /* initialize shell commands for mmanShow */
  1945. #endif /* INCLUDE_MAPPED_FILES_SHOW */
  1946. #endif /* INCLUDE_RTP */
  1947. #ifdef INCLUDE_EDR_SHOW
  1948.     /* Add the shell commands for the EDR */
  1949.     edrShellCmdInit ();
  1950. #endif
  1951. #ifdef INCLUDE_MEM_EDR_SHOW
  1952.     memEdrShellCmdInit(); /* initialize shell commands for memEdrLib */
  1953. #endif
  1954. #ifdef INCLUDE_MEM_EDR_RTP_SHOW
  1955.     memEdrRtpShellCmdInit(); /* initialize shell commands for memEdrLib */
  1956. #endif
  1957. #ifdef INCLUDE_LOADER
  1958.     /* Add the shell commands for the loader */
  1959.     moduleShellCmdInit ();
  1960. #endif
  1961. #ifdef INCLUDE_UNLOADER
  1962.     /* Add the shell commands for the unloader */
  1963.     unloadShellCmdInit ();
  1964. #endif
  1965. #ifdef INCLUDE_DEBUG
  1966.     /* Add the shell commands for the debug */
  1967.     dbgShellCmdInit ();
  1968. #endif
  1969. #ifdef INCLUDE_SYM_TBL
  1970.     /* Add the shell commands for the symbols */
  1971.     symShellCmdInit ();
  1972. #endif
  1973.     /* Add the shell commands for the tasks */
  1974.     taskShellCmdInit ();
  1975. #endif /* INCLUDE_SHELL_INTERP_CMD */
  1976. #ifdef INCLUDE_RTP
  1977.     usrRtpLibInit ();
  1978. #endif
  1979. #ifdef INCLUDE_STARTUP_SCRIPT /* run a startup script */
  1980.     usrStartupScript (startupScriptFieldSplit (sysBootParams.startupScript));
  1981. #endif /* INCLUDE_STARTUP_SCRIPT */
  1982.     usrShell ();
  1983.     /* only include the simple demo if the shell is NOT included */
  1984. #else
  1985. #if defined(INCLUDE_DEMO) /* create demo w/o shell */
  1986.     taskSpawn ("demo", 20, 0, 2000, (FUNCPTR)usrDemo, 0,0,0,0,0,0,0,0,0,0);
  1987. #endif /* mips cpp no elif */
  1988. #endif /* INCLUDE_SHELL */
  1989. #ifdef INCLUDE_WDB_PROXY
  1990.     wrProxyLibInit (WDB_PROXY_PORT, WDB_PROXY_TASK_PRIORITY,
  1991.      WDB_PROXY_TASK_STACK_SIZE, WDB_PROXY_TASK_OPTIONS);
  1992. #ifdef INCLUDE_WDB_PROXY_UDP
  1993.     wrProxyUdpSockRegister ();
  1994. #endif /* INCLUDE_WDB_PROXY_UDP */
  1995. #ifdef INCLUDE_WDB_PROXY_TIPC
  1996.     wrProxyTipcSockRegister ();
  1997. #endif /* INCLUDE_WDB_PROXY_TIPC */
  1998. #endif /* INCLUDE_WDB_PROXY */
  1999. #ifdef  INCLUDE_WINDML
  2000.     usrWindMlInit ();
  2001. #endif  /* INCLUDE_WINDML */
  2002. #if defined (INCLUDE_SOUND) && defined(INCLUDE_SB16)
  2003.     sb16Drv ();            /* install sound driver SB16 */
  2004.     sb16DevCreate ("/sound", 0x220, 5, 1, 5);
  2005. #endif /* INCLUDE_SOUND && INCLUDE_SB16 */
  2006. #if defined(INCLUDE_JAVA)
  2007.     javaConfig ();
  2008. #endif /* INCLUDE_JAVA */
  2009. #ifdef INCLUDE_HTML
  2010.     usrHtmlInit ();
  2011. #endif /* INCLUDE_HTML */
  2012. #ifdef INCLUDE_POWER_MGMT_CPU_BSP_SUPPORT
  2013.     /* turn on power management */
  2014.     
  2015.     sysOneShotInit ();
  2016.     sysCpuPwrEnable ();
  2017. #endif
  2018. #ifdef INCLUDE_SNS
  2019. # undef INCLUDE_SNS_RTP
  2020. # undef INCLUDE_SNS_MP
  2021. # undef INCLUDE_SNS_MP_RTP
  2022.     salSnsTaskInit ();
  2023. #endif
  2024. #ifdef INCLUDE_SNS_RTP
  2025. # undef INCLUDE_SNS_MP
  2026. # undef INCLUDE_SNS_MP_RTP
  2027.     salSnsRtpInit ();
  2028. #endif
  2029. #ifdef INCLUDE_SNS_MP
  2030. # undef INCLUDE_SNS_MP_RTP
  2031.     salSnsTaskInit ();
  2032. #endif
  2033. #ifdef INCLUDE_SNS_MP_RTP
  2034.     salSnsRtpInit ();
  2035. #endif
  2036.     /* BOOTAPP starts just before USER_APPL, will not return */
  2037. #ifdef INCLUDE_BOOT_APP
  2038. #ifdef INCLUDE_BOOT_EXC_HANDLER
  2039.     bootAppExcInit();
  2040. #endif
  2041. #if defined(INCLUDE_BOOT_INIT) 
  2042.     bootAppInit (FALSE, LOCAL_MEM_LOCAL_ADRS, BOOT_DISABLE_MMU_BEFORE_ENTRY);
  2043. #elif defined(INCLUDE_BOOT_DELAYED_INIT)
  2044.     bootAppInit (TRUE, LOCAL_MEM_LOCAL_ADRS, BOOT_DISABLE_MMU_BEFORE_ENTRY);
  2045. #endif
  2046. #ifdef INCLUDE_ELF
  2047.     bootElfInit ();
  2048. #endif
  2049. #ifdef INCLUDE_BOOT_SHELL
  2050.     bootAppShellInit ();
  2051. #ifdef INCLUDE_BOOT_MEM_CMDS
  2052.     bootAppMemInit (LOCAL_MEM_LOCAL_ADRS);
  2053. #endif
  2054. #ifdef INCLUDE_BOOT_EDR_SUPPORT
  2055.     bootAppEdrInit ();
  2056. #endif
  2057. #endif /* INCLUDE_BOOT_SHELL */
  2058. /* initialize filesystems boot components */
  2059. #ifdef INCLUDE_BOOT_FILESYSTEMS
  2060.     bootFsLoadInit ();
  2061. #ifdef INCLUDE_BOOT_FD_LOADER
  2062.     bootFdLoadInit (FD_DEV_NAME);
  2063. #endif
  2064. #ifdef INCLUDE_BOOT_ATA_LOADER
  2065.     bootAtaLoadInit (FS_NAMES_ATA_PRIMARY_MASTER,
  2066.                      FS_NAMES_ATA_PRIMARY_SLAVE,
  2067.                      FS_NAMES_ATA_SECONDARY_MASTER,
  2068.                      FS_NAMES_ATA_SECONDARY_SLAVE);
  2069. #endif
  2070. #ifdef INCLUDE_BOOT_PCMCIA_LOADER
  2071.     bootPcmciaLoadInit (NUM_DOSFS_FILES);
  2072. #endif
  2073. #ifdef INCLUDE_BOOT_USB_FS_LOADER
  2074.     bootUsbFsLoadInit ();
  2075. #endif
  2076. #ifdef INCLUDE_BOOT_SCSI_LOADER
  2077.     bootScsiLoadInit ();
  2078. #endif
  2079. #ifdef INCLUDE_BOOT_TFFS_LOADER
  2080.     bootTffsLoadInit (TFFS_MOUNT_POINT);
  2081. #endif
  2082. #ifdef INCLUDE_BOOT_TSFS_LOADER
  2083.     bootTsfsLoadInit ();
  2084. #endif
  2085. #endif /* INCLUDE_BOOT_FILESYSTEMS */
  2086. /* initialize Network boot components after Filesystems */
  2087. #ifdef INCLUDE_BOOT_NETWORK
  2088.     bootNetLoadInit ();
  2089. #ifdef INCLUDE_BOOT_FTP_LOADER
  2090.     bootFtpLoadInit ();
  2091. #endif
  2092. #ifdef INCLUDE_BOOT_TFTP_LOADER
  2093.     bootTftpLoadInit ();
  2094. #endif
  2095. #ifdef INCLUDE_BOOT_RSH_LOADER
  2096.     bootRshLoadInit ();
  2097. #endif
  2098. #ifdef INCLUDE_BOOT_END
  2099.     bootEndSupportInit ();
  2100. #endif
  2101. #ifdef INCLUDE_BOOT_VXBUS
  2102.     bootVxBusSupportInit ();
  2103. #endif
  2104. #ifdef INCLUDE_BOOT_ETH_MAC_HANDLER
  2105.     bootEthMacHandlerInit (MAX_MAC_ADRS, MAX_MAC_DEVS,
  2106.                             ENET_DEFAULT, MAC_ADRS_LEN);
  2107. #endif
  2108. #ifdef INCLUDE_BOOT_ETH_ADR_SET
  2109.     bootEthAdrSetInit (ENET_DEFAULT);
  2110. #endif
  2111. #endif /* INCLUDE_BOOT_NETWORK */
  2112.     bootApp();
  2113. #endif /* INCLUDE_BOOT_APP */
  2114.     /* USER_APPL is the second last initialization step */
  2115. #ifdef INCLUDE_USER_APPL
  2116.     /* Startup the user's application */
  2117.     USER_APPL_INIT; /* must be a valid C statement or block */
  2118. #endif
  2119.     /* The RTP Startup Facility is always the last one to initialize */
  2120. #ifdef INCLUDE_RTP
  2121. #ifdef INCLUDE_RTP_APPL_USER
  2122.     usrRtpAppInit ();
  2123. #endif /* INCLUDE_RTP_APPL_USER */
  2124. #ifdef INCLUDE_RTP_APPL_INIT_STRING
  2125.     usrRtpAppInitString ();
  2126. #endif /* INCLUDE_RTP_APPL_INIT_STRING */
  2127. #ifdef INCLUDE_RTP_APPL_INIT_BOOTLINE
  2128.     usrRtpAppInitBootline ();
  2129. #endif /* INCLUDE_RTP_APPL_INIT_BOOTLINE */
  2130. #ifdef INCLUDE_RTP_APPL_INIT_CMD_SHELL_SCRIPT
  2131. #ifndef RTP_APPL_CMD_SCRIPT_FILE
  2132. #define RTP_APPL_CMD_SCRIPT_FILE NULL
  2133. #endif
  2134.     usrRtpAppInitCmdShellScriptRun (RTP_APPL_CMD_SCRIPT_FILE);
  2135. #endif /* INCLUDE_RTP_APPL_INIT_CMD_SHELL_SCRIPT */
  2136. #endif /* INCLUDE_RTP */
  2137. #ifdef INCLUDE_MMU_OPTIMIZE
  2138.     usrMmuOptimize();
  2139. #endif /* INCLUDE_MMU_OPTIMIZE */
  2140.     }
  2141. /*******************************************************************************
  2142. *
  2143. * usrClock - user-defined system clock interrupt routine
  2144. *
  2145. * This routine is called at interrupt level on each clock interrupt.
  2146. * It is installed by usrRoot() with a sysClkConnect() call.
  2147. * It calls all the other packages that need to know about clock ticks,
  2148. * including the kernel itself.
  2149. *
  2150. * If the application needs anything to happen at the system clock interrupt
  2151. * level, it can be added to this routine.
  2152. *
  2153. * RETURNS: N/A
  2154. */
  2155. void usrClock ()
  2156.     {
  2157.     tickAnnounce (); /* announce system tick to kernel */
  2158.     }
  2159. #ifdef INCLUDE_DEMO
  2160. /********************************************************************************
  2161. * usrDemo - example application without shell
  2162. *
  2163. * This routine is spawned as a task at the end of usrRoot(), if INCLUDE_DEMO
  2164. * is defined, and INCLUDE_SHELL is NOT defined in configAll.h or config.h.
  2165. * It is intended to indicate how a shell-less application can be linked,
  2166. * loaded, and ROMed.
  2167. *
  2168. * NOMANUAL
  2169. */
  2170. void usrDemo (void)
  2171.     {
  2172.     char string [40];
  2173.     printf ("VxWorks (for %s) version %s.n", sysModel (), vxWorksVersion);
  2174.     printf ("Kernel: %s.n", kernelVersion ());
  2175.     printf ("Made on %s.n", creationDate);
  2176.     FOREVER
  2177.         {
  2178.         printf ("nThis is a test.  Type something: ");
  2179.         fioRdString (STD_IN, string, sizeof (string));
  2180. printf ("nYou typed "%s".n", string);
  2181. if (strcmp (string, "0") == 0)
  2182.     memShow (0);
  2183. if (strcmp (string, "1") == 0)
  2184.     memShow (1);
  2185.         }
  2186.     }
  2187. #endif /* INCLUDE_DEMO */