예제 #1
0
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;
}
예제 #2
0
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(&sections->uuid);
	create_f8_uuid(&sections->h.uuid);
	create_resource(&sections->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;
}
예제 #3
0
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;
}