The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/cddl/dev/dtrace/x86/regset.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * CDDL HEADER START
    3  *
    4  * The contents of this file are subject to the terms of the
    5  * Common Development and Distribution License, Version 1.0 only
    6  * (the "License").  You may not use this file except in compliance
    7  * with the License.
    8  *
    9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   10  * or http://www.opensolaris.org/os/licensing.
   11  * See the License for the specific language governing permissions
   12  * and limitations under the License.
   13  *
   14  * When distributing Covered Code, include this CDDL HEADER in each
   15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   16  * If applicable, add the following below this CDDL HEADER, with the
   17  * fields enclosed by brackets "[]" replaced with your own identifying
   18  * information: Portions Copyright [yyyy] [name of copyright owner]
   19  *
   20  * CDDL HEADER END
   21  *
   22  * $FreeBSD$ 
   23  */
   24 /*
   25  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
   26  * Use is subject to license terms.
   27  */
   28 
   29 /*      Copyright (c) 1990, 1991 UNIX System Laboratories, Inc. */
   30 
   31 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T         */
   32 /*      All Rights Reserved     */
   33 
   34 #ifndef _REGSET_H
   35 #define _REGSET_H
   36 
   37 /*
   38  * #pragma ident        "@(#)regset.h   1.11    05/06/08 SMI"
   39  */
   40 
   41 #ifdef __cplusplus
   42 extern "C" {
   43 #endif
   44 
   45 /*
   46  * The names and offsets defined here should be specified by the
   47  * AMD64 ABI suppl.
   48  *
   49  * We make fsbase and gsbase part of the lwp context (since they're
   50  * the only way to access the full 64-bit address range via the segment
   51  * registers) and thus belong here too.  However we treat them as
   52  * read-only; if %fs or %gs are updated, the results of the descriptor
   53  * table lookup that those updates implicitly cause will be reflected
   54  * in the corresponding fsbase and/or gsbase values the next time the
   55  * context can be inspected.  However it is NOT possible to override
   56  * the fsbase/gsbase settings via this interface.
   57  *
   58  * Direct modification of the base registers (thus overriding the
   59  * descriptor table base address) can be achieved with _lwp_setprivate.
   60  */
   61 
   62 #define REG_GSBASE      27
   63 #define REG_FSBASE      26
   64 #define REG_SS          25
   65 #define REG_RSP         24
   66 #define REG_RFL         23
   67 #define REG_CS          22
   68 #define REG_RIP         21
   69 #define REG_DS          20
   70 #define REG_ES          19
   71 #define REG_ERR         18
   72 #define REG_GS          17
   73 #define REG_FS          16
   74 #define REG_TRAPNO      15
   75 #define REG_RAX         14
   76 #define REG_RCX         13
   77 #define REG_RDX         12
   78 #define REG_RBX         11
   79 #define REG_RBP         10
   80 #define REG_RSI         9
   81 #define REG_RDI         8
   82 #define REG_R8          7
   83 #define REG_R9          6
   84 #define REG_R10         5
   85 #define REG_R11         4
   86 #define REG_R12         3
   87 #define REG_R13         2
   88 #define REG_R14         1
   89 #define REG_R15         0
   90 
   91 /*
   92  * The names and offsets defined here are specified by i386 ABI suppl.
   93  */
   94 
   95 #define GS              18
   96 #define SS              17      /* only stored on a privilege transition */
   97 #define UESP            16      /* only stored on a privilege transition */
   98 #define EFL             15
   99 #define CS              14
  100 #define EIP             13
  101 #define ERR             12
  102 #define TRAPNO          11
  103 #define EAX             10
  104 #define ECX             9
  105 #define EDX             8
  106 #define EBX             7
  107 #define ESP             6
  108 #define EBP             5
  109 #define ESI             4
  110 #define EDI             3
  111 #define DS              2
  112 #define ES              1
  113 #define FS              0
  114 
  115 #define REG_PC  EIP
  116 #define REG_FP  EBP
  117 #define REG_SP  UESP
  118 #define REG_PS  EFL
  119 #define REG_R0  EAX
  120 #define REG_R1  EDX
  121 
  122 #ifdef  __cplusplus
  123 }
  124 #endif
  125 
  126 #endif  /* _REGSET_H */

Cache object: 949e9e093aac32241af14e7b41216461


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.