Supported 'boot' protocol/command to get status of platform booting
authorshingil.kang <shingil.kang@samsung.com>
Thu, 2 Jul 2015 15:34:13 +0000 (00:34 +0900)
committershingil.kang <shingil.kang@samsung.com>
Sun, 19 Jul 2015 08:17:17 +0000 (17:17 +0900)
boot command return 1 when platform booting is done.
otherwise, return 0

Change-Id: I182fef03e1092a7c6e7c2cf89c13196cd16db530
Signed-off-by: shingil.kang <shingil.kang@samsung.com>
src/command_function.c
src/command_function.h
src/commandline.c
src/sdb_constants.c
src/sdb_constants.h

index 9748c14a508f6a39f84f190b45518c6edc4cd90c..fa871b1f0dcb20695ad61558899d25e90249c82b 100644 (file)
@@ -890,3 +890,17 @@ static int verify_gdbserver_exist() {
     sdb_close(result);
     return result;
 }
+
+int get_boot(int argc, char ** argv) {
+    char full_cmd[20];
+    snprintf(full_cmd, sizeof(full_cmd), "boot:");
+    D(COMMANDLINE_MSG_FULL_CMD, argv[0], full_cmd);
+    int fd = sdb_connect(full_cmd);
+
+    if (fd >= 0) {
+        read_and_dump(fd);
+        sdb_close(fd);
+        return 0;
+    }
+    return 1;
+}
index 19ddf697c7577966bfb1c24eda3e5aec829e979a..866ecaf663b00bf51228b4c04de3bb6c9fcba374 100644 (file)
@@ -60,5 +60,6 @@ int uninstall(int argc, char **argv);
 int forkserver(int argc, char** argv);
 int shell(int argc, char ** argv);
 int get_capability(int argc, char ** argv);
+int get_boot(int argc, char ** argv);
 
 #endif /* COMMAND_FUNCTION_H_ */
index 3fe1885c2bf8719c186cf01060c007cf7068ac24..93ed88da4268151d35e7cfe9f7d039e0caf4f816 100755 (executable)
@@ -617,6 +617,12 @@ static void create_cmd_list(LIST_NODE** cmd_list) {
     create_command(&capability_cmd, COMMANDLINE_CAPABILITY_NAME, NULL,
             0, EMPTY_STRING, get_capability, COMMANDLINE_CAPABILITY_MAX_ARG, COMMANDLINE_CAPABILITY_MIN_ARG);
     prepend(cmd_list, capability_cmd);
+
+    COMMAND* boot_cmd = NULL;
+       create_command(&boot_cmd, COMMANDLINE_BOOT_NAME, NULL, 0, EMPTY_STRING,
+                       get_boot, COMMANDLINE_BOOT_MAX_ARG, COMMANDLINE_BOOT_MIN_ARG);
+       prepend(cmd_list, boot_cmd);
+
 }
 
 int process_cmdline(int argc, char** argv) {
index 510428c02e3a7f381d908c884d1f852d2599e600..d0bd7326ef4991d134739283c0fc9f7695c781cf 100644 (file)
     const int COMMANDLINE_CAPABILITY_MAX_ARG = 0;
     const int COMMANDLINE_CAPABILITY_MIN_ARG = 0;
 
+    const char* COMMANDLINE_BOOT_NAME = "boot";
+    const int COMMANDLINE_BOOT_MAX_ARG = 0;
+    const int COMMANDLINE_BOOT_MIN_ARG = 0;
+
     const char* COMMANDLINE_SERIAL_SHORT_OPT = "s";
     const char* COMMANDLINE_SERIAL_LONG_OPT = "serial";
     const char* COMMANDLINE_SERIAL_DESC[] = {
index 3d8ea044ed2b60c0ef29bf153d19c55456c3515c..b9620a309d1fe63656d6ba5c6b844fa16e95edfd 100644 (file)
@@ -227,6 +227,9 @@ typedef enum host_type HOST_TYPE;
     extern const int COMMANDLINE_CAPABILITY_MAX_ARG;
     extern const int COMMANDLINE_CAPABILITY_MIN_ARG;
 
+    extern const char* COMMANDLINE_BOOT_NAME;
+    extern const int COMMANDLINE_BOOT_MAX_ARG;
+    extern const int COMMANDLINE_BOOT_MIN_ARG;
 
     extern const char* COMMANDLINE_SERIAL_SHORT_OPT;
     extern const char* COMMANDLINE_SERIAL_LONG_OPT;