1*0258f566SSiva Chandra Reddy //===-- Implementation of the pthread_attr_init ---------------------------===//
2*0258f566SSiva Chandra Reddy //
3*0258f566SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0258f566SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information.
5*0258f566SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0258f566SSiva Chandra Reddy //
7*0258f566SSiva Chandra Reddy //===----------------------------------------------------------------------===//
8*0258f566SSiva Chandra Reddy 
9*0258f566SSiva Chandra Reddy #include "pthread_attr_init.h"
10*0258f566SSiva Chandra Reddy 
11*0258f566SSiva Chandra Reddy #include "src/__support/common.h"
12*0258f566SSiva Chandra Reddy 
13*0258f566SSiva Chandra Reddy #include <linux/param.h> // For EXEC_PAGESIZE.
14*0258f566SSiva Chandra Reddy #include <pthread.h>
15*0258f566SSiva Chandra Reddy 
16*0258f566SSiva Chandra Reddy namespace __llvm_libc {
17*0258f566SSiva Chandra Reddy 
18*0258f566SSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, pthread_attr_init, (pthread_attr_t * attr)) {
19*0258f566SSiva Chandra Reddy   *attr = pthread_attr_t{
20*0258f566SSiva Chandra Reddy       false,         // Not detached
21*0258f566SSiva Chandra Reddy       nullptr,       // Let the thread manage its stack
22*0258f566SSiva Chandra Reddy       1 << 16,       // 64KB stack size
23*0258f566SSiva Chandra Reddy       EXEC_PAGESIZE, // Default page size for the guard size.
24*0258f566SSiva Chandra Reddy   };
25*0258f566SSiva Chandra Reddy   return 0;
26*0258f566SSiva Chandra Reddy }
27*0258f566SSiva Chandra Reddy 
28*0258f566SSiva Chandra Reddy } // namespace __llvm_libc
29