ClRcT halDevObjCreate (ClUint32T deviceID, void *pdevCapability, ClUint32T devCapLen , ClUint32T maxRspTime, ClUint32T bootUpPriority, ClHalDeviceObjectH *const phalDevObj) { ClUint32T index=0 ; ClUint32T i=0 ; CL_FUNC_ENTER(); if(deviceID<=0) { clLogCritical(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\nhalDevObjCreate Error Invalid DeviceId\n"); CL_FUNC_EXIT(); return(CL_HAL_SET_RC( CL_ERR_INVALID_PARAMETER)) ; } if(NULL ==phalDevObj) { clLogCritical(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\n halDevObjCreate Error NULL for Device \ Object Handle\n") ; CL_FUNC_EXIT(); return(CL_HAL_SET_RC(CL_ERR_NULL_POINTER)); }
ClRcT clHalLibInitialize() { ClRcT rc= CL_OK ; CL_FUNC_ENTER(); if (CL_TRUE == halInitDone) { clLogCritical(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\n clHalLibInitialize Called Again \n"); CL_FUNC_EXIT(); return (CL_HAL_SET_RC(CL_ERR_INVALID_STATE)); } #ifdef DEBUG rc= dbgAddComponent(COMP_PREFIX, COMP_NAME, COMP_DEBUG_VAR_PTR); if (CL_OK != rc) { clLogError(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"dbgAddComponent Failed \n "); CL_FUNC_EXIT(); return rc; } #endif memset(&halDevObjTable,0, sizeof(HalDeviceObjTableT)); halDevObjTable.pphalDeviceObj=(HalDeviceObjectT **)clHeapAllocate((halConfig. halNumDevObject)*sizeof(HalDeviceObjectT *)); if (NULL == halDevObjTable.pphalDeviceObj) { clLogCritical(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\n clHalLibInitialize Error no memory HAL\n"); CL_FUNC_EXIT(); return(CL_HAL_SET_RC(CL_ERR_NO_MEMORY)); } memset(halDevObjTable.pphalDeviceObj,0, ((halConfig. halNumDevObject)*sizeof(HalDeviceObjectT *))); halInitDone = CL_TRUE; /* Create device object(s) from the Configuration Info */ rc = halDevObjTableCreate (); if (rc != CL_OK) { clLogCritical(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\n halDevObjTableCreate Failed"); CL_FUNC_EXIT(); return rc ; } clLogTrace(CL_LOG_AREA_UNSPECIFIED,CL_LOG_CONTEXT_UNSPECIFIED,"\nclHalLibInitialize CL_OK\n"); CL_FUNC_EXIT(); return (CL_OK) ; }
ClRcT halObjCreate(ClUint32T omId, ClCorMOIdPtrT moId, ClHalObjectHandleT *const phalObjHandle) { HalObjectT * phalObject = NULL; ClRcT ret=CL_OK; #ifdef CL_DEBUG char aFunction[]="halObjCreate"; #endif CL_FUNC_ENTER(); if (NULL == phalObjHandle) { CL_DEBUG_PRINT(CL_DEBUG_TRACE,("\n %s Error NULL Pointer \n ",aFunction)); CL_FUNC_EXIT(); return (CL_HAL_SET_RC(CL_ERR_NULL_POINTER)); } phalObject =(HalObjectT*) clHeapAllocate((ClUint32T)sizeof(HalObjectT)); if (NULL == phalObject) { CL_DEBUG_PRINT(CL_DEBUG_TRACE,("\n %s Error Malloc Failed\n ",aFunction)); CL_FUNC_EXIT(); return (CL_HAL_SET_RC( CL_ERR_NO_MEMORY)) ; } memset(phalObject,0,sizeof(HalObjectT)); phalObject->omId=omId; if(NULL != moId) { phalObject->moId = (ClCorMOIdPtrT) clHeapAllocate ((ClUint32T)sizeof(ClCorMOIdT)); if (NULL == phalObject->moId) { clHeapFree (phalObject); CL_DEBUG_PRINT(CL_DEBUG_ERROR,("\n %s Error Malloc Failed\n ",aFunction)); CL_FUNC_EXIT(); return (CL_HAL_SET_RC( CL_ERR_NO_MEMORY)) ; } memset (phalObject->moId,0,sizeof(ClCorMOIdT)); memcpy (phalObject->moId, moId, sizeof(ClCorMOIdT)); } else { /* Error Condition */ /* This needs to be uncommented after fixing the call to clOmObjectCreate & clOmCorAndOmObjectsCreate by passing hMOId ,sizeof(ClCorMOIdT) as the last 2parameters. As of now NULL is being passed */ CL_DEBUG_PRINT(CL_DEBUG_ERROR,("\n %s Error Invalid Parameter \n ",aFunction)); CL_FUNC_EXIT(); return (CL_HAL_SET_RC(CL_ERR_INVALID_PARAMETER)); } ret = clCntLlistCreate(halKeyCompare,NULL,halObjContainerDestroy,CL_CNT_UNIQUE_KEY, &(phalObject->hTableRefDevObject)); if (CL_OK !=ret) { clHeapFree (phalObject); phalObject =NULL; CL_DEBUG_PRINT(CL_DEBUG_TRACE,("\n %s Error returned by \ clCntLlistCreate \n ", aFunction)); CL_FUNC_EXIT(); return ret; }