Added missing files.

llvm-svn: 128061
diff --git a/lldb/tools/lldb-platform/lldb-platform.cpp b/lldb/tools/lldb-platform/lldb-platform.cpp
new file mode 100644
index 0000000..af9f66b
--- /dev/null
+++ b/lldb/tools/lldb-platform/lldb-platform.cpp
@@ -0,0 +1,112 @@
+//===-- lldb-platform.cpp ---------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include <errno.h>
+#include <getopt.h>
+#include <signal.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "GDBRemoteCommunication.h"
+
+//----------------------------------------------------------------------
+// option descriptors for getopt_long()
+//----------------------------------------------------------------------
+
+int g_debug = 0;
+int g_verbose = 0;
+
+static struct option g_long_options[] =
+{
+    { "debug",              no_argument,        &g_debug,           1   },
+    { "verbose",            no_argument,        &g_verbose,         1   },
+    { "log-file",           required_argument,  NULL,               'l' },
+    { "log-flags",          required_argument,  NULL,               'f' },
+    { NULL,                 0,                  NULL,               0   }
+};
+
+//----------------------------------------------------------------------
+// Watch for signals
+//----------------------------------------------------------------------
+int g_sigpipe_received = 0;
+void
+signal_handler(int signo)
+{
+    switch (signo)
+    {
+    case SIGPIPE:
+        g_sigpipe_received = 1;
+        break;
+    }
+}
+
+//----------------------------------------------------------------------
+// main
+//----------------------------------------------------------------------
+int
+main (int argc, char *argv[])
+{
+    signal (SIGPIPE, signal_handler);
+    int long_option_index = 0;
+    FILE* log_file = NULL;
+    uint32_t log_flags = 0;
+    char ch;
+
+    while ((ch = getopt_long(argc, argv, "l:f:", g_long_options, &long_option_index)) != -1)
+    {
+//        DNBLogDebug("option: ch == %c (0x%2.2x) --%s%c%s\n",
+//                    ch, (uint8_t)ch,
+//                    g_long_options[long_option_index].name,
+//                    g_long_options[long_option_index].has_arg ? '=' : ' ',
+//                    optarg ? optarg : "");
+        switch (ch)
+        {
+        case 0:   // Any optional that auto set themselves will return 0
+            break;
+
+        case 'l': // Set Log File
+            if (optarg && optarg[0])
+            {
+                if (strcasecmp(optarg, "stdout") == 0)
+                    log_file = stdout;
+                else if (strcasecmp(optarg, "stderr") == 0)
+                    log_file = stderr;
+                else
+                {
+                    log_file = fopen(optarg, "w");
+                    if (log_file != NULL)
+                        setlinebuf(log_file);
+                }
+                
+                if (log_file == NULL)
+                {
+                    const char *errno_str = strerror(errno);
+                    fprintf (stderr, "Failed to open log file '%s' for writing: errno = %i (%s)", optarg, errno, errno_str ? errno_str : "unknown error");
+                }
+            }
+            break;
+
+        case 'f': // Log Flags
+            if (optarg && optarg[0])
+                log_flags = strtoul(optarg, NULL, 0);
+            break;
+        }
+    }
+    
+    // Skip any options we consumed with getopt_long
+    argc -= optind;
+    argv += optind;
+
+
+    GDBRemoteCommunication gdb_comm;
+
+    return 0;
+}