(linenum→info "unix/slp.c:2238")

glibc/2.7/nptl/alloca_cutoff.c

    1: /* Determine whether block of given size can be allocated on the stack or not.
    2:    Copyright (C) 2002 Free Software Foundation, Inc.
    3:    This file is part of the GNU C Library.
    4: 
    5:    The GNU C Library is free software; you can redistribute it and/or
    6:    modify it under the terms of the GNU Lesser General Public License as
    7:    published by the Free Software Foundation; either version 2.1 of the
    8:    License, or (at your option) any later version.
    9: 
   10:    The GNU C Library is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13:    Lesser General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU Lesser General Public
   16:    License along with the GNU C Library; see the file COPYING.LIB.  If not,
   17:    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   18:    Boston, MA 02111-1307, USA.  */
   19: 
   20: #include <alloca.h>
   21: #include <stdlib.h>
   22: #include <sys/param.h>
   23: #include <pthreadP.h>
   24: 
   25: 
   26: int
   27: __libc_alloca_cutoff (size_t size)
   28: {
   29:   return size <= (MIN (__MAX_ALLOCA_CUTOFF,
   30:                        THREAD_GETMEM (THREAD_SELF, stackblock_size) / 4
   31:                        /* The main thread, before the thread library is
   32:                           initialized, has zero in the stackblock_size
   33:                           element.  Since it is the main thread we can
   34:                           assume the maximum available stack space.  */
   35:                        ?: __MAX_ALLOCA_CUTOFF * 4));
   36: }
Syntax (Markdown)