static rtems_task gui_task(rtems_task_argument argument) { init_fb_mtk(sysconfig_get_autostart_mode() == SC_AUTOSTART_FILE); sysconfig_set_mtk_language(); sysconfig_set_mtk_wallpaper(); init_input(); input_add_callback(mtk_input); init_shortcuts(); init_osc(); init_messagebox(); init_performance(); init_renderer(); init_cp(); init_keyboard(); init_ir(); init_audio(); init_midi(); init_oscsettings(); init_dmxspy(); init_dmxdesk(); init_dmx(); init_videoin(); init_rsswall(); init_patcheditor(); init_monitor(); init_firstpatch(); init_filemanager(); #ifdef WITH_PDF init_pdfreader(); #endif init_sysettings(); init_about(); init_flash(); init_shutdown(); cp_autostart(); if(sysconfig_is_rescue()) messagebox("Rescue mode", "You have booted in rescue mode.\n" "Your system will function as usual, using back-up software.\n" "From there, you can update the main software or perform\nother actions to fix the problem.\n"); /* FIXME: work around "black screen" bug in MTK */ mtk_cmd(1, "screen.refresh()"); input_eventloop(); }
/****************************************************************************** * Function: main * * Description: * Connect to a remote time-of-day service and write the remote host's TOD to * stdout. * * Parameters: * The usual argc & argv parameters to a main() program. * * Return Value: * This function always returns zero. ******************************************************************************/ int main( int argc, char *argv[ ] ) { const char *host = DFLT_HOST; int opt; int sckt; unsigned int scopeId = if_nametoindex( DFLT_SCOPE_ID ); const char *service = DFLT_SERVICE; init_performance(); /* ** Determine the program name (w/o directory prefix). */ pgmName = (const char*) strrchr( argv[ 0 ], '/' ); pgmName = pgmName == NULL ? argv[ 0 ] : pgmName+1; /* ** Process command line options. */ opterr = 0; /* Turns off "invalid option" error messages. */ while ( ( opt = getopt( argc, argv, VALIDOPTS ) ) != -1 ) { switch ( opt ) { case 's': /* Scope identifier (IPv6 kluge). */ { scopeId = if_nametoindex( optarg ); if ( scopeId == 0 ) { fprintf( stderr, "%s: Unknown network interface (%s).\n", pgmName, optarg ); USAGE; } break; } case 'v': /* Verbose mode. */ { verbose = true; break; } default: { USAGE; } } /* End SWITCH on command option. */ } /* End WHILE processing command options. */ /* ** Process command arguments. At the end of the above loop, optind is the ** index of the first NON-option argv element. */ switch ( argc - optind ) { case 2: /* Both host & service are specified on the command line. */ { service = argv[ optind + 1 ]; /***** Fall through *****/ } case 1: /* Host is specified on the command line. */ { host = argv[ optind ]; /***** Fall through *****/ } case 0: /* Use default host & service. */ { break; } default: { USAGE; } } /* End SWITCH on number of command arguments. */ /* ** Open a connection to the indicated host/service. ** ** Note that if all three of the following conditions are met, then the ** scope identifier remains unresolved at this point. ** 1) The default network interface is unknown for some reason. ** 2) The -s option was not used on the command line. ** 3) An IPv6 "scoped address" was not specified for the hostname on the ** command line. ** If the above three conditions are met, then only an IPv4 socket can be ** opened (connect(2) fails without the scope ID properly set for IPv6 ** sockets). */ if ( ( sckt = openSckt( host, service, scopeId ) ) == INVALID_DESC ) { fprintf( stderr, "%s: Sorry... a connection could not be established.\n", pgmName ); exit( 1 ); } /* ** Get the remote time-of-day. */ tod( sckt ); /* ** Close the connection and terminate. */ (void) SYSCALL( "close", __LINE__, close( sckt ) ); return 0; } /* End main() */