]> rtime.felk.cvut.cz Git - rtems-devel.git/blobdiff - rtems-omk-template/appdl/init.c
appdl: rename original dlopen shell command to dlrun to not collide with shell functi...
[rtems-devel.git] / rtems-omk-template / appdl / init.c
index 488ede51d3e4eb811a3941b892d4ef6356e24c3b..55e3e377843a373ad8e2737efac4f201da9cd108 100644 (file)
 
 #define CONFIGURE_INIT
 #include <system_def.h>
+#include "appl_config.h"
 #include "system.h"
 #include "app_def.h"
-#include "appl_config.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <dlfcn.h>
 #include <rtems/error.h>
 #include <rtems/monitor.h>
 #include <rtems/shell.h>
+#include <rtems/rtl/dlfcn-shell.h>
 
 #define USE_RTEMS_TARFS_LOAD
 
@@ -54,7 +55,9 @@
 #define CONFIGURE_SHELL_COMMANDS_ALL
 #define CONFIGURE_SHELL_COMMANDS_ALL_NETWORKING
 #define CONFIGURE_SHELL_MOUNT_MSDOS
+#ifdef CONFIG_OC_APP_APPDL_NET
 #define CONFIGURE_SHELL_MOUNT_NFS
+#endif
 
 #include <rtems/shellconfig.h>
 
@@ -113,7 +116,9 @@ int testcmd_forshell(int argc, char **argv)
 
 typedef int (*call_t)(int argc, char* argv[]);
 
-int dlopen_forshell(int argc, char **argv)
+volatile int continue_execution;
+
+int dlrun_forshell(int argc, char **argv)
 {
   void * handle;
   int    unresolved;
@@ -222,9 +227,25 @@ rtems_task Init(
                 "test command for shell",
                 testcmd_forshell);
 
-  rtems_shell_add_cmd("dlopen", "app",
-                "runtime load object and call contained function",
-                dlopen_forshell);
+  rtems_shell_add_cmd("dlrun", "rtl",
+                "runtime load object and run specified function",
+                dlrun_forshell);
+
+  rtems_shell_add_cmd("dlopen", "rtl",
+                "runtime load object",
+                shell_dlopen);
+
+  rtems_shell_add_cmd("dlclose", "rtl",
+                "close reference to loaded object",
+                shell_dlclose);
+
+  rtems_shell_add_cmd("dlsym", "rtl",
+                "obtain reference to symbol in loaded object",
+                shell_dlsym);
+
+  rtems_shell_add_cmd("dlcall", "rtl",
+                "call function in loaded object",
+                shell_dlcall);
 
   //rtems_monitor_wakeup();