RTEMS shell and telnetd

Peter Dufault dufault at hda.com
Wed May 28 15:04:50 UTC 2014


I'm figuring out how we're supposed to hook telnetd and RTEMS shell together in the git head and I don't understand the intent.  I used to do it like this:

static void sh_wrap(char *unused_dev, void *arg)
{
    rtems_shell_env_t my_env = rtems_global_shell_env;
    my_env.forever = false;
    (void)rtems_shell_main_loop( &my_env );
}

rtems_telnetd_config_table rtems_telnetd_config = {
    sh_wrap,                /* Command */
    NULL,                   /* Argument */
    0,                      /* Priority */
    20 * RTEMS_MINIMUM_STACK_SIZE, /* task stack size */
    0,                      /* Login check */
    0                       /* Keep stdio of the caller  */
};

and later call:

    rtems_telnetd_initialize();

"rtems_global_shell_env" is no longer global.  "rtems_shell_init_env()" which would initialize a rtems_shell_env_t is not global.  "rtems_shell_get_current_env()" won't work outside of a shell context.  Passing 0 to rtems_shell_main_loop(0) will get the default settings for the shell env, so forever will be set true and I won't be able to exit the session.

Am I missing something or is the intention I set up a "my_env" myself?  rtems_shell_env_t is still global.

Peter
-----------------
Peter Dufault
HD Associates, Inc.      Software and System Engineering





More information about the users mailing list