Main Page   Compound List   File List   Compound Members   File Members  

setjmp.h

Go to the documentation of this file.
00001 #ifndef __SETJMP_H_
00002 #define __SETJMP_H_ 1
00003 
00004 /*
00005    jmp_buf:
00006         offset  size    description
00007          0      16      call-saved registers (r2-r17)
00008         16       2      frame pointer (r29:r28)
00009         18       2      stack pointer (SPH:SPL)
00010         20       1      status register (SREG)
00011         21       3      return address (PC) (2 bytes used for <=128K flash)
00012         24 = total size
00013  */
00014 
00015 typedef struct {
00016         /* call-saved registers */
00017         unsigned char __j_r2;
00018         unsigned char __j_r3;
00019         unsigned char __j_r4;
00020         unsigned char __j_r5;
00021         unsigned char __j_r6;
00022         unsigned char __j_r7;
00023         unsigned char __j_r8;
00024         unsigned char __j_r9;
00025         unsigned char __j_r10;
00026         unsigned char __j_r11;
00027         unsigned char __j_r12;
00028         unsigned char __j_r13;
00029         unsigned char __j_r14;
00030         unsigned char __j_r15;
00031         unsigned char __j_r16;
00032         unsigned char __j_r17;
00033         /* frame pointer, stack pointer, status register, program counter */
00034         unsigned int __j_fp;  /* Y */
00035         unsigned int __j_sp;
00036         unsigned char __j_sreg;
00037         unsigned int __j_pc;
00038         unsigned char __j_pch;  /* only devices with >128K bytes of flash */
00039 } jmp_buf[1];
00040 
00041 #ifndef __ATTR_NORETURN__
00042 #define __ATTR_NORETURN__ __attribute__((__noreturn__))
00043 #endif
00044 
00045 extern int setjmp(jmp_buf __jmpb);
00046 extern void longjmp(jmp_buf __jmpb, int __ret) __ATTR_NORETURN__;
00047 
00048 #endif  /* !__SETJMP_H_ */

Generated at Fri Jul 19 14:55:41 2002 for avrgcc by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001