Blame sysdeps/x86_64/nptl/pthreaddef.h

Packit Service 82fcde
/* Copyright (C) 2002-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
   modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
   License as published by the Free Software Foundation; either
Packit Service 82fcde
   version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
   Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
   License along with the GNU C Library; if not, see
Packit Service 82fcde
   <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
/* Default stack size.  */
Packit Service 82fcde
#define ARCH_STACK_DEFAULT_SIZE	(2 * 1024 * 1024)
Packit Service 82fcde
Packit Service 82fcde
/* Required stack pointer alignment at beginning.  SSE requires 16
Packit Service 82fcde
   bytes.  */
Packit Service 82fcde
#define STACK_ALIGN		16
Packit Service 82fcde
Packit Service 82fcde
/* Minimal stack size after allocating thread descriptor and guard size.  */
Packit Service 82fcde
#define MINIMAL_REST_STACK	2048
Packit Service 82fcde
Packit Service 82fcde
/* Alignment requirement for TCB.
Packit Service 82fcde
Packit Service 82fcde
   We need to store post-AVX vector registers in the TCB and we want the
Packit Service 82fcde
   storage to be aligned to at least 32 bytes.
Packit Service 82fcde
Packit Service 82fcde
   Some processors such as Intel Atom pay a big penalty on every
Packit Service 82fcde
   access using a segment override if that segment's base is not
Packit Service 82fcde
   aligned to the size of a cache line.  (See Intel 64 and IA-32
Packit Service 82fcde
   Architectures Optimization Reference Manual, section 13.3.3.3,
Packit Service 82fcde
   "Segment Base".)  On such machines, a cache line is 64 bytes.  */
Packit Service 82fcde
#define TCB_ALIGNMENT		64
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* Location of current stack frame.  The frame pointer is not usable.  */
Packit Service 82fcde
#define CURRENT_STACK_FRAME \
Packit Service 82fcde
  ({ register char *frame __asm__("rsp"); frame; })