Commit Graph

34 Commits

Author SHA1 Message Date
John Baldwin
b648d4806b Change the ABI of some of the structures used by the SYSV IPC API:
- The uid/cuid members of struct ipc_perm are now uid_t instead of unsigned
  short.
- The gid/cgid members of struct ipc_perm are now gid_t instead of unsigned
  short.
- The mode member of struct ipc_perm is now mode_t instead of unsigned short
  (this is merely a style bug).
- The rather dubious padding fields for ABI compat with SV/I386 have been
  removed from struct msqid_ds and struct semid_ds.
- The shm_segsz member of struct shmid_ds is now a size_t instead of an
  int.  This removes the need for the shm_bsegsz member in struct
  shmid_kernel and should allow for complete support of SYSV SHM regions
  >= 2GB.
- The shm_nattch member of struct shmid_ds is now an int instead of a
  short.
- The shm_internal member of struct shmid_ds is now gone.  The internal
  VM object pointer for SHM regions has been moved into struct
  shmid_kernel.
- The existing __semctl(), msgctl(), and shmctl() system call entries are
  now marked COMPAT7 and new versions of those system calls which support
  the new ABI are now present.
- The new system calls are assigned to the FBSD-1.1 version in libc.  The
  FBSD-1.0 symbols in libc now refer to the old COMPAT7 system calls.
- A simplistic framework for tagging system calls with compatibility
  symbol versions has been added to libc.  Version tags are added to
  system calls by adding an appropriate __sym_compat() entry to
  src/lib/libc/incldue/compat.h. [1]

PR:		kern/16195 kern/113218 bin/129855
Reviewed by:	arch@, rwatson
Discussed with:	kan, kib [1]
2009-06-24 21:10:52 +00:00
Konstantin Belousov
65067cc8b0 Correct types of variables used to track amount of allocated SysV shared
memory from int to size_t. Implement a workaround for current ABI not
allowing to properly save size for and report more then 2Gb sized segment
of shared memory.

This makes it possible to use > 2 Gb shared memory segments on 64bit
architectures. Please note the new BUGS section in shmctl(2) and
UPDATING note for limitations of this temporal solution.

Reviewed by:	csjp
Tested by:	Nikolay Dzham <i levsha org ua>
MFC after:	2 weeks
2009-03-02 18:53:30 +00:00
Ruslan Ermilov
49f8bb9a95 Fix printing of shared memory limits.
MFC after:	3 days
2008-12-16 09:17:05 +00:00
Edwin Groothuis
55e2cb41f2 Add the ability to clean up all shared memory segments which are
unused in one go.

From the original PR:

	I've observed that linux apps running under the linuxulator
	have a habit of leaving behind shared memory segments which
	are unused, but which eventually cause the system to run
	out of free segments and these apps will stop working.
	ipcrm(1) currently only allows removal of unused message
	queues, shared memory segments and semaphores on an individual
	basis, or those having a matching (non-zero) key. However
	it would often be convenient to just do a complete cleanup
	of everything, usually as root.

PR:		bin/118292
Submitted by:	Callum Gibson <callumgibson@optusnet.com.au>
Not reviewed by:	grog@
Approved by:	grog@
2007-12-25 00:52:24 +00:00
Edwin Groothuis
fa44a2923e Stylify ipcs/ipcs.c and ipcrm/ipcrm in preparation of the upcoming
changes as proposed in bin/118292.

Feel free to mention any I have missed, there is much to learn with
regarding to style(9).

Approved by:	grog@
2007-12-18 09:39:47 +00:00
Maxim Konovalov
df2e45f7c2 o Fix typo in a comment.
PR:		bin/97292
Submitted by:	clsung
MFC after:	3 days
2006-05-15 08:20:38 +00:00
Christian S.J. Peron
9baea4b4b4 Change the data type of the upper shared memory limits from a signed
integer to an unsigned long. This lifts variables like the maximum
number of pages available for shared memory from 2^31 to 2^32 on 32
bit architectures, and from 2^31 to 2^64 on 64 bit architectures.

It should be noted that this changes breaks ABI on 64 bit architectures
because the size of the shmmax, shmmin, shmmni, shmseg and shmall members
of the shminfo structure has changed.

Silence on:	current@
2005-08-06 07:20:18 +00:00
Christian S.J. Peron
701fabc74b If sysctlbyname fails for kernel related reasons, tag the errno
string to the end of the error message. I think we used errx()
there when we really wanted an err().

MFC after:	1 week
2005-05-24 23:42:09 +00:00
Giorgos Keramidas
336c393fc0 Use 12 columns for (int) values, 20 columns for (long) and align
headers properly (right justified for numbers, left justified for
everything else).

