zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

ucontext.h (2708B) - Raw


      1 /*	$NetBSD: mcontext.h,v 1.4 2003/10/08 22:43:01 thorpej Exp $	*/
      2 
      3 /*-
      4  * SPDX-License-Identifier: BSD-2-Clause
      5  *
      6  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
      7  * All rights reserved.
      8  *
      9  * This code is derived from software contributed to The NetBSD Foundation
     10  * by Klaus Klein and by Jason R. Thorpe of Wasabi Systems, Inc.
     11  *
     12  * Redistribution and use in source and binary forms, with or without
     13  * modification, are permitted provided that the following conditions
     14  * are met:
     15  * 1. Redistributions of source code must retain the above copyright
     16  *    notice, this list of conditions and the following disclaimer.
     17  * 2. Redistributions in binary form must reproduce the above copyright
     18  *    notice, this list of conditions and the following disclaimer in the
     19  *    documentation and/or other materials provided with the distribution.
     20  *
     21  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     22  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     23  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     24  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     25  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     31  * POSSIBILITY OF SUCH DAMAGE.
     32  */
     33 
     34 #ifndef _MACHINE_MCONTEXT_H_
     35 #define _MACHINE_MCONTEXT_H_
     36 /*
     37  * General register state
     38  */
     39 #define _NGREG		17
     40 typedef unsigned int	__greg_t;
     41 typedef __greg_t	__gregset_t[_NGREG];
     42 
     43 #define _REG_R0		0
     44 #define _REG_R1		1
     45 #define _REG_R2		2
     46 #define _REG_R3		3
     47 #define _REG_R4		4
     48 #define _REG_R5		5
     49 #define _REG_R6		6
     50 #define _REG_R7		7
     51 #define _REG_R8		8
     52 #define _REG_R9		9
     53 #define _REG_R10	10
     54 #define _REG_R11	11
     55 #define _REG_R12	12
     56 #define _REG_R13	13
     57 #define _REG_R14	14
     58 #define _REG_R15	15
     59 #define _REG_CPSR	16
     60 /* Convenience synonyms */
     61 #define _REG_FP		_REG_R11
     62 #define _REG_SP		_REG_R13
     63 #define _REG_LR		_REG_R14
     64 #define _REG_PC		_REG_R15
     65 
     66 /*
     67  * Floating point register state
     68  */
     69 typedef struct {
     70 	__uint64_t	mcv_reg[32];
     71 	__uint32_t	mcv_fpscr;
     72 } mcontext_vfp_t;
     73 
     74 typedef struct {
     75 	__gregset_t	__gregs;
     76 
     77 	/*
     78 	 * Originally, rest of this structure was named __fpu, 35 * 4 bytes
     79 	 * long, never accessed from kernel. 
     80 	 */
     81 	__size_t	mc_vfp_size;
     82 	void 		*mc_vfp_ptr;
     83 	unsigned int	mc_spare[33];
     84 } mcontext_t;
     85 
     86 #define UC_
     87 #endif	/* !_MACHINE_MCONTEXT_H_ */