Merge branch 'devel' into araq-misc

This commit is contained in:
Andreas Rumpf 2018-08-16 01:22:21 +02:00
commit e4c759fbff
28 changed files with 286 additions and 71 deletions

View file

@ -59,6 +59,15 @@ elif defined(macosx) or defined(linux) or defined(freebsd) or
SIGSEGV = cint(11)
SIGTERM = cint(15)
SIGPIPE = cint(13)
elif defined(haiku):
const
SIGABRT = cint(6)
SIGFPE = cint(8)
SIGILL = cint(4)
SIGINT = cint(2)
SIGSEGV = cint(11)
SIGTERM = cint(15)
SIGPIPE = cint(7)
else:
when NoFakeVars:
{.error: "SIGABRT not ported to your platform".}
@ -74,6 +83,8 @@ else:
when defined(macosx):
const SIGBUS = cint(10)
elif defined(haiku):
const SIGBUS = cint(30)
else:
template SIGBUS: untyped = SIGSEGV

View file

@ -207,6 +207,9 @@ elif defined(posix):
# some arches like mips and alpha use different values
const MAP_ANONYMOUS = 0x20
const MAP_PRIVATE = 0x02 # Changes are private
elif defined(haiku):
const MAP_ANONYMOUS = 0x08
const MAP_PRIVATE = 0x02
else:
var
MAP_ANONYMOUS {.importc: "MAP_ANONYMOUS", header: "<sys/mman.h>".}: cint

View file

@ -162,10 +162,12 @@ elif defined(genode):
mainTls
else:
when not defined(macosx):
when not (defined(macosx) or defined(haiku)):
{.passL: "-pthread".}
{.passC: "-pthread".}
when not defined(haiku):
{.passC: "-pthread".}
const
schedh = "#define _GNU_SOURCE\n#include <sched.h>"
pthreadh = "#define _GNU_SOURCE\n#include <pthread.h>"
@ -714,3 +716,13 @@ elif defined(solaris):
if threadId == 0:
threadId = int(thr_self())
result = threadId
elif defined(haiku):
type thr_id {.importc: "thread_id", header: "<OS.h>".} = distinct int32
proc find_thread(name: cstring): thr_id {.importc, header: "<OS.h>".}
proc getThreadId*(): int =
## get the ID of the currently running thread.
if threadId == 0:
threadId = int(find_thread(nil))
result = threadId