コード例 #1
0
ファイル: sync-evt-read.c プロジェクト: nekromant/aura
int main() {
	slog_init(NULL, 18);

	int count = 5;
	int ret; 
	struct aura_node *n = aura_open("dummy", NULL);
	aura_wait_status(n, AURA_STATUS_ONLINE);

	struct aura_buffer *retbuf; 
	const struct aura_object *o; 

	aura_enable_sync_events(n, 5);

	while (count--) { 
		ret = aura_get_next_event(n, &o, &retbuf);
		slog(0, SLOG_DEBUG, "evt get ret %d", ret);
		
		aura_hexdump("Out buffer", retbuf->data, retbuf->size);
		aura_buffer_release(retbuf);
	}

	aura_close(n);

	return 0;
}
コード例 #2
0
/***
Close node. This function will block until the node's been closed and freed

@function aura.close
@tparam node node An open node to close
*/
static int l_close_node(lua_State *L)
{
	struct laura_node *lnode = lua_fetch_node(L, -1);
	struct aura_node *node = lnode->node;

	TRACE();

	/* Handle weird cases when we've already cleaned up */
	if (!node)
		return 0;

	/* Clear up references we've set up so far*/
	if (lnode->refs & REF_NODE_CONTAINER)
		luaL_unref(L, LUA_REGISTRYINDEX, lnode->node_container);

	if (lnode->refs & REF_STATUS_CB) {
		luaL_unref(L, LUA_REGISTRYINDEX, lnode->status_changed_ref);
		luaL_unref(L, LUA_REGISTRYINDEX, lnode->status_changed_arg_ref);
	}

/*
 *      if (lnode->refs & REF_ETABLE_CB) {
 *              luaL_unref(L, LUA_REGISTRYINDEX, lnode->etable_changed_ref);
 *              luaL_unref(L, LUA_REGISTRYINDEX, lnode->etable_changed_arg_ref);
 *      }
 */

	aura_close(node);
	lnode->node = NULL;
	return 0;
}
コード例 #3
0
ファイル: susb-stability-none.c プロジェクト: nekromant/aura
int main() {
        int ret; 
	int i; 
	int passed = 0;
	int failed = 0;
        slog_init(NULL, 0);
        struct aura_node *n = aura_open("simpleusb", "../simpleusbconfigs/susb-test.conf");

        if (!n) { 
                printf("err\n");
                return -1;
        }

	i = 100; 
	while (i--) { 
		printf("Testing %d remaining\r", i);
		fflush(stdout);
		aura_wait_status(n, AURA_STATUS_ONLINE);
		struct aura_buffer *retbuf; 
		ret = aura_call(n, "led_ctl", &retbuf, 0x100, 0x100);
		if (0 == ret) {
			aura_buffer_release(retbuf); 
			passed++;
		} else
			failed++;
	}

        aura_close(n);

	printf("Stability test (no data): %d succeeded, %d failed total %d\n",
	       passed, failed, passed + failed);

        return failed;
}
コード例 #4
0
ファイル: dummy-benchmark.c プロジェクト: nekromant/aura
int main() {
	slog_init(NULL, 0);
	int num_runs = 5;
#ifdef AURA_USE_BUFFER_POOL
	printf("Buffer pool enabled!");
#else
	printf("Buffer pool disabled!");
#endif

	struct aura_node *n = aura_open(TRANSPORT, NULL);
	printf("+GC -PREHEAT\n");
	aura_unhandled_evt_cb(n, unhandled_cb, (void *) 0);
	average_aggregate(n, run_first, num_runs, "call test");
//	average_aggregate(n, run_second, num_runs, "alloc/dealloc test");
	aura_close(n);

	n = aura_open(TRANSPORT, NULL);

	printf("+GC +PREHEAT\n");
	aura_unhandled_evt_cb(n, unhandled_cb, (void *) 0);
	aura_bufferpool_preheat(n, 512, 10);
	average_aggregate(n, run_first, num_runs, "call test");
//	average_aggregate(n, run_second, num_runs, "alloc/dealloc test");
	aura_close(n);

	n = aura_open(TRANSPORT, NULL);

	printf("-GC -PREHEAT\n");
	aura_unhandled_evt_cb(n, unhandled_cb, (void *) 0);
	n->gc_threshold = -1;
	average_aggregate(n, run_first, num_runs, "call test");
//	average_aggregate(n, run_second, num_runs, "alloc/dealloc test");
	aura_close(n);

	return 0;
}
コード例 #5
0
ファイル: dummy-sync-call.c プロジェクト: RC-MODULE/matlab
int main() {
	slog_init(NULL, 18);

	int ret; 
	struct aura_node *n = aura_open("dummy", NULL);
	struct aura_buffer *retbuf; 

	ret = aura_call(n, "echo_u16", &retbuf, 0x0102);
	slog(0, SLOG_DEBUG, "call ret %d", ret);
	aura_hexdump("Out buffer", retbuf->data, retbuf->size);
	aura_buffer_release(n, retbuf);
	aura_close(n);

	return 0;
}
コード例 #6
0
ファイル: dummy-async-by-id.c プロジェクト: RC-MODULE/matlab
int main() {
	slog_init(NULL, 18);

	int ret; 
	struct aura_node *n = aura_open("dummy", NULL);
	ret = aura_start_call_raw(n, 2, calldonecb, (void *) ARG, 0x0102);
	printf("call started with ret %d\n", ret);

	ret = aura_set_event_callback_raw(n, 5, pingcb, (void *) ARG2);
	printf("event handler set with ret %d\n", ret);
	aura_handle_events_forever(aura_eventloop_get_data(n));
	printf("Closing the shop...");
	aura_close(n);

	return 0;
}
コード例 #7
0
ファイル: async.c プロジェクト: nekromant/aura
int main() {
	slog_init(NULL, 18);

	int ret;
	struct aura_node *n = aura_open("dummy", NULL);
	aura_wait_status(n, AURA_STATUS_ONLINE);

	ret = aura_start_call(n, "echo_u16", calldonecb, (void *) ARG, 0x0102);
	printf("call started with ret %d\n", ret);
	if (ret !=0)
		return ret;

	ret = aura_set_event_callback(n, "ping", pingcb, (void *) ARG2);
	printf("event handler set with ret %d\n", ret);
	aura_eventloop_dispatch(aura_node_eventloop_get(n), 0);
	printf("Closing the shop...");
	aura_close(n);

	return 0;
}
コード例 #8
0
ファイル: susb-pwctl-clicker.c プロジェクト: RC-MODULE/matlab
int main() {
        int ret; 
        int i = 2; 
        slog_init(NULL, 88);
        struct aura_node *n = aura_open("simpleusb", "./simpleusbconfigs/pw-ctl.conf");

        if (!n) { 
                printf("err\n");
                return -1;
        }
        aura_wait_status(n, AURA_STATUS_ONLINE);

        struct aura_buffer *retbuf; 
        ret = aura_call(n, "bit_set", &retbuf, 12<<8 | 1, 1);
        slog(0, SLOG_DEBUG, "call ret %d", ret);
        if (0 == ret) {
                printf("====> buf pos %d len %d\n", retbuf->pos, retbuf->size);
		aura_buffer_release(n, retbuf); 
        }

	int v = 1; 	
	while(1) {
		v = !v;
		printf("<=================>\n");
		ret = aura_call(n, "bit_set", &retbuf, 12<<8, v);
		slog(0, SLOG_DEBUG, "call ret %d", ret);
		if (0 == ret) {
			printf("====> buf pos %d len %d\n", retbuf->pos, retbuf->size);
			aura_buffer_release(n, retbuf); 
		} else {
			aura_wait_status(n, AURA_STATUS_ONLINE);
			i--;
			if (!i)
				goto bailout;
		}
		sleep(1);
        }
bailout:
        aura_close(n);
        return 0;
}
コード例 #9
0
ファイル: basic.c プロジェクト: nekromant/aura
int main()
{
	slog_init(NULL, 18);

	struct aura_node *n = aura_open("nmc", "./aura-test.abs");
	if (!n) {
		slog(0, SLOG_ERROR, "Failed to open node");
		exit(1);
	}
	aura_wait_status(n, AURA_STATUS_ONLINE);

	test_u32(n);
	test_u64(n);
	test_u32u32(n);
	test_bin(n);
	test_buf(n);

	aura_close(n);

	return 0;
}
コード例 #10
0
ファイル: dummy-buffer-arg.c プロジェクト: RC-MODULE/matlab
int main() {
	slog_init(NULL, 18);

	int ret; 
	struct aura_node *n = aura_open("dummy", NULL);
	struct aura_buffer *retbuf; 
	struct aura_buffer *iobuf = aura_buffer_request(n, 80);

	ret = aura_call(n, "echo_buf", &retbuf, iobuf);
	slog(0, SLOG_DEBUG, "call ret %d", ret);
	if (ret)
		BUG(n, "call failed");
	struct aura_buffer *tmp = aura_buffer_get_buf(retbuf);
	if (tmp != iobuf)
		BUG(n, "test not ok");

	aura_buffer_release(n, retbuf);
	aura_buffer_release(n, tmp);
	aura_close(n);

	return 0;
}
コード例 #11
0
ファイル: main-arm.c プロジェクト: RC-MODULE/nmpp
int main() {

	printf("START-%s\n", aura_get_version());
	slog_init(NULL, 0);
       sleep(1);
	int ret; 
		n = aura_open("nmc", "./rpc-demo.abs");
	if (!n) {
		printf("ERROR:Failed to open node\n");
		slog (0, SLOG_ERROR, "Failed to open node");
		exit(1);
	}
	printf("START-1\n");
	aura_wait_status(n, AURA_STATUS_ONLINE);

	printf("START-2\n");
	static signed char  src0_8s[256] ,    src1_8s[256];
	static signed short src0_16s[256],    src1_16s[256];
	static signed int   src0_32s[2*2048], src1_32s[256];
	static long long    src0_64s[256], src1_64s[256];
	static signed char  dst_8s[256];
	signed short dst_16s[256];
	signed int 	 dst_32s[2*2048];
	signed long long dst_64s[256];
	
	int i=0;

	for(i=0; i<256; i++){
		src0_8s[i] =i;  
		src0_16s[i]=i;  
		src0_32s[i]=i;  
		src0_64s[i]=i;  
		            
		src1_8s[i] =8-i;
		src1_16s[i]=8-i;
		src1_32s[i]=8-i;
		src1_64s[i]=8-i;
	}
	
	unsigned crc=-1;
	
	nmppsRShiftC_8s ((nm8s* )src0_8s ,1,(nm8s* )dst_8s ,16);				nmppsCrcAcc_8s (dst_8s, 8, &crc);
	nmppsRShiftC_16s((nm16s*)src0_16s,1,(nm16s*)dst_16s,16);                nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsRShiftC_32s((nm32s*)src0_32s,1,(nm32s*)dst_32s,16);                nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsRShiftC_64s((nm64s*)src0_64s,1,(nm64s*)dst_64s,16);                nmppsCrcAcc_64s(dst_64s,16,&crc);
                                                                                                    
	nmppsRShiftC_8u ((nm8u* )src0_8s ,1,(nm8u* )dst_8s ,16);				nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsRShiftC_16u((nm16u*)src0_16s,1,(nm16u*)dst_16s,16);                nmppsCrcAcc_16s(dst_16s,16,&crc);
 	nmppsRShiftC_32u((nm32u*)src0_32s,1,(nm32u*)dst_32s,16);                nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsRShiftC_64u((nm64u*)src0_64s,1,(nm64u*)dst_64s,16);                nmppsCrcAcc_64s(dst_64s,16,&crc);
                                                                                                    
	nmppsAndC_8u((nm8u*)  src0_8s, 5, (nm8s*) dst_8s,16);					nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsAndC_16u((nm16u*)src0_16s,5,(nm16u*)dst_16s,16);                   nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsAndC_32u((nm32u*)src0_32s,5,(nm32u*)dst_32s,16);                   nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsAndC_64u((nm64u*)src0_64s,5,(nm64u*)dst_64s,16);                   nmppsCrcAcc_64s(dst_64s,16,&crc);
                                                                                                    
	nmppsOrC_8u ((nm8u*)src0_8s,1,  (nm8s*) dst_8s,16);						nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsOrC_16u((nm16u*)src0_16s,1,(nm16u*)dst_16s,16);                    nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsOrC_32u((nm32u*)src0_32s,1,(nm32u*)dst_32s,16);                    nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsOrC_64u((nm64u*)src0_64s,1,(nm64u*)dst_64s,32);                    nmppsCrcAcc_64s(dst_64s,32,&crc);
                                                                                                    
	nmppsXorC_8u((nm8u*)  src0_8s,1, (nm8s*) dst_8s,16);					nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsXorC_16u((nm16u*)src0_16s,1,(nm16u*)dst_16s,16);                   nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsXorC_32u((nm32u*)src0_32s,1,(nm32u*)dst_32s,16);                   nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsXorC_64u((nm64u*)src0_64s,1,(nm64u*)dst_64s,32);                   nmppsCrcAcc_64s(dst_64s,32,&crc);
	                                                                                                
	nmppsNot_8u ((nm8u* )src0_8s, (nm8s* )dst_8s ,16);						nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsNot_16u((nm16u*)src0_16s,(nm16s*)dst_16s,16);                      nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsNot_32u((nm32u*)src0_32s,(nm32s*)dst_32s,16);                      nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsNot_64u((nm64u*)src0_64s,(nm64s*)dst_64s,16);                      nmppsCrcAcc_64s(dst_64s,16,&crc);
                                                                                                    
	nmppsAnd_8u ((nm8u*) src0_8s, (nm8u*) src1_8s, (nm8s*) dst_8s,16);		nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsAnd_16u((nm16u*)src0_16s,(nm16u*)src1_16s,(nm16u*)dst_16s,16);     nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsAnd_32u((nm32u*)src0_32s,(nm32u*)src1_32s,(nm32u*)dst_32s,16);     nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsAnd_64u((nm64u*)src0_64s,(nm64u*)src1_64s,(nm64u*)dst_64s,32);     nmppsCrcAcc_64s(dst_64s,32,&crc);
	                                                                                                
	nmppsOr_8u ((nm8u*) src0_8s, (nm8u*) src1_8s, (nm8s*) dst_8s,16);		nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsOr_16u((nm16u*)src0_16s,(nm16u*)src1_16s,(nm16u*)dst_16s,16);      nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsOr_32u((nm32u*)src0_32s,(nm32u*)src1_32s,(nm32u*)dst_32s,16);      nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsOr_64u((nm64u*)src0_64s,(nm64u*)src1_64s,(nm64u*)dst_64s,32);      nmppsCrcAcc_64s(dst_64s,32,&crc);
                                                                                                    
	nmppsXor_8u ((nm8u*) src0_8s, (nm8u*) src1_8s, (nm8s*) dst_8s,16);		nmppsCrcAcc_8s (dst_8s, 16,&crc);
	nmppsXor_16u((nm16u*)src0_16s,(nm16u*)src1_16s,(nm16u*)dst_16s,16);     nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsXor_32u((nm32u*)src0_32s,(nm32u*)src1_32s,(nm32u*)dst_32s,16);     nmppsCrcAcc_32s(dst_32s,16,&crc);
	nmppsXor_64u((nm64u*)src0_64s,(nm64u*)src1_64s,(nm64u*)dst_64s,32);     nmppsCrcAcc_64s(dst_64s,32,&crc);

	nmppsCmpLtC_8s8um ((nm8s*) src0_8s ,1,(nm8u*)dst_8s,16,0);				nmppsCrcAcc_8s (dst_8s, 16,&crc); 
	nmppsCmpLtC_16s8um((nm16s*)src0_16s,1,(nm8u*)dst_8s,16,0);              nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsCmpLtC_32s8um((nm32s*)src0_32s,1,(nm8u*)dst_8s,16,0);              nmppsCrcAcc_32s(dst_32s,16,&crc);
//	nmppsCmpLtC_64s8um((nm64s*)src0_32s,1,(nm8u*)dst_8s,16,0);              //nmppsCrcAcc_64s(dst_64s,16,&crc);
                                                                            //
	nmppsCmpNeC_8s8um ((nm8s*) src0_8s ,1,(nm8u*)dst_8s,16,0);				nmppsCrcAcc_8s (dst_8s, 16,&crc);  
	nmppsCmpNeC_16s8um((nm16s*)src0_16s,1,(nm8u*)dst_8s,16,0);              nmppsCrcAcc_16s(dst_16s,16,&crc);
	nmppsCmpNeC_32s8um((nm32s*)src0_32s,1,(nm8u*)dst_8s,16,0);              nmppsCrcAcc_32s(dst_32s,16,&crc);
//	nmppsCmpNeC_64s8um((nm64s*)src0_64s,1,(nm8u*)dst_8s,16,0);              //nmppsCrcAcc_64s(dst_64s,64,&crc);

	nmppsCmpNe_8s8um  ((nm8s*) src0_8s , (nm8s*) src1_8s ,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_8s (dst_8s, 16,&crc);		
	nmppsCmpNe_16s8um ((nm16s*)src0_16s, (nm16s*)src1_16s,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_16s(dst_16s,16,&crc);	
	nmppsCmpNe_32s8um ((nm32s*)src0_32s, (nm32s*)src1_32s,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_32s(dst_32s,16,&crc);	
//	nmppsCmpNe_64s8um ((nm64s*)src0_64s, (nm64s*)src1_64s,(nm8u*)dst_8s, 16, 0);	//nmppsCrcAcc_64s(dst_64s,16,&crc);	
                                                                                    
																					//for(i=0; i<16; i++)	dst_8s[i]=-1;
	nmppsCmpLt_8s8um  ((nm8s*) src0_8s , (nm8s*) src1_8s ,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_8s (dst_8s, 16,&crc);	
	nmppsCmpLt_16s8um ((nm16s*)src0_16s, (nm16s*)src1_16s,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_16s(dst_16s,16,&crc);	
	nmppsCmpLt_32s8um ((nm32s*)src0_32s, (nm32s*)src1_32s,(nm8u*)dst_8s, 16, 0);	nmppsCrcAcc_32s(dst_32s,16,&crc);	
//	nmppsCmpLt_64s8um ((nm64s*)src0_32s, (nm64s*)src1_32s,(nm8u*)dst_8s, 16, 0);	//nmppsCrcAcc_64s(dst_64s,16,&crc);	

	
	aura_close(n);
	slog (0, SLOG_INFO, "Finished");
	printf("CRC=%x\n",crc);
	return crc-0xc354a8e4;;
}