#include <system_info.h>
#include <tzplatform_config.h>
#include <ckmc/ckmc-manager.h>
+#include <hal/device/hal-board.h>
#include "plugin.h"
#include "http_util.h"
#define UPDATE_OBJECT_PATH "/Org/Tizen/System/Update"
#define UPDATE_INTERFACE_NAME UPDATE_BUS_NAME".Update"
#define UPDATE_METHOD "do_update"
-#define RESULT_METHOD "get_result"
#define FIRMWARE_FILE_NAME "delta.tar.gz"
-#define RESULT_FILE tzplatform_mkpath(TZ_SYS_UPGRADE_DATA, "result")
#ifdef DEBUG_MODE
#define DEBUG_FLAG "/opt/etc/.debugupdate"
return ret;
}
-static int send_get_result_signal(int *result)
-{
- GDBusConnection *conn;
- GVariant *reply = NULL;
- GError *error = NULL;
- int ret = 0;
-
- retvm_if(!result, -1, "result is NULL");
- conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
- if (error) {
- _E("Failed to get dbus: %s", error->message);
- g_error_free(error);
- return -1;
- }
-
- reply = g_dbus_connection_call_sync(conn,
- UPDATE_BUS_NAME,
- UPDATE_OBJECT_PATH,
- UPDATE_INTERFACE_NAME,
- RESULT_METHOD,
- NULL,
- G_VARIANT_TYPE("(i)"),
- G_DBUS_CALL_FLAGS_NONE,
- 120000,
- NULL,
- &error);
- if (error) {
- _E("Failed to get reply: %s", error->message);
- g_error_free(error);
- ret = -1;
- goto exit;
- }
-
- g_variant_get(reply, "(i)", result);
- _I("Get result signal returns: (%d)", *result);
-
-exit:
- if (reply)
- g_variant_unref(reply);
-
- return ret;
-}
-
-
API int update_control_initialize(void)
{
_D("FN CALLED>>>>>>>>>>>>>>>>>>");
}
break;
case UPDATE_CONTROL_PROPERTY_RESULT:
+ {
*value = malloc(sizeof(int));
if (!*value) {
_E("Failed to malloc");
return UPDATE_CONTROL_ERROR_OUT_OF_MEMORY;
}
- if (send_get_result_signal((int *)*value) < 0) {
- free(*value);
- *value = NULL;
- _E("Failed to send_get_result_signal");
+ int r = hal_device_board_get_upgrade_status(*value);
+ if (r >= 0) {
+ ret = UPDATE_CONTROL_ERROR_NONE;
+ break;
+ }
+
+ free(*value);
+
+ if (r == -ENODEV) {
+ _E("get_upgrade_status not implemented in HAL");
+ ret = UPDATE_CONTROL_ERROR_INVALID_OPERATION;
+ } else {
+ _E("Unable to get upgrade progress from HAL");
ret = UPDATE_CONTROL_ERROR_SYSTEM_ERROR;
}
break;
+ }
case UPDATE_CONTROL_PROPERTY_DESCRIPTION:
_D("Not implemented for key: %d", property);
ret = UPDATE_CONTROL_ERROR_INVALID_OPERATION;