blob: c922b49fd0c8109b346cab60048c92099b9c0f4f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
/*
* OpenBSD/sparc machine-dependent thread macros
*
* $OpenBSD: uthread_machdep.h,v 1.2 1999/01/17 23:49:49 d Exp $
*/
#include <sys/signal.h>
/* save the floating point state of a thread */
#define _thread_machdep_save_float_state(thr) \
{ \
/* XXX tdb */ \
}
/* restore the floating point state of a thread */
#define _thread_machdep_restore_float_state(thr) \
{ \
/* XXX tdb */ \
}
/* initialise the jmpbuf stack frame so it continues from entry */
#define _thread_machdep_thread_create(thr, entry, pattr) \
{ \
/* entry */ \
(thr)->saved_jmp_buf[1] = (long) entry; \
/* stack */ \
(thr)->saved_jmp_buf[0] = (long) (thr)->stack \
+ (pattr)->stacksize_attr \
- sizeof(double); \
}
/*
* XXX high chance of longjmp botch (see libc/arch/sparc/gen/_setjmp.S)
* because it uses the frame pointer to pop off frames.. we don't want
* that.. what to do? fudge %fp? do our own setjmp?
*/
#define _thread_machdep_longjmp(a,v) _longjmp(a,v)
#define _thread_machdep_setjmp(a) _setjmp(a)
typedef jmp_buf _machdep_jmp_buf;
struct _machdep_struct {
/* char saved_fp[???]; */
int dummy;
};
|