mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +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 :: 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"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user