diff --git a/core/sys/unix/pthread_freebsd.odin b/core/sys/unix/pthread_freebsd.odin index 95719fadb..3a632b4b9 100644 --- a/core/sys/unix/pthread_freebsd.odin +++ b/core/sys/unix/pthread_freebsd.odin @@ -5,24 +5,21 @@ import "core:c"; pthread_t :: distinct u64; // pthread_t :: struct #align 16 { x: u64 }; -// NOTE(tetra): Got all the size constants from pthreadtypes-arch.h on my -// Linux machine. +PTHREAD_COND_T_SIZE :: 8; -PTHREAD_COND_T_SIZE :: 48; - -PTHREAD_MUTEXATTR_T_SIZE :: 4; -PTHREAD_CONDATTR_T_SIZE :: 4; +PTHREAD_MUTEXATTR_T_SIZE :: 8; +PTHREAD_CONDATTR_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 // on non-X86! when size_of(int) == 8 { - PTHREAD_ATTR_T_SIZE :: 56; - PTHREAD_MUTEX_T_SIZE :: 40; - PTHREAD_RWLOCK_T_SIZE :: 56; - PTHREAD_BARRIER_T_SIZE :: 32; -} else when size_of(int) == 4 { + PTHREAD_ATTR_T_SIZE :: 8; + PTHREAD_MUTEX_T_SIZE :: 8; + PTHREAD_RWLOCK_T_SIZE :: 8; + PTHREAD_BARRIER_T_SIZE :: 8; +} else when size_of(int) == 4 { // TODO PTHREAD_ATTR_T_SIZE :: 32; PTHREAD_MUTEX_T_SIZE :: 32; PTHREAD_RWLOCK_T_SIZE :: 44; @@ -82,6 +79,7 @@ sched_param :: struct { /*sem_t :: struct #align 16 { _: [SEM_T_SIZE] c.char, }*/ +SEM_T_SIZE :: 16; _usem :: struct { _has_waiters: u32, _count: u32, @@ -97,11 +95,11 @@ sem_t :: struct { _padding: u32, } -when size_of(int) == 8 { +/*when size_of(int) == 8 { SEM_T_SIZE :: 32; } else when size_of(int) == 4 { SEM_T_SIZE :: 16; -} +}*/ foreign import "system:pthread"