亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ospf_linked_list.c

?? vxworks下ospf協議棧
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* ospf_linked_list.c - OSPF linked list *//* Copyright 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01c,02jun03,ram Changed native memory usage to OSPF memory partition01b,02jun03,agi added static keyword in front of local functions01a,30may03,agi create (ported from RWOS)*//* includes */#include "stdio.h"#include "stdlib.h"#include <vxWorks.h>#include "ospf.h"#include "ospf_container_functions.h"#include "ospf_linked_list_structures.h"/******************************************************************************/static void linked_list_set_container_function_pointers (LINKED_LIST_CONTAINER* p_linked_list);static void linked_list_set_iterator_function_pointers (LINKED_LIST_ITERATOR* p_linked_list_iterator);static bool linked_list_add_node_to_sorted_list (LINKED_LIST_CONTAINER* p_linked_list, LINKED_LIST_NODE* p_node);static void linked_list_determine_position (LINKED_LIST_CONTAINER* p_linked_list, LINKED_LIST_NODE* p_node,	LINKED_LIST_NODE** pp_previous_node, LINKED_LIST_NODE** pp_next_node);static void linked_list_free_iterator_local (OSPF_CONTAINER_ITERATOR* p_iterator);static OSPF_CONTAINER_ITERATOR linked_list_create_iterator_local (OSPF_CONTAINER* p_rw_container);/******************************************************************************/OSPF_CONTAINER* ospf_list_create (FP_OSPF_CONTAINER_ITEM_COMPARE fp_compare){    LINKED_LIST_CONTAINER* p_linked_list;    p_linked_list = (LINKED_LIST_CONTAINER*) buffer_malloc (        sizeof (LINKED_LIST_CONTAINER));	if (p_linked_list == NULL)		{		return ((OSPF_CONTAINER*) NULL);		}			p_linked_list->p_first_node = NULL;	p_linked_list->p_last_node = NULL;	if (fp_compare != NULL)		{		p_linked_list->fp_compare = fp_compare;		}	else		{		p_linked_list->fp_compare = NULL;		}	linked_list_set_container_function_pointers (p_linked_list);#if defined (__LOCAL_ITERATOR__)    p_linked_list->mp_linked_list_iterator = buffer_malloc (        sizeof (LINKED_LIST_ITERATOR));	if (p_linked_list->mp_linked_list_iterator == NULL)		{		table_free ((void *)p_linked_list);		return (NULL);		}	p_linked_list->mp_linked_list_iterator->p_linked_list = p_linked_list;	p_linked_list->mp_linked_list_iterator->p_node = NULL;	linked_list_set_iterator_function_pointers (p_linked_list->mp_linked_list_iterator);#endif /*__LOCAL_ITERATOR__*/	return ((OSPF_CONTAINER*)p_linked_list);		}/************************************************************************************/static bool linked_list_is_at_end (OSPF_CONTAINER_ITERATOR* p_iterator){	if (p_iterator == NULL)		{		return (true);		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list == NULL)		{		return (true);		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_node == NULL)		{		return (true);		}	else		{		return (false);		}}/************************************************************************************/static void linked_list_goto_front (OSPF_CONTAINER_ITERATOR* p_iterator){	if (p_iterator == NULL)		{		return;		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list == NULL)		{		return;		}	((LINKED_LIST_ITERATOR*)p_iterator)->p_node = ((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list->p_first_node;}/************************************************************************************/static void linked_list_goto_end (OSPF_CONTAINER_ITERATOR* p_iterator){	if (p_iterator == NULL)		{		return;		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list == NULL)		{		return;		}	((LINKED_LIST_ITERATOR*)p_iterator)->p_node = ((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list->p_last_node;}/************************************************************************************/static OSPF_CONTAINER_ITERATOR linked_list_create_iterator (OSPF_CONTAINER* p_rw_container){	LINKED_LIST_ITERATOR* p_linked_list_iterator;#if defined (__LOCAL_ITERATOR__)	p_linked_list_iterator = NULL;	p_linked_list_iterator = ((LINKED_LIST_CONTAINER*) p_rw_container)->mp_linked_list_iterator;	linked_list_goto_front ((OSPF_CONTAINER_ITERATOR*) p_linked_list_iterator);#else 	p_linked_list_iterator = buffer_malloc (sizeof (LINKED_LIST_ITERATOR));	if (p_linked_list_iterator == NULL)		{		return ((OSPF_CONTAINER_ITERATOR) NULL);		}	p_linked_list_iterator->p_linked_list = (LINKED_LIST_CONTAINER*) p_rw_container;	p_linked_list_iterator->p_node = NULL;	linked_list_set_iterator_function_pointers (p_linked_list_iterator);#endif	return ((OSPF_CONTAINER_ITERATOR) p_linked_list_iterator);}/************************************************************************************/static void linked_list_free_container (OSPF_CONTAINER* p_linked_list){	LINKED_LIST_NODE* p_node;	LINKED_LIST_NODE* p_next_node;#if defined (__LOCAL_ITERATOR__)	LINKED_LIST_ITERATOR* p_linked_list_iterator;#endif	if (p_linked_list == NULL)		{		return;		}	p_node = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;	while (p_node != NULL) 		{		p_next_node = p_node->p_next;		table_free (p_node);		p_node = p_next_node;				}#if defined (__LOCAL_ITERATOR__)		p_linked_list_iterator = NULL;	p_linked_list_iterator = (LINKED_LIST_ITERATOR*)((LINKED_LIST_CONTAINER*)p_linked_list)->mp_linked_list_iterator;	if (p_linked_list_iterator != NULL)		{		table_free (p_linked_list_iterator);		p_linked_list_iterator = NULL;		}#endif	table_free ((LINKED_LIST_CONTAINER*)p_linked_list);	p_linked_list = NULL;}/************************************************************************************/static bool linked_list_add_at_front (OSPF_CONTAINER* p_linked_list, const OSPF_CONTAINER_ITEM* p_item){	LINKED_LIST_NODE* p_node;	LINKED_LIST_NODE* p_next_node;	bool return_value;	if (p_linked_list == NULL)		{		return (false);		}	if (p_item == NULL)		{		return (false);		}			p_node = (LINKED_LIST_NODE*) buffer_malloc (sizeof (LINKED_LIST_NODE));	if (p_node == NULL)		{		return (false);		}			p_node->p_next = NULL;	p_node->p_previous = NULL;	p_node->p_data = (void*) p_item;	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node == NULL)		{		((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = p_node;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = p_node;		p_node->p_previous = NULL;		p_node->p_next = NULL;		return (true);		}	else		{		if (((LINKED_LIST_CONTAINER*)p_linked_list)->fp_compare != NULL)			{			return_value = linked_list_add_node_to_sorted_list (p_linked_list, p_node);			if (return_value == false)				{				table_free (p_node);				p_node = NULL;				}			}		else			{			p_next_node = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;			p_node->p_next = p_next_node;			p_node->p_previous = NULL;			p_next_node->p_previous = p_node;			((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = p_node;			return_value = true;			}		return (return_value);		}}/************************************************************************************/static void linked_list_remove_from_front (OSPF_CONTAINER* p_linked_list){	LINKED_LIST_NODE* p_node_to_remove;	if (p_linked_list == NULL)		{		return;		}			if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node == NULL)		{		return;		}	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node == ((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node)		{		p_node_to_remove = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = NULL;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = NULL;		table_free (p_node_to_remove);				p_node_to_remove = NULL;		return;		}			p_node_to_remove = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;	((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = p_node_to_remove->p_next;	((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node->p_previous = NULL;	table_free (p_node_to_remove);	p_node_to_remove = NULL;}/************************************************************************************/static bool linked_list_add_at_back (OSPF_CONTAINER* p_linked_list, const OSPF_CONTAINER_ITEM* p_item){	LINKED_LIST_NODE* p_node;	LINKED_LIST_NODE* p_previous_node;	bool return_value;	if (p_linked_list == NULL)		{		return (false);		}			if (p_item == NULL)		{		return (false);		}			p_node = (LINKED_LIST_NODE*) buffer_malloc (sizeof (LINKED_LIST_NODE));	if (p_node == NULL)		{		return (false);		}			p_node->p_next = NULL;	p_node->p_previous = NULL;	p_node->p_data = (void*) p_item;	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node == NULL)		{		((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = p_node;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = p_node;			p_node->p_next = NULL;		p_node->p_previous = NULL;		return (true);		}	else		{		if (((LINKED_LIST_CONTAINER*)p_linked_list)->fp_compare != NULL)			{			return_value = linked_list_add_node_to_sorted_list (p_linked_list, p_node);			if (return_value == false)				{				table_free (p_node);								p_node = NULL;				}			}		else			{			p_previous_node = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node;			p_node->p_next = NULL;			p_node->p_previous = p_previous_node;			p_previous_node->p_next = p_node;			((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = p_node;			return_value = true;			}		return (return_value);		}}/************************************************************************************/static void linked_list_remove_from_back (OSPF_CONTAINER* p_linked_list){	LINKED_LIST_NODE* p_node_to_remove;	p_linked_list = (LINKED_LIST_CONTAINER*) p_linked_list;	if (p_linked_list == NULL)		{		return;		}	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node == NULL)		{		return;		}			if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node == ((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node)		{		p_node_to_remove = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node = NULL;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = NULL;		table_free (p_node_to_remove);		p_node_to_remove = NULL;		return;		}			p_node_to_remove = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node;		((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node = p_node_to_remove->p_previous;	((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node->p_next = NULL;		table_free (p_node_to_remove);	p_node_to_remove = NULL;}/************************************************************************************/static UINT linked_list_get_number_of_nodes (const OSPF_CONTAINER* p_linked_list){	UINT number_of_nodes;	LINKED_LIST_NODE* p_node;	p_node = ((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node;	number_of_nodes = 0;	while (p_node !=  NULL)		{		++ number_of_nodes;		p_node = p_node->p_next;		}	return (number_of_nodes);}/************************************************************************************/static OSPF_CONTAINER_ITEM* linked_list_get_item_at_front (const OSPF_CONTAINER* p_linked_list){	if (p_linked_list == NULL)		{		return (NULL);		}	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node == NULL)		{		return (NULL);		}	return (((LINKED_LIST_CONTAINER*)p_linked_list)->p_first_node->p_data);}/************************************************************************************/static OSPF_CONTAINER_ITEM* linked_list_get_item_at_back (const OSPF_CONTAINER* p_linked_list){	if (p_linked_list == NULL)		{		return (NULL);		}	if (((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node == NULL)		{		return (NULL);		}	return (((LINKED_LIST_CONTAINER*)p_linked_list)->p_last_node->p_data);}/************************************************************************************/static void linked_list_set_container_function_pointers (LINKED_LIST_CONTAINER* p_linked_list){	if (p_linked_list != NULL)		{		p_linked_list->function.create_iterator = linked_list_create_iterator;		p_linked_list->function.free_container = linked_list_free_container;		p_linked_list->function.add_at_front = linked_list_add_at_front;		p_linked_list->function.remove_from_front = linked_list_remove_from_front;		p_linked_list->function.add_at_back = linked_list_add_at_back;		p_linked_list->function.remove_from_back = linked_list_remove_from_back;		p_linked_list->function.get_container_size = linked_list_get_number_of_nodes;		p_linked_list->function.get_item_at_front = linked_list_get_item_at_front;		p_linked_list->function.get_item_at_back = linked_list_get_item_at_back;		}}/************************************************************************************/static OSPF_CONTAINER_ITERATOR linked_list_create_iterator_local (OSPF_CONTAINER* p_rw_container){	LINKED_LIST_ITERATOR* p_linked_list_iterator;	p_linked_list_iterator = buffer_malloc (sizeof (LINKED_LIST_ITERATOR));	if (p_linked_list_iterator == NULL)		{		return ((OSPF_CONTAINER_ITERATOR) NULL);		}	p_linked_list_iterator->p_linked_list = (LINKED_LIST_CONTAINER*) p_rw_container;	p_linked_list_iterator->p_node = NULL;	linked_list_set_iterator_function_pointers (p_linked_list_iterator);	return ((OSPF_CONTAINER_ITERATOR) p_linked_list_iterator);}/************************************************************************************/static OSPF_CONTAINER_ITEM* linked_list_get_item_at_iterator (OSPF_CONTAINER_ITERATOR* p_iterator){	if (p_iterator == NULL)		{		return ((OSPF_CONTAINER_ITEM*)NULL);		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_linked_list == NULL)		{		return ((OSPF_CONTAINER_ITEM*)NULL);		}	if (((LINKED_LIST_ITERATOR*)p_iterator)->p_node == NULL)		{		return ((OSPF_CONTAINER_ITEM*)NULL);		}	return ((OSPF_CONTAINER_ITEM*)(((LINKED_LIST_ITERATOR*)p_iterator)->p_node->p_data));		}/************************************************************************************/static bool linked_list_find_item_in_range (OSPF_CONTAINER_ITERATOR* p_iterator_start, OSPF_CONTAINER_ITERATOR* p_iterator_end,	FP_OSPF_CONTAINER_ITEM_CRITERIA_MATCHER fp_criteria_matcher, OSPF_CONTAINER_CRITERIA* p_criteria,	OSPF_CONTAINER_ITERATOR* p_matched_item_iterator){	LINKED_LIST_ITERATOR* p_first_iterator;	LINKED_LIST_ITERATOR* p_last_iterator;	LINKED_LIST_NODE* p_node;	LINKED_LIST_NODE* p_last_node;	bool item_found;	if (fp_criteria_matcher == NULL)		{		return (false);		}	if (p_criteria == NULL)		{		return (false);		}	if (p_matched_item_iterator == NULL)		{		return (false);		}			p_first_iterator = (LINKED_LIST_ITERATOR*) p_iterator_start;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久亚洲综合| 99re视频精品| 久久免费的精品国产v∧| 黑人巨大精品欧美黑白配亚洲| 精品欧美黑人一区二区三区| 国产一区二区看久久| 国产日韩欧美高清| 不卡在线视频中文字幕| 一区二区三区免费网站| 欧美日韩精品三区| 精品一区二区三区在线观看国产| 精品福利二区三区| 成人av在线资源网站| 亚洲免费观看高清完整版在线| 在线看不卡av| 久久国内精品自在自线400部| 国产丝袜美腿一区二区三区| 99视频国产精品| 午夜精品一区二区三区免费视频 | 欧美久久久久久久久中文字幕| 日日摸夜夜添夜夜添国产精品| 欧美成va人片在线观看| av在线播放一区二区三区| 亚洲线精品一区二区三区八戒| 欧美大白屁股肥臀xxxxxx| 不卡的av网站| 人人超碰91尤物精品国产| 欧美国产欧美亚州国产日韩mv天天看完整 | 日韩限制级电影在线观看| 国产福利91精品一区| 亚洲已满18点击进入久久| 日韩美女一区二区三区四区| 9i看片成人免费高清| 婷婷丁香久久五月婷婷| 国产精品欧美精品| 欧美精品色综合| 99视频精品在线| 狠狠久久亚洲欧美| 亚洲夂夂婷婷色拍ww47| 久久女同性恋中文字幕| 欧美日韩一区二区三区四区 | 亚洲一区二区三区在线播放| 欧美tickling挠脚心丨vk| 欧美色中文字幕| 国产福利91精品| 美国十次综合导航| 亚洲一区二区3| 国产精品久久久久久一区二区三区| 51精品久久久久久久蜜臀| 91视视频在线观看入口直接观看www| 麻豆一区二区99久久久久| 亚洲综合在线免费观看| 国产精品久久一卡二卡| 久久久久久免费毛片精品| 日韩视频永久免费| 欧美日韩你懂得| 色噜噜狠狠成人网p站| 成人动漫一区二区| 国产一区不卡视频| 蜜桃精品视频在线| 免费成人性网站| 午夜精品视频一区| 亚洲综合男人的天堂| 日韩一区在线看| 国产精品免费网站在线观看| 国产视频一区在线观看| 久久精品在线观看| 久久久久久久国产精品影院| 日韩欧美www| 精品欧美一区二区久久| 欧美成人在线直播| 精品国产免费久久| 久久久久九九视频| 久久久精品一品道一区| 久久精品视频在线看| 久久久国产精华| 久久久国产一区二区三区四区小说| 欧美mv日韩mv亚洲| 欧美精品一区男女天堂| 久久久99精品免费观看不卡| 2023国产精华国产精品| 久久久久久久久久久久久久久99| 久久亚洲精品小早川怜子| 国产日产精品一区| 国产欧美精品区一区二区三区| 国产精品你懂的在线| 亚洲人成网站精品片在线观看| 亚洲六月丁香色婷婷综合久久 | 看片的网站亚洲| 久草精品在线观看| 国产一区二区三区av电影| 国产乱人伦偷精品视频不卡| 国产成人三级在线观看| 99久久精品国产精品久久| 欧美中文字幕一区| 欧美一区二区三区在线观看视频| 欧美电视剧在线观看完整版| 国产亚洲欧美日韩日本| 中文字幕一区二区三区四区| 亚洲一区二区三区视频在线 | 亚洲一区中文在线| 日韩av网站免费在线| 精品一区二区三区视频 | 亚洲一区二区三区自拍| 免费人成精品欧美精品| 国产大陆a不卡| 色综合天天综合狠狠| 欧美精品三级在线观看| 2020国产精品| 日韩一区欧美小说| 奇米精品一区二区三区四区| 丁香婷婷综合色啪| 欧美日韩国产中文| 久久理论电影网| 亚洲精品国产精品乱码不99| 蜜桃一区二区三区在线观看| 成人性色生活片免费看爆迷你毛片| 欧美特级限制片免费在线观看| 精品久久久久久亚洲综合网| 亚洲人成7777| 国精产品一区一区三区mba视频| 色综合夜色一区| 久久精品一区二区三区av| 一区二区三区不卡视频在线观看| 青青国产91久久久久久| 色综合中文综合网| 艳妇臀荡乳欲伦亚洲一区| 久久精品国内一区二区三区| 99视频一区二区三区| 精品粉嫩超白一线天av| 亚洲国产wwwccc36天堂| 成人性生交大片免费看在线播放| 欧美一卡二卡在线| 亚洲国产综合人成综合网站| 成人晚上爱看视频| 欧美不卡一区二区三区四区| 亚洲一区二区在线免费看| 国产91露脸合集magnet | 制服视频三区第一页精品| 亚洲色图在线看| 国产精品一区在线观看你懂的| 91.麻豆视频| 亚洲一区在线电影| 99天天综合性| 国产精品私人自拍| 精品一区二区国语对白| 69精品人人人人| 亚洲一区二区中文在线| 色婷婷久久综合| 日韩一区有码在线| bt欧美亚洲午夜电影天堂| 久久午夜色播影院免费高清| 强制捆绑调教一区二区| 欧美三级欧美一级| 亚洲精品成人悠悠色影视| 北岛玲一区二区三区四区| 国产欧美日韩另类一区| 国产乱人伦偷精品视频不卡| 欧美一区二区三区啪啪| 日本视频在线一区| 欧美久久久久久蜜桃| 五月婷婷激情综合| 欧美精品 日韩| 午夜成人免费视频| 欧美精品第1页| 日日夜夜一区二区| 日韩三级精品电影久久久| 日韩精品一级二级 | 2023国产精品| 国产一区二区精品久久99| 久久丝袜美腿综合| 国产成a人亚洲| 中文字幕在线一区免费| www.日韩在线| 有码一区二区三区| 欧美日韩精品欧美日韩精品一| 亚洲不卡av一区二区三区| 欧美高清你懂得| 免费黄网站欧美| 久久久久久日产精品| 成人国产精品免费观看| 亚洲视频一二区| 欧美日免费三级在线| 蜜桃av一区二区| 国产欧美精品一区二区三区四区| 99久久er热在这里只有精品15| 亚洲品质自拍视频| 这里只有精品视频在线观看| 狠狠色丁香婷婷综合| 最新日韩在线视频| 欧美日韩一区在线| 久久99国产精品久久99果冻传媒| 久久精品亚洲麻豆av一区二区| 不卡av在线网| 亚洲成人久久影院| 久久综合狠狠综合| 91免费国产视频网站| 青椒成人免费视频| 最近中文字幕一区二区三区| 欧美日韩国产高清一区二区三区|