blob: b169fd7e0bf9b390be51ea503ffdbf1aa3a75788 (
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
|
/*
* system- and machine-specific declarations for emu:
* floating-point save and restore, signal handling primitive, and
* implementation of the current-process variable `up'.
*/
/*
* This structure must agree with FPsave and FPrestore asm routines
*/
typedef struct FPU FPU;
struct FPU
{
uchar env[18*8];
};
/*
* Later versions of Linux seemed to need large stack for gethostbyname()
* so we had this at 128k, which is excessive. More recently, we've
* reduced it again after testing stack usage by gethostbyname.
*/
#define KSTACK (16 * 1024)
static __inline Proc *getup(void) {
Proc *p;
__asm__( "mr %0, 1" : "=r" (p));
return *(Proc **)((unsigned long)p & ~(KSTACK - 1));
};
#define up (getup())
typedef sigjmp_buf osjmpbuf;
#define ossetjmp(buf) sigsetjmp(buf, 1)
|