mirror of
https://git.planet-casio.com/Vhex-Kernel-Core/fxlibc.git
synced 2025-01-04 07:53:36 +01:00
27 lines
591 B
C
27 lines
591 B
C
|
#ifndef __BITS_SETJMP_H__
|
||
|
# define __BITS_SETJMP_H__
|
||
|
|
||
|
#include <stddef.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
/*
|
||
|
** Custom(?) jmp_buf struct
|
||
|
** @note: save only r8 ~ r15 and SR / PC registers
|
||
|
** The SR register is saved first because the longjump can be involved with
|
||
|
** different register bank. So to avoid this, it's more simple to restore the
|
||
|
** saved SR first then restore all register (see <src/setjmp/longjmp.S>)
|
||
|
**
|
||
|
** TODO: save process signal mask ?
|
||
|
*/
|
||
|
struct __jmp_buf
|
||
|
{
|
||
|
uint32_t sr;
|
||
|
uint32_t reg[8];
|
||
|
uint32_t gbr;
|
||
|
uint32_t macl;
|
||
|
uint32_t mach;
|
||
|
uint32_t pr;
|
||
|
};
|
||
|
|
||
|
#endif /*__BITS_SETJMP_H__*/
|