Exemplo n.º 1
0
/*用来扫描某个具体的端口*/
static void _scan_one(void *arg)
{
	int port = (int)arg;
	char number_buffer[10];
	struct linear_node *linear_node;
	int ret;
	int (*scan_func)(int port);

	sprintf(number_buffer, "%d", port);	

	/*调用全局的函数*/
	linear_node = global_scanner;
	while(linear_node)
	{
		if(scan_method == SCAN_GENERAL || ((struct scan_func_info*)linear_node->data)->type == scan_method)
		{
			scan_func = ((struct scan_func_info*)linear_node->data)->scan_func;
			ret = scan_func(port);
			if(ret == 1)
			{
			
			}
		}
		linear_node = linear_node->next;
	}

	/*调用注册函数*/
	linear_node = (struct linear_node*)hash_get(scanner_table, number_buffer);
	
	while(linear_node)
	{
		if(scan_method == SCAN_GENERAL || ((struct scan_func_info*)linear_node->data)->type == scan_method)
		{
			scan_func = ((struct scan_func_info*)linear_node->data)->scan_func;
			ret = scan_func(port);
			if(ret == 1)
			{
			
			}
		}
		linear_node = linear_node->next;
	}
}
Exemplo n.º 2
0
void
sgen_scan_pin_queue_objects (ScanCopyContext ctx)
{
	int i;
	ScanObjectFunc scan_func = ctx.ops->scan_object;

	mono_os_mutex_lock (&pin_queue_mutex);
	for (i = 0; i < pin_queue_objs.next_slot; ++i) {
		GCObject *obj = (GCObject *)pin_queue_objs.data [i];
		scan_func (obj, sgen_obj_get_descriptor_safe (obj), ctx.queue);
	}
	mono_os_mutex_unlock (&pin_queue_mutex);
}
Exemplo n.º 3
0
int main()
{
  int (*scan_func)(int);
  if (g)
    scan_func = x;
  else
    scan_func = y;

  if (scan_func)
    g = scan_func(10);

  return 0;
}