1 #include "All.h" 2 #include "GlobalFunctions.h" 3 #include "IO.h" 4 5 #include "CharacterHelper.h" 6 7 #if 0 8 BOOL GetMMXAvailable ( void ) // 適当 9 { 10 return FALSE; 11 } 12 #endif 13 14 /* 15 #ifndef __GNUC_IA32__ 16 17 extern "C" BOOL GetMMXAvailable(void) 18 { 19 #ifdef ENABLE_ASSEMBLY 20 21 unsigned long nRegisterEDX; 22 23 try 24 { 25 __asm mov eax, 1 26 __asm CPUID 27 __asm mov nRegisterEDX, edx 28 } 29 catch(...) 30 { 31 return FALSE; 32 } 33 34 if (nRegisterEDX & 0x800000) 35 RETURN_ON_EXCEPTION(__asm emms, FALSE) 36 else 37 return FALSE; 38 39 return TRUE; 40 41 #else 42 return FALSE; 43 #endif 44 } 45 46 #endif // #ifndef __GNUC_IA32__ 47 */ 48 49 int ReadSafe(CIO * pIO, void * pBuffer, int nBytes) 50 { 51 unsigned int nBytesRead = 0; 52 int nRetVal = pIO->Read(pBuffer, nBytes, &nBytesRead); 53 if (nRetVal == ERROR_SUCCESS) 54 { 55 if (nBytes != int(nBytesRead)) 56 nRetVal = ERROR_IO_READ; 57 } 58 59 return nRetVal; 60 } 61 62 int WriteSafe(CIO * pIO, void * pBuffer, int nBytes) 63 { 64 unsigned int nBytesWritten = 0; 65 int nRetVal = pIO->Write(pBuffer, nBytes, &nBytesWritten); 66 if (nRetVal == ERROR_SUCCESS) 67 { 68 if (nBytes != int(nBytesWritten)) 69 nRetVal = ERROR_IO_WRITE; 70 } 71 72 return nRetVal; 73 } 74 75 BOOL FileExists(char* pFilename) 76 { 77 if (0 == wcscmp(pFilename, "-") || 0 == wcscmp(pFilename, "/dev/stdin")) 78 return TRUE; 79 80 #ifdef _WIN32 81 82 BOOL bFound = FALSE; 83 84 WIN32_FIND_DATA WFD; 85 HANDLE hFind = FindFirstFile(pFilename, &WFD); 86 if (hFind != INVALID_HANDLE_VALUE) 87 { 88 bFound = TRUE; 89 CloseHandle(hFind); 90 } 91 92 return bFound; 93 94 #else 95 96 CSmartPtr<char> spANSI(GetANSIFromUTF16(pFilename), TRUE); 97 98 struct stat b; 99 100 if (stat(spANSI, &b) != 0) 101 return FALSE; 102 103 if (!S_ISREG(b.st_mode)) 104 return FALSE; 105 106 return TRUE; 107 108 #endif 109 } 110