Пример #1
0
static void Init(rtems_task_argument arg)
{
  int te;

  TEST_BEGIN();

  te = Untar_FromMemory((void *)TARFILE_START, (size_t)TARFILE_SIZE);
  if (te != 0)
  {
    printf("untar failed: %d\n", te);
    rtems_test_exit(1);
    exit (1);
  }

  test();

  TEST_END();

  rtems_test_exit(0);
}
Пример #2
0
void test_untar_from_memory(void)
{
  rtems_status_code sc;

  printf("Untaring from memory - ");
  sc = Untar_FromMemory((void *)TARFILE_START, TARFILE_SIZE);
  if (sc != RTEMS_SUCCESSFUL) {
    printf ("error: untar failed: %s\n", rtems_status_text (sc));
    exit(1);
  }
  printf ("successful\n");

  /******************/
  printf( "========= /home/test_file =========\n" );
  test_cat( "/home/test_file", 0, 0 );
  
  /******************/
  printf( "========= /symlink =========\n" );
  test_cat( "/symlink", 0, 0 );

}
Пример #3
0
/*
 * RTEMS Startup Task
 */
rtems_task
Init (rtems_task_argument ignored)
{
  int mcast_main(int ac, char **av);
  rtems_status_code status;

  printf("Loading filesystem image\n");
  status = Untar_FromMemory( (char *)FilesystemImage, FilesystemImage_size );
   
  printk( "Initializing network\n" );
  rtems_bsdnet_initialize_network ();

  // This appears to have no effect.
  // add_mcast_route( MULTI_ADDRESS, MULTI_NETMASK, MULTI_GATEWAY );

  printk( "Network initialized\n" );
  rtems_bsdnet_show_inet_routes ();

  printk( "Initiating mcast test\n" );
  mcast_main ( 0, 0 );
  exit (0);
}
Пример #4
0
rtems_task Init(
  rtems_task_argument ignored
)
{
  char in_file[20] = "/image.img";
  DWORD crc;
  long charcnt;

  puts( "\n\n*** untar/imfs/crc example ***" );

  printf("Unpacking tar filesystem\nThis may take awhile...\n");
  if(Untar_FromMemory((char*) fs_root_tar, fs_root_tar_size) != 0) {
    printf("Can't unpack tar filesystem\n");
    exit(1);
  }

  crc32file(in_file,&crc, &charcnt);
  printf("%08lX %7ld %s\n", crc, charcnt, in_file);

  printf( "*** end of demonstration ***\n" );
  exit( 0 );
}
Пример #5
0
rtems_task Init(
  rtems_task_argument ignored
)
{
  int ret;

  puts( "\n\n*** ramdisk/fat example ***" );

  printf("Unpacking tar filesystem\nThis may take awhile...\n");
  if(Untar_FromMemory((char*) FilesystemImage, FilesystemImage_size) != 0) {
    printf("Can't unpack tar filesystem\n");
    exit(1);
  }

  ret = setup_ramdisk ("/mnt/ramdisk");
  if (ret)
    exit (ret);

  shell_init_script();
  shell_start();

  printf( "*** end of demonstration ***\n" );
  exit( 0 );
}
Пример #6
0
/*
 * DESCRIPTION: Init task for any Microwindows/RTEMS application.
 */
