1 /* 2 * (c) 2008-2009 Alexander Warg <warg@os.inf.tu-dresden.de> 3 * economic rights: Technische Universität Dresden (Germany) 4 * This file is part of TUD:OS and distributed under the terms of the 5 * GNU Lesser General Public License 2.1. 6 * Please see the COPYING-LGPL-2.1 file for details. 7 */ 8 class Start_stop 9 { 10 public: 11 Start_stop() throw(); 12 ~Start_stop() throw(); 13 }; 14 15 static unsigned long const __attribute__((section(".eh_frame_terminator"), used)) __eh_frame_terminator = 0; 16 17 extern "C" char __eh_frame_start__[]; 18 extern "C" void __register_frame (const void *begin) throw(); 19 extern "C" void __deregister_frame (const void *begin) throw(); 20 Start_stop()21Start_stop::Start_stop() throw() 22 { 23 __register_frame(__eh_frame_start__); 24 } 25 ~Start_stop()26Start_stop::~Start_stop() throw() 27 { 28 __deregister_frame(__eh_frame_start__); 29 } 30 31 static Start_stop __start__stop__ __attribute__((init_priority(2005))); 32 33