summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-06-05 02:09:04 +0400
committerIgor Pashev <pashev.igor@gmail.com>2012-06-05 02:09:04 +0400
commit415ee7d6e47dcb3e0906a7bebc6d52ab8ed899da (patch)
treef7773ad82023c8616b339d84faa4bb7643af0311 /sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys
parent3cc0cd4c5b3bed6f7d9aff26322d505785e11aa9 (diff)
downloadglibc-415ee7d6e47dcb3e0906a7bebc6d52ab8ed899da.tar.gz
Merged changes from kopensolaris-gnu project
http://git.csclub.uwaterloo.ca/?p=kopensolaris-gnu/glibc.git Commits from 9157319 to bad8ac8. This is only partial patch, some changes to not apply and will be resovled and committed next.
Diffstat (limited to 'sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys')
-rw-r--r--sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/isa_defs.h73
-rw-r--r--sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/procfs_isa.h81
-rw-r--r--sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/regset.h97
-rw-r--r--sysdeps/unix/sysv/solaris2/kopensolaris-gnu/x86/sys/stack.h27
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 */