示例#1
0
eEsifError EsifActStart (EsifActPtr actionPtr)
{
	eEsifError rc = ESIF_OK;
	GetIfaceFuncPtr iface_func_ptr = NULL;
	EsifString iface_func_name     = "GetActionInterface";

	char libPath[ESIF_LIBPATH_LEN];
	esif_lib_t lib_handle = 0;

	ESIF_TRACE_DEBUG("%s name=%s\n", ESIF_FUNC, actionPtr->fLibNamePtr);
	esif_ccb_sprintf(ESIF_LIBPATH_LEN, libPath, "%s.%s",
					 esif_build_path(libPath, ESIF_LIBPATH_LEN, ESIF_DIR_PRG, actionPtr->fLibNamePtr), ESIF_LIB_EXT);

	lib_handle = esif_ccb_library_load(libPath);

	if (0 == lib_handle) {
		rc = ESIF_E_UNSPECIFIED;
		ESIF_TRACE_DEBUG("%s esif_ccb_library_load() %s failed.\n", ESIF_FUNC, libPath);
		goto exit;
	}
	ESIF_TRACE_DEBUG("%s esif_ccb_library_load() %s completed.\n", ESIF_FUNC, libPath);

	iface_func_ptr = (GetIfaceFuncPtr)
		esif_ccb_library_get_func(lib_handle, (EsifString)iface_func_name);

	if (NULL == iface_func_ptr) {
		rc = ESIF_E_UNSPECIFIED;
		ESIF_TRACE_DEBUG("%s esif_ccb_library_get_func() %s failed.\n",
						 ESIF_FUNC, iface_func_name);
		goto exit;
	}

	ESIF_TRACE_DEBUG("%s esif_ccb_library_get_func() %s completed.\n",
					 ESIF_FUNC, iface_func_name);
	rc = ActionCreate(actionPtr, iface_func_ptr);
	ESIF_TRACE_DEBUG("%s ActionCreate completed.\n", ESIF_FUNC);
exit:
	return rc;
}
示例#2
0
eEsifError EsifActStart(EsifActPtr actionPtr)
{
	eEsifError rc = ESIF_OK;
	GetIfaceFuncPtr iface_func_ptr = NULL;
	EsifString iface_func_name     = "GetActionInterface";

	char libPath[ESIF_LIBPATH_LEN];

	ESIF_TRACE_DEBUG("%s name=%s\n", ESIF_FUNC, actionPtr->fLibNamePtr);
	esif_build_path(libPath, sizeof(libPath), ESIF_PATHTYPE_DLL, actionPtr->fLibNamePtr, ESIF_LIB_EXT);
	actionPtr->fLibHandle = esif_ccb_library_load(libPath);

	if (NULL == actionPtr->fLibHandle) {
		rc = ESIF_E_UNSPECIFIED;
		ESIF_TRACE_ERROR("%s esif_ccb_library_load() %s failed.\n", ESIF_FUNC, libPath);
		goto exit;
	}
	ESIF_TRACE_DEBUG("%s esif_ccb_library_load() %s completed.\n", ESIF_FUNC, libPath);

	iface_func_ptr = (GetIfaceFuncPtr)
		esif_ccb_library_get_func(actionPtr->fLibHandle, (EsifString)iface_func_name);

	if (NULL == iface_func_ptr) {
		rc = ESIF_E_UNSPECIFIED;
		ESIF_TRACE_ERROR("%s esif_ccb_library_get_func() %s failed.\n",
						 ESIF_FUNC, iface_func_name);
		goto exit;
	}

	ESIF_TRACE_DEBUG("%s esif_ccb_library_get_func() %s completed.\n",
					 ESIF_FUNC, iface_func_name);
	rc = ActionCreate(actionPtr, iface_func_ptr);
	ESIF_TRACE_DEBUG("%s ActionCreate completed.\n", ESIF_FUNC);
exit:
	return rc;
}