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/contrib/opensolaris/uts/intel/sys/fasttrap_isa.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 (the "License").
    6  * You may not use this file except in compliance with the License.
    7  *
    8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9  * or http://www.opensolaris.org/os/licensing.
   10  * See the License for the specific language governing permissions
   11  * and limitations under the License.
   12  *
   13  * When distributing Covered Code, include this CDDL HEADER in each
   14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15  * If applicable, add the following below this CDDL HEADER, with the
   16  * fields enclosed by brackets "[]" replaced with your own identifying
   17  * information: Portions Copyright [yyyy] [name of copyright owner]
   18  *
   19  * CDDL HEADER END
   20  */
   21 /*
   22  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
   23  * Use is subject to license terms.
   24  */
   25 
   26 #ifndef _FASTTRAP_ISA_H
   27 #define _FASTTRAP_ISA_H
   28 
   29 #pragma ident   "%Z%%M% %I%     %E% SMI"
   30 
   31 #include <sys/types.h>
   32 
   33 #ifdef  __cplusplus
   34 extern "C" {
   35 #endif
   36 
   37 #define FASTTRAP_MAX_INSTR_SIZE         15
   38 
   39 #define FASTTRAP_INSTR                  0xcc
   40 
   41 #define FASTTRAP_SUNWDTRACE_SIZE        64
   42 
   43 typedef uint8_t         fasttrap_instr_t;
   44 
   45 typedef struct fasttrap_machtp {
   46         uint8_t         ftmt_instr[FASTTRAP_MAX_INSTR_SIZE]; /* orig. instr. */
   47         uint8_t         ftmt_size;      /* instruction size */
   48 #ifdef __amd64
   49         uint8_t         ftmt_ripmode;   /* %rip-relative handling mode */
   50         uint8_t         ftmt_modrm;     /* saved modrm byte */
   51 #endif
   52         uint8_t         ftmt_type;      /* emulation type */
   53         uint8_t         ftmt_code;      /* branch condition */
   54         uint8_t         ftmt_base;      /* branch base */
   55         uint8_t         ftmt_index;     /* branch index */
   56         uint8_t         ftmt_scale;     /* branch scale */
   57         uint8_t         ftmt_segment;   /* segment for memory accesses */
   58         uintptr_t       ftmt_dest;      /* destination of control flow */
   59 } fasttrap_machtp_t;
   60 
   61 #define ftt_instr       ftt_mtp.ftmt_instr
   62 #ifdef __amd64
   63 #define ftt_ripmode     ftt_mtp.ftmt_ripmode
   64 #define ftt_modrm       ftt_mtp.ftmt_modrm
   65 #endif
   66 #define ftt_size        ftt_mtp.ftmt_size
   67 #define ftt_type        ftt_mtp.ftmt_type
   68 #define ftt_code        ftt_mtp.ftmt_code
   69 #define ftt_base        ftt_mtp.ftmt_base
   70 #define ftt_index       ftt_mtp.ftmt_index
   71 #define ftt_scale       ftt_mtp.ftmt_scale
   72 #define ftt_segment     ftt_mtp.ftmt_segment
   73 #define ftt_dest        ftt_mtp.ftmt_dest
   74 
   75 #define FASTTRAP_T_COMMON       0x00    /* common case -- no emulation */
   76 #define FASTTRAP_T_JCC          0x01    /* near and far conditional jumps */
   77 #define FASTTRAP_T_LOOP         0x02    /* loop instructions */
   78 #define FASTTRAP_T_JCXZ         0x03    /* jump if %ecx/%rcx is zero */
   79 #define FASTTRAP_T_JMP          0x04    /* relative jump */
   80 #define FASTTRAP_T_CALL         0x05    /* near call (and link) */
   81 #define FASTTRAP_T_RET          0x06    /* ret */
   82 #define FASTTRAP_T_RET16        0x07    /* ret <imm16> */
   83 
   84 /*
   85  * For performance rather than correctness.
   86  */
   87 #define FASTTRAP_T_PUSHL_EBP    0x10    /* pushl %ebp (for function entry) */
   88 #define FASTTRAP_T_NOP          0x11    /* nop */
   89 
   90 #define FASTTRAP_RIP_1          0x1
   91 #define FASTTRAP_RIP_2          0x2
   92 #define FASTTRAP_RIP_X          0x4
   93 
   94 /*
   95  * Segment values.
   96  */
   97 #define FASTTRAP_SEG_NONE               0
   98 #define FASTTRAP_SEG_CS                 1
   99 #define FASTTRAP_SEG_DS                 2
  100 #define FASTTRAP_SEG_ES                 3
  101 #define FASTTRAP_SEG_FS                 4
  102 #define FASTTRAP_SEG_GS                 5
  103 #define FASTTRAP_SEG_SS                 6
  104 
  105 #define FASTTRAP_AFRAMES                3
  106 #define FASTTRAP_RETURN_AFRAMES         4
  107 #define FASTTRAP_ENTRY_AFRAMES          3
  108 #define FASTTRAP_OFFSET_AFRAMES         3
  109 
  110 #ifdef  __cplusplus
  111 }
  112 #endif
  113 
  114 #endif  /* _FASTTRAP_ISA_H */

Cache object: 64f7fa4e7b542a5ef30547930a5f2c8a


[ 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.