typedef POSIX::posix_struct_stat Onikiri::EmulatorUtility::HostStat |
VirtualSystem.h の 39 行で定義されています。
VirtualMemory.h の 45 行で定義されています。
signed_type<T>::type Onikiri::EmulatorUtility::cast_to_signed | ( | T | x | ) | [inline] |
参照元 Onikiri::EmulatorUtility::Operation::BranchRelCond()・Onikiri::EmulatorUtility::Operation::BranchRelUncond()・Onikiri::EmulatorUtility::Operation::AShiftR< Type, TSrc1, TSrc2, count_mask >::operator()()・Onikiri::EmulatorUtility::Operation::IntNeg< Type, TSrc1 >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondGreaterEqualSigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondGreaterSigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondLessEqualSigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondLessSigned< Type, ArgType >::operator()()・Onikiri::AlphaLinux::Operation::AlphaCvtQT< TSrc1 >::operator()()・Onikiri::AlphaLinux::Operation::AlphaSextw< TSrc1 >::operator()()・Onikiri::AlphaLinux::Operation::AlphaSextb< TSrc1 >::operator()()・Onikiri::AlphaLinux::Operation::AlphaLdah< TSrc1, TSrc2 >::operator()()・Onikiri::AlphaLinux::Operation::AlphaAddrUnaligned< TSrc1, TSrc2 >::operator()()・Onikiri::AlphaLinux::Operation::AlphaAddr< TSrc1, TSrc2 >::operator()()・Onikiri::PPC64Linux::Operation::PPC64BranchRelCond()・Onikiri::PPC64Linux::Operation::PPC64BranchRelUncond()・Onikiri::PPC64Linux::Operation::PPC64SetF()・Onikiri::PPC64Linux::Operation::PPC64SetSextF()・Onikiri::EmulatorUtility::Operation::SetSext().
Here is the caller graph for this function:
unsigned_type<T>::type Onikiri::EmulatorUtility::cast_to_unsigned | ( | T | x | ) | [inline] |
参照元 Onikiri::EmulatorUtility::Operation::LShiftL< Type, TSrc1, TSrc2, count_mask >::operator()()・Onikiri::EmulatorUtility::Operation::LShiftR< Type, TSrc1, TSrc2, count_mask >::operator()()・Onikiri::EmulatorUtility::Operation::AShiftR< Type, TSrc1, TSrc2, count_mask >::operator()()・Onikiri::EmulatorUtility::Operation::IntNeg< Type, TSrc1 >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondGreaterEqualUnsigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondGreaterUnsigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondLessEqualUnsigned< Type, ArgType >::operator()()・Onikiri::EmulatorUtility::Operation::IntCondLessUnsigned< Type, ArgType >::operator()().
Here is the caller graph for this function:
T Onikiri::EmulatorUtility::ExtractBits | ( | T | value, | |
int | begin, | |||
int | len, | |||
bool | sext = false | |||
) |
DecoderUtility.h の 41 行で定義されています。
参照元 Onikiri::PPC64Linux::PPC64Decoder::Decode()・Onikiri::AlphaLinux::Alpha64Decoder::Decode().
00042 { 00043 T result = (value >> begin) & ~(~(T)0 << len); 00044 // sign extend 00045 if (sext && (result & ((T)1 << (len-1)))) 00046 result |= ~0 << len; 00047 return result; 00048 }
Here is the caller graph for this function:
std::string Onikiri::EmulatorUtility::StrCpyToHost | ( | MemorySystem * | mem, | |
u64 | targetAddr | |||
) |
MemoryUtility.cpp の 78 行で定義されています。
参照先 Onikiri::EmulatorUtility::MemorySystem::ReadMemory()・Onikiri::MemAccess::value.
参照元 Onikiri::PPC64Linux::PPC64LinuxSyscallConv::Execute()・Onikiri::AlphaLinux::AlphaLinuxSyscallConv::Execute()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_access()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_lstat64()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_mkdir()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_open()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_rename()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_stat64()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_truncate()・Onikiri::EmulatorUtility::Linux64SyscallConv::syscall_unlink().
00079 { 00080 std::string strData; 00081 u64 strAddr = targetAddr; 00082 while(true){ 00083 EmuMemAccess access( strAddr, 1, false ); 00084 mem->ReadMemory( &access ); 00085 if( access.value == '\0' ){ 00086 break; 00087 } 00088 strData += (char)access.value; 00089 strAddr++; 00090 }; 00091 00092 return strData; 00093 }
関数の呼び出しグラフ:
Here is the caller graph for this function:
u64 Onikiri::EmulatorUtility::TargetStrlen | ( | MemorySystem * | mem, | |
u64 | targetAddr | |||
) |
MemoryUtility.cpp の 41 行で定義されています。
参照先 Onikiri::EmulatorUtility::MemorySystem::ReadMemory()・Onikiri::MemAccess::value.
00042 { 00043 #if 0 00044 00045 BlockArray blocks; 00046 // MapUnitSize oCgstrlensDD 00047 SplitAtMapUnitBoundary(targetAddr, m_addrConv.GetMapUnitSize(), back_inserter(blocks) ); 00048 00049 u64 result = 0; 00050 for (BlockArray::iterator e = blocks.begin(); e != blocks.end(); ++e) { 00051 char* p = static_cast<char*>(m_addrConv.TargetToHost(e->addr)); 00052 for (int i = 0; i < (int)e->size; i ++, p ++) { 00053 if (*p == '\0') 00054 return result; 00055 else 00056 result ++; 00057 } 00058 } 00059 00060 // MapUnitSizeoCgCMapUnitSizeoCgstrlens 00061 return result + TargetStrlen(targetAddr+m_addrConv.GetMapUnitSize());; 00062 #else 00063 u64 length = 0; 00064 while(true){ 00065 EmuMemAccess access( targetAddr + length, 1, false ); 00066 mem->ReadMemory( &access ); 00067 if( access.value == '\0' ){ 00068 break; 00069 } 00070 length++; 00071 }; 00072 00073 return length; 00074 #endif 00075 }
関数の呼び出しグラフ: