}
EXPORT
-void hal_common_put_backend(enum hal_module module, void *data)
+int hal_common_put_backend(enum hal_module module, void *data)
{
hal_backend *backend = NULL;
void *handle = NULL;
/* Check parameter whether is valid or not */
if (module <= HAL_MODULE_UNKNOWN || module >= HAL_MODULE_END) {
_E("Invalid parameter of HAL module (%d)\n", module);
- return;
+ return TIZEN_ERROR_INVALID_PARAMETER;
}
backend = hal_module_info[module].library_backend;
handle = hal_module_info[module].library_handle;
- if (backend) {
- if (backend->exit)
- backend->exit(data);
-
- _I("Put HAL backend: name(%s)/vendor(%s)\n",
- backend->name, backend->vendor);
+ if (backend && backend->exit) {
+ ret = backend->exit(data);
+ if (ret < 0) {
+ _E("Failed to exit backend: name(%s)/vendor(%s)\n",
+ backend->name, backend->vendor);
+ return TIZEN_ERROR_INVALID_PARAMETER;
+ }
}
if (handle)
dlclose(handle);
+
+ _I("Put HAL backend: name(%s)/vendor(%s)\n",
+ backend->name, backend->vendor);
+
+ return TIZEN_ERROR_NONE;
}
EXPORT