extern void init_rng(void)
{
  /* if (!rngctxCurrent) { */
    rngctxCurrent = InitRNG(NULL, NULL, TRUE, rngCurrent);
    rcRollout.nSeed ^= 0x792A584B;
    rngctxRollout = InitRNG(&rcRollout.nSeed, NULL, TRUE, rcRollout.rngRollout);
  /* } */
}
예제 #2
0
MojErr ActivityManagerApp::open()
{
	LOG_AM_TRACE("Entering function %s", __FUNCTION__);
	LOG_AM_DEBUG("%s initializing", name().data());

	InitRNG();

    MojErr err = Base::open();
    MojErrCheck(err);

	// Bring the Activity Manager client online
    err = m_client.open(ClientName);
    MojErrCheck(err);
    err = m_client.attach(m_reactor.impl());
    MojErrCheck(err);

	try {
		m_resourceManager = boost::make_shared<MasterResourceManager>();
#ifndef WEBOS_TARGET_MACHINE_IMPL_SIMULATOR
		m_controlGroupManager = boost::make_shared<ControlGroupManager>(
			"/sys/fs/cgroup/cpuset", m_resourceManager);
		m_resourceManager->SetManager("cpu", m_controlGroupManager);
		m_busProxy = boost::make_shared<LunaBusProxy>(m_controlGroupManager,
			&m_client);
#endif

		m_am = boost::make_shared<ActivityManager>(m_resourceManager);

		m_requirementManager = boost::make_shared<MasterRequirementManager>();
		boost::shared_ptr<DefaultRequirementManager> defaultRequirementManager =
			boost::make_shared<DefaultRequirementManager>();
		m_requirementManager->AddManager(defaultRequirementManager);

#ifdef WEBOS_TARGET_MACHINE_IMPL_SIMULATOR
		m_scheduler = boost::make_shared<GlibScheduler>();
		m_scheduler->SetLocalOffset(original_timezone_offset);
#else
		m_scheduler = boost::make_shared<PowerdScheduler>(&m_client);
#endif

#ifdef WEBOS_TARGET_MACHINE_IMPL_SIMULATOR
		m_powerManager = boost::make_shared<NoopPowerManager>();
#else
		m_powerManager = boost::make_shared<PowerdProxy>(&m_client);
#endif
		m_requirementManager->AddManager(m_powerManager);

		m_triggerManager = boost::make_shared<MojoTriggerManager>(&m_service);
		m_json = boost::make_shared<MojoJsonConverter>(&m_service, m_am,
			m_scheduler, m_triggerManager, m_requirementManager,
			m_powerManager);
		m_db = boost::make_shared<MojoDBProxy>(this, &m_client, m_am, m_json);

#ifndef WEBOS_TARGET_MACHINE_IMPL_SIMULATOR
		boost::shared_ptr<ConnectionManagerProxy> cmp =
			boost::make_shared<ConnectionManagerProxy>(&m_client);
		m_requirementManager->AddManager(cmp);

		boost::shared_ptr<SystemManagerProxy> smp =
			boost::make_shared<SystemManagerProxy>(&m_client, m_am);
		m_requirementManager->AddManager(smp);

               if(read_modem_present())
               {
                   boost::shared_ptr<TelephonyProxy> tp =
                   boost::make_shared<TelephonyProxy>(&m_client);
                   m_requirementManager->AddManager(tp);
               }
#endif
	} catch (...) {
		return MojErrNoMem;
	}

	LOG_AM_DEBUG("%s initialized", name().data());

	/* System is initialized.  All object managers are prepared to instantiate
	 * their objects as Activities are loaded from the database.  Begin
	 * deserializing persistent Activities. */
	m_db->LoadActivities();

	return MojErrNone;
}