mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-19 04:50:29 +00:00
Add sdl3_atomic.odin
This commit is contained in:
6
vendor/sdl3/sdl3__foreign.odin
vendored
Normal file
6
vendor/sdl3/sdl3__foreign.odin
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
package sdl3
|
||||
|
||||
@(export)
|
||||
foreign import lib {
|
||||
"SDL3.lib"
|
||||
}
|
||||
2
vendor/sdl3/sdl3_asyncio.odin
vendored
2
vendor/sdl3/sdl3_asyncio.odin
vendored
@@ -29,7 +29,7 @@ AsyncIOOutcome :: struct {
|
||||
|
||||
AsyncIOQueue :: struct {}
|
||||
|
||||
@(default_calling_convention="c", link_prefix="SDL_")
|
||||
@(default_calling_convention="c", link_prefix="SDL_", require_results)
|
||||
foreign lib {
|
||||
AsyncIOFromFile :: proc(file: cstring, mode: cstring) -> ^AsyncIO ---
|
||||
GetAsyncIOSize :: proc(asyncio: ^AsyncIO) -> Sint64 ---
|
||||
|
||||
42
vendor/sdl3/sdl3_atomic.odin
vendored
Normal file
42
vendor/sdl3/sdl3_atomic.odin
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
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 ---
|
||||
CompareAndSwapAtomicPointer :: proc(a: ^rawptr, oldval, newval: rawptr) -> bool ---
|
||||
SetAtomicPointer :: proc(a: ^rawptr, v: rawptr) -> rawptr ---
|
||||
GetAtomicPointer :: proc(a: ^rawptr) -> rawptr ---
|
||||
}
|
||||
5
vendor/sdl3/sdl3_stdinc.odin
vendored
5
vendor/sdl3/sdl3_stdinc.odin
vendored
@@ -7,11 +7,6 @@ import "core:c"
|
||||
#assert(size_of(c.int) == size_of(b32))
|
||||
#assert(size_of(c.int) == size_of(rune))
|
||||
|
||||
foreign import lib_ {
|
||||
"SDL3.lib"
|
||||
}
|
||||
lib :: lib_
|
||||
|
||||
|
||||
SIZE_MAX :: 1<<(8*size_of(uint)) - 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user