debloat src/thread tree but putting lots of junk in one file
[musl] / src / thread / pthread_attr_get.c
1 #include "pthread_impl.h"
2
3 int pthread_attr_getdetachstate(const pthread_attr_t *a, int *state)
4 {
5         *state = a->_a_detach;
6         return 0;
7 }
8 int pthread_attr_getguardsize(const pthread_attr_t *restrict a, size_t *restrict size)
9 {
10         *size = a->_a_guardsize + DEFAULT_GUARD_SIZE;
11         return 0;
12 }
13
14 int pthread_attr_getinheritsched(const pthread_attr_t *a, int *inherit)
15 {
16         *inherit = a->_a_sched;
17         return 0;
18 }
19
20 int pthread_attr_getschedparam(const pthread_attr_t *restrict a, struct sched_param *restrict param)
21 {
22         param->sched_priority = a->_a_prio;
23         return 0;
24 }
25
26 int pthread_attr_getschedpolicy(const pthread_attr_t *a, int *policy)
27 {
28         *policy = a->_a_policy;
29         return 0;
30 }
31
32 int pthread_attr_getscope(const pthread_attr_t *restrict a, int *restrict scope)
33 {
34         *scope = PTHREAD_SCOPE_SYSTEM;
35         return 0;
36 }
37
38 int pthread_attr_getstack(const pthread_attr_t *restrict a, void **restrict addr, size_t *restrict size)
39 {
40         if (!a->_a_stackaddr)
41                 return EINVAL;
42         *size = a->_a_stacksize + DEFAULT_STACK_SIZE;
43         *addr = (void *)(a->_a_stackaddr - *size);
44         return 0;
45 }
46
47 int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict size)
48 {
49         *size = a->_a_stacksize + DEFAULT_STACK_SIZE;
50         return 0;
51 }
52
53 int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
54 {
55         *pshared = !!*a;
56         return 0;
57 }
58
59 int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
60 {
61         *clk = *a & 0x7fffffff;
62         return 0;
63 }
64
65 int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
66 {
67         *pshared = *a>>31;
68         return 0;
69 }
70
71 int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
72 {
73         *pshared = *a>>31;
74         return 0;
75 }
76
77 int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
78 {
79         *robust = *a / 4U % 2;
80         return 0;
81 }
82
83 int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
84 {
85         *type = *a & 3;
86         return 0;
87 }
88
89 int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
90 {
91         *pshared = *(int *)a;
92         return 0;
93 }