void hw_init() { uint8_t c; P0DIR = 0xf0; // P0.0 P0.1 P0.2 are the LEDs and they are outputs // P0.3 is the UART TX - output // P0.5 is the push button - input // P0.6 is the MPU interrupt pin - input P0CON = 0x55; // turn on the pullup for the recenter button // cycle the LEDs LED_RED = 0; LED_YELLOW = 0; LED_GREEN = 0; for (c = 0; c < 3; ++c) { LED_RED = 1; delay_ms(40); LED_RED = 0; LED_YELLOW = 1; delay_ms(40); LED_YELLOW = 0; LED_GREEN = 1; delay_ms(40); LED_GREEN = 0; LED_YELLOW = 1; delay_ms(40); LED_YELLOW = 0; } dbgInit(); i2c_init(); dputs("init started"); LED_YELLOW = 1; mpu_init(false); dbgFlush(); rf_head_init(); // init the radio init_sleep(); // we need to wake up from RFIRQ LED_YELLOW = 0; dputs("init OK"); }
void usrShellInit (void) { shellLibInit (); /* Handles the shell core files */ dbgInit (); /* Breakpoints and stack tracer on target. Not needed for remote debugging with tornado. */ vxdbgRtpLibInit (); /* Initialize process debugging library. */ usrBanner (); /* Display the WRS banner on startup */ ledModeRegister (viLedLibInit); /* Editing mode similar to the Vi editing mode */ ledModeRegister (emacsLedLibInit); /* Editing mode similar to the emacs editing mode */ shellInterpRegister (shellInterpCInit); /* The C interpreter for the kernel shell */ shellInterpRegister (shellInterpCmdInit); /* The command interpreter for the kernel shell */ usrShellCmdInit (); /* The kernel shell commands initialization sequence */ usrStartupScript (startupScriptFieldSplit (sysBootParams.startupScript)); /* Initial kernel shell script run at VxWorks startup */ usrShell (); /* Interpreter for interactive development, prototyping, debugging and testing */ }
//------------------------------------------------ main(int argc, char **argv) { INIT_EXCEPTIONS(); OLIAS_DB mmdb_handle; info_lib *InfoLib; char checkVersionStr [ 16 ]; char installVersionStr [ 16 ]; char locatorStr[64]; dbgLevel = dbgInit(); try { if ( argc < 2 ) { cerr << "Usage : valBase checkBase installBase\n"; exit (1); } char *checkBaseStr = argv[1]; char *installBaseStr = argv[2]; DBG(10) cerr << "(DEBUG) checkBase = " << checkBaseStr << endl; DBG(10) cerr << "(DEBUG) installBase = " << installBaseStr << endl; // first construct the info_base ptr for installBase InfoLib = mmdb_handle.openInfoLib(getenv("MMDB_PATH")); assert ( InfoLib != NULL ); info_base *installBase = InfoLib->get_info_base ( installBaseStr ); if ( !installBase ) throw(stringException("NULL infobase ptr for installation infobase")); // construct the info_base ptr for checkBase info_base *checkBase = InfoLib->get_info_base ( checkBaseStr ); if ( !checkBase ) throw(stringException("NULL infobase ptr for check infobase")); // check the data version number mm_version &checkVersion = checkBase->data_version(); short major_version_check = checkVersion.major_version(); short minor_version_check = checkVersion.minor_version(); sprintf ( checkVersionStr, "%d%d", major_version_check, minor_version_check ); int checkVersionNum = atoi ( checkVersionStr ); DBG(10) cerr << "(DEBUG) checkBaseVersion = " << checkVersionNum << endl; mm_version &installVersion = installBase->data_version(); short major_version_install = installVersion.major_version(); short minor_version_install = installVersion.minor_version(); sprintf ( installVersionStr, "%d%d", major_version_install, minor_version_install ); int installVersionNum = atoi ( installVersionStr ); DBG(10) cerr << "(DEBUG) installVersionNum = " << installVersionNum << endl; // Now perform the version checking if ( installVersionNum == 10 ) { if ( checkVersionNum >= 11 ) { cerr << "(ERROR) Data version mismatch\n"; cerr << " " << checkBaseStr << " version = " << major_version_check << "." << minor_version_check << endl; cerr << " " << installBaseStr << " version = " << major_version_install << "." << minor_version_install << endl; exit ( 1 ); } } else if ( checkVersionNum == 10 ) { if ( installVersionNum >= 11 ) { cerr << "(ERROR) Data version mismatch\n"; cerr << " " << checkBaseStr << " version = " << major_version_check << "." << minor_version_check << endl; cerr << " " << installBaseStr << " version = " << major_version_install << "." << minor_version_install << endl; exit ( 1 ); } } // Now to check locators iterator *it = checkBase->first(LOCATOR_SET_NAME, LOCATOR_CODE ); int DupLocFound=0; while ( *it ) { locator_smart_ptr x(checkBase, checkBase->get_oid(*it)); strcpy ( locatorStr, x.inside_node_locator_str() ); DBG(10) cerr << "(DEBUG) locatorStr = " << locatorStr << endl; // check this locator value with the installation infobase locator_smart_ptr loc(installBase, locatorStr); if (! strcmp(loc.inside_node_locator_str(), locatorStr)) { cerr << "(ERROR) Duplicate locator [ " << locatorStr << " ] found in " << installBaseStr << endl; DupLocFound = 1; } checkBase->next(*it); } // clean up phase delete it; delete InfoLib; if ( DupLocFound ) { exit ( 1 ); } exit (0); } catch ( mmdbException &, e ) { debug(cerr, e ); abort(); } end_try; }
void usrRoot ( char * pMemPoolStart, /* start of system memory partition */ unsigned memPoolSize /* initial size of mem pool */ ) { char tyName [20]; int ix; /* Initialize the memory pool before initializing any other package. * The memory associated with the root task will be reclaimed at the * completion of its activities. */ #ifdef INCLUDE_MEM_MGR_FULL memInit (pMemPoolStart, memPoolSize); /* initialize memory pool */ #else memPartLibInit (pMemPoolStart, memPoolSize);/* initialize memory pool */ #endif /* INCLUDE_MEM_MGR_FULL */ #ifdef INCLUDE_SHOW_ROUTINES memShowInit (); /* initialize memShow routine */ #endif /* INCLUDE_SHOW_ROUTINES */ #if defined(INCLUDE_MMU_BASIC) || defined(INCLUDE_MMU_FULL) || \ defined(INCLUDE_MMU_MPU) usrMmuInit (); /* initialize the mmu */ #endif /* defined(INCLUDE_MMU_BASIC, INCLUDE_MMU_FULL, INCLUDE_MMU_MPU) */ /* set up system timer */ sysClkConnect ((FUNCPTR) usrClock, 0); /* connect clock ISR */ sysClkRateSet (SYS_CLK_RATE); /* set system clock rate */ sysClkEnable (); /* start it */ #ifdef INCLUDE_FAST_DRAM /* * make use of data cache as fast DRAM, * establish parameters in config.h, MMU * must be initialed before data cache is * initialized as data ram... */ cacheCreateInternalDataRAM((UINT32 *)FD_ORIGIN, FD_NUMLINES); #endif /* * The select library needs to be initialized before the tyLib module * since the _func_selWakeupListInit FUNCPTR is required (SPR #3314). * The installation of the select task delete hooks is performed * later in usrRoot() after NFS and RPC have been initialized. */ #ifdef INCLUDE_SELECT selectInit (NUM_FILES); #endif /* INCLUDE_SELECT */ /* initialize I/O system */ #ifdef INCLUDE_IO_SYSTEM iosInit (NUM_DRIVERS, NUM_FILES, "/null"); consoleFd = NONE; /* assume no console device */ #ifdef INCLUDE_TYCODRV_5_2 #ifdef INCLUDE_TTY_DEV if (NUM_TTY > 0) { tyCoDrv (); /* install console driver */ for (ix = 0; ix < NUM_TTY; ix++) /* create serial devices */ { sprintf (tyName, "%s%d", "/tyCo/", ix); (void) tyCoDevCreate (tyName, ix, 512, 512); if (ix == CONSOLE_TTY) strcpy (consoleName, tyName); /* store console name */ } consoleFd = open (consoleName, O_RDWR, 0); /* set baud rate */ (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE); (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL); } #endif /* INCLUDE_TTY_DEV */ #else /* !INCLUDE_TYCODRV_5_2 */ #ifdef INCLUDE_TTY_DEV if (NUM_TTY > 0) { ttyDrv(); /* install console driver */ for (ix = 0; ix < NUM_TTY; ix++) /* create serial devices */ { #if (defined(INCLUDE_WDB) && (WDB_COMM_TYPE == WDB_COMM_SERIAL)) if (ix == WDB_TTY_CHANNEL) /* don't use WDBs channel */ continue; #endif sprintf (tyName, "%s%d", "/tyCo/", ix); (void) ttyDevCreate (tyName, sysSerialChanGet(ix), 512, 512); if (ix == CONSOLE_TTY) /* init the tty console */ { strcpy (consoleName, tyName); consoleFd = open (consoleName, O_RDWR, 0); (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE); (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL); } } } #endif /* INCLUDE_TTY_DEV */ #ifdef INCLUDE_PC_CONSOLE pcConDrv (); for (ix = 0; ix < N_VIRTUAL_CONSOLES; ix++) { sprintf (tyName, "%s%d", "/pcConsole/", ix); (void) pcConDevCreate (tyName,ix, 512, 512); if (ix == PC_CONSOLE) /* init the console device */ { strcpy (consoleName, tyName); consoleFd = open (consoleName, O_RDWR, 0); (void) ioctl (consoleFd, FIOBAUDRATE, CONSOLE_BAUD_RATE); (void) ioctl (consoleFd, FIOSETOPTIONS, OPT_TERMINAL); } } #endif /* INCLUDE_PC_CONSOLE */ #endif /* !INCLUDE_TYCODRV_5_2 */ ioGlobalStdSet (STD_IN, consoleFd); ioGlobalStdSet (STD_OUT, consoleFd); ioGlobalStdSet (STD_ERR, consoleFd); #endif /* INCLUDE_IO_SYSTEM */ /* initialize symbol table facilities */ #ifdef INCLUDE_SYM_TBL hashLibInit (); /* initialize hash table package */ symLibInit (); /* initialize symbol table package */ #ifdef INCLUDE_SHOW_ROUTINES symShowInit (); /* initialize symbol table show */ #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_SYM_TBL */ /* initialize exception handling */ #if defined(INCLUDE_EXC_HANDLING) && defined(INCLUDE_EXC_TASK) #ifdef INCLUDE_EXC_SHOW excShowInit (); #endif excInit (); /* initialize exception handling */ #endif /* defined(INCLUDE_EXC_HANDLING) && defined(INCLUDE_EXC_TASK) */ #ifdef INCLUDE_LSTLIB lstLibInit (); #endif #ifdef INCLUDE_LOGGING logInit (consoleFd, MAX_LOG_MSGS); /* initialize logging */ # ifdef INCLUDE_LOG_STARTUP logMsg ("logging started to %s [%d], queue size %d\n", consoleName, consoleFd, MAX_LOG_MSGS, 4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOG_STARTUP */ #endif /* INCLUDE_LOGGING */ #ifdef INCLUDE_SIGNALS sigInit (); /* initialize signals */ #endif /* INCLUDE_SIGNALS */ /* initialize debugging */ #ifdef INCLUDE_DEBUG dbgInit (); /* initialize debugging */ #endif /* INCLUDE_DEBUG */ /* initialize pipe driver */ #ifdef INCLUDE_PIPES pipeDrv (); /* install pipe driver */ #endif /* INCLUDE_PIPES */ /* initialize standard I/O package */ #ifdef INCLUDE_STDIO stdioInit (); /* initialize standard I/O library */ #ifdef INCLUDE_SHOW_ROUTINES stdioShowInit (); #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_STDIO */ /* initialize POSIX queued signals */ #if defined(INCLUDE_POSIX_SIGNALS) && defined(INCLUDE_SIGNALS) sigqueueInit (NUM_SIGNAL_QUEUES); /* initialize queued signals */ #endif /* initialize POSIX semaphores */ #ifdef INCLUDE_POSIX_SEM semPxLibInit (); #ifdef INCLUDE_SHOW_ROUTINES semPxShowInit (); #endif /* INCLUDE_SHOW_POUTINES */ #endif /* INCLUDE_POSIX_SEM */ /* initialize POSIX threads */ #ifdef INCLUDE_POSIX_PTHREADS pthreadLibInit (); #endif /* INCLUDE_POSIX_PTHREADS */ /* initialize POSIX message queues */ #ifdef INCLUDE_POSIX_MQ mqPxLibInit (MQ_HASH_SIZE); #ifdef INCLUDE_SHOW_ROUTINES mqPxShowInit (); #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_POSIX_MQ */ /* initialize POSIX async I/O support */ #ifdef INCLUDE_POSIX_AIO aioPxLibInit (MAX_LIO_CALLS); #ifdef INCLUDE_POSIX_AIO_SYSDRV aioSysInit (MAX_AIO_SYS_TASKS, AIO_TASK_PRIORITY, AIO_TASK_STACK_SIZE); #endif /* INCLUDE_POSIX_AIO_SYSDRV */ #endif /* INCLUDE_POSIX_AIO */ #ifdef INCLUDE_CBIO /* init main CBIO module, cbioLib() */ cbioLibInit(); #endif INCLUDE_CBIO /* initialize filesystems and disk drivers */ #ifdef INCLUDE_DOSFS_MAIN /* dosFs2 file system initialization */ hashLibInit (); /* initialize hash table package */ /* First initialize the main dosFs module */ dosFsLibInit( 0 ); /* Initialize sub-modules */ /* ensure that at least one directory handler is defined */ # if ((!defined INCLUDE_DOSFS_DIR_VFAT) && \ (!defined INCLUDE_DOSFS_DIR_FIXED)) # define INCLUDE_DOSFS_DIR_VFAT # endif /* init VFAT (MS long file names) module */ # ifdef INCLUDE_DOSFS_DIR_VFAT /* Sub-module: VFAT Directory Handler */ dosVDirLibInit(); # endif /* INCLUDE_DOSFS_DIR_VFAT */ /* init strict 8.3 and vxLongNames handler */ # ifdef INCLUDE_DOSFS_DIR_FIXED /* Sub-module: Vintage 8.3 and VxLong Directory Handler */ dosDirOldLibInit(); # endif /* INCLUDE_DOSFS_DIR_FIXED */ /* Sub-module: FAT12/FAT16/FAT32 FAT Handler */ dosFsFatInit(); # ifdef INCLUDE_DOSFS_CHKDSK /* Sub-module: Consistency check handler */ dosChkLibInit(); # endif /* INCLUDE_DOSFS_CHKDSK */ # ifdef INCLUDE_DOSFS_FMT /* Sub-module: Formatter */ dosFsFmtLibInit(); /* init dosFs scalable formatter */ # endif /* INCLUDE_DOSFS_FMT */ #endif /* INCLUDE_DOSFS_MAIN */ /* dosFs1 legacy code, dosFsInit(), usrDosFsOld.c */ #ifdef INCLUDE_DOSFS hashLibInit (); /* initialize hash table package */ dosFsInit (NUM_DOSFS_FILES); /* init dosFs filesystem */ #endif /* INCLUDE_DOSFS */ #ifdef INCLUDE_RAWFS rawFsInit (NUM_RAWFS_FILES); /* init rawFs filesystem */ #endif /* INCLUDE_RAWFS */ #ifdef INCLUDE_RT11FS rt11FsInit (NUM_RT11FS_FILES); /* init rt11Fs filesystem */ #endif /* INCLUDE_RT11FS */ #ifdef INCLUDE_RAMDRV ramDrv (); /* initialize ram disk driver */ #endif /* INCLUDE_RAMDRV */ /* initialize USB components */ #ifdef INCLUDE_USB_INIT usbInit (); /* USB Host Stack Initialization */ #endif #ifdef INCLUDE_UHCI_INIT usrUsbHcdUhciAttach (); /* UHCI Initialization */ #endif #ifdef INCLUDE_OHCI_INIT usrUsbHcdOhciAttach (); /* OHCI Initialization */ #endif #ifdef INCLUDE_USB_MOUSE_INIT usrUsbMseInit (); /* Mouse Driver Initialization */ #endif #ifdef INCLUDE_USB_KEYBOARD_INIT usrUsbKbdInit (); /* Keyboard Driver Initialization */ #endif #ifdef INCLUDE_USB_PRINTER_INIT usrUsbPrnInit (); /* Printer Driver Initialization */ #endif #ifdef INCLUDE_USB_SPEAKER_INIT usrUsbSpkrInit (); /* Speaker Driver Initialization */ #endif #ifdef INCDLUE_USB_AUDIO_DEMO usrUsbAudioDemo (); /* USB Audio Demo */ #endif #ifdef INCLUDE_USB_MS_BULKONLY_INIT usrUsbBulkDevInit(); /* Bulk Driver Initialization */ #endif #ifdef INCLUDE_USB_MS_CBI_INIT usrUsbCbiUfiDevInit (); /* CBI Driver Initialization */ #endif #ifdef INCLUDE_USB_PEGASUS_END_INIT usrUsbPegasusEndInit (); /* Pegasus Driver Initialization */ #endif #ifdef INCLUDE_SCSI /* * initialize either the SCSI1 or SCSI2 interface; initialize SCSI2 when * the SCSI2 interface is available. */ #ifndef INCLUDE_SCSI2 scsi1IfInit (); #else scsi2IfInit (); #endif /* initialize SCSI controller */ if (sysScsiInit () == OK) { usrScsiConfig (); /* configure SCSI peripherals */ } else { #ifdef INCLUDE_STDIO printf ("sysScsiInit() Failed, SCSI system not initialized\n"); #endif /* INCLUDE_STDIO */ } #endif /* INCLUDE_SCSI */ #ifdef INCLUDE_FD /* initialize floppy disk driver */ if ((fdDrv (FD_INT_VEC, FD_INT_LVL)) == ERROR) { #ifdef INCLUDE_STDIO printf ("fdDrv returned ERROR from usrRoot.\n"); #endif /* INCLUDE_STDIO */ } #endif /* INCLUDE_FD */ #ifdef INCLUDE_IDE /* init IDE disk driver */ if ((ideDrv (IDE_INT_VEC, IDE_INT_LVL, IDE_CONFIG)) == ERROR) { #ifdef INCLUDE_STDIO printf ("ideDrv returned ERROR from usrRoot.\n"); #endif /* INCLUDE_STDIO */ } #endif /* INCLUDE_IDE */ #ifdef INCLUDE_MMC d /* init IDE disk driver */ if ((mmcDrv (AT91C_ID_MCI, AT91C_VEC_MCI, IDE_CONFIG)) == ERROR) { #ifdef INCLUDE_STDIO printf ("ideDrv returned ERROR from usrRoot.\n"); #endif /* INCLUDE_STDIO */ } #endif /* INCLUDE_MMC */ #ifdef INCLUDE_ATA { /* initialize hard disk driver */ IMPORT ATA_RESOURCE ataResources[]; ATA_RESOURCE *pAtaResource; for (ix = 0; ix < ATA_MAX_CTRLS; ix++) { pAtaResource = &ataResources[ix]; if (pAtaResource->ctrlType == IDE_LOCAL) if ((ataDrv (ix, pAtaResource->drives, pAtaResource->intVector, pAtaResource->intLevel, pAtaResource->configType, pAtaResource->semTimeout, pAtaResource->wdgTimeout)) == ERROR) { #ifdef INCLUDE_STDIO printf ("ataDrv returned ERROR from usrRoot.\n"); #endif /* INCLUDE_STDIO */ } } } #ifdef INCLUDE_SHOW_ROUTINES ataShowInit (); /* install ATA/IDE show routine */ #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_ATA */ #ifdef INCLUDE_LPT { IMPORT LPT_RESOURCE lptResources[]; lptDrv (LPT_CHANNELS, &lptResources[0]); /* init LPT parallel driver */ } #endif /* INCLUDE_LPT */ #ifdef INCLUDE_PCMCIA #ifdef INCLUDE_SHOW_ROUTINES pcmciaShowInit (); /* install PCMCIA show routines */ #endif /* INCLUDE_SHOW_ROUTINES */ pcmciaInit (); /* init PCMCIA Lib */ #endif /* INCLUDE_PCMCIA */ #ifdef INCLUDE_TFFS tffsDrv (); /* it should be after pcmciaInit() */ #endif /* INCLUDE_TFFS */ #ifdef INCLUDE_FORMATTED_IO fioLibInit (); /* initialize formatted I/O */ #endif /* INCLUDE_FORMATTED_IO */ /* initialize floating point facilities */ #ifdef INCLUDE_FLOATING_POINT floatInit (); /* initialize floating point I/O */ #endif /* INCLUDE_FLOATING_POINT */ /* install software floating point emulation (if applicable) */ #ifdef INCLUDE_SW_FP mathSoftInit (); /* use software emulation for fp math */ #endif /* INCLUDE_SW_FP */ /* install hardware floating point support (if applicable) */ #ifdef INCLUDE_HW_FP mathHardInit (); /* do fppInit() & install hw fp math */ #ifdef INCLUDE_SHOW_ROUTINES fppShowInit (); /* install hardware fp show routine */ #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_HW_FP */ /* install dsp support (if applicable) */ #ifdef INCLUDE_DSP usrDspInit (); /* do dspInit() */ #endif /* INCLUDE_DSP */ /* initialize AltiVec library (if applicable) */ #ifdef INCLUDE_ALTIVEC usrAltivecInit (); #endif /* INCLUDE_ALTIVEC */ /* initialize performance monitoring tools */ #ifdef INCLUDE_SPY spyLibInit (); /* install task cpu utilization tool */ #endif /* INCLUDE_SPY */ #ifdef INCLUDE_TIMEX timexInit (); /* install function timing tool */ #endif /* INCLUDE_TIMEX */ #ifdef INCLUDE_ENV_VARS envLibInit (ENV_VAR_USE_HOOKS); /* initialize environment variable */ #endif /* INCLUDE_ENV_VARS */ #ifdef INCLUDE_NTPASSFS { IMPORT int ntPassFsInit(); IMPORT void * ntPassFsDevInit(); IMPORT char fullExePath[]; char passName [MAX_FILENAME_LENGTH]; char * defPathEnd; if (ntPassFsInit(1) == OK) { if (ntPassFsDevInit("host:") == NULL) { #ifdef INCLUDE_STDIO printf ("ntPassFsDevInit failed for host: \n"); #endif /* INCLUDE_STDIO */ } else { sprintf (passName, "host:%s", fullExePath); /* Remove bootFile name at the end of the string */ defPathEnd = strrchr (passName, '\\'); if (defPathEnd != NULL) *defPathEnd = '\0'; ioDefPathSet (passName); } } else { #ifdef INCLUDE_STDIO printf ("ntPassFsInit failed\n"); #endif /* INCLUDE_STDIO */ } } #endif /* INCLUDE_NTPASSFS */ /* initialize object module loader */ #ifdef INCLUDE_LOADER moduleLibInit (); /* initialize module manager */ #if defined(INCLUDE_AOUT) loadAoutInit (); /* use a.out format */ #else /* coff or ecoff */ #if defined(INCLUDE_ECOFF) loadEcoffInit (); /* use ecoff format */ #else /* ecoff */ #if defined(INCLUDE_COFF) loadCoffInit (); /* use coff format */ #else /* coff */ #if defined(INCLUDE_ELF) loadElfInit (); /* use elf format */ #else #if defined(INCLUDE_SOM_COFF) loadSomCoffInit (); #else #if defined(INCLUDE_PECOFF) { extern int loadPecoffInit(); loadPecoffInit (); } #endif #endif #endif #endif #endif #endif #endif /* INCLUDE_LOADER */ /* initialize wtx client to synchronize host and target symbol tables */ #ifdef INCLUDE_SYM_TBL_SYNC symSyncLibInit (); #endif /* INCLUDE_SYM_TBL_SYNC */ /* initialize network */ #ifdef INCLUDE_NET_INIT usrBootLineInit (sysStartType); /* crack the bootline */ # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("before usrNetInit()\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ usrNetInit (BOOT_LINE_ADRS); /* initialize network support */ # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("after usrNetInit()\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ #endif /* INCLUDE_NET_INIT */ #ifdef INCLUDE_PASSFS { extern STATUS passFsInit (); extern void *passFsDevInit (); char passName [256]; if (passFsInit (1) == OK) { extern char vxsim_hostname[]; extern char vxsim_cwd[]; sprintf (passName, "%s:", vxsim_hostname); if (passFsDevInit (passName) == NULL) { #ifdef INCLUDE_STDIO printf ("passFsDevInit failed for <%s>\n", passName); #endif /* INCLUDE_STDIO */ } else { sprintf (passName, "%s:%s", vxsim_hostname, vxsim_cwd); ioDefPathSet (passName); } } else #ifdef INCLUDE_STDIO printf ("passFsInit failed\n"); #endif /* INCLUDE_STDIO */ } #endif /* INCLUDE_PASSFS */ #ifdef INCLUDE_DOS_DISK { char unixName [80]; extern void unixDrv (); extern void unixDiskInit (); extern char *u_progname; /* home of executable */ char *pLastSlash; unixDrv (); pLastSlash = strrchr (u_progname, '/'); pLastSlash = (pLastSlash == NULL) ? u_progname : (pLastSlash + 1); sprintf (unixName, "/tmp/%s%d.dos", pLastSlash, sysProcNumGet()); unixDiskInit (unixName, "A:", 0); } #endif /* INCLUDE_DOS_DISK */ /* initialize shared memory objects */ #ifdef INCLUDE_SM_OBJ /* unbundled shared memory objects */ usrSmObjInit (BOOT_LINE_ADRS); #endif /* INCLUDE_SM_OBJ */ /* initialize WindMP */ #ifdef INCLUDE_VXFUSION /* unbundled VxFusion (distributed objects) */ usrVxFusionInit (BOOT_LINE_ADRS); #ifdef INCLUDE_SHOW_ROUTINES { extern void msgQDistShowInit(); extern void distNameShowInit (); extern void distIfShowInit (); extern void msgQDistGrpShowInit (); msgQDistShowInit(); distNameShowInit (); distIfShowInit (); msgQDistGrpShowInit (); } #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_WINDMP */ /* write protect text segment & vector table only after bpattach () */ #ifdef INCLUDE_MMU_FULL /* unbundled mmu product */ #ifdef INCLUDE_PROTECT_TEXT if (vmTextProtect () != OK) printf ("\nError protecting text segment. errno = %x\n", errno); #endif /* INCLUDE_PROTECT_TEXT */ #ifdef INCLUDE_PROTECT_VEC_TABLE if (intVecTableWriteProtect () != OK) printf ("\nError protecting vector table. errno = %x\n", errno); #endif /* INCLUDE_PROTECT_VEC_TABLE */ #endif /* INCLUDE_MMU_FULL */ /* install select hook only after NFS/RPC for proper delete hook order */ #ifdef INCLUDE_SELECT selTaskDeleteHookAdd (); #endif /* INCLUDE_SELECT */ /* create system and status symbol tables */ #ifdef INCLUDE_STANDALONE_SYM_TBL # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("before symTblCreate()\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ sysSymTbl = symTblCreate (SYM_TBL_HASH_SIZE_LOG2, TRUE, memSysPartId); #ifdef INCLUDE_SYM_TBL_SYNC /* create a module (group 1) that is not synchronized (SPR# 20301) */ moduleCreate ("vxWorks.sym", #if (defined INCLUDE_AOUT) MODULE_A_OUT, #elif ((defined INCLUDE_COFF) || (defined INCLUDE_ECOFF) || \ (defined INCLUDE_SOMCOFF)) MODULE_ECOFF, #elif (defined INCLUDE_ELF) MODULE_ELF, #endif /* INCLUDE_AOUT */ HIDDEN_MODULE|LOAD_NO_SYMBOLS); #endif /* INCLUDE_SYM_TBL_SYNC */ printf ("\nAdding %ld symbols for standalone.\n", standTblSize); /* fill in from built in table*/ for (ix = 0; (ULONG) ix < standTblSize; ix++) #if ((CPU_FAMILY == ARM) && ARM_THUMB) thumbSymTblAdd (sysSymTbl, &(standTbl[ix])); #else symTblAdd (sysSymTbl, &(standTbl[ix])); #endif /* CPU_FAMILY == ARM */ # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("sysSymTbl complete.\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ #endif /* INCLUDE_STANDALONE_SYM_TBL */ #ifdef INCLUDE_NET_SYM_TBL sysSymTbl = symTblCreate (SYM_TBL_HASH_SIZE_LOG2, TRUE, memSysPartId); netLoadSymTbl (); /* fill in table from host */ #endif /* INCLUDE_NET_SYM_TBL */ #ifdef INCLUDE_STAT_SYM_TBL statSymTbl = symTblCreate (STAT_TBL_HASH_SIZE_LOG2, FALSE, memSysPartId); for (ix = 0; (ULONG)ix < statTblSize; ix ++) /* fill in from builtin table*/ symTblAdd (statSymTbl, &(statTbl [ix])); #endif /* INCLUDE_STAT_SYM_TBL */ /* initialize C++ support library */ #if defined (INCLUDE_CPLUS) && defined (INCLUDE_CPLUS_MIN) #error Define only one of INCLUDE_CPLUS or INCLUDE_CPLUS_MIN, not both #endif #if defined (INCLUDE_CPLUS) || defined (INCLUDE_CPLUS_MIN) #ifndef INCLUDE_CTORS_DTORS #define INCLUDE_CTORS_DTORS #endif #endif #ifdef INCLUDE_CTORS_DTORS /* * call compiler generated init functions (usually - but not necessarily - * C++ related) */ cplusCtorsLink (); #endif #ifdef INCLUDE_CPLUS /* all standard C++ runtime support */ cplusLibInit (); #endif #ifdef INCLUDE_CPLUS_MIN /* minimal C++ runtime support */ cplusLibMinInit (); #endif #ifdef INCLUDE_CPLUS_DEMANGLER cplusDemanglerInit (); #endif /* initialize COM/DCOM runtime support */ #ifdef INCLUDE_COM comLibInit (); #endif #ifdef INCLUDE_DCOM dcomLibInit (); #endif /* initialize Wind Web Server */ #ifdef INCLUDE_HTTP httpd (); #endif /* INCLUDE_HTTP */ #ifdef INCLUDE_RBUFF /* install rBuff support */ rBuffLibInit(); #ifdef INCLUDE_SHOW_ROUTINES rBuffShowInit (); /* install rBuff show routine */ #endif /* INCLUDE_SHOW_ROUTINES */ #endif /* INCLUDE_RBUFF */ #ifdef INCLUDE_WINDVIEW windviewConfig (); #endif /* INCLUDE_WINDVIEW */ /* initialize the WDB debug agent */ #ifdef INCLUDE_WDB # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("before wdbConfig()\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ wdbConfig(); # if defined(INCLUDE_LOGGING) && defined(INCLUDE_LOG_STARTUP) logMsg ("after wdbConfig()\n", 1,2,3,4,5,6); taskDelay (2); /* allow time for message to be displayed */ # endif /* INCLUDE_LOGGING && INCLUDE_LOG_STARTUP */ #ifdef INCLUDE_WDB_BANNER #if (WDB_COMM_TYPE == WDB_COMM_NETWORK) #define WDB_COMM_TYPE_STR "WDB_COMM_NETWORK" #endif /* WDB_COMM_TYPE == WDB_COMM_NETWORK */ #if (WDB_COMM_TYPE == WDB_COMM_SERIAL) #define WDB_COMM_TYPE_STR "WDB_COMM_SERIAL" #endif /* WDB_COMM_TYPE == WDB_COMM_SERIAL */ #if (WDB_COMM_TYPE == WDB_COMM_TYCODRV_5_2) #define WDB_COMM_TYPE_STR "WDB_COMM_TYCODRV_5_2" #endif /* WDB_COMM_TYPE == WDB_COMM_TYCODRV_5_2 */ #if (WDB_COMM_TYPE == WDB_COMM_NETROM) #define WDB_COMM_TYPE_STR "WDB_COMM_NETROM" #endif /* WDB_COMM_TYPE == WDB_COMM_NETROM */ #if (WDB_COMM_TYPE == WDB_COMM_VTMD) #define WDB_COMM_TYPE_STR "WDB_COMM_VTMD" #endif /* WDB_COMM_TYPE == WDB_COMM_VTMD */ #if (WDB_COMM_TYPE == WDB_COMM_END) #define WDB_COMM_TYPE_STR "WDB_COMM_END" #endif /* WDB_COMM_TYPE == WDB_COMM_END */ #if (WDB_COMM_TYPE == WDB_COMM_CUSTOM) #define WDB_COMM_TYPE_STR "WDB_COMM_CUSTOM" #endif /* WDB_COMM_TYPE == WDB_COMM_CUSTOM */ #if (WDB_COMM_TYPE == WDB_COMM_PIPE) #define WDB_COMM_TYPE_STR "WDB_COMM_PIPE" #endif /* WDB_COMM_TYPE == WDB_COMM_PIPE */ #ifndef WDB_COMM_TYPE_STR #define WDB_COMM_TYPE_STR "Unknown" #endif /* WDB_COMM_TYPE_STR */ #ifndef INCLUDE_SHELL /* WDB banner same as printed by usrWdbBanner */ printf ("\n\n"); printf ("%23s\n\n", runtimeName); printf ("Copyright 1984-2002 Wind River Systems, Inc.\n\n"); printf (" CPU: %s\n", sysModel ()); printf (" Runtime Name: %s\n", runtimeName); printf ("Runtime Version: %s\n", runtimeVersion); printf (" BSP version: " BSP_VERSION BSP_REV "\n"); printf (" Created: %s\n", creationDate); printf (" WDB Comm Type: %s\n", WDB_COMM_TYPE_STR); printf (" WDB: %s.\n\n", ((wdbRunsExternal () || wdbRunsTasking ()) ? "Ready" : "Agent configuration failed") ); printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); #endif /*INCLUDE_SHELL*/ #endif /*INCLUDE_WDB_BANNER*/ #endif /* INCLUDE_WDB */ /* initialize interactive shell */ #ifdef INCLUDE_SHELL #ifdef INCLUDE_SECURITY /* include shell security */ printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); if ((sysFlags & SYSFLG_NO_SECURITY) == 0) { printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); loginInit (); /* initialize login table */ printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); shellLoginInstall (loginPrompt, NULL); /* install security program */ printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); /* add additional users here as required */ loginUserAdd (LOGIN_USER_NAME, LOGIN_PASSWORD); } #endif /* INCLUDE_SECURITY */ printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); printLogo (); /* print out the banner page */ printf (" "); printf ("CPU: %s. Processor #%d.\n", sysModel (), sysProcNumGet ()); printf (" "); #ifdef HITACHI_SH_KERNEL_ON_SDRAM printf ("Memory Size: 0x%x.", (UINT)(sysMemTop () - (char *)FREE_RAM_ADRS)); #else /* HITACHI_SH_KERNEL_ON_SDRAM */ printf ("Memory Size: 0x%x.", (UINT)(sysMemTop () - (char *)LOCAL_MEM_LOCAL_ADRS)); #endif /* HITACHI_SH_KERNEL_ON_SDRAM */ printf (" BSP version " BSP_VERSION BSP_REV "."); #if defined(INCLUDE_WDB) && defined(INCLUDE_WDB_BANNER) printf ("\n "); printf ("WDB Comm Type: %s", WDB_COMM_TYPE_STR); printf ("\n "); printf ("WDB: %s.", ((wdbRunsExternal () || wdbRunsTasking ()) ? "Ready" : "Agent configuration failed") ); printf("\n@@@@@line:%d, function:%s, file:%s",__LINE__,__FUNCTION__,__FILE__); #endif /*INCLUDE_WDB && INCLUDE_WDB_BANNER*/ printf ("\n\n"); #ifdef INCLUDE_STARTUP_SCRIPT /* run a startup script */ if (sysBootParams.startupScript [0] != EOS) usrStartupScript (sysBootParams.startupScript); #endif /* INCLUDE_STARTUP_SCRIPT */ shellInit (SHELL_STACK_SIZE, TRUE); /* create the shell */ /* only include the simple demo if the shell is NOT included */ #else #if defined(INCLUDE_DEMO) /* create demo w/o shell */ taskSpawn ("demo", 20, 0, 2000, (FUNCPTR)usrDemo, 0,0,0,0,0,0,0,0,0,0); #endif /* mips cpp no elif */ #endif /* INCLUDE_SHELL */ #ifdef INCLUDE_WINDML usrWindMlInit (); #endif /* INCLUDE_WINDML */ #if defined (INCLUDE_SOUND) && defined(INCLUDE_SB16) sb16Drv (); /* install sound driver SB16 */ sb16DevCreate ("/sound", 0x220, 5, 1, 5); #endif /* INCLUDE_SOUND && INCLUDE_SB16 */ #if defined (INCLUDE_SOUND_CODEC) sndDac3550Drv (); /* install sound driver Dac3550a */ sndDac3550DevCreate ("/sound", 0x220, 5, 1, 5); #endif #if defined(INCLUDE_JAVA) javaConfig (); #endif /* INCLUDE_JAVA */ #ifdef INCLUDE_HTML usrHtmlInit (); #endif /* INCLUDE_HTML */ #if CPU==SIMNT win_ReleaseMutex(simUpMutex); #endif #ifdef INCLUDE_USER_APPL /* Startup the user's application */ USER_APPL_INIT; /* must be a valid C statement or block */ #endif }
STDMETHODIMP_(LRESULT) TffdshowEnc::begin(const BITMAPINFOHEADER *inhdr) { if (!findEncLib()) { return ICERR_ERROR; } int nom, den; if (lavc_reduce(&nom, &den, fpsRate, fpsScale, 10000)) { fpsRate = nom; fpsScale = den; } dbgInit(); getOut(inhdr->biWidth, inhdr->biHeight, &outDx, &outDy); ownStoreExt = false; if (enccsps.empty()) { enc->getCompressColorspaces(enccsps, outDx, outDy); if (enccsps.empty()) { return ICERR_BADFORMAT; } } enccsp = enccsps[0]; cfgcomode = coSettings->mode; switch (cfgcomode) { case ENC_MODE::CBR: if (!sup_CBR(coSettings->codecId)) { cfgcomode = ENC_MODE::UNKNOWN; } break; case ENC_MODE::VBR_QUAL: if (!sup_VBR_QUAL(coSettings->codecId)) { cfgcomode = ENC_MODE::UNKNOWN; } break; case ENC_MODE::VBR_QUANT: if (!sup_VBR_QUANT(coSettings->codecId)) { cfgcomode = ENC_MODE::UNKNOWN; } break; } if (coSettings->storeExt && !ownStoreExt && coSettings->storeExtFlnm[0]) { mux = Tmuxer::getMuxer(coSettings->muxer, this); } else { mux = NULL; } enc->setCoSettings(oldCodecId); LRESULT res = enc->beginCompress(cfgcomode, enccsp, Trect(0, 0, outDx, outDy)); if (res != ICERR_OK) { return res; } dx = inhdr->biWidth; dy = inhdr->biHeight; totalsize = keyspacing = 0; if (coSettings->isProc && ffproc) { ffproc->begin(dx, dy, fpsRate, fpsScale); } if (mux) { mux->writeHeader(extradata.data, extradata.size, 1, biOutput.bmiHeader); } memset(¶ms, 0, sizeof(params)); encStats.init(outDx, outDy, enccsp); outputdebug = globalSettings->outputdebug; outputdebugfile = globalSettings->outputdebugfile; working = true; firstrun = true; return ICERR_OK; }