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