int openbios(void) { #ifdef CONFIG_DEBUG_CONSOLE #ifdef CONFIG_DEBUG_CONSOLE_SERIAL uart_init(CONFIG_SERIAL_PORT, CONFIG_SERIAL_SPEED); #endif /* Clear the screen. */ cls(); #endif collect_sys_info(&sys_info); dict = (unsigned char *)sys_info.dict_start; dicthead = (cell)sys_info.dict_end; last = sys_info.dict_last; dictlimit = sys_info.dict_limit; forth_init(); relocate(&sys_info); #ifdef CONFIG_DEBUG_CONSOLE_VGA video_init(); #endif #ifdef CONFIG_DEBUG_BOOT printk("forth started.\n"); printk("initializing memory..."); #endif init_memory(); #ifdef CONFIG_DEBUG_BOOT printk("done\n"); #endif PUSH_xt( bind_noname_func(arch_init) ); fword("PREPOST-initializer"); PC = (ucell)findword("initialize-of"); if (!PC) { printk("panic: no dictionary entry point.\n"); return -1; } #ifdef CONFIG_DEBUG_DICTIONARY printk("done (%d bytes).\n", dicthead); printk("Jumping to dictionary...\n"); #endif enterforth((xt_t)PC); return 0; }
int main(void) { // char *s = NULL; // char *sp = NULL; // char *result_values = NULL; char *tmp = NULL; // char val[1024] = "::cp:::co"; // result_values = (char *)calloc(1024, sizeof(char)); // s = (char *)calloc(40, sizeof(char)); // sp = (char *)calloc(20, sizeof(char)); // memncpy(s, val, 0, strlen(val)); // printf("\nresult:\t%s\n", s); // split(sp, s, ':', 1); // printf("\nsplit result:%s\n", sp); // fetch_value(sp, s); // printf("result:%s\n", sp); // simple_va_fun("chengfei", 1, 2, 5.2356); // fetch_vaules_from_file(result_values, "/proc/cpuinfo", 4, "model name", "cache size", "physical id", "vendor_id"); // printf("fetch:%s\n", result_values); tmp = collect_sys_info(); free(tmp); return 0; }