Files
Odin/vendor/sdl3/sdl3_atomic.odin
A1029384756 ed52393c7c [vendor/sdl3] update to sdl 3.4.0
[vendor/sdl3] updated lib files

[vendor/sdl3] typo

[vendor/sdl3] typo

[vendor/sdl3] spacing

[vendor/sdl3] whitespace

[vendor/sdl3] whitespace
2026-01-02 14:22:39 -05:00

44 lines
1.5 KiB
Odin

package sdl3
import "base:intrinsics"
import "core:c"
SpinLock :: distinct c.int
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
@(require_results)
TryLockSpinlock :: proc(lock: ^SpinLock) -> bool ---
LockSpinlock :: proc(lock: ^SpinLock) ---
UnlockSpinlock :: proc(lock: ^SpinLock) ---
MemoryBarrierReleaseFunction :: proc() ---
MemoryBarrierAcquireFunction :: proc() ---
}
MemoryBarrierRelease :: MemoryBarrierReleaseFunction
MemoryBarrierAcquire :: MemoryBarrierAcquireFunction
CPUPauseInstruction :: intrinsics.cpu_relax
AtomicInt :: distinct c.int
AtomicU32 :: distinct Uint32
@(default_calling_convention="c", link_prefix="SDL_", require_results)
foreign lib {
CompareAndSwapAtomicInt :: proc(a: ^AtomicInt, oldval, newval: c.int) -> bool ---
SetAtomicInt :: proc(a: ^AtomicInt, v: c.int) -> int ---
GetAtomicInt :: proc(a: ^AtomicInt) -> int ---
AddAtomicInt :: proc(a: ^AtomicInt, v: c.int) -> int ---
CompareAndSwapAtomicU32 :: proc(a: ^AtomicU32, oldval, newval: Uint32) -> bool ---
SetAtomicU32 :: proc(a: ^AtomicU32, v: Uint32) -> Uint32 ---
GetAtomicU32 :: proc(a: ^AtomicU32) -> Uint32 ---
AddAtomicU32 :: proc(a: ^AtomicU32) -> Uint32 ---
CompareAndSwapAtomicPointer :: proc(a: ^rawptr, oldval, newval: rawptr) -> bool ---
SetAtomicPointer :: proc(a: ^rawptr, v: rawptr) -> rawptr ---
GetAtomicPointer :: proc(a: ^rawptr) -> rawptr ---
}