Transform 'u8' to 'uint8_t'
[fw/openocd] / src / ecosboard.c
index 5f6ba8f3994db8dc26b4e374a94d09191c9c70fb..0b1bf36ee6d5dea99b7392df2255e5562046aecd 100644 (file)
 #include "config.h"
 #endif
 
-#include "configuration.h"
-#include "time_support.h"
-
+#include "log.h"
+#include "types.h"
 #include "jtag.h"
+#include "configuration.h"
 #include "xsvf.h"
 #include "svf.h"
 #include "target.h"
 #include "flash.h"
 #include "nand.h"
 #include "pld.h"
-#include "rom.h"
 
+#include "command.h"
 #include "server.h"
 #include "telnet_server.h"
 #include "gdb_server.h"
 
+#include <time_support.h>
+#include <sys/time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <cyg/io/flash.h>
 #include <pkgconf/fs_jffs2.h>  // Address of JFFS2
 #include <network.h>
 
-#include <arpa/inet.h>
-#include <dirent.h>
-#include <net/if.h>
-#include <netdb.h>
-#include <netinet/tcp.h>
-#include <stdarg.h>
-#include <sys/ioctl.h>
+#include <fcntl.h>
 #include <sys/stat.h>
-
+#include <cyg/fileio/fileio.h>
+#include <dirent.h>
 #include <cyg/athttpd/http.h>
 #include <cyg/athttpd/socket.h>
 #include <cyg/athttpd/handler.h>
 #include <cyg/athttpd/cgi.h>
 #include <cyg/athttpd/forms.h>
 #include <cyg/discover/discover.h>
-#include <cyg/fileio/fileio.h>
 #include <cyg/hal/hal_diag.h>
-#include <cyg/io/flash.h>
+#include <cyg/kernel/kapi.h>
 #include <cyg/io/serialio.h>
 #include <cyg/io/io.h>
-#include <cyg/kernel/kapi.h>
-
-#ifdef HAVE_IFADDRS_H
+#include <netinet/tcp.h>
+#include "rom.h"
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <net/if.h>
+#include <arpa/inet.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <unistd.h>
+#include <arpa/inet.h>
+#include <stdio.h>
 #include <ifaddrs.h>
-#endif
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
+#include <string.h>
+
+#include <unistd.h>
+#include <stdio.h>
+
 
 #define MAX_IFS 64
 #if defined(CYGPKG_NET_FREEBSD_STACK)
@@ -176,7 +191,6 @@ int zy1000_configuration_output_handler_log(struct command_context_s *context,
 }
 
 #ifdef CYGPKG_PROFILE_GPROF
-extern void start_profile(void);
 
 int eCosBoard_handle_eCosBoard_profile_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
@@ -289,7 +303,7 @@ void format(void)
        e.len = ds.dev_size;
        e.err_address = &err_addr;
 
-       diag_printf("Formatting 0x%08x bytes\n", ds.dev_size);
+       diag_printf("Formatting 0x%08x bytes\n", (int)ds.dev_size);
        err = cyg_io_get_config(handle, CYG_IO_GET_CONFIG_FLASH_ERASE, &e, &len);
        if (err != ENOERR)
        {
@@ -406,8 +420,6 @@ static int zylinjtag_Jim_Command_reboot(Jim_Interp *interp, int argc,
 }
 
 
-extern Jim_Interp *interp;
-
 static void zylinjtag_startNetwork(void)
 {
        // Bring TCP/IP up immediately before we're ready to accept commands.
@@ -845,7 +857,7 @@ int boolParam(char *var);
 
 command_context_t *setup_command_handler(void);
 
-extern const char *zylin_config_dir;
+static const char *zylin_config_dir="/config/settings";
 
 int add_default_dirs(void)
 {
@@ -1031,6 +1043,9 @@ int main(int argc, char *argv[])
 
        command_run_linef(cmd_ctx, "script /rom/openocd.cfg");
 
+       /* we MUST always run the init command as it will launch telnet sessions */
+       command_run_line(cmd_ctx, "init");
+
        // FIX!!!  Yuk!
        // diag_printf() is really invoked from many more places than we trust it
        // not to cause instabilities(e.g. invoking fputc() from an interrupt is *BAD*).
@@ -1533,3 +1548,26 @@ static int logfs_fo_close(struct CYG_FILE_TAG *fp)
        return ENOERR;
 }
 
+int loadFile(const char *fileName, void **data, int *len);
+
+/* boolean parameter stored on config */
+int boolParam(char *var)
+{
+       bool result = false;
+       char *name = alloc_printf("%s/%s", zylin_config_dir, var);
+       if (name == NULL)
+               return result;
+
+       void *data;
+       int len;
+       if (loadFile(name, &data, &len) == ERROR_OK)
+       {
+               if (len > 1)
+                       len = 1;
+               result = strncmp((char *) data, "1", len) == 0;
+               free(data);
+       }
+       free(name);
+       return result;
+}
+