Change sizes of pthread types for freebsd

This commit is contained in:
Christian Seibold
2020-09-14 16:48:55 -05:00
parent dd7b29e681
commit 65787381c1
+12 -14
View File
@@ -5,24 +5,21 @@ import "core:c";
pthread_t :: distinct u64; pthread_t :: distinct u64;
// pthread_t :: struct #align 16 { x: u64 }; // pthread_t :: struct #align 16 { x: u64 };
// NOTE(tetra): Got all the size constants from pthreadtypes-arch.h on my PTHREAD_COND_T_SIZE :: 8;
// Linux machine.
PTHREAD_COND_T_SIZE :: 48; PTHREAD_MUTEXATTR_T_SIZE :: 8;
PTHREAD_CONDATTR_T_SIZE :: 8;
PTHREAD_MUTEXATTR_T_SIZE :: 4;
PTHREAD_CONDATTR_T_SIZE :: 4;
PTHREAD_RWLOCKATTR_T_SIZE :: 8; PTHREAD_RWLOCKATTR_T_SIZE :: 8;
PTHREAD_BARRIERATTR_T_SIZE :: 4; PTHREAD_BARRIERATTR_T_SIZE :: 8;
// WARNING: The sizes of these things are different yet again // WARNING: The sizes of these things are different yet again
// on non-X86! // on non-X86!
when size_of(int) == 8 { when size_of(int) == 8 {
PTHREAD_ATTR_T_SIZE :: 56; PTHREAD_ATTR_T_SIZE :: 8;
PTHREAD_MUTEX_T_SIZE :: 40; PTHREAD_MUTEX_T_SIZE :: 8;
PTHREAD_RWLOCK_T_SIZE :: 56; PTHREAD_RWLOCK_T_SIZE :: 8;
PTHREAD_BARRIER_T_SIZE :: 32; PTHREAD_BARRIER_T_SIZE :: 8;
} else when size_of(int) == 4 { } else when size_of(int) == 4 { // TODO
PTHREAD_ATTR_T_SIZE :: 32; PTHREAD_ATTR_T_SIZE :: 32;
PTHREAD_MUTEX_T_SIZE :: 32; PTHREAD_MUTEX_T_SIZE :: 32;
PTHREAD_RWLOCK_T_SIZE :: 44; PTHREAD_RWLOCK_T_SIZE :: 44;
@@ -82,6 +79,7 @@ sched_param :: struct {
/*sem_t :: struct #align 16 { /*sem_t :: struct #align 16 {
_: [SEM_T_SIZE] c.char, _: [SEM_T_SIZE] c.char,
}*/ }*/
SEM_T_SIZE :: 16;
_usem :: struct { _usem :: struct {
_has_waiters: u32, _has_waiters: u32,
_count: u32, _count: u32,
@@ -97,11 +95,11 @@ sem_t :: struct {
_padding: u32, _padding: u32,
} }
when size_of(int) == 8 { /*when size_of(int) == 8 {
SEM_T_SIZE :: 32; SEM_T_SIZE :: 32;
} else when size_of(int) == 4 { } else when size_of(int) == 4 {
SEM_T_SIZE :: 16; SEM_T_SIZE :: 16;
} }*/
foreign import "system:pthread" foreign import "system:pthread"