mirror of
https://github.com/decompals/wibo.git
synced 2025-12-14 23:56:16 +00:00
kernel32/wincon cleanup
This commit is contained in:
@@ -168,13 +168,16 @@ BOOL WINAPI IsProcessorFeaturePresent(DWORD ProcessorFeature) {
|
||||
HOST_CONTEXT_GUARD();
|
||||
DEBUG_LOG("IsProcessorFeaturePresent(%u)\n", ProcessorFeature);
|
||||
if (ProcessorFeature == 0) { // PF_FLOATING_POINT_PRECISION_ERRATA
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
if (ProcessorFeature == 1) { // PF_FLOATING_POINT_EMULATED
|
||||
return FALSE;
|
||||
}
|
||||
if (ProcessorFeature == 10) { // PF_XMMI64_INSTRUCTIONS_AVAILABLE (SSE2)
|
||||
return TRUE;
|
||||
}
|
||||
if (ProcessorFeature == 23) { // PF_FASTFAIL_AVAILABLE (__fastfail() supported)
|
||||
return TRUE;
|
||||
if (ProcessorFeature == 23) { // PF_FASTFAIL_AVAILABLE (__fastfail)
|
||||
return FALSE;
|
||||
}
|
||||
DEBUG_LOG(" IsProcessorFeaturePresent: unknown feature %u, returning TRUE\n", ProcessorFeature);
|
||||
return TRUE;
|
||||
@@ -599,7 +602,7 @@ BOOL WINAPI GetThreadTimes(HANDLE hThread, FILETIME *lpCreationTime, FILETIME *l
|
||||
}
|
||||
|
||||
#ifdef __linux__
|
||||
struct rusage usage {};
|
||||
struct rusage usage{};
|
||||
if (getrusage(RUSAGE_THREAD, &usage) == 0) {
|
||||
*lpKernelTime = fileTimeFromTimeval(usage.ru_stime);
|
||||
*lpUserTime = fileTimeFromTimeval(usage.ru_utime);
|
||||
@@ -607,7 +610,7 @@ BOOL WINAPI GetThreadTimes(HANDLE hThread, FILETIME *lpCreationTime, FILETIME *l
|
||||
}
|
||||
#endif
|
||||
|
||||
struct timespec cpuTime {};
|
||||
struct timespec cpuTime{};
|
||||
if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &cpuTime) == 0) {
|
||||
*lpKernelTime = fileTimeFromDuration(0);
|
||||
*lpUserTime = fileTimeFromTimespec(cpuTime);
|
||||
|
||||
@@ -61,7 +61,7 @@ BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput, CONSOLE_SCREEN_BUF
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCVOID lpBuffer, DWORD nNumberOfCharsToWrite,
|
||||
BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCWSTR lpBuffer, DWORD nNumberOfCharsToWrite,
|
||||
LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved) {
|
||||
HOST_CONTEXT_GUARD();
|
||||
DEBUG_LOG("WriteConsoleW(%p, %p, %u, %p, %p)\n", hConsoleOutput, lpBuffer, nNumberOfCharsToWrite,
|
||||
@@ -77,10 +77,14 @@ BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCVOID lpBuffer, DWORD nNumber
|
||||
|
||||
auto file = wibo::handles().getAs<FileObject>(hConsoleOutput);
|
||||
if (file->fd == STDOUT_FILENO || file->fd == STDERR_FILENO) {
|
||||
auto str = wideStringToString(static_cast<const uint16_t *>(lpBuffer), static_cast<int>(nNumberOfCharsToWrite));
|
||||
dprintf(file->fd, "%s", str.c_str());
|
||||
auto str = wideStringToString(lpBuffer, static_cast<int>(nNumberOfCharsToWrite));
|
||||
auto io = files::write(file.get(), str.c_str(), str.size(), std::nullopt, true);
|
||||
if (lpNumberOfCharsWritten) {
|
||||
*lpNumberOfCharsWritten = nNumberOfCharsToWrite;
|
||||
*lpNumberOfCharsWritten = io.bytesTransferred;
|
||||
}
|
||||
if (io.unixError != 0) {
|
||||
setLastError(wibo::winErrorFromErrno(io.unixError));
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ struct CONSOLE_SCREEN_BUFFER_INFO {
|
||||
|
||||
struct INPUT_RECORD;
|
||||
|
||||
typedef BOOL (_CC_STDCALL *PHANDLER_ROUTINE)(DWORD CtrlType);
|
||||
typedef BOOL(_CC_STDCALL *PHANDLER_ROUTINE)(DWORD CtrlType);
|
||||
|
||||
namespace kernel32 {
|
||||
|
||||
@@ -34,14 +34,14 @@ UINT WINAPI GetConsoleCP();
|
||||
UINT WINAPI GetConsoleOutputCP();
|
||||
BOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine, BOOL Add);
|
||||
BOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput, CONSOLE_SCREEN_BUFFER_INFO *lpConsoleScreenBufferInfo);
|
||||
BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCVOID lpBuffer, DWORD nNumberOfCharsToWrite,
|
||||
LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved);
|
||||
BOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput, LPCWSTR lpBuffer, DWORD nNumberOfCharsToWrite,
|
||||
LPDWORD lpNumberOfCharsWritten, LPVOID lpReserved);
|
||||
DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle, DWORD nSize);
|
||||
DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle, DWORD nSize);
|
||||
BOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput, INPUT_RECORD *lpBuffer, DWORD nLength,
|
||||
LPDWORD lpNumberOfEventsRead);
|
||||
LPDWORD lpNumberOfEventsRead);
|
||||
BOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput, INPUT_RECORD *lpBuffer, DWORD nLength,
|
||||
LPDWORD lpNumberOfEventsRead);
|
||||
LPDWORD lpNumberOfEventsRead);
|
||||
BOOL WINAPI VerifyConsoleIoHandle(HANDLE handle);
|
||||
|
||||
} // namespace kernel32
|
||||
|
||||
Reference in New Issue
Block a user