#include <sc_cor_qt.h>
Public メソッド | |
sc_cor_qt () | |
virtual | ~sc_cor_qt () |
virtual void | stack_protect (bool enable) |
Public 変数 | |
std::size_t | m_stack_size |
void * | m_stack |
qt_t * | m_sp |
sc_cor_pkg_qt * | m_pkg |
Private メソッド | |
sc_cor_qt (const sc_cor_qt &) | |
sc_cor_qt & | operator= (const sc_cor_qt &) |
sc_cor_qt.h の 64 行で定義されています。
sc_core::sc_cor_qt::sc_cor_qt | ( | ) | [inline] |
sc_cor_qt.h の 70 行で定義されています。
00071 : m_stack_size( 0 ), m_stack( 0 ), m_sp( 0 ), m_pkg( 0 ) 00072 {}
virtual sc_core::sc_cor_qt::~sc_cor_qt | ( | ) | [inline, virtual] |
sc_core::sc_cor_qt::sc_cor_qt | ( | const sc_cor_qt & | ) | [private] |
void sc_core::sc_cor_qt::stack_protect | ( | bool | enable | ) | [virtual] |
sc_core::sc_corを再定義しています。
sc_cor_qt.cpp の 77 行で定義されています。
00078 { 00079 // Code needs to be tested on HP-UX and disabled if it doesn't work there 00080 // Code still needs to be ported to WIN32 00081 00082 static std::size_t pagesize; 00083 00084 if( pagesize == 0 ) { 00085 # if defined(__ppc__) 00086 pagesize = getpagesize(); 00087 # else 00088 pagesize = sysconf( _SC_PAGESIZE ); 00089 # endif 00090 } 00091 00092 assert( pagesize != 0 ); 00093 assert( m_stack_size > ( 2 * pagesize ) ); 00094 00095 #ifdef QUICKTHREADS_GROW_DOWN 00096 // Stacks grow from high address down to low address 00097 caddr_t redzone = caddr_t( ( ( std::size_t( m_stack ) + pagesize - 1 ) / 00098 pagesize ) * pagesize ); 00099 #else 00100 // Stacks grow from low address up to high address 00101 caddr_t redzone = caddr_t( ( ( std::size_t( m_stack ) + 00102 m_stack_size - pagesize ) / 00103 pagesize ) * pagesize ); 00104 #endif 00105 00106 int ret; 00107 00108 if( enable ) { 00109 ret = mprotect( redzone, pagesize - 1, PROT_NONE ); 00110 } else { 00111 ret = mprotect( redzone, pagesize - 1, PROT_READ | PROT_WRITE ); 00112 } 00113 00114 assert( ret == 0 ); 00115 }
std::size_t sc_core::sc_cor_qt::m_stack_size |
sc_cor_qt.h の 83 行で定義されています。
sc_cor_qt.h の 84 行で定義されています。
qt_t* sc_core::sc_cor_qt::m_sp |
sc_cor_qt.h の 85 行で定義されています。
sc_cor_qt.h の 87 行で定義されています。