mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-19 13:00:28 +00:00
Change sizes of pthread types for freebsd
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user