* Global Graphics Software Ltd. Confidential Information. * * \brief * Initialisation for recombine compound. */ #include "core.h" #include "coreinit.h" #include "swstart.h" #include "rcbinit.h" #include "rcbmergeinit.h" #include "rcbadjstinit.h" /** Sub-initialisation table for DL compound. */ static core_init_t rcbn_init[] = { CORE_INIT("recombine adjust", rcbn_adjust_C_globals), CORE_INIT("recombine merge", rcbn_merge_C_globals), } ; static Bool rcbn_swinit(SWSTART *params) { return core_swinit_run(rcbn_init, NUM_ARRAY_ITEMS(rcbn_init), params) ; } static Bool rcbn_swstart(SWSTART *params) { return core_swstart_run(rcbn_init, NUM_ARRAY_ITEMS(rcbn_init), params) ; } static Bool rcbn_postboot(void) {
The order of the first few functions in this table is critical. After that, the order should not matter much. When adding new entries, please add them before the tasks entry at the end of the table, and try to avoid coding the functions so that they rely on state initialised by another module during the same phase (it's not always possible). Relying on state initialised in a previous phase is OK. */ static core_init_t init_functions[] = { /* Must be before mem_init(), because MPS needs pthreads loaded */ CORE_INIT_LOCAL("apis", FindSkinAPIs, NULL, NULL, NULL), /* Multi-render needs to come before systemparams, so the SwInit() phase initialises the RendererThreads systemparam correctly. Must also come before the first module that uses any locks. */ CORE_INIT("multi_render", multi_render_C_globals), /* Must be before any memory allocation (i.e. just about everything else). */ CORE_INIT("memory", mem_C_globals), /* It's really convenient to allow modules to initialise metrics in C_globals routine, however we must deallocate them before the memory pools are destroyed. */ CORE_INIT("metrics", sw_metrics_C_globals), CORE_INIT("jobmetrics", sw_jobmetrics_C_globals), /* Start of SWcore initialisation. Must be before all other SwInit functions, to capture startup time, create per-thread core context, and start the monitor to print failure messages. */ CORE_INIT("core", swcore_C_globals), /* Must be before all other remaining SwInit functions. This sets up the per-thread core_context_t. */ CORE_INIT_LOCAL("context", context_swinit, context_swstart, NULL, context_finish), /* Monitor is needed early, so we can print out failure messages. */
#include "app_cfg.h" #include "interfaces.h" vsf_err_t peripheral_commit(void) { return VSFERR_NONE; } const struct interfaces_info_t core_interfaces = { NULL, // struct interfaes_commit_t *comm; // core { CORE_INIT(__TARGET_CHIP__), CORE_FINI(__TARGET_CHIP__), CORE_RESET(__TARGET_CHIP__), CORE_SET_STACK(__TARGET_CHIP__), } #if IFS_UNIQUEID_EN // unique ID ,{ CORE_UID_GET(__TARGET_CHIP__), } #endif #if IFS_FLASH_EN // flash ,{ CORE_FLASH_INIT(__TARGET_CHIP__), CORE_FLASH_FINI(__TARGET_CHIP__),
extern void ps_scanner_C_globals(core_init_fns *fns) ; extern void ps_fontops_C_globals(core_init_fns *fns) ; extern void ps_fontprivate_C_globals(core_init_fns *fns) ; extern void ps_idlefonts_C_globals(core_init_fns *fns) ; extern void idiom_C_globals(core_init_fns *fns) ; /** The sub initialisation table for PostScript. Using an initialisation table assumes that the PostScript interpreter is a singleton. In the (very) long run, it would be nice to move all of the interpreter state into the PostScript context, in which case the init table should be localised on the C stack of the interpreter thread, or dynamically allocated in the pscontext. In the meantime, the modularity advantage of the automatic cleanup mechanism outweighs any long-term disadvantage. */ static core_init_t postscript_init[] = { /* Must be first. Sets up PostScript per-thread context structure: */ CORE_INIT("pscontext", ps_context_C_globals), CORE_INIT("standard files", std_files_C_globals), CORE_INIT("%boot% device", ps_boot_C_globals), CORE_INIT("psvm", ps_vm_C_globals), CORE_INIT("stacks", ps_stacks_C_globals), /* Must be before dicts */ CORE_INIT("dicts", ps_dicts_C_globals), CORE_INIT("scanner", ps_scanner_C_globals), CORE_INIT("marking", ps_marking_C_globals), CORE_INIT("fontops", ps_fontops_C_globals), CORE_INIT("fontpriv", ps_fontprivate_C_globals), CORE_INIT("idlefonts", ps_idlefonts_C_globals), CORE_INIT("idiom", idiom_C_globals), } ; static Bool postscript_swinit(SWSTART *params) {
* YYYY-MM-DD: What(by Who) * * 2010-12-05: created(by SimonQian) * **************************************************************************/ #include "app_cfg.h" #include "interfaces.h" vsf_err_t peripheral_commit(void) { return VSFERR_NONE; } const struct interfaces_info_t core_interfaces = { // core .core.init = CORE_INIT(__TARGET_CHIP__), .core.fini = CORE_FINI(__TARGET_CHIP__), .core.reset = CORE_RESET(__TARGET_CHIP__), .core.get_stack = CORE_GET_STACK(__TARGET_CHIP__), .core.set_stack = CORE_SET_STACK(__TARGET_CHIP__), .core.sleep = CORE_SLEEP(__TARGET_CHIP__), .core.pendsv_config = CORE_PENDSV_CONFIG(__TARGET_CHIP__), .core.pendsv_trigger = CORE_PENDSV_TRIGGER(__TARGET_CHIP__), #if IFS_UNIQUEID_EN .uid.get = CORE_UID_GET(__TARGET_CHIP__), #endif #if IFS_FLASH_EN .flash.direct_read = &CORE_FLASH_DIRECT_READ(__TARGET_CHIP__), .flash.init = CORE_FLASH_INIT(__TARGET_CHIP__), .flash.fini = CORE_FLASH_FINI(__TARGET_CHIP__), .flash.capacity = CORE_FLASH_CAPACITY(__TARGET_CHIP__),