~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/linux/membarrier.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/uapi/linux/membarrier.h (Version linux-6.12-rc7) and /include/uapi/linux/membarrier.h (Version linux-4.10.17)


  1 #ifndef _UAPI_LINUX_MEMBARRIER_H                    1 #ifndef _UAPI_LINUX_MEMBARRIER_H
  2 #define _UAPI_LINUX_MEMBARRIER_H                    2 #define _UAPI_LINUX_MEMBARRIER_H
  3                                                     3 
  4 /*                                                  4 /*
  5  * linux/membarrier.h                               5  * linux/membarrier.h
  6  *                                                  6  *
  7  * membarrier system call API                       7  * membarrier system call API
  8  *                                                  8  *
  9  * Copyright (c) 2010, 2015 Mathieu Desnoyers       9  * Copyright (c) 2010, 2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 10  *                                                 10  *
 11  * Permission is hereby granted, free of charg     11  * Permission is hereby granted, free of charge, to any person obtaining a copy
 12  * of this software and associated documentati     12  * of this software and associated documentation files (the "Software"), to deal
 13  * in the Software without restriction, includ     13  * in the Software without restriction, including without limitation the rights
 14  * to use, copy, modify, merge, publish, distr     14  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 15  * copies of the Software, and to permit perso     15  * copies of the Software, and to permit persons to whom the Software is
 16  * furnished to do so, subject to the followin     16  * furnished to do so, subject to the following conditions:
 17  *                                                 17  *
 18  * The above copyright notice and this permiss     18  * The above copyright notice and this permission notice shall be included in
 19  * all copies or substantial portions of the S     19  * all copies or substantial portions of the Software.
 20  *                                                 20  *
 21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT W     21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE W     22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINF     23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 24  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR      24  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT     25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 26  * OUT OF OR IN CONNECTION WITH THE SOFTWARE O     26  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 27  * SOFTWARE.                                       27  * SOFTWARE.
 28  */                                                28  */
 29                                                    29 
 30 /**                                                30 /**
 31  * enum membarrier_cmd - membarrier system cal     31  * enum membarrier_cmd - membarrier system call command
 32  * @MEMBARRIER_CMD_QUERY:   Query the set of s     32  * @MEMBARRIER_CMD_QUERY:   Query the set of supported commands. It returns
 33  *                          a bitmask of valid     33  *                          a bitmask of valid commands.
 34  * @MEMBARRIER_CMD_GLOBAL:  Execute a memory b !!  34  * @MEMBARRIER_CMD_SHARED:  Execute a memory barrier on all running threads.
 35  *                          Upon return from s     35  *                          Upon return from system call, the caller thread
 36  *                          is ensured that al     36  *                          is ensured that all running threads have passed
 37  *                          through a state wh     37  *                          through a state where all memory accesses to
 38  *                          user-space address     38  *                          user-space addresses match program order between
 39  *                          entry to and retur     39  *                          entry to and return from the system call
 40  *                          (non-running threa     40  *                          (non-running threads are de facto in such a
 41  *                          state). This cover     41  *                          state). This covers threads from all processes
 42  *                          running on the sys     42  *                          running on the system. This command returns 0.
 43  * @MEMBARRIER_CMD_GLOBAL_EXPEDITED:           << 
 44  *                          Execute a memory b << 
 45  *                          of all processes w << 
 46  *                          with MEMBARRIER_CM << 
 47  *                          Upon return from s << 
 48  *                          is ensured that al << 
 49  *                          through a state wh << 
 50  *                          user-space address << 
 51  *                          entry to and retur << 
 52  *                          (non-running threa << 
 53  *                          state). This only  << 
 54  *                          which registered w << 
 55  *                          MEMBARRIER_CMD_REG << 
 56  *                          This command retur << 
 57  *                          registration is ab << 
 58  *                          the barriers, it i << 
 59  *                          MEMBARRIER_CMD_GLO << 
 60  *                          non-registered pro << 
 61  * @MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED:  << 
 62  *                          Register the proce << 
 63  *                          MEMBARRIER_CMD_GLO << 
 64  *                          barriers. Always r << 
 65  * @MEMBARRIER_CMD_PRIVATE_EXPEDITED:          << 
 66  *                          Execute a memory b << 
 67  *                          thread belonging t << 
 68  *                          thread. Upon retur << 
 69  *                          caller thread is e << 
 70  *                          threads siblings h << 
 71  *                          where all memory a << 
 72  *                          addresses match pr << 
 73  *                          to and return from << 
 74  *                          (non-running threa << 
 75  *                          state). This only  << 
 76  *                          same process as th << 
 77  *                          command returns 0  << 
 78  *                          "expedited" comman << 
 79  *                          the non-expedited  << 
 80  *                          but have the downs << 
 81  *                          overhead. A proces << 
 82  *                          intent to use the  << 
 83  *                          prior to using it, << 
 84  *                          returns -EPERM.    << 
 85  * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED: << 
 86  *                          Register the proce << 
 87  *                          MEMBARRIER_CMD_PRI << 
 88  *                          returns 0.         << 
 89  * @MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE << 
 90  *                          In addition to pro << 
 91  *                          guarantees describ << 
 92  *                          MEMBARRIER_CMD_PRI << 
 93  *                          the caller thread, << 
 94  *                          call, that all its << 
 95  *                          have executed a co << 
 96  *                          instruction. (arch << 
 97  *                          guarantee that non << 
 98  *                          core serializing i << 
 99  *                          resume user-space  << 
100  *                          covers threads fro << 
101  *                          caller thread. Thi << 
102  *                          success. The "expe << 
103  *                          faster than the no << 
104  *                          never block, but h << 
105  *                          causing extra over << 
106  *                          not implemented by << 
107  *                          is returned. A pro << 
108  *                          intent to use the  << 
109  *                          core command prior << 
110  *                          this command retur << 
111  * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_ << 
112  *                          Register the proce << 
113  *                          MEMBARRIER_CMD_PRI << 
114  *                          If this command is << 
115  *                          architecture, -EIN << 
116  *                          Returns 0 on succe << 
117  * @MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ:     << 
118  *                          Ensure the caller  << 
119  *                          system call, that  << 
120  *                          siblings have any  << 
121  *                          critical sections  << 
122  *                          parameter is 0; if << 
123  *                          MEMBARRIER_CMD_FLA << 
124  *                          then this operatio << 
125  *                          on CPU indicated b << 
126  *                          not implemented by << 
127  *                          is returned. A pro << 
128  *                          intent to use the  << 
129  *                          command prior to u << 
130  *                          this command retur << 
131  * @MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_ << 
132  *                          Register the proce << 
133  *                          MEMBARRIER_CMD_PRI << 
134  *                          If this command is << 
135  *                          architecture, -EIN << 
136  *                          Returns 0 on succe << 
137  * @MEMBARRIER_CMD_SHARED:                     << 
138  *                          Alias to MEMBARRIE << 
139  *                          header backward co << 
140  * @MEMBARRIER_CMD_GET_REGISTRATIONS:          << 
141  *                          Returns a bitmask  << 
142  *                          registration comma << 
143  *                                                 43  *
144  * Command to be passed to the membarrier syst     44  * Command to be passed to the membarrier system call. The commands need to
145  * be a single bit each, except for MEMBARRIER     45  * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to
146  * the value 0.                                    46  * the value 0.
147  */                                                47  */
148 enum membarrier_cmd {                              48 enum membarrier_cmd {
149         MEMBARRIER_CMD_QUERY                   !!  49         MEMBARRIER_CMD_QUERY = 0,
150         MEMBARRIER_CMD_GLOBAL                  !!  50         MEMBARRIER_CMD_SHARED = (1 << 0),
151         MEMBARRIER_CMD_GLOBAL_EXPEDITED        << 
152         MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDIT << 
153         MEMBARRIER_CMD_PRIVATE_EXPEDITED       << 
154         MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDI << 
155         MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_ << 
156         MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDI << 
157         MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ  << 
158         MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDI << 
159         MEMBARRIER_CMD_GET_REGISTRATIONS       << 
160                                                << 
161         /* Alias for header backward compatibi << 
162         MEMBARRIER_CMD_SHARED                  << 
163 };                                             << 
164                                                << 
165 enum membarrier_cmd_flag {                     << 
166         MEMBARRIER_CMD_FLAG_CPU         = (1 < << 
167 };                                                 51 };
168                                                    52 
169 #endif /* _UAPI_LINUX_MEMBARRIER_H */              53 #endif /* _UAPI_LINUX_MEMBARRIER_H */
170                                                    54 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php