diff options
Diffstat (limited to 'sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys')
4 files changed, 278 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/isa_defs.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/isa_defs.h new file mode 100644 index 0000000000..6fc89e2c25 --- /dev/null +++ b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/isa_defs.h @@ -0,0 +1,73 @@ +/* Declarations of x86 (i386 and amd64) macros. + Copyright (C) 2008 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _SYS_ISA_DEFS_H +#define _SYS_ISA_DEFS_H + +#define __x86 + +#define _LITTLE_ENDIAN +#define _STACK_GROWS_DOWNWARD +#define _LONG_LONG_LTOH +#define _BIT_FIELDS_LTOH +#define _IEEE_754 +#define _CHAR_IS_SIGNED +#define _BOOL_ALIGNMENT 1 +#define _CHAR_ALIGNMENT 1 +#define _SHORT_ALIGNMENT 2 +#define _INT_ALIGNMENT 4 +#define _FLOAT_ALIGNMENT 4 +#define _FLOAT_COMPLEX_ALIGNMENT 4 + +#ifdef __amd64__ +# define _LONG_ALIGNMENT 8 +# define _LONG_LONG_ALIGNMENT 8 +# define _DOUBLE_ALIGNMENT 8 +# define _DOUBLE_COMPLEX_ALIGNMENT 8 +# define _LONG_DOUBLE_ALIGNMENT 16 +# define _LONG_DOUBLE_COMPLEX_ALIGNMENT 16 +# define _POINTER_ALIGNMENT 8 +# define _MAX_ALIGNMENT 16 +# define _ALIGNMENT_REQUIRED 1 +# define _LP64 +# define _MULTI_DATAMODEL +# define __i386_COMPAT +#else /* __i386__ */ +# define _LONG_ALIGNMENT 4 +# define _LONG_LONG_ALIGNMENT 4 +# define _DOUBLE_ALIGNMENT 4 +# define _DOUBLE_COMPLEX_ALIGNMENT 4 +# define _LONG_DOUBLE_ALIGNMENT 4 +# define _LONG_DOUBLE_COMPLEX_ALIGNMENT 4 +# define _POINTER_ALIGNMENT 4 +# define _MAX_ALIGNMENT 4 +# define _ALIGNMENT_REQUIRED 0 +# define _ILP32 +#endif /* __amd64__ */ + +#define _LONG_LONG_ALIGNMENT_32 4 +#define _SUNOS_VTOC_16 +#define _DMA_USES_PHYSADDR +#define _FIRMWARE_NEEDS_FDISK +#define _PSM_MODULES +#define _RTC_CONFIG +#define _DONT_USE_1275_GENERIC_NAMES +#define _HAVE_CPUID_INSN + +#endif /* _SYS_ISA_DEFS_H */ diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/procfs_isa.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/procfs_isa.h new file mode 100644 index 0000000000..1b038915e1 --- /dev/null +++ b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/procfs_isa.h @@ -0,0 +1,81 @@ +/* Declarations of x86 (i386 and amd64) procfs structs and macros. + Copyright (C) 2008 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _SYS_PROCFS_ISA_H +#define _SYS_PROCFS_ISA_H + +#include <sys/regset.h> +#include <sys/isa_defs.h> + +#define PR_MODEL_UNKNOWN 0 +#define PR_MODEL_ILP32 1 +#define PR_MODEL_LP64 2 + +#ifdef _LP64 +# define PR_MODEL_NATIVE PR_MODEL_LP64 +#else +# define PR_MODEL_NATIVE PR_MODEL_ILP32 +#endif + +typedef unsigned char instr_t; + +#define prgregset_t gregset_t +#define prfpregset_t fpregset_t +#define prgreg_t greg_t +#define prfpregset fpu + +#define NPRGREG _NGREG + +#ifdef _SYSCALL32 + +typedef unsigned char instr32_t; + +# if defined(__amd64) +# define NPRGREG32 _NGREG32 +# define prgreg32_t greg32_t +# define prgregset32_t gregset32_t +# define prfpregset32 fpu32 +# define prfpregset32_t fpregset32_t +# else +# define NPRGREG32 _NGREG +# define prgreg32_t greg_t +# define prgregset32_t gregset_t +# define prfpregset32 fpu +# define prfpregset32_t fpregset_t +# endif + +#endif /* _SYSCALL32 */ + +#ifdef __amd64__ +# define R_PC REG_RIP +# define R_PS REG_RFL +# define R_SP REG_RSP +# define R_FP REG_RBP +# define R_R0 REG_RAX +# define R_R1 REG_RDX +#else +# define R_PC EIP +# define R_PS EFL +# define R_SP UESP +# define R_FP EBP +# define R_R0 EAX +# define R_R1 EDX +#endif + +#endif /* _SYS_PROCFS_ISA_H */ diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/regset.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/regset.h new file mode 100644 index 0000000000..080ac02930 --- /dev/null +++ b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/regset.h @@ -0,0 +1,97 @@ +/* Copyright (C) 2008 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _SYS_REGSET_H +#define _SYS_REGSET_H 1 + +#include <features.h> +#include <bits/types.h> +#include <bits/regset.h> + +#ifdef __USE_MISC + +# define REG_R15 0 +# define REG_R14 1 +# define REG_R13 2 +# define REG_R12 3 +# define REG_R11 4 +# define REG_R10 5 +# define REG_R9 6 +# define REG_R8 7 +# define REG_RDI 8 +# define REG_RSI 9 +# define REG_RBP 10 +# define REG_RBX 11 +# define REG_RDX 12 +# define REG_RCX 13 +# define REG_RAX 14 +# define REG_TRAPNO 15 +# define REG_ERR 16 +# define REG_RIP 17 +# define REG_CS 18 +# define REG_RFL 19 +# define REG_RSP 20 +# define REG_SS 21 +# define REG_FS 22 +# define REG_GS 23 +# define REG_ES 24 +# define REG_DS 25 +# define REG_FSBASE 26 +# define REG_GSBASE 27 + +# define GS 0 +# define FS 1 +# define ES 2 +# define DS 3 +# define EDI 4 +# define ESI 5 +# define EBP 6 +# define ESP 7 +# define EBX 8 +# define EDX 9 +# define ECX 10 +# define EAX 11 +# define TRAPNO 12 +# ifndef ERR +# define ERR 13 +# endif +# define EIP 14 +# define CS 15 +# define EFL 16 +# define UESP 17 +# define SS 18 + +# ifdef __amd64__ +# define REG_PC REG_RIP +# define REG_FP REG_RBP +# define REG_SP REG_RSP +# define REG_PS REG_RFL +# define REG_R0 REG_RAX +# define REG_R1 REG_RDX +# else /* __i386__ */ +# define REG_PC 14 +# define REG_FP 6 +# define REG_SP 17 +# define REG_PS 16 +# define REG_R0 11 +# define REG_R1 9 +# endif /* __amd64__ */ + +#endif /* __USE_MISC */ + +#endif /* _SYS_REGSET_H */ diff --git a/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/stack.h b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/stack.h new file mode 100644 index 0000000000..1bc90b7301 --- /dev/null +++ b/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/stack.h @@ -0,0 +1,27 @@ +/* Declarations of stack macros. + Copyright (C) 2008 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _STACK_STACK_H +#define _STACK_STACK_H + +#define STACK_ALIGN 16 +#define STACK_BIAS 0 +#define SA(x) (((x) + (STACK_ALIGN - 1)) & ~(STACK_ALIGN - 1)) + +#endif /* _STACK_STACK_H */ |