summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys-utils/ipcrm.c4
-rw-r--r--sys-utils/ipcs.c16
-rw-r--r--sys-utils/ipcutils.c12
3 files changed, 17 insertions, 15 deletions
diff --git a/sys-utils/ipcrm.c b/sys-utils/ipcrm.c
index 6443f48fb..5fe3df849 100644
--- a/sys-utils/ipcrm.c
+++ b/sys-utils/ipcrm.c
@@ -235,7 +235,6 @@ static int remove_all(type_id type)
int id, rm_me, maxid;
struct shmid_ds shmseg;
- struct shm_info shm_info;
struct semid_ds semary;
struct seminfo seminfo;
@@ -245,8 +244,7 @@ static int remove_all(type_id type)
struct msginfo msginfo;
if (type == SHM || type == ALL) {
- maxid =
- shmctl(0, SHM_INFO, (struct shmid_ds *)(void *)&shm_info);
+ maxid = shmctl(0, SHM_INFO, &shmseg);
if (maxid < 0)
errx(EXIT_FAILURE,
_("kernel not configured for shared memory"));
diff --git a/sys-utils/ipcs.c b/sys-utils/ipcs.c
index 9ce536612..a2d7f12ad 100644
--- a/sys-utils/ipcs.c
+++ b/sys-utils/ipcs.c
@@ -209,9 +209,11 @@ static void do_shm (char format, int unit)
case STATUS:
{
int maxid;
- struct shm_info shm_info;
+ struct shmid_ds shmbuf;
+ struct shm_info *shm_info;
- maxid = shmctl (0, SHM_INFO, (struct shmid_ds *) &shm_info);
+ maxid = shmctl (0, SHM_INFO, &shmbuf);
+ shm_info = (struct shm_info *) &shmbuf;
if (maxid < 0) {
printf (_("kernel not configured for shared memory\n"));
return;
@@ -234,11 +236,11 @@ static void do_shm (char format, int unit)
"pages resident %ld\n"
"pages swapped %ld\n"
"Swap performance: %ld attempts\t %ld successes\n"),
- shm_info.used_ids,
- shm_info.shm_tot,
- shm_info.shm_rss,
- shm_info.shm_swp,
- shm_info.swap_attempts, shm_info.swap_successes);
+ shm_info->used_ids,
+ shm_info->shm_tot,
+ shm_info->shm_rss,
+ shm_info->shm_swp,
+ shm_info->swap_attempts, shm_info->swap_successes);
return;
}
diff --git a/sys-utils/ipcutils.c b/sys-utils/ipcutils.c
index 3d5249c93..d1858a06a 100644
--- a/sys-utils/ipcutils.c
+++ b/sys-utils/ipcutils.c
@@ -1,4 +1,3 @@
-
#include <inttypes.h>
#include "c.h"
@@ -82,12 +81,15 @@ int ipc_shm_get_limits(struct ipc_limits *lim)
lim->shmmni = path_read_u64(_PATH_PROC_IPC_SHMMNI);
} else {
- struct shminfo shminfo;
+ struct shminfo *shminfo;
+ struct shmid_ds shmbuf;
- if (shmctl(0, IPC_INFO, (struct shmid_ds *) &shminfo) < 0)
+ if (shmctl(0, IPC_INFO, &shmbuf) < 0)
return 1;
- lim->shmmni = shminfo.shmmni;
- lim->shmall = shminfo.shmall;
+ shminfo = (struct shminfo *) &shmbuf;
+ lim->shmmni = shminfo->shmmni;
+ lim->shmall = shminfo->shmall;
+ lim->shmmax = shminfo->shmmax;
}
return 0;