13019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm/* libunwind - a platform-independent unwind library
25724bee8c27219ac277ea76d75dc70fa830eaac0hp.com!davidm   Copyright (C) 2001-2002, 2005 Hewlett-Packard Co
33019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
43019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
53019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmThis file is part of libunwind.
63019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
73019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmPermission is hereby granted, free of charge, to any person obtaining
83019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidma copy of this software and associated documentation files (the
93019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm"Software"), to deal in the Software without restriction, including
103019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmwithout limitation the rights to use, copy, modify, merge, publish,
113019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmdistribute, sublicense, and/or sell copies of the Software, and to
123019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmpermit persons to whom the Software is furnished to do so, subject to
133019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmthe following conditions:
143019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
153019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmThe above copyright notice and this permission notice shall be
163019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmincluded in all copies or substantial portions of the Software.
173019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
183019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
193019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
203019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
213019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
223019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
233019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
243019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
253019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
265724bee8c27219ac277ea76d75dc70fa830eaac0hp.com!davidm#include "libunwind_i.h"
273019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
28aebba1f8a7dee9b9ae3e70128ad48de69ca90b15Tommi RantalaHIDDEN define_lock (_U_dyn_info_list_lock);
293019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
303019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidmvoid
313019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm_U_dyn_register (unw_dyn_info_t *di)
323019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm{
333019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm  mutex_lock (&_U_dyn_info_list_lock);
343019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm  {
353019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm    ++_U_dyn_info_list.generation;
363019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm
373019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm    di->next = _U_dyn_info_list.first;
383019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm    di->prev = NULL;
393019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm    if (di->next)
403019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm	    di->next->prev = di;
413019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm    _U_dyn_info_list.first = di;
423019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm  }
433019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm  mutex_unlock (&_U_dyn_info_list_lock);
443019e19bd70fa345c24eb1158676f4d066ee4f62hp.com!davidm}
45