Пример #1
0
int  connector_hub_add_connector (void * hub,void * connector,void * attr)
{
	struct tcloud_connector_hub * conn_hub;

	struct List_head * head, *currlib;
	Record_List * record_elem;
	Record_List * conn_list;
	

	conn_hub = (struct tcloud_connector_hub *)hub;

	record_elem = Dalloc(sizeof(Record_List),hub);
	if(record_elem==NULL)
		return -ENOMEM;
	INIT_LIST_HEAD(&(record_elem->list));
	record_elem->record=connector;

	conn_list=(Record_List *)conn_hub->connector_list;

	head = &(conn_list->list);
	List_add_tail(&(record_elem->list),head);

	struct tcloud_connector * new_conn = connector;
	int new_fd;
	new_fd=new_conn->conn_ops->getfd(new_conn);

	if(new_fd<=0)
		return -EINVAL;

	FD_SET(new_fd,&conn_hub->readfds);
	if(conn_hub->nfds<new_fd+1)
		conn_hub->nfds=new_fd+1;
	return 0;
}
Пример #2
0
int connector_hub_init(void * hub)
{
	struct tcloud_connector_hub * conn_hub;
	Record_List * conn_list;
	conn_hub = (struct tcloud_connector_hub *)hub;
	memset(conn_hub,0,sizeof(struct tcloud_connector_hub));

	conn_list=Dalloc(sizeof(Record_List),hub);
	if(conn_list == NULL)
		return -ENOMEM;
	conn_list->record=NULL;

	INIT_LIST_HEAD(&(conn_list->list));	
	conn_hub->connector_list=conn_list;	
	conn_hub->nfds=1;

	FD_ZERO(&conn_hub->readfds);
	FD_ZERO(&conn_hub->writefds);
	FD_ZERO(&conn_hub->exceptfds);

	conn_hub->curr_read = &(conn_list->list);
	conn_hub->curr_write = &(conn_list->list);
	conn_hub->curr_except = &(conn_list->list);

	conn_hub->curr_conn=NULL;

	return 0;
}
Пример #3
0
void Sc_CSLoadMap(void)
{
   FILE *fp = W_Open(sp_lfiles_Cyberspace, "r");
   i32 w, h, *map;

   fscanf(fp, "%i %i", &w, &h);

   map = Malloc(sizeof *map * w * h);

   for(i32 y = 0; y < h; y++) for(i32 x = 0; x < w; x++)
      fscanf(fp, "%i ", &map[x + y * w]);

   fclose(fp);
   Dalloc(map);
}
Пример #4
0
void * Palloc(int size,void * base)
{
	switch(	alloc_pointer_type(base))
	{
		case ALLOC_TEMP:
			return Talloc(size);
		case ALLOC_STATIC:
			return Salloc(size);
		case ALLOC_DYNAMIC:
			return Dalloc(size,base);
		case ALLOC_CACHE:
			return Calloc(size);
		default:
			return NULL;
	}	
}