static __bool _alloc_var_proc(ITreeNode * nd, __bool firstVisit, __uint context) { IBlk * b; ICBlk * cb; struct blk_var_t *v, var; int len, i; CRegRequirementList * req; req = (CRegRequirementList*)context; b = __dcast__(ITreeNode, IBlk, nd); if(b->h.magic != CBLK_MAGIC){ return __true; } // // // now unpack the variable definitions // // cb = __dcast__(IBlk, ICBlk, b); v = (struct blk_var_t*)get_res_buf(&b->h.uuid, &len, "variables"); if(!v){ return __true; } if(len % sizeof(struct blk_var_t)){ req->m_errcode = F8_INVALID_DATA; return __false; } len /= sizeof(struct blk_var_t); for(i=0; i<len; i++, v++){ var = *v; var.blk = b; var.comment = get_res_buf_v(&b->h.uuid, 0, "!v%d!comment", i); var.addr.section = MEM_SECTION_INVALID; create_f8_uuid(&var.uuid); if(!req->Alloc(&var)){ return __false; } } return __true; }
KPROXY_API f8_bool kproxy_init(int leakDetect) { ITcpAdapter *a; _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); _CrtSetBreakAlloc(leakDetect); /* initialize and start kernel */ ex_init(); /* KERN_F_ENABLE_INPUT */ x_buffer = (char *)__malloc__(LARGE_BUF_SIZE); x_buf_len = LARGE_BUF_SIZE; b_ShellExit = __false; __new__(ITcpAdapter, a); proxy_adapter = __ucast__(ITcpAdapter, IKAdapter, a); sections = ke_get_blk(proxy_adapter->kernel, 0); assert(sections->uuid == BLK_ID_ROOT); create_resource(§ions->uuid); create_f8_uuid(§ions->h.uuid); create_resource(§ions->h.uuid); memset(fileName, 0 , sizeof(fileName)); g_shell = shell_create(commands); reset_reg_map(); init_blklib(); init_clipboard(); g_bDirty = __false; init_network(RTK_INIT_AS_SERVER, 0); vbus = connect_vbus(0xf8, VBUS_CONNECT_AS_SERVER, sr, 0); return __true; }
int main(int c, char **v) { char buf[128]; __bool bClipBoard=__false; f8_uuid uuid; BEGIN_ARGS ARG("-c", bClipBoard, "tbool", "copy result to clipboard") END_ARGS if(process_args_1(c, v)){ print_usage_1(); return -1; } create_f8_uuid(&uuid); f8_uuid_to_string(&uuid, buf, sizeof(buf)); printf("%s\n", buf); #ifdef _WIN32 //if(bClipBoard) { if( !OpenClipboard(NULL) ){ return -1; } EmptyClipboard(); HANDLE h = GlobalAlloc(GMEM_MOVEABLE, strlen(buf) + 1); char * p = (char *)GlobalLock(h); if(p){ GlobalUnlock(h); strcpy(p, buf); SetClipboardData(CF_TEXT, h); } CloseClipboard(); } #endif return 0; }