libwinpr: add stubs for io and file modules
This commit is contained in:
parent
1d6a4f68bb
commit
75f7f78af1
31
winpr/include/winpr/file.h
Normal file
31
winpr/include/winpr/file.h
Normal file
@ -0,0 +1,31 @@
|
||||
/**
|
||||
* WinPR: Windows Portable Runtime
|
||||
* File Functions
|
||||
*
|
||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef WINPR_FILE_H
|
||||
#define WINPR_FILE_H
|
||||
|
||||
#include <winpr/winpr.h>
|
||||
#include <winpr/wtypes.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* WINPR_FILE_H */
|
||||
|
78
winpr/include/winpr/io.h
Normal file
78
winpr/include/winpr/io.h
Normal file
@ -0,0 +1,78 @@
|
||||
/**
|
||||
* WinPR: Windows Portable Runtime
|
||||
* Asynchronous I/O Functions
|
||||
*
|
||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef WINPR_IO_H
|
||||
#define WINPR_IO_H
|
||||
|
||||
#include <winpr/winpr.h>
|
||||
#include <winpr/wtypes.h>
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
typedef struct _OVERLAPPED
|
||||
{
|
||||
ULONG_PTR Internal;
|
||||
ULONG_PTR InternalHigh;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
DWORD Offset;
|
||||
DWORD OffsetHigh;
|
||||
};
|
||||
PVOID Pointer;
|
||||
};
|
||||
HANDLE hEvent;
|
||||
} OVERLAPPED, *LPOVERLAPPED;
|
||||
|
||||
typedef struct _OVERLAPPED_ENTRY
|
||||
{
|
||||
ULONG_PTR lpCompletionKey;
|
||||
LPOVERLAPPED lpOverlapped;
|
||||
ULONG_PTR Internal;
|
||||
DWORD dwNumberOfBytesTransferred;
|
||||
} OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
|
||||
|
||||
WINPR_API BOOL GetOverlappedResult(HANDLE hFile, LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred, BOOL bWait);
|
||||
|
||||
WINPR_API BOOL GetOverlappedResultEx(HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, DWORD dwMilliseconds, BOOL bAlertable);
|
||||
|
||||
WINPR_API BOOL DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize,
|
||||
LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
|
||||
|
||||
WINPR_API HANDLE CreateIoCompletionPort(HANDLE FileHandle, HANDLE ExistingCompletionPort, ULONG_PTR CompletionKey, DWORD NumberOfConcurrentThreads);
|
||||
|
||||
WINPR_API BOOL GetQueuedCompletionStatus(HANDLE CompletionPort, LPDWORD lpNumberOfBytesTransferred,
|
||||
PULONG_PTR lpCompletionKey, LPOVERLAPPED* lpOverlapped, DWORD dwMilliseconds);
|
||||
|
||||
WINPR_API BOOL GetQueuedCompletionStatusEx(HANDLE CompletionPort, LPOVERLAPPED_ENTRY lpCompletionPortEntries,
|
||||
ULONG ulCount, PULONG ulNumEntriesRemoved, DWORD dwMilliseconds, BOOL fAlertable);
|
||||
|
||||
WINPR_API BOOL PostQueuedCompletionStatus(HANDLE CompletionPort, DWORD dwNumberOfBytesTransferred, ULONG_PTR dwCompletionKey, LPOVERLAPPED lpOverlapped);
|
||||
|
||||
WINPR_API BOOL CancelIo(HANDLE hFile);
|
||||
|
||||
WINPR_API BOOL CancelIoEx(HANDLE hFile, LPOVERLAPPED lpOverlapped);
|
||||
|
||||
WINPR_API BOOL CancelSynchronousIo(HANDLE hThread);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* WINPR_IO_H */
|
||||
|
@ -78,8 +78,8 @@ typedef long LONG, *PLONG, *LPLONG;
|
||||
typedef signed __int64 LONGLONG;
|
||||
typedef LONG HRESULT;
|
||||
|
||||
typedef __int3264 LONG_PTR;
|
||||
typedef unsigned __int3264 ULONG_PTR;
|
||||
typedef __int3264 LONG_PTR, *PLONG_PTR;
|
||||
typedef unsigned __int3264 ULONG_PTR, *PULONG_PTR;
|
||||
|
||||
typedef signed int LONG32;
|
||||
typedef signed __int64 LONG64;
|
||||
|
@ -29,6 +29,8 @@ add_subdirectory(crt)
|
||||
add_subdirectory(utils)
|
||||
add_subdirectory(heap)
|
||||
add_subdirectory(path)
|
||||
add_subdirectory(io)
|
||||
add_subdirectory(file)
|
||||
add_subdirectory(environment)
|
||||
add_subdirectory(interlocked)
|
||||
add_subdirectory(handle)
|
||||
@ -53,6 +55,8 @@ if(WITH_MONOLITHIC_BUILD)
|
||||
$<TARGET_OBJECTS:winpr-utils>
|
||||
$<TARGET_OBJECTS:winpr-heap>
|
||||
$<TARGET_OBJECTS:winpr-path>
|
||||
$<TARGET_OBJECTS:winpr-io>
|
||||
$<TARGET_OBJECTS:winpr-file>
|
||||
$<TARGET_OBJECTS:winpr-environment>
|
||||
$<TARGET_OBJECTS:winpr-interlocked>
|
||||
$<TARGET_OBJECTS:winpr-handle>
|
||||
|
37
winpr/libwinpr/file/CMakeLists.txt
Normal file
37
winpr/libwinpr/file/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
||||
# WinPR: Windows Portable Runtime
|
||||
# libwinpr-file cmake build script
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(MODULE_NAME "winpr-file")
|
||||
set(MODULE_PREFIX "WINPR_FILE")
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
file.c)
|
||||
|
||||
if(WITH_MONOLITHIC_BUILD)
|
||||
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
|
||||
else()
|
||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
endif()
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION_FULL} SOVERSION ${WINPR_VERSION} PREFIX "lib")
|
||||
|
||||
if(WITH_MONOLITHIC_BUILD)
|
||||
|
||||
else()
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
9
winpr/libwinpr/file/ModuleOptions.cmake
Normal file
9
winpr/libwinpr/file/ModuleOptions.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
set(MINWIN_LAYER "1")
|
||||
set(MINWIN_GROUP "core")
|
||||
set(MINWIN_MAJOR_VERSION "2")
|
||||
set(MINWIN_MINOR_VERSION "0")
|
||||
set(MINWIN_SHORT_NAME "file")
|
||||
set(MINWIN_LONG_NAME "File Functions")
|
||||
set(MODULE_LIBRARY_NAME "api-ms-win-${MINWIN_GROUP}-${MINWIN_SHORT_NAME}-l${MINWIN_LAYER}-${MINWIN_MAJOR_VERSION}-${MINWIN_MINOR_VERSION}")
|
||||
|
115
winpr/libwinpr/file/file.c
Normal file
115
winpr/libwinpr/file/file.c
Normal file
@ -0,0 +1,115 @@
|
||||
/**
|
||||
* WinPR: Windows Portable Runtime
|
||||
* File Functions
|
||||
*
|
||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <winpr/file.h>
|
||||
|
||||
/**
|
||||
* api-ms-win-core-file-l1-2-0.dll:
|
||||
*
|
||||
* CompareFileTime
|
||||
* CreateDirectoryA
|
||||
* CreateDirectoryW
|
||||
* CreateFile2
|
||||
* CreateFileA
|
||||
* CreateFileW
|
||||
* DefineDosDeviceW
|
||||
* DeleteFileA
|
||||
* DeleteFileW
|
||||
* DeleteVolumeMountPointW
|
||||
* FileTimeToLocalFileTime
|
||||
* FindClose
|
||||
* FindCloseChangeNotification
|
||||
* FindFirstChangeNotificationA
|
||||
* FindFirstChangeNotificationW
|
||||
* FindFirstFileA
|
||||
* FindFirstFileExA
|
||||
* FindFirstFileExW
|
||||
* FindFirstFileW
|
||||
* FindFirstVolumeW
|
||||
* FindNextChangeNotification
|
||||
* FindNextFileA
|
||||
* FindNextFileW
|
||||
* FindNextVolumeW
|
||||
* FindVolumeClose
|
||||
* FlushFileBuffers
|
||||
* GetDiskFreeSpaceA
|
||||
* GetDiskFreeSpaceExA
|
||||
* GetDiskFreeSpaceExW
|
||||
* GetDiskFreeSpaceW
|
||||
* GetDriveTypeA
|
||||
* GetDriveTypeW
|
||||
* GetFileAttributesA
|
||||
* GetFileAttributesExA
|
||||
* GetFileAttributesExW
|
||||
* GetFileAttributesW
|
||||
* GetFileInformationByHandle
|
||||
* GetFileSize
|
||||
* GetFileSizeEx
|
||||
* GetFileTime
|
||||
* GetFileType
|
||||
* GetFinalPathNameByHandleA
|
||||
* GetFinalPathNameByHandleW
|
||||
* GetFullPathNameA
|
||||
* GetFullPathNameW
|
||||
* GetLogicalDrives
|
||||
* GetLogicalDriveStringsW
|
||||
* GetLongPathNameA
|
||||
* GetLongPathNameW
|
||||
* GetShortPathNameW
|
||||
* GetTempFileNameW
|
||||
* GetTempPathW
|
||||
* GetVolumeInformationByHandleW
|
||||
* GetVolumeInformationW
|
||||
* GetVolumeNameForVolumeMountPointW
|
||||
* GetVolumePathNamesForVolumeNameW
|
||||
* GetVolumePathNameW
|
||||
* LocalFileTimeToFileTime
|
||||
* LockFile
|
||||
* LockFileEx
|
||||
* QueryDosDeviceW
|
||||
* ReadFile
|
||||
* ReadFileEx
|
||||
* ReadFileScatter
|
||||
* RemoveDirectoryA
|
||||
* RemoveDirectoryW
|
||||
* SetEndOfFile
|
||||
* SetFileAttributesA
|
||||
* SetFileAttributesW
|
||||
* SetFileInformationByHandle
|
||||
* SetFilePointer
|
||||
* SetFilePointerEx
|
||||
* SetFileTime
|
||||
* SetFileValidData
|
||||
* UnlockFile
|
||||
* UnlockFileEx
|
||||
* WriteFile
|
||||
* WriteFileEx
|
||||
* WriteFileGather
|
||||
*/
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
37
winpr/libwinpr/io/CMakeLists.txt
Normal file
37
winpr/libwinpr/io/CMakeLists.txt
Normal file
@ -0,0 +1,37 @@
|
||||
# WinPR: Windows Portable Runtime
|
||||
# libwinpr-io cmake build script
|
||||
#
|
||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
set(MODULE_NAME "winpr-io")
|
||||
set(MODULE_PREFIX "WINPR_IO")
|
||||
|
||||
set(${MODULE_PREFIX}_SRCS
|
||||
io.c)
|
||||
|
||||
if(WITH_MONOLITHIC_BUILD)
|
||||
add_library(${MODULE_NAME} OBJECT ${${MODULE_PREFIX}_SRCS})
|
||||
else()
|
||||
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||
endif()
|
||||
|
||||
set_target_properties(${MODULE_NAME} PROPERTIES VERSION ${WINPR_VERSION_FULL} SOVERSION ${WINPR_VERSION} PREFIX "lib")
|
||||
|
||||
if(WITH_MONOLITHIC_BUILD)
|
||||
|
||||
else()
|
||||
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
|
9
winpr/libwinpr/io/ModuleOptions.cmake
Normal file
9
winpr/libwinpr/io/ModuleOptions.cmake
Normal file
@ -0,0 +1,9 @@
|
||||
|
||||
set(MINWIN_LAYER "1")
|
||||
set(MINWIN_GROUP "core")
|
||||
set(MINWIN_MAJOR_VERSION "1")
|
||||
set(MINWIN_MINOR_VERSION "1")
|
||||
set(MINWIN_SHORT_NAME "io")
|
||||
set(MINWIN_LONG_NAME "Asynchronous I/O Functions")
|
||||
set(MODULE_LIBRARY_NAME "api-ms-win-${MINWIN_GROUP}-${MINWIN_SHORT_NAME}-l${MINWIN_LAYER}-${MINWIN_MAJOR_VERSION}-${MINWIN_MINOR_VERSION}")
|
||||
|
96
winpr/libwinpr/io/io.c
Normal file
96
winpr/libwinpr/io/io.c
Normal file
@ -0,0 +1,96 @@
|
||||
/**
|
||||
* WinPR: Windows Portable Runtime
|
||||
* Asynchronous I/O Functions
|
||||
*
|
||||
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <winpr/io.h>
|
||||
|
||||
/**
|
||||
* api-ms-win-core-io-l1-1-1.dll:
|
||||
*
|
||||
* GetOverlappedResult
|
||||
* GetOverlappedResultEx
|
||||
* DeviceIoControl
|
||||
* CreateIoCompletionPort
|
||||
* GetQueuedCompletionStatus
|
||||
* GetQueuedCompletionStatusEx
|
||||
* PostQueuedCompletionStatus
|
||||
* CancelIo
|
||||
* CancelIoEx
|
||||
* CancelSynchronousIo
|
||||
*/
|
||||
|
||||
#ifndef _WIN32
|
||||
|
||||
BOOL GetOverlappedResult(HANDLE hFile, LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred, BOOL bWait)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL GetOverlappedResultEx(HANDLE hFile, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, DWORD dwMilliseconds, BOOL bAlertable)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL DeviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize,
|
||||
LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HANDLE CreateIoCompletionPort(HANDLE FileHandle, HANDLE ExistingCompletionPort, ULONG_PTR CompletionKey, DWORD NumberOfConcurrentThreads)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
BOOL GetQueuedCompletionStatus(HANDLE CompletionPort, LPDWORD lpNumberOfBytesTransferred,
|
||||
PULONG_PTR lpCompletionKey, LPOVERLAPPED* lpOverlapped, DWORD dwMilliseconds)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL GetQueuedCompletionStatusEx(HANDLE CompletionPort, LPOVERLAPPED_ENTRY lpCompletionPortEntries,
|
||||
ULONG ulCount, PULONG ulNumEntriesRemoved, DWORD dwMilliseconds, BOOL fAlertable)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL PostQueuedCompletionStatus(HANDLE CompletionPort, DWORD dwNumberOfBytesTransferred, ULONG_PTR dwCompletionKey, LPOVERLAPPED lpOverlapped)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CancelIo(HANDLE hFile)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CancelIoEx(HANDLE hFile, LPOVERLAPPED lpOverlapped)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL CancelSynchronousIo(HANDLE hThread)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user