int test_datastructure_rbtree_map(void) { int ret = 0; rbtree_map_pos_t it,next,end; rbtree_map_t *map; allocator_t *allocator = allocator_get_default_alloc(); pair_t *pair; struct rbtree_map_node *mnode; int key_len = 2; struct A t1 = {1,2}; struct A t2 = {2,2}; struct A t3 = {3,2}; struct A t4 = {4,2}; struct A t5 = {5,2}; dbg_str(DBG_DETAIL,"rbtree allocator addr:%p",allocator); map = rbtree_map_create(allocator,0); rbtree_map_init(map,key_len,sizeof(struct A) + key_len,NULL); dbg_str(DBG_DETAIL,"create_pair"); pair = create_pair(key_len,sizeof(struct A)); make_pair(pair,"44",&t4); rbtree_map_insert(map,pair->data); make_pair(pair,"33",&t3); rbtree_map_insert(map,pair->data); make_pair(pair,"22",&t2); rbtree_map_insert(map,pair->data); make_pair(pair,"11",&t1); rbtree_map_insert(map,pair->data); dbg_str(DBG_DETAIL,"foreach ordinal print"); for( rbtree_map_begin(map,&it),rbtree_map_pos_next(&it,&next); !rbtree_map_pos_equal(&it,rbtree_map_end(map,&end)); it = next,rbtree_map_pos_next(&it,&next)) { mnode = rb_entry(it.rb_node_p,struct rbtree_map_node,node); dbg_buf(DBG_DETAIL,"key:",mnode->key,mnode->value_pos); print_A((struct A*)rbtree_map_pos_get_pointer(&it)); } dbg_str(DBG_DETAIL,"search node key = 22"); rbtree_map_search(map, (void *)"22",&it); print_A((struct A*)rbtree_map_pos_get_pointer(&it)); /* *dbg_str(DBG_DETAIL,"delte node key = 11"); *container_delete(map,&it); */ rbtree_map_destroy(map); allocator_destroy(allocator); dbg_str(DBG_DETAIL,"map addr =%p",map); return ret; }
void lab5() { char *str = "a林能刚"; dbg_str(DBG_DETAIL,"strlen =%d",strlen(str)); dbg_str(DBG_DETAIL,"strlen =%s",str); dbg_buf(DBG_DETAIL,"buff:",str, strlen(str)); }
static int process_task_callback(client_task_t *task) { dbg_str(DBG_DETAIL,"process_task begin,client recv"); /* *user_t *user = task->client; *void *opaque = user->opaque; */ dbg_buf(DBG_VIP,"task buffer:",task->buffer,task->buffer_len); dbg_str(DBG_DETAIL,"process_task end"); }
void print_info_list(proto_info_list_t *info_list) { if(info_list == NULL) return; if(info_list->len_unit == 8) { if(info_list->len <= 4&&info_list->buf.data_p == NULL) /* *printk("name=%10s,byte_pos=%2d,bit_pos=%d,len=%2d," * "vlenth_flag=%d,vlenth_value_flag=%d," * "vlenth_value_assigned_flag=%d,value=0x%x,vl_index=%s\n", * info_list->name, info_list->byte_pos, * info_list->bit_pos, info_list->len, * info_list->vlenth_flag, info_list->vlenth_value_flag, * info_list->vlenth_value_assigned_flag, info_list->data, * info_list->vlenth_index); */ dbg_str(DBG_DETAIL,"%-10s->0x%x", info_list->name,info_list->data); else { /* *printk("name=%10s,byte_pos=%2d,bit_pos=%d,len=%2d," * "vlenth_flag=%d,vlenth_value_flag=%d," * "vlenth_value_assigned_flag=%d,vl_index=%s\n", * info_list->name, info_list->byte_pos, * info_list->bit_pos, info_list->len, * info_list->vlenth_flag, info_list->vlenth_value_flag, * info_list->vlenth_value_assigned_flag, * info_list->vlenth_index); *if(info_list->buf.data_p != NULL) * dbg_buf(DBG_DETAIL,"buf:",info_list->buf.data_p,info_list->len); */ dbg_str(DBG_DETAIL,"%-10s", info_list->name); if(info_list->buf.data_p != NULL) dbg_buf(DBG_DETAIL,"buf:",info_list->buf.data_p,info_list->len); } } else { printk("name=%10s,byte_pos=%2d,bit_pos=%d,len=%2d," "vlenth_flag=%d,vlenth_value_flag=%d," "vlenth_value_assigned_flag=%d,value=0x%x,vl_index=%s\n", info_list->name, info_list->byte_pos, info_list->bit_pos, info_list->len, info_list->vlenth_flag, info_list->vlenth_value_flag, info_list->vlenth_value_assigned_flag, info_list->data, info_list->vlenth_index); } }
uint32_t test_key_cmp_func(void *key1,void *key2,uint32_t size) { dbg_buf(DBG_CONTAINER_DETAIL,"cmp key1:",key1,size); dbg_buf(DBG_CONTAINER_DETAIL,"cmp key2:",key2,size); return memcmp(key1,key2,size); }
uint32_t test_hash_func(void *key,uint32_t key_size) { uint16_t num = *(uint16_t *)key; dbg_buf(DBG_CONTAINER_DETAIL,"test hash func key:",key,key_size); return num % 10; }
void make_pair(pair_t *p,void *key,void *value) { memcpy(p->data,key,p->key_len); memcpy(p->data + p->key_len,value,p->value_len); dbg_buf(DBG_CONTAINER_DETAIL,"make pair:",p->data,p->data_len); }