Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
a34e52cc
Commit
a34e52cc
authored
Feb 16, 2014
by
Ken Thomases
Committed by
Alexandre Julliard
Feb 17, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel32: Prefer the Mach host_statistics64(HOST_VM_INFO64) API over…
kernel32: Prefer the Mach host_statistics64(HOST_VM_INFO64) API over sysctl(HW_USERMEM) to obtain free memory.
parent
f40c5484
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
14 deletions
+33
-14
heap.c
dlls/kernel32/heap.c
+33
-14
No files found.
dlls/kernel32/heap.c
View file @
a34e52cc
...
...
@@ -1164,6 +1164,14 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
#ifdef VM_SWAPUSAGE
struct
xsw_usage
swap
;
#endif
#ifdef HAVE_MACH_MACH_H
host_name_port_t
host
;
mach_msg_type_number_t
count
;
kern_return_t
kr
;
host_basic_info_data_t
info
;
vm_statistics64_data_t
vm_stat
;
vm_size_t
page_size
;
#endif
#elif defined(sun)
unsigned
long
pagesize
,
maxpages
,
freepages
,
swapspace
,
swapfree
;
struct
anoninfo
swapinf
;
...
...
@@ -1240,22 +1248,22 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
#endif
#ifdef HAVE_MACH_MACH_H
host
=
mach_host_self
();
if
(
!
total
)
{
host_name_port_t
host
;
mach_msg_type_number_t
count
;
kern_return_t
kr
;
host_basic_info_data_t
info
;
host
=
mach_host_self
();
count
=
HOST_BASIC_INFO_COUNT
;
kr
=
host_info
(
host
,
HOST_BASIC_INFO
,
(
host_info_t
)
&
info
,
&
count
);
if
(
kr
==
KERN_SUCCESS
)
total
=
info
.
max_mem
;
mach_port_deallocate
(
mach_task_self
(),
host
);
}
count
=
HOST_VM_INFO64_COUNT
;
kr
=
host_statistics64
(
host
,
HOST_VM_INFO64
,
(
host_info64_t
)
&
vm_stat
,
&
count
);
if
(
kr
==
KERN_SUCCESS
)
kr
=
host_page_size
(
host
,
&
page_size
);
mach_port_deallocate
(
mach_task_self
(),
host
);
#endif
if
(
!
total
)
...
...
@@ -1269,11 +1277,22 @@ BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpmemex )
if
(
total
)
lpmemex
->
ullTotalPhys
=
total
;
mib
[
1
]
=
HW_USERMEM
;
size_sys
=
sizeof
(
val
);
if
(
!
sysctl
(
mib
,
2
,
&
val
,
&
size_sys
,
NULL
,
0
)
&&
size_sys
==
sizeof
(
val
)
&&
val
)
lpmemex
->
ullAvailPhys
=
val
;
else
lpmemex
->
ullAvailPhys
=
0
;
#ifdef HAVE_MACH_MACH_H
if
(
kr
==
KERN_SUCCESS
)
lpmemex
->
ullAvailPhys
=
(
vm_stat
.
free_count
+
vm_stat
.
inactive_count
)
*
(
DWORDLONG
)
page_size
;
#endif
if
(
!
lpmemex
->
ullAvailPhys
)
{
mib
[
1
]
=
HW_USERMEM
;
size_sys
=
sizeof
(
val
);
if
(
!
sysctl
(
mib
,
2
,
&
val
,
&
size_sys
,
NULL
,
0
)
&&
size_sys
==
sizeof
(
val
)
&&
val
)
lpmemex
->
ullAvailPhys
=
val
;
}
if
(
!
lpmemex
->
ullAvailPhys
)
lpmemex
->
ullAvailPhys
=
lpmemex
->
ullTotalPhys
;
lpmemex
->
ullTotalPageFile
=
lpmemex
->
ullAvailPhys
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment