11debfc3dSmrg /* Library support for -fsplit-stack. */ 2*8feb0f0bSmrg /* Copyright (C) 2009-2020 Free Software Foundation, Inc. 31debfc3dSmrg Contributed by Ian Lance Taylor <iant@google.com>. 41debfc3dSmrg 51debfc3dSmrg This file is part of GCC. 61debfc3dSmrg 71debfc3dSmrg GCC is free software; you can redistribute it and/or modify it under 81debfc3dSmrg the terms of the GNU General Public License as published by the Free 91debfc3dSmrg Software Foundation; either version 3, or (at your option) any later 101debfc3dSmrg version. 111debfc3dSmrg 121debfc3dSmrg GCC is distributed in the hope that it will be useful, but WITHOUT ANY 131debfc3dSmrg WARRANTY; without even the implied warranty of MERCHANTABILITY or 141debfc3dSmrg FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 151debfc3dSmrg for more details. 161debfc3dSmrg 171debfc3dSmrg Under Section 7 of GPL version 3, you are granted additional 181debfc3dSmrg permissions described in the GCC Runtime Library Exception, version 191debfc3dSmrg 3.1, as published by the Free Software Foundation. 201debfc3dSmrg 211debfc3dSmrg You should have received a copy of the GNU General Public License and 221debfc3dSmrg a copy of the GCC Runtime Library Exception along with this program; 231debfc3dSmrg see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 241debfc3dSmrg <http://www.gnu.org/licenses/>. */ 251debfc3dSmrg 261debfc3dSmrg /* This is a libgcc internal header file for functions shared between 271debfc3dSmrg generic-morestack.c and generic-morestack-thread.c. The latter 281debfc3dSmrg file is only used when linking with the pthread library. */ 291debfc3dSmrg 301debfc3dSmrg /* The stack segment structure, defined in generic-morestack.c. */ 311debfc3dSmrg 321debfc3dSmrg struct stack_segment; 331debfc3dSmrg 341debfc3dSmrg /* The list of stack segments for this thread. */ 351debfc3dSmrg 361debfc3dSmrg extern __thread struct stack_segment *__morestack_segments; 371debfc3dSmrg 381debfc3dSmrg /* Print the string MSG/LEN, the errno number ERR, and a newline on 391debfc3dSmrg stderr, without using printf. Then crash. */ 401debfc3dSmrg 411debfc3dSmrg extern void __morestack_fail (const char *msg, size_t len, int err) 421debfc3dSmrg __attribute__ ((noreturn, visibility ("hidden"))); 431debfc3dSmrg 441debfc3dSmrg /* Release stack segments. */ 451debfc3dSmrg 461debfc3dSmrg extern struct dynamic_allocation_blocks * 471debfc3dSmrg __morestack_release_segments (struct stack_segment **, int) 481debfc3dSmrg __attribute__ ((visibility ("hidden"))); 491debfc3dSmrg 501debfc3dSmrg /* Store the stack information in a processor dependent manner. */ 511debfc3dSmrg 521debfc3dSmrg extern void __stack_split_initialize (void) 531debfc3dSmrg __attribute__ ((visibility ("hidden"))); 54