int main (int argc, const char **argv) { VCHIQ_INSTANCE_T vchiq_instance; int success = -1; char response[ 128 ]; if (!is_filed_running()) { printf("vcfiled not running\n"); exit(-1); } vcos_init(); vcos_set_args(argc, argv); if (vchiq_initialise(&vchiq_instance) != VCHIQ_SUCCESS) { printf("* failed to open vchiq instance\n"); return -1; } // initialise the OS abstraction layer os_init(); vcos_log("vchi_initialise"); success = vchi_initialise( &global_initialise_instance); assert(success == 0); vchiq_instance = (VCHIQ_INSTANCE_T)global_initialise_instance; global_connection = vchi_create_connection(single_get_func_table(), vchi_mphi_message_driver_func_table()); vcos_log("vchi_connect"); vchi_connect(&global_connection, 1, global_initialise_instance); vc_vchi_gencmd_init (global_initialise_instance, &global_connection, 1); vc_vchi_dispmanx_init (global_initialise_instance, &global_connection, 1); vc_vchi_tv_init (global_initialise_instance, &global_connection, 1); vc_vchi_cec_init (global_initialise_instance, &global_connection, 1); vc_vchi_bufman_init (global_initialise_instance, &global_connection, 1); if ( success == 0 ) { success = vc_gencmd( response, sizeof(response), "set_vll_dir /sd/vlls" ); vcos_assert( success == 0 ); } vcos_log("VMCS services initialized."); message_queue_init (); host_app_message_handler (PLATFORM_MSG_INIT, 0, 0); dispatch_messages (); vcos_deinit (); return 0; }
int main(int argc, char *const *argv) { VCHIQ_INSTANCE_T vchiq_instance; int success; progname = argv[0]; const char *sep = strrchr(progname, '/'); if (sep) progname = sep+1; parse_args(argc, argv); if (!foreground) { log_stderr = 0; // must log to syslog if we're a daemon daemonize(); } vcfile_lock(); vcos_init(); if (vchiq_initialise(&vchiq_instance) != VCHIQ_SUCCESS) { logmsg(LOG_ERR, "%s: failed to open vchiq instance\n", argv[0]); return -1; } // initialise the OS abstraction layer os_init(); success = vchi_initialise( &global_initialise_instance); assert(success == 0); vchiq_instance = (VCHIQ_INSTANCE_T)global_initialise_instance; global_connection = vchi_create_connection(single_get_func_table(), vchi_mphi_message_driver_func_table()); vchi_connect(&global_connection, 1, global_initialise_instance); vc_vchi_filesys_init (global_initialise_instance, &global_connection, 1); for (;;) { sleep(INT_MAX); } vcos_deinit (); return 0; }
void vcos_dtor(void) { vcos_deinit(); }