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 #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;