⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fragment.c

📁 该程序用于UCOS环境下的帧的分割函数
💻 C
字号:
#include "package.h"


/* Queue of FragSdu */
/* for power save buffers, etc., searchable with Qsearch operator: */
/* index:= Qsearch(queue, addr) where queue is an SduQueue, */
/* index identifies the first queue entry at which */
/* entry!dst = addr; or as -1 if no match (or queue empty). */


/********************************************************************
*                               qSearch
********************************************************************/
Integer qSearch(SduQueue *que,MacAddr val)
{
	Integer lng,k,result;

	if(que->length==emptyQ)              /* emptyQ为一个空串名 */
	{	
		result = -1;                              /* que为空queue,则返回-1 */
	} 
	else
	{ 
		lng=que->length;
		k=0;
		while(k<lng)
		{

			if( val.ptr[0]==que->ptr[k].dst.ptr[0] && val.ptr[1]==que->ptr[k].dst.ptr[1]
				&&  val.ptr[2]==que->ptr[k].dst.ptr[2] && val.ptr[3]==que->ptr[k].dst.ptr[3]
				&&  val.ptr[4]==que->ptr[k].dst.ptr[4] && val.ptr[5]==que->ptr[k].dst.ptr[5])
			{
				result=k;              /* 找到匹配的元素,返回该匹配元素地址 */
				break;
			}    
			else 
			{
				k++;
			}
		}
		if(k==lng)
		{
			result=-1;              /* 未找到匹配的元素,返回-1 */ 
		}    
	} 
	   
	return result;    
}   


/************************************************************************
*                                 txqSearch
************************************************************************/
Integer txqSearch(SduQueue *que)
{
	Integer lng,k,result;

	if(que->length==emptyQ )              /* emptyQ为一个空串名 */
	{
		result=-1;                         /* que为空queue,则返回-1 */ 
	}
	else 
	{
		lng=que->length;  
		k=0;
		while(k<lng)
		{
			if(que->ptr[k].cf==contention)
			{
				result=k;
				break;
			}
			else
			{
				k++;
			}
		}
		if(k==lng)
		{
			result=-1;
		}    
	}
    
	return result;
}   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -