📄 rzkopen.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 + -