diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2016-04-22 20:51:04 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2016-06-11 08:23:29 -0700 |
commit | 08c359e5adeac56f453e23f78c147189cc0896a6 (patch) | |
tree | 234fe9b0145272f2febd63256bab6f54da3aa6e8 /usr/src/uts/common/os/project.c | |
parent | 7de21d7cba3fddc724c51930845ad91d8082e0c7 (diff) | |
download | illumos-joyent-08c359e5adeac56f453e23f78c147189cc0896a6.tar.gz |
7057 SysV IPC rctls should report usage
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Dan McDonald <danmcd@omniti.com>
Diffstat (limited to 'usr/src/uts/common/os/project.c')
-rw-r--r-- | usr/src/uts/common/os/project.c | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/usr/src/uts/common/os/project.c b/usr/src/uts/common/os/project.c index 7bd3dd963f..d89f62bea7 100644 --- a/usr/src/uts/common/os/project.c +++ b/usr/src/uts/common/os/project.c @@ -20,6 +20,7 @@ */ /* * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2016, Joyent, Inc. */ #include <sys/project.h> @@ -659,6 +660,14 @@ static rctl_ops_t project_tasks_ops = { */ /*ARGSUSED*/ +static rctl_qty_t +project_shmmax_usage(rctl_t *rctl, struct proc *p) +{ + ASSERT(MUTEX_HELD(&p->p_lock)); + return (p->p_task->tk_proj->kpj_data.kpd_shmmax); +} + +/*ARGSUSED*/ static int project_shmmax_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, rctl_val_t *rval, rctl_qty_t inc, uint_t flags) @@ -675,7 +684,7 @@ project_shmmax_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, static rctl_ops_t project_shmmax_ops = { rcop_no_action, - rcop_no_usage, + project_shmmax_usage, rcop_no_set, project_shmmax_test }; @@ -685,6 +694,14 @@ static rctl_ops_t project_shmmax_ops = { */ /*ARGSUSED*/ +static rctl_qty_t +project_shmmni_usage(rctl_t *rctl, struct proc *p) +{ + ASSERT(MUTEX_HELD(&p->p_lock)); + return (p->p_task->tk_proj->kpj_data.kpd_ipc.ipcq_shmmni); +} + +/*ARGSUSED*/ static int project_shmmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, rctl_val_t *rval, rctl_qty_t inc, uint_t flags) @@ -701,7 +718,7 @@ project_shmmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, static rctl_ops_t project_shmmni_ops = { rcop_no_action, - rcop_no_usage, + project_shmmni_usage, rcop_no_set, project_shmmni_test }; @@ -711,6 +728,14 @@ static rctl_ops_t project_shmmni_ops = { */ /*ARGSUSED*/ +static rctl_qty_t +project_semmni_usage(rctl_t *rctl, struct proc *p) +{ + ASSERT(MUTEX_HELD(&p->p_lock)); + return (p->p_task->tk_proj->kpj_data.kpd_ipc.ipcq_semmni); +} + +/*ARGSUSED*/ static int project_semmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, rctl_val_t *rval, rctl_qty_t inc, uint_t flags) @@ -727,7 +752,7 @@ project_semmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, static rctl_ops_t project_semmni_ops = { rcop_no_action, - rcop_no_usage, + project_semmni_usage, rcop_no_set, project_semmni_test }; @@ -737,6 +762,14 @@ static rctl_ops_t project_semmni_ops = { */ /*ARGSUSED*/ +static rctl_qty_t +project_msgmni_usage(rctl_t *rctl, struct proc *p) +{ + ASSERT(MUTEX_HELD(&p->p_lock)); + return (p->p_task->tk_proj->kpj_data.kpd_ipc.ipcq_msgmni); +} + +/*ARGSUSED*/ static int project_msgmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, rctl_val_t *rval, rctl_qty_t inc, uint_t flags) @@ -753,7 +786,7 @@ project_msgmni_test(struct rctl *rctl, struct proc *p, rctl_entity_p_t *e, static rctl_ops_t project_msgmni_ops = { rcop_no_action, - rcop_no_usage, + project_msgmni_usage, rcop_no_set, project_msgmni_test }; |