2013-02-10 13:52:01 +00:00
|
|
|
// memory.hpp --------------------------------------------------------------//
|
|
|
|
|
|
|
|
// Copyright 2010 Vicente J. Botet Escriba
|
|
|
|
|
|
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
|
|
// See http://www.boost.org/LICENSE_1_0.txt
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef BOOST_DETAIL_WIN_MEMORY_HPP
|
|
|
|
#define BOOST_DETAIL_WIN_MEMORY_HPP
|
|
|
|
|
|
|
|
#include <boost/detail/win/basic_types.hpp>
|
|
|
|
#include <boost/detail/win/security.hpp>
|
|
|
|
#include <boost/detail/win/LocalFree.hpp>
|
|
|
|
|
|
|
|
|
|
|
|
namespace boost
|
|
|
|
{
|
|
|
|
namespace detail
|
|
|
|
{
|
|
|
|
namespace win32
|
|
|
|
{
|
|
|
|
#if defined( BOOST_USE_WINDOWS_H )
|
|
|
|
using ::CreateFileMappingA;
|
|
|
|
using ::FlushViewOfFile;
|
|
|
|
using ::GetProcessHeap;
|
|
|
|
using ::HeapAlloc;
|
|
|
|
using ::HeapFree;
|
|
|
|
using ::MapViewOfFileEx;
|
|
|
|
using ::OpenFileMappingA;
|
|
|
|
using ::UnmapViewOfFile;
|
|
|
|
#else
|
|
|
|
# ifdef HeapAlloc
|
|
|
|
# undef HeapAlloc
|
|
|
|
# endif
|
|
|
|
extern "C" {
|
|
|
|
__declspec(dllimport) void * __stdcall
|
|
|
|
CreateFileMappingA (void *, SECURITY_ATTRIBUTES_*, unsigned long, unsigned long, unsigned long, const char *);
|
|
|
|
__declspec(dllimport) int __stdcall
|
|
|
|
FlushViewOfFile (void *, std::size_t);
|
|
|
|
__declspec(dllimport) HANDLE_ __stdcall
|
|
|
|
GetProcessHeap();
|
|
|
|
__declspec(dllimport) void* __stdcall
|
|
|
|
HeapAlloc(HANDLE_,DWORD_,SIZE_T_);
|
|
|
|
__declspec(dllimport) BOOL_ __stdcall
|
|
|
|
HeapFree(HANDLE_,DWORD_,LPVOID_);
|
|
|
|
__declspec(dllimport) void * __stdcall
|
|
|
|
MapViewOfFileEx (void *, unsigned long, unsigned long, unsigned long, std::size_t, void*);
|
|
|
|
__declspec(dllimport) void * __stdcall
|
|
|
|
OpenFileMappingA (unsigned long, int, const char *);
|
|
|
|
__declspec(dllimport) int __stdcall
|
|
|
|
UnmapViewOfFile(void *);
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // BOOST_DETAIL_WIN_SYNCHRONIZATION_HPP
|