nim-libnx/src/libnx/wrapper/lock.nim
2018-06-23 13:21:08 +09:00

33 lines
No EOL
1.7 KiB
Nim

import strutils
import ospaths
const headerlock = "/opt/devkitpro/devkitA64/aarch64-none-elf/include/sys/lock.h"
import libnx/wrapper/types
type
LOCK_T* = int32_t
DUlock_t* {.importc: "__lock_t", header: headerlock, bycopy.} = object
lock* {.importc: "lock".}: LOCK_T
thread_tag* {.importc: "thread_tag".}: uint32_t
counter* {.importc: "counter".}: uint32_t
LOCK_RECURSIVE_T* = DUlock_t
proc DUlibc_lock_init*(lock: ptr LOCK_T) {.cdecl, importc: "__libc_lock_init",
header: headerlock.}
proc DUlibc_lock_init_recursive*(lock: ptr LOCK_RECURSIVE_T) {.cdecl,
importc: "__libc_lock_init_recursive", header: headerlock.}
proc DUlibc_lock_close*(lock: ptr LOCK_T) {.cdecl, importc: "__libc_lock_close",
header: headerlock.}
proc DUlibc_lock_close_recursive*(lock: ptr LOCK_RECURSIVE_T) {.cdecl,
importc: "__libc_lock_close_recursive", header: headerlock.}
proc DUlibc_lock_acquire*(lock: ptr LOCK_T) {.cdecl,
importc: "__libc_lock_acquire", header: headerlock.}
proc DUlibc_lock_acquire_recursive*(lock: ptr LOCK_RECURSIVE_T) {.cdecl,
importc: "__libc_lock_acquire_recursive", header: headerlock.}
proc DUlibc_lock_release*(lock: ptr LOCK_T) {.cdecl,
importc: "__libc_lock_release", header: headerlock.}
proc DUlibc_lock_release_recursive*(lock: ptr LOCK_RECURSIVE_T) {.cdecl,
importc: "__libc_lock_release_recursive", header: headerlock.}
proc DUlibc_lock_try_acquire*(lock: ptr LOCK_T): cint {.cdecl,
importc: "__libc_lock_try_acquire", header: headerlock.}
proc DUlibc_lock_try_acquire_recursive*(lock: ptr LOCK_RECURSIVE_T): cint {.cdecl,
importc: "__libc_lock_try_acquire_recursive", header: headerlock.}