summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r--usr/src/uts/common/sys/rctl.h10
-rw-r--r--usr/src/uts/common/sys/rctl_impl.h12
-rw-r--r--usr/src/uts/common/sys/task.h11
3 files changed, 23 insertions, 10 deletions
diff --git a/usr/src/uts/common/sys/rctl.h b/usr/src/uts/common/sys/rctl.h
index a8480c2768..2061398fba 100644
--- a/usr/src/uts/common/sys/rctl.h
+++ b/usr/src/uts/common/sys/rctl.h
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -44,9 +44,10 @@ extern "C" {
#define RCTL_LOCAL_DENY 0x00000002
#define RCTL_LOCAL_MAXIMAL 0x80000000
+#define RCTL_LOCAL_PROJDB 0x40000000
#define RCTL_LOCAL_ACTION_MASK 0xffff0000
-#define RCTL_LOCAL_MASK 0x80000003
+#define RCTL_LOCAL_MASK 0xc0000003
/*
* Available global actions and flags.
@@ -216,6 +217,7 @@ typedef struct rctl {
rctl_val_t *rc_cursor; /* currently enforced value */
struct rctl_dict_entry *rc_dict_entry; /* global control properties */
rctl_hndl_t rc_id; /* control handle (hash key) */
+ rctl_val_t *rc_projdb; /* project database rctls */
} rctl_t;
/*
@@ -309,6 +311,10 @@ int rctl_global_set(const char *name, rctl_dict_entry_t *);
int rctl_local_delete(rctl_hndl_t, rctl_val_t *, struct proc *p);
int rctl_local_insert(rctl_hndl_t, rctl_val_t *, struct proc *p);
+int rctl_local_insert_all(rctl_hndl_t, rctl_val_t *, rctl_val_t *,
+ struct proc *p);
+int rctl_local_replace_all(rctl_hndl_t, rctl_val_t *, rctl_val_t *,
+ struct proc *p);
int rctl_local_get(rctl_hndl_t, rctl_val_t *, rctl_val_t *, struct proc *p);
int rctl_local_replace(rctl_hndl_t, rctl_val_t *, rctl_val_t *,
struct proc *p);
diff --git a/usr/src/uts/common/sys/rctl_impl.h b/usr/src/uts/common/sys/rctl_impl.h
index c3d7d118ce..c37f9879e7 100644
--- a/usr/src/uts/common/sys/rctl_impl.h
+++ b/usr/src/uts/common/sys/rctl_impl.h
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -44,6 +43,7 @@ extern "C" {
extern int rctlctl(const char *, rctlblk_t *, int);
extern size_t rctllist(char *, size_t);
+extern int setprojrctl(const char *, rctlblk_t *, size_t, int);
#endif /* _KERNEL */
@@ -62,6 +62,10 @@ typedef struct rctl_opaque {
extern uint_t rlim_fd_cur;
extern uint_t rlim_fd_max;
+/* Given an array of rctlblk_t calculate the address of the n'th element */
+#define RCTLBLK_INC(blk, n) (rctlblk_t *)(((char *)blk) \
+ + (n * rctlblk_size()))
+
#ifdef __cplusplus
}
#endif
diff --git a/usr/src/uts/common/sys/task.h b/usr/src/uts/common/sys/task.h
index f009b5e5a7..87cc94cbd0 100644
--- a/usr/src/uts/common/sys/task.h
+++ b/usr/src/uts/common/sys/task.h
@@ -2,9 +2,8 @@
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
+ * Common Development and Distribution License (the "License").
+ * You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
@@ -20,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -39,6 +38,10 @@ extern "C" {
#define TASK_NORMAL 0x0 /* task may create tasks via settaskid() */
#define TASK_FINAL 0x1 /* task finalized, settaskid() will fail */
+#define TASK_MASK 0x1 /* task flags mask */
+
+#define TASK_PROJ_PURGE 0x100000 /* purge project.* rctl entities */
+#define TASK_PROJ_MASK 0x100000
#ifdef _KERNEL