Home | History | Annotate | Line # | Download | only in amd64
linux_machdep.h revision 1.5.24.3.2.1
      1  1.5.24.3.2.1  wrstuden /*	$NetBSD: linux_machdep.h,v 1.5.24.3.2.1 2007/06/04 01:54:19 wrstuden Exp $ */
      2           1.1      manu 
      3           1.1      manu /*-
      4           1.1      manu  * Copyright (c) 2005 Emmanuel Dreyfus, all rights reserved.
      5           1.1      manu  *
      6           1.1      manu  * Redistribution and use in source and binary forms, with or without
      7           1.1      manu  * modification, are permitted provided that the following conditions
      8           1.1      manu  * are met:
      9           1.1      manu  * 1. Redistributions of source code must retain the above copyright
     10           1.1      manu  *    notice, this list of conditions and the following disclaimer.
     11           1.1      manu  * 2. Redistributions in binary form must reproduce the above copyright
     12           1.1      manu  *    notice, this list of conditions and the following disclaimer in the
     13           1.1      manu  *    documentation and/or other materials provided with the distribution.
     14           1.1      manu  * 3. All advertising materials mentioning features or use of this software
     15           1.1      manu  *    must display the following acknowledgement:
     16           1.1      manu  *	This product includes software developed by Emmanuel Dreyfus
     17           1.1      manu  * 4. The name of the author may not be used to endorse or promote
     18           1.1      manu  *    products derived from this software without specific prior written
     19           1.1      manu  *    permission.
     20           1.1      manu  *
     21           1.1      manu  * THIS SOFTWARE IS PROVIDED BY THE THE AUTHOR AND CONTRIBUTORS ``AS IS''
     22           1.1      manu  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     23           1.1      manu  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     24           1.1      manu  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
     25           1.1      manu  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     26           1.1      manu  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     27           1.1      manu  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     28           1.1      manu  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     29           1.1      manu  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     30           1.1      manu  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     31           1.1      manu  * POSSIBILITY OF SUCH DAMAGE.
     32           1.1      manu  */
     33           1.1      manu 
     34           1.1      manu #ifndef _AMD64_LINUX_MACHDEP_H
     35           1.1      manu #define _AMD64_LINUX_MACHDEP_H
     36           1.1      manu 
     37      1.5.24.1    bouyer #define LINUX_STATFS_64BIT	/* Needed for full 64bit struct statfs */
     38      1.5.24.1    bouyer 
     39           1.1      manu #include <compat/linux/common/linux_types.h>
     40           1.1      manu #include <compat/linux/common/linux_signal.h>
     41           1.1      manu #include <compat/linux/common/linux_siginfo.h>
     42           1.1      manu 
     43           1.1      manu /* From <asm/sigcontext.h> */
     44           1.1      manu struct linux__fpstate {
     45           1.1      manu 	u_int16_t cwd;
     46           1.1      manu 	u_int16_t swd;
     47           1.1      manu 	u_int16_t twd;
     48           1.1      manu 	u_int16_t fop;
     49           1.1      manu 	u_int64_t rip;
     50           1.1      manu 	u_int64_t rdp;
     51           1.1      manu 	u_int32_t mxcsr;
     52           1.1      manu 	u_int32_t mxcsr_mask;
     53           1.1      manu 	u_int32_t st_space[32];
     54           1.1      manu 	u_int32_t xmm_space[64];
     55           1.1      manu 	u_int32_t reserved2[24];
     56           1.1      manu };
     57           1.1      manu 
     58           1.1      manu /* From <asm/sigcontext.h> */
     59           1.1      manu struct linux_sigcontext {
     60           1.1      manu 	u_int64_t r8;
     61           1.1      manu 	u_int64_t r9;
     62           1.1      manu 	u_int64_t r10;
     63           1.1      manu 	u_int64_t r11;
     64           1.1      manu 	u_int64_t r12;
     65           1.1      manu 	u_int64_t r13;
     66           1.1      manu 	u_int64_t r14;
     67           1.1      manu 	u_int64_t r15;
     68           1.1      manu 	u_int64_t rdi;
     69           1.1      manu 	u_int64_t rsi;
     70           1.1      manu 	u_int64_t rbp;
     71           1.1      manu 	u_int64_t rbx;
     72           1.1      manu 	u_int64_t rdx;
     73  1.5.24.3.2.1  wrstuden 	u_int64_t rax;
     74           1.1      manu 	u_int64_t rcx;
     75           1.1      manu 	u_int64_t rsp;
     76           1.1      manu 	u_int64_t rip;
     77           1.1      manu 	u_int64_t eflags;
     78           1.1      manu 	u_int16_t cs;
     79           1.1      manu 	u_int16_t gs;
     80           1.1      manu 	u_int16_t fs;
     81           1.1      manu 	u_int16_t pad0;
     82           1.1      manu 	u_int64_t err;
     83           1.1      manu 	u_int64_t trapno;
     84           1.1      manu 	u_int64_t oldmask;
     85           1.1      manu 	u_int64_t cr2;
     86           1.1      manu 	struct linux__fpstate *fpstate;
     87           1.1      manu 	u_int64_t reserved1[8];
     88           1.1      manu };
     89           1.1      manu 
     90           1.1      manu /* From <asm/ucontext.h> */
     91           1.1      manu struct linux_ucontext {
     92           1.1      manu 	u_int64_t luc_flags;
     93           1.1      manu 	struct linux_ucontext *luc_link;
     94           1.1      manu 	linux_stack_t luc_stack;
     95           1.1      manu 	struct linux_sigcontext luc_mcontext;
     96           1.1      manu 	linux_sigset_t luc_sigmask;
     97           1.1      manu };
     98           1.1      manu 
     99           1.1      manu /* From linux/arch/x86_64/kernel/signal.c */
    100           1.1      manu struct linux_rt_sigframe {
    101           1.1      manu 	char *pretcode;
    102           1.1      manu 	struct linux_ucontext uc;
    103           1.1      manu 	struct linux_siginfo info;
    104           1.1      manu };
    105           1.1      manu 
    106           1.1      manu #ifdef _KERNEL
    107           1.1      manu __BEGIN_DECLS
    108           1.1      manu void linux_syscall_intern __P((struct proc *));
    109           1.1      manu __END_DECLS
    110           1.1      manu #endif /* !_KERNEL */
    111           1.1      manu 
    112           1.2      fvdl #define LINUX_VSYSCALL_START	0xffffffffff600000
    113           1.2      fvdl #define LINUX_VSYSCALL_SIZE	1024
    114           1.2      fvdl #define LINUX_VSYSCALL_MAXNR	3
    115           1.2      fvdl 
    116      1.5.24.2    bouyer #define LINUX_UNAME_ARCH MACHINE_ARCH
    117           1.4      manu #define LINUX_NPTL
    118           1.5      manu #define LINUX_LARGEFILE64
    119           1.3      manu 
    120      1.5.24.3     pavel /*
    121      1.5.24.3     pavel  * Used in ugly patch to fake device numbers.
    122      1.5.24.3     pavel  */
    123      1.5.24.3     pavel /* Major device numbers for new style ptys. */
    124      1.5.24.3     pavel #define LINUX_PTC_MAJOR                2
    125      1.5.24.3     pavel #define LINUX_PTS_MAJOR                3
    126      1.5.24.3     pavel /* Major device numbers of VT device on both Linux and NetBSD. */
    127      1.5.24.3     pavel #define LINUX_CONS_MAJOR       4
    128      1.5.24.3     pavel 
    129      1.5.24.3     pavel 
    130           1.1      manu #endif /* _AMD64_LINUX_MACHDEP_H */
    131