/* * \brief Lay back and relax * \author Norman Feske * \author Christian Helmuth * \date 2006-07-19 */ /* * Copyright (C) 2006-2017 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU Affero General Public License version 3. */ /* Genode includes */ #include /* base-internal includes */ #include /* NOVA includes */ #include #include void Genode::sleep_forever() { using namespace Nova; Thread *myself = Thread::myself(); addr_t sem = myself ? (addr_t)SM_SEL_EC + myself->native_thread().exc_pt_sel : (addr_t)SM_SEL_EC; while (1) { if (Nova::sm_ctrl(sem, SEMAPHORE_DOWNZERO)) nova_die(); } }