ipc/glue/SharedMemory_windows.cpp

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:d6197c869067
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * vim: sw=2 ts=8 et :
3 */
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7
8 #include <windows.h>
9
10 #include "mozilla/ipc/SharedMemory.h"
11
12 namespace mozilla {
13 namespace ipc {
14
15 void
16 SharedMemory::SystemProtect(char* aAddr, size_t aSize, int aRights)
17 {
18 DWORD flags;
19 if ((aRights & RightsRead) && (aRights & RightsWrite))
20 flags = PAGE_READWRITE;
21 else if (aRights & RightsRead)
22 flags = PAGE_READONLY;
23 else
24 flags = PAGE_NOACCESS;
25
26 DWORD oldflags;
27 if (!VirtualProtect(aAddr, aSize, flags, &oldflags))
28 NS_RUNTIMEABORT("can't VirtualProtect()");
29 }
30
31 size_t
32 SharedMemory::SystemPageSize()
33 {
34 SYSTEM_INFO si;
35 GetSystemInfo(&si);
36 return si.dwPageSize;
37 }
38
39 } // namespace ipc
40 } // namespace mozilla

mercurial