Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
ef1e62d1
Commit
ef1e62d1
authored
Mar 07, 2016
by
Hisham Muhammad
Browse files
Merge branch 'juanfra684-openbsd-mem-used'
parents
453105e7
4ad7aa64
Changes
1
Hide whitespace changes
Inline
Side-by-side
openbsd/OpenBSDProcessList.c
View file @
ef1e62d1
...
...
@@ -10,19 +10,20 @@ in the source distribution for its full text.
#include "OpenBSDProcessList.h"
#include "OpenBSDProcess.h"
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/mount.h>
#include <sys/param.h>
#include <sys/proc.h>
#include <sys/resource.h>
#include <sys/sysctl.h>
#include <sys/types.h>
#include <sys/user.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <
sys/resource
.h>
#include <
unistd
.h>
/*{
...
...
@@ -114,15 +115,27 @@ void ProcessList_delete(ProcessList* this) {
static
inline
void
OpenBSDProcessList_scanMemoryInfo
(
ProcessList
*
pl
)
{
static
int
uvmexp_mib
[]
=
{
CTL_VM
,
VM_UVMEXP
};
struct
uvmexp
uvmexp
;
size_t
size
=
sizeof
(
uvmexp
);
size_t
size
_uvmexp
=
sizeof
(
uvmexp
);
if
(
sysctl
(
uvmexp_mib
,
2
,
&
uvmexp
,
&
size
,
NULL
,
0
)
<
0
)
{
if
(
sysctl
(
uvmexp_mib
,
2
,
&
uvmexp
,
&
size
_uvmexp
,
NULL
,
0
)
<
0
)
{
err
(
1
,
"uvmexp sysctl call failed"
);
}
pl
->
usedMem
=
uvmexp
.
active
*
PAGE_SIZE_KB
;
pl
->
totalMem
=
uvmexp
.
npages
*
PAGE_SIZE_KB
;
// Taken from OpenBSD systat/iostat.c, top/machine.c and uvm_sysctl(9)
static
int
bcache_mib
[]
=
{
CTL_VFS
,
VFS_GENERIC
,
VFS_BCACHESTAT
};
struct
bcachestats
bcstats
;
size_t
size_bcstats
=
sizeof
(
bcstats
);
if
(
sysctl
(
bcache_mib
,
3
,
&
bcstats
,
&
size_bcstats
,
NULL
,
0
)
<
0
)
{
err
(
1
,
"cannot get vfs.bcachestat"
);
}
pl
->
cachedMem
=
bcstats
.
numbufpages
*
PAGE_SIZE_KB
;
pl
->
freeMem
=
uvmexp
.
free
*
PAGE_SIZE_KB
;
pl
->
usedMem
=
(
uvmexp
.
npages
-
uvmexp
.
free
-
uvmexp
.
paging
)
*
PAGE_SIZE_KB
;
/*
const OpenBSDProcessList* opl = (OpenBSDProcessList*) pl;
...
...
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