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