/* bootApp.h - Bootrom Application Library */ /* * Copyright (c) 2005-2010, 2012, 2018 Wind River Systems, Inc. * * The right to copy, distribute, modify or otherwise make use * of this software may be licensed only pursuant to the terms * of an applicable Wind River license agreement. */ /* modification history -------------------- 01k,25sep18,whu Add extern C declaration (VXW6-86818) 01j,06jan12,pgh Remove USB definitions which are local to one file. 01i,04jan12,d_c Fix warning in bootUsbFsLoad.c 01h,02mar10,pgh Add ELF class to bootGoPrototype 01g,11dec09,pgh Remove LOCAL_MEM_LOCAL_ADRS from bootAppInit(). 01f,27feb08,jmt Add support for BSP defined go routines 01e,06feb07,jmt Add bootAppPrintf to optimize size 01d,29jan07,jmt Add prototype for bootDevFormatHelpAdd 01c,14nov06,jmt Defect 81462: Need to disable MMU before booting new image for some BSPs 01b,27jul05,jmt Fix PPC compile error 01a,28apr05,jmt written */ /* DESCRIPTION This module provides the vxWorks Bootrom Application framework. INCLUDE FILES: */ #ifndef INCbootApph #define INCbootApph #ifdef __cplusplus extern "C" { #endif /* defines */ #define BOOT_CMD_MAX_LINE 255 /* default boot line size */ /* Boot Command Handler Status Return values */ #define BOOT_STATUS_COMPLETE 1 /* cmd proc complete */ #define BOOT_STATUS_CONTINUE 2 /* continue proc command */ /* Boot Loader Status Return values * * OK - Image loaded successfully * ERROR - Error occurred during image loading * BOOT_STATUS_CONTINUE - Valid boot device not found yet */ /* Command String matching rules */ #define BOOT_CMD_MATCH_STRICT 0 /* full name followed by space or EOS */ #define BOOT_CMD_MATCH_LOOSE 1 /* full name, no space required */ #define DEC FALSE /* bootGetArg() parameters */ #define HEX TRUE #define OPT TRUE /* typedefs */ typedef int bootCmdHandlerPrototype (char * commandLine); typedef STATUS bootLoaderPrototype (char *, void **); typedef void bootShellPrintfPrototype(char * x, _Vx_usr_arg_t a, _Vx_usr_arg_t b, _Vx_usr_arg_t c, _Vx_usr_arg_t d, _Vx_usr_arg_t e, _Vx_usr_arg_t f); typedef void bootVoidPrototype (); typedef void bootGoPrototype (void *, int startType, int); /* global declarations */ STATUS bootAppInit(BOOL delayedInit, BOOL disableMmuBeforeEntry); void bootApp(); STATUS bootLoad (char *, void **); void executeImage (void *); void bootAppPrintf (char * x, _Vx_usr_arg_t a, _Vx_usr_arg_t b, _Vx_usr_arg_t c, _Vx_usr_arg_t d, _Vx_usr_arg_t e, _Vx_usr_arg_t f); STATUS bootCommandHandlerAdd(char * commandString, bootCmdHandlerPrototype * handler, int matchingRule, char * helpProto, char * helpDesc); STATUS bootLoaderAdd(bootLoaderPrototype * loader); STATUS bootCommandHelpAdd (char * helpProto, char * helpDesc); STATUS bootDevFormatHelpAdd (char * helpDesc); STATUS bootFlagHelpAdd (UINT32 flag, char * helpDesc); STATUS bootPrintDevsFuncAdd(bootVoidPrototype * pPrintDevFunc); void bootGoOverrideFuncAdd(void * bootOverrideGo); /* utility functions */ void bootCmdNameSkip(FAST char **strptr, char cmdNameLength); void bootSpaceSkip(FAST char **strptr); STATUS bootGetArg (char **ppString, _Vx_usr_arg_t *pValue, BOOL defaultHex, BOOL optional); #ifdef __cplusplus } #endif #endif /* INCbootApph */