Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:22

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup POSIX_PTHREADS Private Threads
0007  *
0008  * @brief Private Support Information for POSIX Threads
0009  */
0010 
0011 /*
0012  *  COPYRIGHT (c) 1989-2014.
0013  *  On-Line Applications Research Corporation (OAR).
0014  *
0015  * Redistribution and use in source and binary forms, with or without
0016  * modification, are permitted provided that the following conditions
0017  * are met:
0018  * 1. Redistributions of source code must retain the above copyright
0019  *    notice, this list of conditions and the following disclaimer.
0020  * 2. Redistributions in binary form must reproduce the above copyright
0021  *    notice, this list of conditions and the following disclaimer in the
0022  *    documentation and/or other materials provided with the distribution.
0023  *
0024  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0025  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0026  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0027  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0028  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0029  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0030  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0031  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0032  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0033  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0034  * POSSIBILITY OF SUCH DAMAGE.
0035  */
0036 
0037 #ifdef HAVE_CONFIG_H
0038 #include "config.h"
0039 #endif
0040 
0041 #include <rtems/posix/pthreadattrimpl.h>
0042 
0043 /*
0044  *  The default pthreads attributes structure.
0045  *
0046  *  NOTE: Be careful .. if the default attribute set changes,
0047  *        _POSIX_Threads_Initialize_user_threads will need to be examined.
0048  */
0049 const pthread_attr_t _POSIX_Threads_Default_attributes = {
0050   .is_initialized  = true,                       /* is_initialized */
0051   .stackaddr       = NULL,                       /* stackaddr */
0052   .stacksize       = 0,                          /* stacksize -- will be adjusted to minimum */
0053   .contentionscope = PTHREAD_SCOPE_PROCESS,      /* contentionscope */
0054   .inheritsched    = PTHREAD_INHERIT_SCHED,      /* inheritsched */
0055   .schedpolicy     = SCHED_FIFO,                 /* schedpolicy */
0056   .schedparam      =
0057   {                           /* schedparam */
0058     2,                        /* sched_priority */
0059     #if defined(_POSIX_SPORADIC_SERVER) || \
0060         defined(_POSIX_THREAD_SPORADIC_SERVER)
0061       0,                        /* sched_ss_low_priority */
0062       { 0L, 0 },                /* sched_ss_repl_period */
0063       { 0L, 0 },                /* sched_ss_init_budget */
0064       0                         /* sched_ss_max_repl */
0065     #endif
0066   },
0067 
0068   #if HAVE_DECL_PTHREAD_ATTR_SETGUARDSIZE
0069     .guardsize = 0,                            /* guardsize */
0070   #endif
0071   #if defined(_POSIX_THREAD_CPUTIME)
0072     .cputime_clock_allowed = 1,                        /* cputime_clock_allowed */
0073   #endif
0074   .detachstate             = PTHREAD_CREATE_JOINABLE,    /* detachstate */
0075   .affinitysetsize         =
0076     sizeof( _POSIX_Threads_Default_attributes.affinitysetpreallocated ),
0077   .affinityset             = RTEMS_DECONST(
0078     cpu_set_t *,
0079     &_POSIX_Threads_Default_attributes.affinitysetpreallocated
0080   ),
0081   .affinitysetpreallocated = { { -1L } }
0082 };