1cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm/* libunwind - a platform-independent unwind library 27fbb8a9593f87a8e50964e61872eccc0afd9b0bfmostang.com!davidm Copyright (C) 2002-2005 Hewlett-Packard Co 3cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm Contributed by David Mosberger-Tang <davidm@hpl.hp.com> 4cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 5cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmThis file is part of libunwind. 6cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 7cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmPermission is hereby granted, free of charge, to any person obtaining 8cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidma copy of this software and associated documentation files (the 9cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm"Software"), to deal in the Software without restriction, including 10cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmwithout limitation the rights to use, copy, modify, merge, publish, 11cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmdistribute, sublicense, and/or sell copies of the Software, and to 12cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmpermit persons to whom the Software is furnished to do so, subject to 13cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmthe following conditions: 14cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 15cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmThe above copyright notice and this permission notice shall be 16cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmincluded in all copies or substantial portions of the Software. 17cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 18cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 21cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 22cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ 25cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 2607b01ad205162a93dab42722caaa4dbb7ba43b3fhp.com!davidm#include "libunwind_i.h" 27cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 287fbb8a9593f87a8e50964e61872eccc0afd9b0bfmostang.com!davidmHIDDEN intrmask_t unwi_full_mask; 29cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 30cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmstatic const char rcsid[] UNUSED = 31cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm "$Id: " PACKAGE_STRING " --- report bugs to " PACKAGE_BUGREPORT " $"; 32cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 33cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm#if UNW_DEBUG 34cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 35cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm/* Must not be declared HIDDEN/PROTECTED because libunwind.so and 36cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm libunwind-PLATFORM.so will both define their own copies of this 37cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm variable and we want to use only one or the other when both 38cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm libraries are loaded. */ 39cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmlong unwi_debug_level; 40cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 41cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm#endif /* UNW_DEBUG */ 42cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 43cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmHIDDEN void 44cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidmmi_init (void) 45cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm{ 46cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm#if UNW_DEBUG 47cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm const char *str = getenv ("UNW_DEBUG_LEVEL"); 48cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 49cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm if (str) 50cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm unwi_debug_level = atoi (str); 51cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 52cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm if (unwi_debug_level > 0) 53cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm { 54cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm setbuf (stdout, NULL); 55cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm setbuf (stderr, NULL); 56cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm } 57cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm#endif 58cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm 59db24e76397e4466a08e45104a0ac763b1e44b899mostang.com!davidm assert (sizeof (struct cursor) <= sizeof (unw_cursor_t)); 60cf69b9cb0d055a068ababeed3ba7b55744205706hp.com!davidm} 61