1234567891011121314151617181920212223242526272829 |
- package darwin
- foreign import pthread "system:System.framework"
- import "core:c"
- // NOTE(tetra): Unclear whether these should be aligned 16 or not.
- // However all other sync primitives are aligned for robustness.
- // I cannot currently align these though.
- // See core/sys/unix/pthread_linux.odin/pthread_t.
- task_t :: distinct u64
- semaphore_t :: distinct u64
- kern_return_t :: distinct u64
- thread_act_t :: distinct u64
- @(default_calling_convention="c")
- foreign pthread {
- mach_task_self :: proc() -> task_t ---
- semaphore_create :: proc(task: task_t, semaphore: ^semaphore_t, policy, value: c.int) -> kern_return_t ---
- semaphore_destroy :: proc(task: task_t, semaphore: semaphore_t) -> kern_return_t ---
- semaphore_signal :: proc(semaphore: semaphore_t) -> kern_return_t ---
- semaphore_signal_all :: proc(semaphore: semaphore_t) -> kern_return_t ---
- semaphore_signal_thread :: proc(semaphore: semaphore_t, thread: thread_act_t) -> kern_return_t ---
-
- semaphore_wait :: proc(semaphore: semaphore_t) -> kern_return_t ---
- }
|