add evlog_rule_path
authorBoram Park <boram1288.park@samsung.com>
Fri, 28 Jun 2013 04:39:19 +0000 (13:39 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 2 Jul 2013 07:21:21 +0000 (16:21 +0900)
Change-Id: I6cac45aa7d8d29ac2672000e0f710e578dea1ba6

module/xdbg_module.h
module/xdbg_module_command.c
module/xdbg_module_command.h
module/xdbg_module_main.c
module/xdbg_module_options.c

index e960cdd..d62bb25 100644 (file)
@@ -52,6 +52,7 @@ typedef struct _XDbgModule
     char *log_path;
     char *real_log_path;
     char *evlog_path;
+    char *evlog_rule_path;
     char *cwd;
 } XDbgModule;
 
index d1290a6..91da3d5 100644 (file)
@@ -510,3 +510,32 @@ xDbgModuleCommandInitLogPath (XDbgModule *pMod)
 
     return TRUE;
 }
+
+Bool
+xDbgModuleCommandInitEvlogRulePath (XDbgModule *pMod)
+{
+    if (pMod->evlog_rule_path && strlen (pMod->evlog_rule_path) > 0)
+    {
+        char reply[4096];
+        int len = sizeof (reply);
+        char *argv[4];
+        int argc = 4;
+
+        if (!pMod->evlog_path)
+        {
+            XDBG_XORG (MXDBG, "no evlog_path!!!\n");
+            return TRUE;
+        }
+
+        argv[0] = "unknown";
+        argv[1] = "evlog_rule";
+        argv[2] = "file";
+        argv[3] = pMod->evlog_rule_path;
+
+        _CommandSetEvlogRule (0, argc, argv, reply, &len, pMod);
+
+        xDbgModuleEvlogPrintEvents (pMod, TRUE, "", reply, &len);
+    }
+
+    return TRUE;
+}
index 9c4300d..f832b59 100644 (file)
@@ -36,5 +36,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 void xDbgModuleCommand (void *data, int argc, char **argv, char *reply, int *len);
 Bool xDbgModuleCommandInitLogPath (XDbgModule *pMod);
+Bool xDbgModuleCommandInitEvlogRulePath (XDbgModule *pMod);
 
 #endif /* __XDBG_MODULE_COMMAND_H__ */
index 0965507..1398507 100644 (file)
@@ -171,6 +171,12 @@ xDbgModuleMain (XDbgModule *pMod)
         return FALSE;
     }
 
+    if (!xDbgModuleCommandInitEvlogRulePath (pMod))
+    {
+        XDBG_ERROR (MXDBG, "failed: xDbgModuleCommandInitEvlogRulePath\n");
+        return FALSE;
+    }
+
     snprintf (method.name, sizeof (method.name), "%s", XDBG_DBUS_METHOD);
     method.func = xDbgModuleCommand;
     method.data = pMod;
index 8295f12..814f6d7 100644 (file)
@@ -43,6 +43,7 @@ typedef enum
     OPTION_DLOG,
     OPTION_LOG_PATH,
     OPTION_EVLOG_PATH,
+    OPTION_EVLOG_RULE_PATH,
 } ModuleOption;
 
 static const OptionInfoRec module_options[] =
@@ -50,6 +51,7 @@ static const OptionInfoRec module_options[] =
     { OPTION_DLOG,                     "dlog",                 OPTV_BOOLEAN,   {0},    FALSE },
     { OPTION_LOG_PATH,         "log_path",                     OPTV_STRING,    {0},    FALSE },
     { OPTION_EVLOG_PATH,       "evlog_path",           OPTV_STRING,    {0},    FALSE },
+    { OPTION_EVLOG_RULE_PATH,  "evlog_rule_path",              OPTV_STRING,    {0},    FALSE },
     { -1,                              NULL,                           OPTV_NONE,              {0},    FALSE }
 };
 
@@ -88,5 +90,15 @@ xDbgModuleParseOptions (XDbgModule *pMod, XF86OptionPtr pOpt)
     else
         XDBG_SLOG (MXDBG, "evlog path: none\n");
 
+    /* evlog_rule_path */
+    log_path = xf86GetOptValString (options, OPTION_EVLOG_RULE_PATH);
+    if (log_path)
+    {
+        XDBG_SLOG (MXDBG, "evlog log path: \"%s\"\n", log_path);
+        pMod->evlog_rule_path = strdup (log_path);
+    }
+    else
+        XDBG_SLOG (MXDBG, "evlog log path: none\n");
+
     free (options);
 }