diff options
author | Zack Weinberg <zackw@panix.com> | 2017-06-08 15:39:03 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-06-08 15:39:03 -0400 |
commit | 5046dbb4a7eba5eccfd258f92f4735c9ffc8d069 (patch) | |
tree | 4470480d904b65cf14ca524f96f79eca818c3eaf /REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | |
parent | 199fc19d3aaaf57944ef036e15904febe877fc93 (diff) | |
download | glibc-zack/build-layout-experiment.tar.gz glibc-zack/build-layout-experiment.tar.xz glibc-zack/build-layout-experiment.zip |
Prepare for radical source tree reorganization. zack/build-layout-experiment
All top-level files and directories are moved into a temporary storage directory, REORG.TODO, except for files that will certainly still exist in their current form at top level when we're done (COPYING, COPYING.LIB, LICENSES, NEWS, README), all old ChangeLog files (which are moved to the new directory OldChangeLogs, instead), and the generated file INSTALL (which is just deleted; in the new order, there will be no generated files checked into version control).
Diffstat (limited to 'REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h')
-rw-r--r-- | REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h new file mode 100644 index 0000000000..e6ecbe6ab5 --- /dev/null +++ b/REORG.TODO/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h @@ -0,0 +1,131 @@ +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +/* System V/m68k ABI compliant context switching support. */ + +#ifndef _SYS_UCONTEXT_H +#define _SYS_UCONTEXT_H 1 + +#include <features.h> + +#include <bits/types/sigset_t.h> +#include <bits/sigcontext.h> +#include <bits/types/stack_t.h> + + +/* Type for general register. */ +typedef int greg_t; + +/* Number of general registers. */ +#define __NGREG 18 +#ifdef __USE_MISC +# define NGREG __NGREG +#endif + +/* Container for all general registers. */ +typedef greg_t gregset_t[__NGREG]; + +#ifdef __USE_MISC +/* Number of each register is the `gregset_t' array. */ +enum +{ + R_D0 = 0, +# define R_D0 R_D0 + R_D1 = 1, +# define R_D1 R_D1 + R_D2 = 2, +# define R_D2 R_D2 + R_D3 = 3, +# define R_D3 R_D3 + R_D4 = 4, +# define R_D4 R_D4 + R_D5 = 5, +# define R_D5 R_D5 + R_D6 = 6, +# define R_D6 R_D6 + R_D7 = 7, +# define R_D7 R_D7 + R_A0 = 8, +# define R_A0 R_A0 + R_A1 = 9, +# define R_A1 R_A1 + R_A2 = 10, +# define R_A2 R_A2 + R_A3 = 11, +# define R_A3 R_A3 + R_A4 = 12, +# define R_A4 R_A4 + R_A5 = 13, +# define R_A5 R_A5 + R_A6 = 14, +# define R_A6 R_A6 + R_A7 = 15, +# define R_A7 R_A7 + R_SP = 15, +# define R_SP R_SP + R_PC = 16, +# define R_PC R_PC + R_PS = 17 +# define R_PS R_PS +}; +#endif + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +/* Structure to describe FPU registers. */ +typedef struct fpregset +{ + int __ctx(f_pcr); + int __ctx(f_psr); + int __ctx(f_fpiaddr); +#ifdef __mcoldfire__ + int __ctx(f_fpregs)[8][2]; +#else + int __ctx(f_fpregs)[8][3]; +#endif +} fpregset_t; + +/* Context to describe whole processor state. */ +typedef struct +{ + int __ctx(version); + gregset_t __ctx(gregs); + fpregset_t __ctx(fpregs); +} mcontext_t; + +#undef __ctx + +#ifdef __USE_MISC +# define MCONTEXT_VERSION 2 +#endif + +/* Userlevel context. */ +typedef struct ucontext +{ + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + unsigned long uc_filler[80]; + sigset_t uc_sigmask; +} ucontext_t; + +#endif /* sys/ucontext.h */ |