summaryrefslogtreecommitdiff
path: root/libc/include/setjmp.h
blob: 162743bd28d38d30b9a33965e9dd6c71c159aa3f (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

#ifndef __SETJMP_H
#define __SETJMP_H

#include <features.h>

/* 
 * I know most systems use an array of ints here, but I prefer this   - RDB
 */

typedef struct
{
   unsigned int pc;
   unsigned int sp;
   unsigned int bp;
   unsigned int si;
   unsigned int di;
} jmp_buf[1];

int _setjmp __P((jmp_buf env));
void _longjmp __P((jmp_buf env, int rv));

/* LATER: Seems GNU beat me to it, must be OK then :-)
 *        Humm, what's this about setjmp being a macro !?
 *	  Ok, use the BSD names as normal use the ANSI as macros
 */

#define setjmp(a_env)		_setjmp(a_env)
#define longjmp(a_env, a_rv)	_longjmp(a_env, a_rv)
#endif