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); }
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 ); }
/* * 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); }
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 ); }
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 ); }
/* * 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 */ }
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 ); }
/*=========================================================================*\ | 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; }