1*0258f566SSiva Chandra Reddy //===-- Implementation of the pthread_attr_setguardsize -----------------===// 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_setguardsize.h" 10*0258f566SSiva Chandra Reddy 11*0258f566SSiva Chandra Reddy #include "src/__support/common.h" 12*0258f566SSiva Chandra Reddy 13*0258f566SSiva Chandra Reddy #include <errno.h> 14*0258f566SSiva Chandra Reddy #include <linux/param.h> // For EXEC_PAGESIZE. 15*0258f566SSiva Chandra Reddy #include <pthread.h> 16*0258f566SSiva Chandra Reddy 17*0258f566SSiva Chandra Reddy namespace __llvm_libc { 18*0258f566SSiva Chandra Reddy 19*0258f566SSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, pthread_attr_setguardsize, 20*0258f566SSiva Chandra Reddy (pthread_attr_t *__restrict attr, size_t guardsize)) { 21*0258f566SSiva Chandra Reddy if (guardsize % EXEC_PAGESIZE != 0) 22*0258f566SSiva Chandra Reddy return EINVAL; 23*0258f566SSiva Chandra Reddy attr->__guardsize = guardsize; 24*0258f566SSiva Chandra Reddy return 0; 25*0258f566SSiva Chandra Reddy } 26*0258f566SSiva Chandra Reddy 27*0258f566SSiva Chandra Reddy } // namespace __llvm_libc 28