• Home
  • Raw
  • Download

Lines Matching +full:5 +full:ns

87 #define SEARCH_NUMBER		5
89 #define msg_ids(ns) ((ns)->ids[IPC_MSG_IDS]) argument
91 static inline struct msg_queue *msq_obtain_object(struct ipc_namespace *ns, int id) in msq_obtain_object() argument
93 struct kern_ipc_perm *ipcp = ipc_obtain_object_idr(&msg_ids(ns), id); in msq_obtain_object()
101 static inline struct msg_queue *msq_obtain_object_check(struct ipc_namespace *ns, in msq_obtain_object_check() argument
104 struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&msg_ids(ns), id); in msq_obtain_object_check()
112 static inline void msg_rmid(struct ipc_namespace *ns, struct msg_queue *s) in msg_rmid() argument
114 ipc_rmid(&msg_ids(ns), &s->q_perm); in msg_rmid()
128 * @ns: namespace
133 static int newque(struct ipc_namespace *ns, struct ipc_params *params) in newque() argument
157 msq->q_qbytes = ns->msg_ctlmnb; in newque()
164 retval = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); in newque()
253 static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) in freeque() argument
261 msg_rmid(ns, msq); in freeque()
267 atomic_dec(&ns->msg_hdrs); in freeque()
270 atomic_sub(msq->q_cbytes, &ns->msg_bytes); in freeque()
278 struct ipc_namespace *ns; in ksys_msgget() local
285 ns = current->nsproxy->ipc_ns; in ksys_msgget()
290 return ipcget(ns, &msg_ids(ns), &msg_ops, &msg_params); in ksys_msgget()
379 static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd, in msgctl_down() argument
386 down_write(&msg_ids(ns).rwsem); in msgctl_down()
389 ipcp = ipcctl_obtain_check(ns, &msg_ids(ns), msqid, cmd, in msgctl_down()
406 freeque(ns, ipcp); in msgctl_down()
412 if (msg_qbytes > ns->msg_ctlmnb && in msgctl_down()
451 up_write(&msg_ids(ns).rwsem); in msgctl_down()
455 static int msgctl_info(struct ipc_namespace *ns, int msqid, in msgctl_info() argument
471 msginfo->msgmni = ns->msg_ctlmni; in msgctl_info()
472 msginfo->msgmax = ns->msg_ctlmax; in msgctl_info()
473 msginfo->msgmnb = ns->msg_ctlmnb; in msgctl_info()
476 down_read(&msg_ids(ns).rwsem); in msgctl_info()
478 msginfo->msgpool = msg_ids(ns).in_use; in msgctl_info()
479 msginfo->msgmap = atomic_read(&ns->msg_hdrs); in msgctl_info()
480 msginfo->msgtql = atomic_read(&ns->msg_bytes); in msgctl_info()
486 max_idx = ipc_get_maxidx(&msg_ids(ns)); in msgctl_info()
487 up_read(&msg_ids(ns).rwsem); in msgctl_info()
491 static int msgctl_stat(struct ipc_namespace *ns, int msqid, in msgctl_stat() argument
501 msq = msq_obtain_object(ns, msqid); in msgctl_stat()
507 msq = msq_obtain_object_check(ns, msqid); in msgctl_stat()
519 if (ipcperms(ns, &msq->q_perm, S_IRUGO)) in msgctl_stat()
573 struct ipc_namespace *ns; in ksys_msgctl() local
581 ns = current->nsproxy->ipc_ns; in ksys_msgctl()
587 err = msgctl_info(ns, msqid, cmd, &msginfo); in ksys_msgctl()
597 err = msgctl_stat(ns, msqid, cmd, &msqid64); in ksys_msgctl()
606 return msgctl_down(ns, msqid, cmd, &msqid64.msg_perm, in ksys_msgctl()
609 return msgctl_down(ns, msqid, cmd, NULL, 0); in ksys_msgctl()
695 struct ipc_namespace *ns; in compat_ksys_msgctl() local
700 ns = current->nsproxy->ipc_ns; in compat_ksys_msgctl()
709 err = msgctl_info(ns, msqid, cmd, &msginfo); in compat_ksys_msgctl()
719 err = msgctl_stat(ns, msqid, cmd, &msqid64); in compat_ksys_msgctl()
728 return msgctl_down(ns, msqid, cmd, &msqid64.msg_perm, msqid64.msg_qbytes); in compat_ksys_msgctl()
730 return msgctl_down(ns, msqid, cmd, NULL, 0); in compat_ksys_msgctl()
798 struct ipc_namespace *ns; in do_msgsnd() local
801 ns = current->nsproxy->ipc_ns; in do_msgsnd()
803 if (msgsz > ns->msg_ctlmax || (long) msgsz < 0 || msqid < 0) in do_msgsnd()
816 msq = msq_obtain_object_check(ns, msqid); in do_msgsnd()
828 if (ipcperms(ns, &msq->q_perm, S_IWUGO)) in do_msgsnd()
888 atomic_add(msgsz, &ns->msg_bytes); in do_msgsnd()
889 atomic_inc(&ns->msg_hdrs); in do_msgsnd()
1047 struct ipc_namespace *ns; in do_msgrcv() local
1051 ns = current->nsproxy->ipc_ns; in do_msgrcv()
1059 copy = prepare_copy(buf, min_t(size_t, bufsz, ns->msg_ctlmax)); in do_msgrcv()
1066 msq = msq_obtain_object_check(ns, msqid); in do_msgrcv()
1077 if (ipcperms(ns, &msq->q_perm, S_IRUGO)) in do_msgrcv()
1112 atomic_sub(msg->m_ts, &ns->msg_bytes); in do_msgrcv()
1113 atomic_dec(&ns->msg_hdrs); in do_msgrcv()
1242 void msg_init_ns(struct ipc_namespace *ns) in msg_init_ns() argument
1244 ns->msg_ctlmax = MSGMAX; in msg_init_ns()
1245 ns->msg_ctlmnb = MSGMNB; in msg_init_ns()
1246 ns->msg_ctlmni = MSGMNI; in msg_init_ns()
1248 atomic_set(&ns->msg_bytes, 0); in msg_init_ns()
1249 atomic_set(&ns->msg_hdrs, 0); in msg_init_ns()
1250 ipc_init_ids(&ns->ids[IPC_MSG_IDS]); in msg_init_ns()
1254 void msg_exit_ns(struct ipc_namespace *ns) in msg_exit_ns() argument
1256 free_ipcs(ns, &msg_ids(ns), freeque); in msg_exit_ns()
1257 idr_destroy(&ns->ids[IPC_MSG_IDS].ipcs_idr); in msg_exit_ns()
1258 rhashtable_destroy(&ns->ids[IPC_MSG_IDS].key_ht); in msg_exit_ns()
1271 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10llu %10llu %10llu\n", in sysvipc_msg_proc_show()