10c81fcd6SJens Wiklander /* 20c81fcd6SJens Wiklander * Copyright (c) 1994-2009 Red Hat, Inc. 30c81fcd6SJens Wiklander * Copyright (c) 2016, Linaro Limited 40c81fcd6SJens Wiklander * All rights reserved. 50c81fcd6SJens Wiklander * 60c81fcd6SJens Wiklander * Redistribution and use in source and binary forms, with or without 70c81fcd6SJens Wiklander * modification, are permitted provided that the following conditions are met: 80c81fcd6SJens Wiklander * 90c81fcd6SJens Wiklander * 1. Redistributions of source code must retain the above copyright notice, 100c81fcd6SJens Wiklander * this list of conditions and the following disclaimer. 110c81fcd6SJens Wiklander * 120c81fcd6SJens Wiklander * 2. Redistributions in binary form must reproduce the above copyright notice, 130c81fcd6SJens Wiklander * this list of conditions and the following disclaimer in the documentation 140c81fcd6SJens Wiklander * and/or other materials provided with the distribution. 150c81fcd6SJens Wiklander * 160c81fcd6SJens Wiklander * 3. Neither the name of the copyright holder nor the names of its 170c81fcd6SJens Wiklander * contributors may be used to endorse or promote products derived from this 180c81fcd6SJens Wiklander * software without specific prior written permission. 190c81fcd6SJens Wiklander * 200c81fcd6SJens Wiklander * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 210c81fcd6SJens Wiklander * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 220c81fcd6SJens Wiklander * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 230c81fcd6SJens Wiklander * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 240c81fcd6SJens Wiklander * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 250c81fcd6SJens Wiklander * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 260c81fcd6SJens Wiklander * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 270c81fcd6SJens Wiklander * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 280c81fcd6SJens Wiklander * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 290c81fcd6SJens Wiklander * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 300c81fcd6SJens Wiklander * POSSIBILITY OF SUCH DAMAGE. 310c81fcd6SJens Wiklander */ 320c81fcd6SJens Wiklander 330c81fcd6SJens Wiklander #ifndef __SETJMP_H 340c81fcd6SJens Wiklander #define __SETJMP_H 350c81fcd6SJens Wiklander 36*2fa93c74SJens Wiklander #if defined(ARM32) 370c81fcd6SJens Wiklander /* 380c81fcd6SJens Wiklander * All callee preserved registers: 390c81fcd6SJens Wiklander * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7 400c81fcd6SJens Wiklander */ 410c81fcd6SJens Wiklander #define _JBLEN 23 42*2fa93c74SJens Wiklander #define _JBTYPE int 430c81fcd6SJens Wiklander #endif 440c81fcd6SJens Wiklander 45*2fa93c74SJens Wiklander #if defined(ARM64) 460c81fcd6SJens Wiklander #define _JBLEN 22 470c81fcd6SJens Wiklander #define _JBTYPE long long 480c81fcd6SJens Wiklander #endif 490c81fcd6SJens Wiklander 500c81fcd6SJens Wiklander #ifdef _JBLEN 510c81fcd6SJens Wiklander typedef _JBTYPE jmp_buf[_JBLEN]; 520c81fcd6SJens Wiklander #endif 530c81fcd6SJens Wiklander 540c81fcd6SJens Wiklander void longjmp(jmp_buf env, int val); 550c81fcd6SJens Wiklander int setjmp(jmp_buf env); 560c81fcd6SJens Wiklander 570c81fcd6SJens Wiklander #endif /*__SETJMP_H*/ 58