void Timed::init_device_mode() { current_mode = "(unknown)" ; #if HAVE_DSME dsme_mode_handler = new dsme_mode_t ; QObject::connect(dsme_mode_handler, SIGNAL(mode_is_changing()), this, SLOT(dsme_mode_is_changing())) ; QObject::connect(dsme_mode_handler, SIGNAL(mode_reported(const string &)), this, SLOT(dsme_mode_reported(const string &))) ; #if F_ACTING_DEAD if (scratchbox_mode) { int is_act_dead = is_act_dead_by_status_files() ; bool user_mode = is_act_dead==0, mode_known = is_act_dead==0 or is_act_dead==1 ; if (not mode_known) log_abort("can't detect running mode") ; device_mode_reached(user_mode) ; } else #endif { dsme_mode_handler->init_request() ; } #endif const char *startup_path="/com/nokia/startup/signal", *startup_iface="com.nokia.startup.signal" ; const char *desktop_visible_slot = SLOT(harmattan_desktop_visible()) ; const char *init_done_slot = SLOT(harmattan_init_done(int)) ; bool res1 = QDBusConnection::systemBus().connect("", startup_path, startup_iface, "desktop_visible", this, desktop_visible_slot) ; bool res2 = QDBusConnection::systemBus().connect("", startup_path, startup_iface, "init_done", this, init_done_slot) ; if (not res1) log_critical("can't connect to 'desktop_visible' signal") ; if (not res2) log_critical("can't connect to 'init_done' signal") ; }
static bool init_act_dead_v2(bool use_status_files) { string s_dsme_mode ; int dsme_mode = is_act_dead_by_dsme(s_dsme_mode) ; if (0<=dsme_mode) // got a valid answer: user or act_dead return dsme_mode ; if (use_status_files) { int sb_mode = is_act_dead_by_status_files() ; if (0<=sb_mode) return sb_mode ; } // oops, we don't know which mode we're running in; let's die // how to die? it depends on dsme mode log_critical("can't decide in which mode to run (dsme mode: '%s')", s_dsme_mode.c_str()) ; if (s_dsme_mode=="SHUTDOWN" or s_dsme_mode=="REBOOT") { log_critical("go to sleep, waiting to be killed, bye...") ; while(true) sleep(239239239) ; } log_critical("will be terminated in two seconds, bye...") ; sleep(2) ; log_abort("aborting") ; }
abstract_state_t *machine_t::state_by_name(const string &name) { for (set<abstract_state_t*>::iterator it=states.begin(); it!=states.end(); ++it) if ((*it)->s_name==name) return *it ; log_abort("invalid state name '%s'", name.c_str()) ; }
gdk_return log_abort_wrap(logger *L ) { logger *l = *(logger**)L; if (l && log_abort(l) == LOG_OK) return GDK_SUCCEED; return GDK_FAIL; }
/** * Log fata error. * * This routine does not return. */ void gl_error(const char *domain, const char *format, ...) { va_list args; va_start(args, format); gl_logv(domain, G_LOG_LEVEL_ERROR | G_LOG_FLAG_FATAL, format, args); va_end(args); log_abort(); }
static void os_restore(void) { #if defined(USE_KEYBOARD_SVGALIB) || defined(USE_KEYBOARD_SDL) || defined(USE_KEYBOARD_RAW) || defined(USE_KEYBOARD_EVENT) log_std(("os: keyb_abort\n")); { extern void keyb_abort(void); keyb_abort(); } #endif #if defined(USE_MOUSE_SVGALIB) || defined(USE_MOUSE_SDL) || defined(USE_MOUSE_RAW) || defined(USE_MOUSE_EVENT) log_std(("os: mouseb_abort\n")); { extern void mouseb_abort(void); mouseb_abort(); } #endif #if defined(USE_VIDEO_SVGALIB) || defined(USE_VIDEO_FB) || defined(USE_VIDEO_X) || defined(USE_VIDEO_SDL) log_std(("os: adv_video_abort\n")); { extern void adv_video_abort(void); adv_video_abort(); } #endif #if defined(USE_SOUND_OSS) || defined(USE_SOUND_SDL) || defined(USE_SOUND_ALSA) log_std(("os: sound_abort\n")); { extern void soundb_abort(void); soundb_abort(); } #endif target_mode_reset(); if (OS.term_active) { if (tcsetattr(fileno(stdin), TCSAFLUSH, &OS.term) != 0) { /* ignore error */ log_std(("os: tcsetattr(TCSAFLUSH) failed\n")); } } log_std(("os: close log\n")); log_abort(); }