void *POSIX_Init( void *argument )
{
  #define ARGV_LIMIT 32
  #define LINE_LIMIT 128
  int     sc;
  int     mainArgc;
  char   *mainArgv[ARGV_LIMIT];
  char    Line[LINE_LIMIT];

  DPRINTF( "\nStarting RTEMS init task...\n" );

  DPRINTF( "" );
  DPRINTF("Loading filesystem image\n");
  (void) Untar_FromMemory( (char *)FilesystemImage, FilesystemImage_size );

  #if !defined(NONETWORK)
    /* Make all network initialization */
    rtems_bsdnet_initialize_network();
    DPRINTF( "Network Initialization is complete.\n\n" );
  #endif

  setenv( "HOME", "/", 1 );
  setenv( "T1LIB_CONFIG", "/fonts/t1lib/t1lib.config", 1 );
  
  /*
   *  Clear argv pointer array
   */
  for ( mainArgc=0 ; mainArgc<ARGV_LIMIT ; mainArgc++ )
    mainArgv[mainArgc] = NULL;

  strcpy( Line, "RTEMS " );

  #if 0 /* defined(WITH_ARGS) */
    DPRINTF("With arguments\n" );
    {
      char   *p;

      DPRINTF("Enter arguments> " );
      p = fgets( &Line[6], LINE_LIMIT - 6, stdin );
      if ( !p ) {
        DPRINTF("error reading arguments\n" );
        exit(0);
      }
    }
  #else
    DPRINTF("Without arguments\n" );
  #endif

  /*
   *  Break into arguments
   */
  sc = rtems_shell_make_args( Line, &mainArgc, mainArgv, ARGV_LIMIT - 1 );
  if ( sc ) {
    DPRINTF("Error parsing arguments\n" );
    exit(0);
  }

  rtems_main( mainArgc, mainArgv );

  DPRINTF( "*** Done ***\n\n\n" );
  pthread_exit( NULL );
  return NULL; /* just so the compiler thinks we returned something */
}
Пример #7
0
rtems_task Init(
  rtems_task_argument argument
)
{
  rtems_status_code status;

  printf("\n\n*** OSMONWEB TEST ***\n\r" );
  printf("GoAhead HTTPD Enabled: %s\n", bool2string(GoAhead_HTTPD_enabled) );
  printf("Simple HTTPD Enabled: %s\n", bool2string(Simple_HTTPD_enabled) );
  printf("FTPD Enabled: %s\n", bool2string(FTPD_enabled) );
  printf("\n");

  /*
   * Load Base Filesystem Image
   */
  printf("Loading filesystem image\n");
  status = Untar_FromMemory( (char *)FilesystemImage, FilesystemImage_size );
   
  printf("Initializing Network");
  rtems_bsdnet_initialize_network ();

  #if defined(START_DEBUG_STUB)
    rtems_gdb_start( 10, NULL );
  #endif

  #if defined(USE_FTPD)
    printf( "Initializing FTPD\n" );
    rtems_initialize_ftpd();
  #endif

  #if defined(USE_GOAHEAD_HTTPD)
    printf( "Initializing GoAhead HTTPD\n" );
    status = rtems_initialize_webserver();
    if ( status )
      printf( "ERROR -- failed to initialize webserver\n" );

    traceSetHandler( quietTraceHandler );
  #endif

  #if defined(USE_SIMPLE_HTTPD)
    printf( "Initializing Simple HTTPD\n" );
    status = rtems_initialize_webserver(
      100,                             /* initial priority */
      48 * 1024,                       /* stack size */
      RTEMS_DEFAULT_MODES,             /* initial modes */
      RTEMS_DEFAULT_ATTRIBUTES,        /* attributes */
      NULL,                            /* init_callback */
      my_shttpd_addpages,              /* addpages_callback */
      "/",                             /* initial priority */
      80                               /* port to listen on */
    );
    if ( status )
      printf( "ERROR -- failed to initialize webserver\n" );

  #endif

  
  osmonweb_init( "/", 1 );
  osmonweb_init( "/", 2 );

  status = rtems_task_delete( RTEMS_SELF );
}
Пример #8
0
/*=========================================================================*\
| Function:                                                                 |
\*-------------------------------------------------------------------------*/
rtems_status_code osmonweb_init
(
/*-------------------------------------------------------------------------*\
| Purpose:                                                                  |
|   initialize osmonweb module                                              |
+---------------------------------------------------------------------------+
| Input Parameters:                                                         |
\*-------------------------------------------------------------------------*/
 const char *web_root_dir,   /* web root directory */
 int phase
)
/*-------------------------------------------------------------------------*\
| Return Value:                                                             |
|    <none>                                                                 |
\*=========================================================================*/
{
  char dir[512];
  int rc;

  if (phase == 1) {
    /*
     * init monitor as far as needed...
     */
    #if defined(USE_MONITOR)
      printf("Calling monitor_init\n");
      rtems_monitor_init(RTEMS_MONITOR_NOTASK);
      printf("Returned from monitor_init\n");
    #endif

    /*
     * untar graphics elements needed
     */
    getcwd(dir,sizeof(dir));
    printf("previous working directory was %s\n",dir);

    rc = chdir(web_root_dir);
    printf("chdir %s returned %d\n",web_root_dir,rc);

    rc = mkdir("./osmonweb",S_IRWXU | S_IRWXG | S_IRWXO);
    printf("mkdir(./osmonweb) returned %d\n",rc);
    rc = chdir("./osmonweb");
    printf("chdir(./osmonweb) returned %d\n",rc);

    printf("Calling UntarFromMemory\n");
    rc = Untar_FromMemory((void *)osmonweb_tar, osmonweb_tar_size);
    printf("UntarFromMemory returns %d\n",rc);
    rc = chdir(dir);
    printf("chdir(%s) returned %d\n",dir,rc);
  }
  if (phase == 2) {
    /*
     * try to get hostname
     */
    if (gethostname(osmonweb_hostname, sizeof(osmonweb_hostname)) < 0) {
      strcpy(osmonweb_hostname,"RTEMS Target");
    }
    /*
     * define form handler
     */
    #if defined(USE_GOAHEAD_HTTPD)
      websFormDefine(T("osmonweb"), osmonweb_form);
    #endif
  }
  return RTEMS_SUCCESSFUL;
}