Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Add an XSH5 ulimit()/<ulimit.h> implementation.
details: https://anonhg.NetBSD.org/src/rev/7e5e58f67ddd
branches: trunk
changeset: 476326:7e5e58f67ddd
user: kleink <kleink%NetBSD.org@localhost>
date: Mon Sep 13 18:38:04 1999 +0000
description:
Add an XSH5 ulimit()/<ulimit.h> implementation.
diffstat:
include/Makefile | 4 +-
include/ulimit.h | 51 +++++++++++++++++++
lib/libc/gen/Makefile.inc | 8 +-
lib/libc/gen/ulimit.3 | 118 ++++++++++++++++++++++++++++++++++++++++++++++
lib/libc/gen/ulimit.c | 92 +++++++++++++++++++++++++++++++++++
5 files changed, 267 insertions(+), 6 deletions(-)
diffs (truncated from 320 to 300 lines):
diff -r d8c05dd9a2df -r 7e5e58f67ddd include/Makefile
--- a/include/Makefile Mon Sep 13 18:36:02 1999 +0000
+++ b/include/Makefile Mon Sep 13 18:38:04 1999 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.78 1999/09/12 19:04:30 kleink Exp $
+# $NetBSD: Makefile,v 1.79 1999/09/13 18:38:04 kleink Exp $
# @(#)Makefile 8.2 (Berkeley) 1/4/94
SRCTOP= ..
@@ -16,7 +16,7 @@
nsswitch.h paths.h pwd.h ranlib.h re_comp.h regex.h regexp.h resolv.h \
rmt.h search.h setjmp.h sgtty.h signal.h stab.h stddef.h stdio.h \
stdlib.h string.h strings.h stringlist.h struct.h sysexits.h tar.h \
- time.h ttyent.h tzfile.h unistd.h util.h utime.h utmp.h vis.h
+ time.h ttyent.h tzfile.h ulimit.h unistd.h util.h utime.h utmp.h vis.h
INCS+= arpa/ftp.h arpa/inet.h arpa/nameser.h arpa/telnet.h arpa/tftp.h
INCS+= protocols/dumprestore.h protocols/routed.h protocols/rwhod.h \
protocols/talkd.h protocols/timed.h
diff -r d8c05dd9a2df -r 7e5e58f67ddd include/ulimit.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/ulimit.h Mon Sep 13 18:38:04 1999 +0000
@@ -0,0 +1,51 @@
+/* $NetBSD: ulimit.h,v 1.1 1999/09/13 18:38:04 kleink Exp $ */
+
+/*-
+ * Copyright (c) 1999 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Klaus Klein.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _ULIMIT_H_
+#define _ULIMIT_H_
+
+#define UL_GETFSIZE 1 /* Get maximum file size */
+#define UL_SETFSIZE 2 /* Set maximum file size */
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+long int ulimit __P((int, ...));
+__END_DECLS
+
+#endif /* !_ULIMIT_H_ */
diff -r d8c05dd9a2df -r 7e5e58f67ddd lib/libc/gen/Makefile.inc
--- a/lib/libc/gen/Makefile.inc Mon Sep 13 18:36:02 1999 +0000
+++ b/lib/libc/gen/Makefile.inc Mon Sep 13 18:38:04 1999 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.101 1999/09/12 19:04:31 kleink Exp $
+# $NetBSD: Makefile.inc,v 1.102 1999/09/13 18:38:05 kleink Exp $
# from: @(#)Makefile.inc 8.6 (Berkeley) 5/4/95
# gen sources
@@ -22,8 +22,8 @@
__signame14.c signame.c __sigsetops14.c sigsetops.c sleep.c \
stringlist.c sysconf.c sysctl.c syslog.c telldir.c time.c times.c \
timezone.c toascii.c tolower_.c ttyname.c ttyslot.c toupper_.c \
- ualarm.c uname.c unvis.c usleep.c utime.c valloc.c vis.c wait.c \
- wait3.c waitpid.c warn.c warnx.c vwarn.c vwarnx.c verr.c verrx.c
+ ualarm.c ulimit.c uname.c unvis.c usleep.c utime.c valloc.c vis.c \
+ wait.c wait3.c waitpid.c warn.c warnx.c vwarn.c vwarnx.c verr.c verrx.c
# indirect reference stubs, to be removed soon.
SRCS+= _err.c _errx.c _sys_errlist.c _sys_nerr.c _sys_siglist.c \
@@ -51,7 +51,7 @@
setproctitle.3 siginterrupt.3 signal.3 sigsetops.3 sleep.3 \
stringlist.3 sysconf.3 sysctl.3 syslog.3 time.3 times.3 \
timezone.3 toascii.3 tolower.3 toupper.3 ttyname.3 \
- ualarm.3 uname.3 unvis.3 usleep.3 utime.3 valloc.3 vis.3
+ ualarm.3 ulimit.3 uname.3 unvis.3 usleep.3 utime.3 valloc.3 vis.3
MLINKS+=fpgetmask.3 fpgetround.3 fpgetmask.3 fpgetsticky.3 \
fpgetmask.3 fpsetmask.3 fpgetmask.3 fpsetround.3 \
diff -r d8c05dd9a2df -r 7e5e58f67ddd lib/libc/gen/ulimit.3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/gen/ulimit.3 Mon Sep 13 18:38:04 1999 +0000
@@ -0,0 +1,118 @@
+.\" $NetBSD: ulimit.3,v 1.1 1999/09/13 18:38:06 kleink Exp $
+.\"
+.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by Klaus Klein.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the NetBSD
+.\" Foundation, Inc. and its contributors.
+.\" 4. Neither the name of The NetBSD Foundation nor the names of its
+.\" contributors may be used to endorse or promote products derived
+.\" from this software without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd September 13, 1999
+.Dt ULIMIT 3
+.Os
+.Sh NAME
+.Nm ulimit
+.Nd get and set process limits
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.Fd #include <ulimit.h>
+.Ft long int
+.Fn ulimit "int cmd" ...
+.Sh DESCRIPTION
+The
+.Fn ulimit
+function provides a method to query or alter resource limits of the calling
+process. The method to be performed is specified by the
+.Fa cmd
+argument; possible values are:
+.Bl -tag -width UL_GETFSIZEXX
+.It Li UL_GETFSIZE
+Return the soft file size limit of the process.
+The value returned is in units of 512-byte blocks.
+If the result cannot be represented in an object of type
+.Fa long int ,
+the result is unspecified.
+.It Li UL_SETFSIZE
+Set the hard and soft file size limits of the process to the value of the
+second argument passed, which is in units of 512-byte blocks, and which is
+expected to be of type
+.Fa long int .
+The new file size limit of the process is returned.
+Any process may decrease the limit, but raising it is only permitted if
+the caller is the super-user.
+.El
+.Pp
+If successful, the
+.Fn ulimit
+function will not change the setting of
+.Dv errno .
+.Pp
+The
+.Fn ulimit
+function is an obsolete interface; applications are encouraged to use
+.Xr getrlimit 2
+and
+.Xr setrlimit 2
+instead.
+.Sh RETURN VALUE
+If successful, the
+.Fn ulimit
+function returns the value of the requested limit.
+Otherwise, it returns -1, sets
+.Va errno
+to indicate an error, and the limit is not changed.
+Therefore, to detect an error condition applications should set
+.Dv errno
+to 0, call
+.Fn ulimit ,
+and check if -1 is returned and
+.Dv errno
+is non-zero .
+.Sh ERRORS
+The
+.Fn ulimit
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The
+.Fa cmd
+argument is not valid.
+.It Bq Er EPERM
+It was attempted to increase a limit, and the caller is not the super-user.
+.El
+.Sh SEE ALSO
+.Xr getrlimit 2 ,
+.Xr setrlimit 2
+.Sh STANDARDS
+The
+.Fn ulimit
+function conforms to
+.St -xsh5 .
diff -r d8c05dd9a2df -r 7e5e58f67ddd lib/libc/gen/ulimit.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libc/gen/ulimit.c Mon Sep 13 18:38:04 1999 +0000
@@ -0,0 +1,92 @@
+/* $NetBSD: ulimit.c,v 1.1 1999/09/13 18:38:06 kleink Exp $ */
+
+/*-
+ * Copyright (c) 1999 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Klaus Klein.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#if defined(LIBC_SCCS) && !defined(lint)
+__RCSID("$NetBSD: ulimit.c,v 1.1 1999/09/13 18:38:06 kleink Exp $");
+#endif /* LIBC_SCCS and not lint */
+
+#include <sys/resource.h>
+#include <errno.h>
+#include <ulimit.h>
+
+#if __STDC__
+#include <stdarg.h>
+#else
+#include <varargs.h>
+#endif
+
+long int
+#if __STDC__
+ulimit(int cmd, ...)
+#else
+ulimit(cmd, va_alist)
+ int cmd;
+ va_dcl
+#endif
+{
+ va_list ap;
+ struct rlimit rlimit;
+ long int new_limit, result;
+
+#if __STDC__
+ va_start(ap, cmd);
+#else
+ va_start(ap);
+#endif
+
Home |
Main Index |
Thread Index |
Old Index