commit 63854a157ade1a05332668e26dd148590aecb417 Author: David du Colombier <0intro@gmail.com> Date: Fri May 28 18:52:58 2021 +0200 sparc diff --git a/sys/src/ape/lib/mp/sparc/mkfile b/sys/src/ape/lib/mp/sparc/mkfile new file mode 100644 index 000000000..7c6d6ab3b --- /dev/null +++ b/sys/src/ape/lib/mp/sparc/mkfile @@ -0,0 +1,14 @@ +APE=/sys/src/ape +<$APE/config + +LIB=/$objtype/lib/ape/libmp.a + +OFILES= \ + +HFILES=/$objtype/include/u.h /sys/include/ape/mp.h ../../../../libmp/port/dat.h + +UPDATE=\ + mkfile\ + $HFILES\ + + +#include +#include +#include "threadimpl.h" + +/* first argument goes in a register; simplest just to ignore it */ +static void +launchersparc(int, void (*f)(void *arg), void *arg) +{ + (*f)(arg); + threadexits(nil); +} + +void +_threadinitstack(Thread *t, void (*f)(void*), void *arg) +{ + ulong *tos; + + tos = (ulong*)&t->stk[t->stksize&~7]; + *--tos = (ulong)arg; + *--tos = (ulong)f; + *--tos = 0; /* first arg to launchersparc */ + *--tos = 0; /* place to store return PC */ + t->sched[JMPBUFPC] = (ulong)launchersparc+JMPBUFDPC; + t->sched[JMPBUFSP] = (ulong)tos; +} +