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

📄 rzkopen.c

📁 zilog的实时操作系统RZK,可以移植到多种处理器上
💻 C
字号:
/*
 * File       : RZKOpen.c
 * Scope      : Scope is limited to only device driver framework.
 *
 * Description: This file implements the Open API of device driver framework
 *
 * Copyright 2004 ZiLOG Inc.  ALL RIGHTS RESERVED.
 *
 * This file contains unpublished confidential and proprietary information
 * of ZiLOG, Inc.
 * NO PART OF THIS WORK MAY BE DUPLICATED, STORED, PUBLISHED OR DISCLOSED 
 * IN ANY FORM WITHOUT THE PRIOR WRITTEN CONSENT OF ZiLOG, INC.
 * This is not a license and no use of any kind of this work is authorized
 * in the absence of a written license granted by ZiLOG, Inc. in ZiLOG's 
 * sole discretion 
 */


#include <string.h>
#include "ZTypes.h"
#include "ZSysgen.h"
#include "ZDevice.h"
#include "ZThread.h"
#include "ZInterrupt.h"
#include "externvar.h"

extern RZK_DEVICE_CB_t usrDevBlk[] ;

RZK_DEVICE_CB_t * RZKDevOpen( 
							RZK_DEV_NAME_t *devName,
							RZK_DEV_MODE_t *devMode
							)
{
RZK_DEVICE_CB_t *pdev = (RZK_DEVICE_CB_t *)NULL ;
void *pdevRet= NULL;
UINT16 i ;

#ifdef RZK_DEBUG
	if( (devName == NULL)  )
		return (RZK_DEVICE_CB_t *)NULL ;
#endif

	for( i=0; i<RZK_MAX_DCB; i++)
	{
		if(strcmp((char const *)devName, (char const *)usrDevBlk[i].devName) == 0)
		{
			pdev = &usrDevBlk[i] ;
			break ;
		}
	}

	if( i == RZK_MAX_DCB)
		return (RZK_DEVICE_CB_t *)NULL ;

	
	if(pdev->fnOpen)
	{
		 if( (pdevRet= (void *)((*( pdev->fnOpen ) )( pdev,devName,devMode) )) > 0)
		 	return pdevRet;
		  else
		  {
		  	if ( pdevRet < 0)
				return (RZK_DEVICE_CB_t *)NULL ;
			else
			 	return (RZK_DEVICE_CB_t *)pdev ; 
		  }	
	}	  
	 else
	 	return (RZK_DEVICE_CB_t *)NULL ;
}

/* Dummy routine used as place holder in DCB structures */
DDF_STATUS_t IONULL( void )	// IAR
{
	return 0;
}

DDF_STATUS_t IOERR( void )	// IAR
{
	return DDFERR_INVALID_ARGUMENTS;
}


⌨️ 快捷键说明

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