diff options
author | phk <phk@FreeBSD.org> | 2003-07-18 10:26:09 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-07-18 10:26:09 +0000 |
commit | 5fa40a32657fa0c3bd8a986099bb65516d11e97b (patch) | |
tree | f65e135aef6b67bb4e1d27be159856b438db243f /sys/compat | |
parent | 84f9cb2fa862e169a92c4dc14584dda3a33c2a89 (diff) | |
download | FreeBSD-src-5fa40a32657fa0c3bd8a986099bb65516d11e97b.zip FreeBSD-src-5fa40a32657fa0c3bd8a986099bb65516d11e97b.tar.gz |
Add a new function swap_pager_status() which reports the total size of the
paging space and how much of it is in use (in pages).
Use this interface from the Linuxolator instead of groping around in the
internals of the swap_pager.
Diffstat (limited to 'sys/compat')
-rw-r--r-- | sys/compat/linprocfs/linprocfs.c | 13 | ||||
-rw-r--r-- | sys/compat/linux/linux_misc.c | 12 |
2 files changed, 9 insertions, 16 deletions
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c index fe789be..da3530b 100644 --- a/sys/compat/linprocfs/linprocfs.c +++ b/sys/compat/linprocfs/linprocfs.c @@ -121,6 +121,7 @@ linprocfs_domeminfo(PFS_FILL_ARGS) unsigned long long swapused; /* used swap space in bytes */ unsigned long long swapfree; /* free swap space in bytes */ vm_object_t object; + int i, j; memtotal = physmem * PAGE_SIZE; /* @@ -135,14 +136,10 @@ linprocfs_domeminfo(PFS_FILL_ARGS) */ memused = cnt.v_wire_count * PAGE_SIZE; memfree = memtotal - memused; - if (swapblist == NULL) { - swaptotal = 0; - swapfree = 0; - } else { - swaptotal = (u_quad_t)swapblist->bl_blocks * 1024; /* XXX why 1024? */ - swapfree = (u_quad_t)swapblist->bl_root->u.bmu_avail * PAGE_SIZE; - } - swapused = swaptotal - swapfree; + swap_pager_status(&i, &j); + swaptotal = i * PAGE_SIZE; + swapused = j * PAGE_SIZE; + swapfree = swaptotal - swapused; memshared = 0; TAILQ_FOREACH(object, &vm_object_list, object_list) if (object->shadow_count > 1) diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index cf113ea..8ccc5cf 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -108,7 +108,7 @@ linux_sysinfo(struct thread *td, struct linux_sysinfo_args *args) { struct l_sysinfo sysinfo; vm_object_t object; - int i; + int i, j; struct timespec ts; /* Uptime is copied out of print_uptime() in kern_shutdown.c */ @@ -144,13 +144,9 @@ linux_sysinfo(struct thread *td, struct linux_sysinfo_args *args) sysinfo.sharedram *= PAGE_SIZE; sysinfo.bufferram = 0; - if (swapblist == NULL) { - sysinfo.totalswap= 0; - sysinfo.freeswap = 0; - } else { - sysinfo.totalswap = swapblist->bl_blocks * 1024; - sysinfo.freeswap = swapblist->bl_root->u.bmu_avail * PAGE_SIZE; - } + swap_pager_status(&i, &j); + sysinfo.totalswap= i * PAGE_SIZE; + sysinfo.freeswap = (i - j) * PAGE_SIZE; sysinfo.procs = 20; /* Hack */ |