This fixes the alignment of the fields on i386, sparc64 and amd64
today but does not dynamically assign column widths or bear in mind
that some of the values may be 64-bit in the future.

Reviewed by:	alfred
2005-03-08 13:14:46 +00:00
Stefan Farfeleder
5bcb8532a8 Turn K&R functions into prototypes. 2005-02-10 09:13:20 +00:00
Robert Watson
75d6abdb7e third of several commits to allow kernel System V IPC data structures
to be modified and extended without breaking the user space ABI:

Make the "ipcs" tool, which grubs around in kernel memory to report
status relating to System V IPC, use the _kernel variants on the
System V IPC data structures.

Submitted by:	Dandekar Hrishikesh <rishi_dandekar at sbcglobal dot net>
Obtained from:	TrustedBSD Project
Sponsored by:	DARPA, SPAWAR, McAfee Research
2004-11-12 13:33:55 +00:00
Bosko Milekic
4d2e8e5fb8 Add -u option to ipcs(1) and document it in ipcs.1
It allows you to list IPC facilities owned by username/uid.

Submitted by: Christian S.J. Peron <maneo@bsdpro.com>
PR: bin/63463
2004-03-24 04:01:43 +00:00
Mitsuru IWASAKI
edc4d47f55 Cosmetic fix on some TIME related columns. 2003-10-30 16:52:14 +00:00
Tim J. Robbins
147fb5d7c3 Add -M, -Q, -S, and -T to the usage message. 2003-03-24 10:40:24 +00:00
David E. O'Brien
e026a48c34 Consistently use FBSDID 2002-06-30 05:25:07 +00:00
David Malone
76e46948d7 1) Add missing prototypes for fmt_perm and cvt_time.
2) Move a break outside a #if block to keep gcc3 from seeing a "default:"
   at the end of a block.
3) Fix some format warnings. Some remain which can be fixed more easily
   when we have a full C99 printf.
2002-03-30 16:46:04 +00:00
Warner Losh
f1bb2cd2aa remove __P 2002-03-22 01:22:50 +00:00
Warner Losh
576541a9e6 Fixed divots that I created when I moved prototypes of group_from_gid
and user_from_uid to grp.h and pwd.h.  Update the man pages.

Submitted by: David Malone
Pointy hat to: imp
2002-02-19 00:05:59 +00:00
Dima Dorfman
7a19d1bbb9 Include missing header files which define functions for which gcc has
builtins (e.g., exit, strcmp).
2001-06-24 19:50:42 +00:00
Dima Dorfman
b15abefff0 Convert to use the sysctl interface to obtain the data when operating
on a running system.  Using kvm is still supported, primarily for
postmortem analysis.

Reviewed by:	tmm
2001-05-31 22:30:39 +00:00
Peter Wemm
3627ad6c00 Remove the undocumented semconfig() system calls. These cause more trouble
than they are worth.
2000-05-01 10:49:41 +00:00
Jacques Vidrine
07aa6ef0c9 Instead of checking for a non-zero return value from kvm_read, check
whether we read as many bytes as we expected.
2000-03-31 15:02:10 +00:00
Peter Wemm
c447342094 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 05:07:58 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Philippe Charnier
00bbaadcfd Add rcsid, Remove unused vars. 1997-07-15 09:55:59 +00:00
Warner Losh
1c8af87873 compare return value from getopt against -1 rather than EOF, per the final
posix standard on the topic.
1997-03-29 04:34:07 +00:00
Peter Wemm
c115df18cd Revert $FreeBSD$ to $Id$ 1997-02-22 19:58:13 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Joerg Wunsch
6fd25edc0a s/msg/shm/ for one variable.
Submitted by:	jin@george.lbl.gov (Jin Guojun[ITG])
1996-07-18 20:42:48 +00:00
Paul Traina
661a5e433a Drop privileges if we're not reading standard kernel file or namelist.
Submitted by:	smpatel (Sujal Patel)
1996-05-30 02:18:44 +00:00
Bruce Evans
30df0b88e1 Instantiate our own variables instead of depending on bogus common
declarations in system headers that will be fixed soon.
1995-07-12 19:10:17 +00:00
David Greenman
3012a727a0 Declared msginfo, shminfo, and seminfo structs. 1994-09-19 10:24:38 +00:00
Doug Rabson
49fbc2ac87 Imported the NetBSD version which acts a lot more like the SYSV program.
Obtained from: NetBSD
1994-09-13 16:59:29 +00:00
Doug Rabson
4816f94e8a Added from FreeBSD-1.1.5 with some additions to list shared memory segments. 1994-09-13 15:27:02 +00:00