| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: sys_mqueue.c,v 1.32 2011/04/24 20:17:53 rmind Exp $ */ | | 1 | /* $NetBSD: sys_mqueue.c,v 1.33 2011/04/25 11:39:42 martin Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 2007-2011 Mindaugas Rasiukevicius <rmind at NetBSD org> | | 4 | * Copyright (c) 2007-2011 Mindaugas Rasiukevicius <rmind at NetBSD org> |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * Redistribution and use in source and binary forms, with or without | | 7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions | | 8 | * modification, are permitted provided that the following conditions |
9 | * are met: | | 9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright | | 10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. | | 11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright | | 12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the | | 13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. | | 14 | * documentation and/or other materials provided with the distribution. |
| @@ -33,30 +33,31 @@ | | | @@ -33,30 +33,31 @@ |
33 | * Locking | | 33 | * Locking |
34 | * | | 34 | * |
35 | * Global list of message queues (mqueue_head) is protected by mqlist_lock. | | 35 | * Global list of message queues (mqueue_head) is protected by mqlist_lock. |
36 | * Each message queue and its members are protected by mqueue::mq_mtx. | | 36 | * Each message queue and its members are protected by mqueue::mq_mtx. |
37 | * Note that proc_t::p_mqueue_cnt is updated atomically. | | 37 | * Note that proc_t::p_mqueue_cnt is updated atomically. |
38 | * | | 38 | * |
39 | * Lock order: | | 39 | * Lock order: |
40 | * | | 40 | * |
41 | * mqlist_lock -> | | 41 | * mqlist_lock -> |
42 | * mqueue::mq_mtx | | 42 | * mqueue::mq_mtx |
43 | */ | | 43 | */ |
44 | | | 44 | |
45 | #include <sys/cdefs.h> | | 45 | #include <sys/cdefs.h> |
46 | __KERNEL_RCSID(0, "$NetBSD: sys_mqueue.c,v 1.32 2011/04/24 20:17:53 rmind Exp $"); | | 46 | __KERNEL_RCSID(0, "$NetBSD: sys_mqueue.c,v 1.33 2011/04/25 11:39:42 martin Exp $"); |
47 | | | 47 | |
48 | #include <sys/param.h> | | 48 | #include <sys/param.h> |
49 | #include <sys/types.h> | | 49 | #include <sys/types.h> |
| | | 50 | #include <sys/atomic.h> |
50 | | | 51 | |
51 | #include <sys/file.h> | | 52 | #include <sys/file.h> |
52 | #include <sys/filedesc.h> | | 53 | #include <sys/filedesc.h> |
53 | #include <sys/kauth.h> | | 54 | #include <sys/kauth.h> |
54 | #include <sys/lwp.h> | | 55 | #include <sys/lwp.h> |
55 | #include <sys/mqueue.h> | | 56 | #include <sys/mqueue.h> |
56 | #include <sys/module.h> | | 57 | #include <sys/module.h> |
57 | #include <sys/poll.h> | | 58 | #include <sys/poll.h> |
58 | #include <sys/select.h> | | 59 | #include <sys/select.h> |
59 | #include <sys/signal.h> | | 60 | #include <sys/signal.h> |
60 | #include <sys/signalvar.h> | | 61 | #include <sys/signalvar.h> |
61 | #include <sys/stat.h> | | 62 | #include <sys/stat.h> |
62 | #include <sys/sysctl.h> | | 63 | #include <sys/sysctl.h> |