mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-21 19:23:46 +00:00
253 lines
18 KiB
HTML
253 lines
18 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||
<meta name="generator" content="Doxygen 1.8.12"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>Crashpad: crashpad::CPUContextX86 Struct Reference</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
<link href="crashpad_doxygen.css" rel="stylesheet" type="text/css"/>
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr style="height: 56px;">
|
||
<td id="projectalign" style="padding-left: 0.5em;">
|
||
<div id="projectname">Crashpad
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.8.12 -->
|
||
<script type="text/javascript">
|
||
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search');
|
||
$(document).ready(function() { init_search(); });
|
||
});
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<iframe src="javascript:void(0)" frameborder="0"
|
||
name="MSearchResults" id="MSearchResults">
|
||
</iframe>
|
||
</div>
|
||
|
||
<div id="nav-path" class="navpath">
|
||
<ul>
|
||
<li class="navelem"><a class="el" href="namespacecrashpad.html">crashpad</a></li><li class="navelem"><a class="el" href="structcrashpad_1_1CPUContextX86.html">CPUContextX86</a></li> </ul>
|
||
</div>
|
||
</div><!-- top -->
|
||
<div class="header">
|
||
<div class="summary">
|
||
<a href="#nested-classes">Classes</a> |
|
||
<a href="#pub-types">Public Types</a> |
|
||
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||
<a href="#pub-attribs">Public Attributes</a> |
|
||
<a href="structcrashpad_1_1CPUContextX86-members.html">List of all members</a> </div>
|
||
<div class="headertitle">
|
||
<div class="title">crashpad::CPUContextX86 Struct Reference</div> </div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
|
||
<p>A context structure carrying 32-bit x86 CPU state.
|
||
<a href="structcrashpad_1_1CPUContextX86.html#details">More...</a></p>
|
||
|
||
<p><code>#include "snapshot/cpu_context.h"</code></p>
|
||
<table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||
Classes</h2></td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextX86_1_1Fxsave.html">Fxsave</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="unioncrashpad_1_1CPUContextX86_1_1X87OrMMXRegister.html">X87OrMMXRegister</a></td></tr>
|
||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
|
||
Public Types</h2></td></tr>
|
||
<tr class="memitem:a1b86f3500e303d8d06ad611b709a8de3"><td class="memItemLeft" align="right" valign="top"><a id="a1b86f3500e303d8d06ad611b709a8de3"></a>
|
||
using </td><td class="memItemRight" valign="bottom"><b>X87Register</b> = uint8_t[10]</td></tr>
|
||
<tr class="separator:a1b86f3500e303d8d06ad611b709a8de3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7fbd28260ed735f338ae970c99fa9ef5"><td class="memItemLeft" align="right" valign="top"><a id="a7fbd28260ed735f338ae970c99fa9ef5"></a>
|
||
using </td><td class="memItemRight" valign="bottom"><b>XMMRegister</b> = uint8_t[16]</td></tr>
|
||
<tr class="separator:a7fbd28260ed735f338ae970c99fa9ef5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
|
||
Static Public Member Functions</h2></td></tr>
|
||
<tr class="memitem:aaa6da129178e00395358c4f288d5dc06"><td class="memItemLeft" align="right" valign="top">static uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structcrashpad_1_1CPUContextX86.html#aaa6da129178e00395358c4f288d5dc06">FxsaveToFsaveTagWord</a> (uint16_t fsw, uint8_t fxsave_tag, const <a class="el" href="unioncrashpad_1_1CPUContextX86_1_1X87OrMMXRegister.html">X87OrMMXRegister</a> st_mm[8])</td></tr>
|
||
<tr class="memdesc:aaa6da129178e00395358c4f288d5dc06"><td class="mdescLeft"> </td><td class="mdescRight">Converts x87 floating-point tag words from <code>fxsave</code> (abridged, 8-bit) to <code>fsave</code> (full, 16-bit) form. <a href="#aaa6da129178e00395358c4f288d5dc06">More...</a><br /></td></tr>
|
||
<tr class="separator:aaa6da129178e00395358c4f288d5dc06"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table><table class="memberdecls">
|
||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
|
||
Public Attributes</h2></td></tr>
|
||
<tr class="memitem:af1876d30ed4b46d1c3da751b381a9809"><td class="memItemLeft" align="right" valign="top"><a id="af1876d30ed4b46d1c3da751b381a9809"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>eax</b></td></tr>
|
||
<tr class="separator:af1876d30ed4b46d1c3da751b381a9809"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a90e4096b4212c09ccb16d5d514b7d4f7"><td class="memItemLeft" align="right" valign="top"><a id="a90e4096b4212c09ccb16d5d514b7d4f7"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>ebx</b></td></tr>
|
||
<tr class="separator:a90e4096b4212c09ccb16d5d514b7d4f7"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aa43911bac13ef61a60f616708ea20ab0"><td class="memItemLeft" align="right" valign="top"><a id="aa43911bac13ef61a60f616708ea20ab0"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>ecx</b></td></tr>
|
||
<tr class="separator:aa43911bac13ef61a60f616708ea20ab0"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a80fc20a1c67efa7eac25941ee99a2317"><td class="memItemLeft" align="right" valign="top"><a id="a80fc20a1c67efa7eac25941ee99a2317"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>edx</b></td></tr>
|
||
<tr class="separator:a80fc20a1c67efa7eac25941ee99a2317"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a86559f9edbf8dcbf18280f003ba0fb62"><td class="memItemLeft" align="right" valign="top"><a id="a86559f9edbf8dcbf18280f003ba0fb62"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>edi</b></td></tr>
|
||
<tr class="separator:a86559f9edbf8dcbf18280f003ba0fb62"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a75ab6394821251a9a3fdbaf231ea77f9"><td class="memItemLeft" align="right" valign="top"><a id="a75ab6394821251a9a3fdbaf231ea77f9"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>esi</b></td></tr>
|
||
<tr class="separator:a75ab6394821251a9a3fdbaf231ea77f9"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8f2ff349ac577e7894b58854e11792ca"><td class="memItemLeft" align="right" valign="top"><a id="a8f2ff349ac577e7894b58854e11792ca"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>ebp</b></td></tr>
|
||
<tr class="separator:a8f2ff349ac577e7894b58854e11792ca"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a6959676f8b059bfdcb71f1191992cb04"><td class="memItemLeft" align="right" valign="top"><a id="a6959676f8b059bfdcb71f1191992cb04"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>esp</b></td></tr>
|
||
<tr class="separator:a6959676f8b059bfdcb71f1191992cb04"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ab0408af8f7e7a741cd63c68d1b997639"><td class="memItemLeft" align="right" valign="top"><a id="ab0408af8f7e7a741cd63c68d1b997639"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>eip</b></td></tr>
|
||
<tr class="separator:ab0408af8f7e7a741cd63c68d1b997639"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a446a7a69ec0957a1a0612671e632c786"><td class="memItemLeft" align="right" valign="top"><a id="a446a7a69ec0957a1a0612671e632c786"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>eflags</b></td></tr>
|
||
<tr class="separator:a446a7a69ec0957a1a0612671e632c786"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a53520606c959396cf6e89e0ad2d0eab3"><td class="memItemLeft" align="right" valign="top"><a id="a53520606c959396cf6e89e0ad2d0eab3"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>cs</b></td></tr>
|
||
<tr class="separator:a53520606c959396cf6e89e0ad2d0eab3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ad7a2c7e5f70443d38e65304e0fec9d86"><td class="memItemLeft" align="right" valign="top"><a id="ad7a2c7e5f70443d38e65304e0fec9d86"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>ds</b></td></tr>
|
||
<tr class="separator:ad7a2c7e5f70443d38e65304e0fec9d86"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a1f91fd9ab18a58e13d1d62bb85f3dc88"><td class="memItemLeft" align="right" valign="top"><a id="a1f91fd9ab18a58e13d1d62bb85f3dc88"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>es</b></td></tr>
|
||
<tr class="separator:a1f91fd9ab18a58e13d1d62bb85f3dc88"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a20d5127b89e7dff29502d5250fb4a8a2"><td class="memItemLeft" align="right" valign="top"><a id="a20d5127b89e7dff29502d5250fb4a8a2"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>fs</b></td></tr>
|
||
<tr class="separator:a20d5127b89e7dff29502d5250fb4a8a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:ac77f0c61de16a30b51214823f72cdaf2"><td class="memItemLeft" align="right" valign="top"><a id="ac77f0c61de16a30b51214823f72cdaf2"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>gs</b></td></tr>
|
||
<tr class="separator:ac77f0c61de16a30b51214823f72cdaf2"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:aaff8e374679288e022bef7ffe0ded2d5"><td class="memItemLeft" align="right" valign="top"><a id="aaff8e374679288e022bef7ffe0ded2d5"></a>
|
||
uint16_t </td><td class="memItemRight" valign="bottom"><b>ss</b></td></tr>
|
||
<tr class="separator:aaff8e374679288e022bef7ffe0ded2d5"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a915df1291a3ddb8ee7daccbfaece2c01"><td class="memItemLeft" align="right" valign="top"><a id="a915df1291a3ddb8ee7daccbfaece2c01"></a>
|
||
<a class="el" href="structcrashpad_1_1CPUContextX86_1_1Fxsave.html">Fxsave</a> </td><td class="memItemRight" valign="bottom"><b>fxsave</b></td></tr>
|
||
<tr class="separator:a915df1291a3ddb8ee7daccbfaece2c01"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8e826ef3eee39c733fcc40d3e0c873e0"><td class="memItemLeft" align="right" valign="top"><a id="a8e826ef3eee39c733fcc40d3e0c873e0"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr0</b></td></tr>
|
||
<tr class="separator:a8e826ef3eee39c733fcc40d3e0c873e0"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a8e1f953936c7027edc74005dd60cdab6"><td class="memItemLeft" align="right" valign="top"><a id="a8e1f953936c7027edc74005dd60cdab6"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr1</b></td></tr>
|
||
<tr class="separator:a8e1f953936c7027edc74005dd60cdab6"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a76e5455c5017597a6b89a6262e69734d"><td class="memItemLeft" align="right" valign="top"><a id="a76e5455c5017597a6b89a6262e69734d"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr2</b></td></tr>
|
||
<tr class="separator:a76e5455c5017597a6b89a6262e69734d"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a7149920a1dbc459ed0e15fd09509027e"><td class="memItemLeft" align="right" valign="top"><a id="a7149920a1dbc459ed0e15fd09509027e"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr3</b></td></tr>
|
||
<tr class="separator:a7149920a1dbc459ed0e15fd09509027e"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:adcf1ba86b334f3ab529363e5a44fe776"><td class="memItemLeft" align="right" valign="top"><a id="adcf1ba86b334f3ab529363e5a44fe776"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr4</b></td></tr>
|
||
<tr class="separator:adcf1ba86b334f3ab529363e5a44fe776"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a0fa3979cbadfa9adfe012e8c030ff609"><td class="memItemLeft" align="right" valign="top"><a id="a0fa3979cbadfa9adfe012e8c030ff609"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr5</b></td></tr>
|
||
<tr class="separator:a0fa3979cbadfa9adfe012e8c030ff609"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a455365ee9641826c95708c1cde906ac3"><td class="memItemLeft" align="right" valign="top"><a id="a455365ee9641826c95708c1cde906ac3"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr6</b></td></tr>
|
||
<tr class="separator:a455365ee9641826c95708c1cde906ac3"><td class="memSeparator" colspan="2"> </td></tr>
|
||
<tr class="memitem:a01c285e56fc7421b8852f9df9f63af69"><td class="memItemLeft" align="right" valign="top"><a id="a01c285e56fc7421b8852f9df9f63af69"></a>
|
||
uint32_t </td><td class="memItemRight" valign="bottom"><b>dr7</b></td></tr>
|
||
<tr class="separator:a01c285e56fc7421b8852f9df9f63af69"><td class="memSeparator" colspan="2"> </td></tr>
|
||
</table>
|
||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||
<div class="textblock"><p>A context structure carrying 32-bit x86 CPU state. </p>
|
||
</div><h2 class="groupheader">Member Function Documentation</h2>
|
||
<a id="aaa6da129178e00395358c4f288d5dc06"></a>
|
||
<h2 class="memtitle"><span class="permalink"><a href="#aaa6da129178e00395358c4f288d5dc06">§ </a></span>FxsaveToFsaveTagWord()</h2>
|
||
|
||
<div class="memitem">
|
||
<div class="memproto">
|
||
<table class="mlabels">
|
||
<tr>
|
||
<td class="mlabels-left">
|
||
<table class="memname">
|
||
<tr>
|
||
<td class="memname">uint16_t crashpad::CPUContextX86::FxsaveToFsaveTagWord </td>
|
||
<td>(</td>
|
||
<td class="paramtype">uint16_t </td>
|
||
<td class="paramname"><em>fsw</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">uint8_t </td>
|
||
<td class="paramname"><em>fxsave_tag</em>, </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="paramkey"></td>
|
||
<td></td>
|
||
<td class="paramtype">const <a class="el" href="unioncrashpad_1_1CPUContextX86_1_1X87OrMMXRegister.html">X87OrMMXRegister</a> </td>
|
||
<td class="paramname"><em>st_mm</em>[8] </td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td>)</td>
|
||
<td></td><td></td>
|
||
</tr>
|
||
</table>
|
||
</td>
|
||
<td class="mlabels-right">
|
||
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||
</tr>
|
||
</table>
|
||
</div><div class="memdoc">
|
||
|
||
<p>Converts x87 floating-point tag words from <code>fxsave</code> (abridged, 8-bit) to <code>fsave</code> (full, 16-bit) form. </p>
|
||
<p><code>fxsave</code> stores the x87 floating-point tag word in abridged 8-bit form, and <code>fsave</code> stores it in full 16-bit form. Some users, notably MinidumpContextX86::float_save::tag_word, require the full 16-bit form, where most other contemporary code uses <code>fxsave</code> and thus the abridged 8-bit form found in CPUContextX86::Fxsave::ftw.</p>
|
||
<p>This function converts an abridged tag word to the full version by using the abridged tag word and the contents of the registers it describes. See Intel Software Developer’s Manual, Volume 2A: Instruction Set Reference A-M (253666-052), 3.2 “FXSAVE”, specifically, the notes on the abridged FTW and recreating the FSAVE format, and AMD Architecture Programmer’s Manual, Volume 2: System Programming (24593-3.24), “FXSAVE Format for x87 Tag Word”.</p>
|
||
<dl class="params"><dt>Parameters</dt><dd>
|
||
<table class="params">
|
||
<tr><td class="paramdir">[in]</td><td class="paramname">fsw</td><td>The FPU status word, used to map logical <em>st_mm</em> registers to their physical counterparts. This can be taken from CPUContextX86::Fxsave::fsw. </td></tr>
|
||
<tr><td class="paramdir">[in]</td><td class="paramname">fxsave_tag</td><td>The abridged FPU tag word. This can be taken from CPUContextX86::Fxsave::ftw. </td></tr>
|
||
<tr><td class="paramdir">[in]</td><td class="paramname">st_mm</td><td>The floating-point registers in logical order. This can be taken from CPUContextX86::Fxsave::st_mm.</td></tr>
|
||
</table>
|
||
</dd>
|
||
</dl>
|
||
<dl class="section return"><dt>Returns</dt><dd>The full FPU tag word. </dd></dl>
|
||
|
||
</div>
|
||
</div>
|
||
<hr/>The documentation for this struct was generated from the following files:<ul>
|
||
<li>snapshot/cpu_context.h</li>
|
||
<li>snapshot/cpu_context.cc</li>
|
||
</ul>
|
||
</div><!-- contents -->
|
||
<!-- start footer part -->
|
||
<hr class="footer"/><address class="footer"><small>
|
||
Generated by  <a href="http://www.doxygen.org/index.html">
|
||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||
</a> 1.8.12
|
||
</small></address>
|
||
</body>
|
||
</html>
|