Re: 2G+ sysv shm segments

From: Peter Jeremy <peterjeremy_at_optushome.com.au>
Date: Wed, 17 Oct 2007 05:38:43 +1000
On 2007-Oct-15 18:17:14 +0400, Igor Sysoev <is_at_rambler-co.ru> wrote:
>more than 2G. The attached patches against 6.x and 7.x allow to create 2G+
>segments.

Useful, thanks.

>--- src/sys/sys/shm.h	2007-09-12 23:33:39.000000000 +0400
>+++ src/sys/sys/shm.h	2007-10-15 17:42:38.000000000 +0400
>_at__at_ -77,7 +77,7 _at__at_
> 
> struct shmid_ds {
> 	struct ipc_perm shm_perm;	/* operation permission structure */
>-	int             shm_segsz;	/* size of segment in bytes */
>+	size_t          shm_segsz;	/* size of segment in bytes */
...
>--- src/usr.bin/ipcs/ipcs.c	2007-09-12 23:32:25.000000000 +0400
>+++ src/usr.bin/ipcs/ipcs.c	2007-10-15 17:29:06.000000000 +0400
>_at__at_ -439,7 +439,7 _at__at_
> 						    kshmptr->u.shm_nattch);
> 
> 					if (option & BIGGEST)
>-						printf(" %12d",
>+						printf(" %12ld",
> 						    kshmptr->u.shm_segsz);

Note that size_t is always 'unsigned' and translates to 'int' rather
than 'long' on i386 so this printf will report a warning.  I suggest
printf(" %12lu", (unsigned long)kshmptr->u.shm_segsz); or similar.

-- 
Peter Jeremy

Received on Tue Oct 16 2007 - 17:38:46 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:19 UTC