Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: mojo/public/c/system/types.h

Issue 2744943002: Mojo: Move waiting APIs to public library (Closed)
Patch Set: . Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/public/c/system/thunks.cc ('k') | mojo/public/c/system/wait_set.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains types and constants/macros common to different Mojo system 5 // This file contains types and constants/macros common to different Mojo system
6 // APIs. 6 // APIs.
7 // 7 //
8 // Note: This header should be compilable as C. 8 // Note: This header should be compilable as C.
9 9
10 #ifndef MOJO_PUBLIC_C_SYSTEM_TYPES_H_ 10 #ifndef MOJO_PUBLIC_C_SYSTEM_TYPES_H_
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // |MOJO_RESULT_UNAVAILABLE| - The operation is (temporarily) currently 73 // |MOJO_RESULT_UNAVAILABLE| - The operation is (temporarily) currently
74 // unavailable. The caller may simply retry the operation (possibly with a 74 // unavailable. The caller may simply retry the operation (possibly with a
75 // backoff). 75 // backoff).
76 // |MOJO_RESULT_DATA_LOSS| - Unrecoverable data loss or corruption. 76 // |MOJO_RESULT_DATA_LOSS| - Unrecoverable data loss or corruption.
77 // |MOJO_RESULT_BUSY| - One of the resources involved is currently being used 77 // |MOJO_RESULT_BUSY| - One of the resources involved is currently being used
78 // (possibly on another thread) in a way that prevents the current 78 // (possibly on another thread) in a way that prevents the current
79 // operation from proceeding, e.g., if the other operation may result in 79 // operation from proceeding, e.g., if the other operation may result in
80 // the resource being invalidated. 80 // the resource being invalidated.
81 // |MOJO_RESULT_SHOULD_WAIT| - The request cannot currently be completed 81 // |MOJO_RESULT_SHOULD_WAIT| - The request cannot currently be completed
82 // (e.g., if the data requested is not yet available). The caller should 82 // (e.g., if the data requested is not yet available). The caller should
83 // wait for it to be feasible using |MojoWait()| or |MojoWaitMany()|. 83 // wait for it to be feasible using a watcher.
84 // 84 //
85 // The codes from |MOJO_RESULT_OK| to |MOJO_RESULT_DATA_LOSS| come from 85 // The codes from |MOJO_RESULT_OK| to |MOJO_RESULT_DATA_LOSS| come from
86 // Google3's canonical error codes. 86 // Google3's canonical error codes.
87 // 87 //
88 // TODO(vtl): Add a |MOJO_RESULT_UNSATISFIABLE|? 88 // TODO(vtl): Add a |MOJO_RESULT_UNSATISFIABLE|?
89 89
90 typedef uint32_t MojoResult; 90 typedef uint32_t MojoResult;
91 91
92 #ifdef __cplusplus 92 #ifdef __cplusplus
93 const MojoResult MOJO_RESULT_OK = 0; 93 const MojoResult MOJO_RESULT_OK = 0;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 // |MOJO_DEADLINE_INDEFINITE| - Used to indicate "forever". 134 // |MOJO_DEADLINE_INDEFINITE| - Used to indicate "forever".
135 135
136 typedef uint64_t MojoDeadline; 136 typedef uint64_t MojoDeadline;
137 137
138 #ifdef __cplusplus 138 #ifdef __cplusplus
139 const MojoDeadline MOJO_DEADLINE_INDEFINITE = static_cast<MojoDeadline>(-1); 139 const MojoDeadline MOJO_DEADLINE_INDEFINITE = static_cast<MojoDeadline>(-1);
140 #else 140 #else
141 #define MOJO_DEADLINE_INDEFINITE ((MojoDeadline) - 1) 141 #define MOJO_DEADLINE_INDEFINITE ((MojoDeadline) - 1)
142 #endif 142 #endif
143 143
144 // |MojoHandleSignals|: Used to specify signals that can be waited on for a 144 // |MojoHandleSignals|: Used to specify signals that can be watched for on a
145 // handle (and which can be triggered), e.g., the ability to read or write to 145 // handle (and which can be triggered), e.g., the ability to read or write to
146 // the handle. 146 // the handle.
147 // |MOJO_HANDLE_SIGNAL_NONE| - No flags. |MojoWait()|, etc. will return 147 // |MOJO_HANDLE_SIGNAL_NONE| - No flags. A registered watch will always fail
148 // |MOJO_RESULT_FAILED_PRECONDITION| if you attempt to wait on this. 148 // to arm with |MOJO_RESULT_FAILED_PRECONDITION| when watching for this.
149 // |MOJO_HANDLE_SIGNAL_READABLE| - Can read (e.g., a message) from the handle. 149 // |MOJO_HANDLE_SIGNAL_READABLE| - Can read (e.g., a message) from the handle.
150 // |MOJO_HANDLE_SIGNAL_WRITABLE| - Can write (e.g., a message) to the handle. 150 // |MOJO_HANDLE_SIGNAL_WRITABLE| - Can write (e.g., a message) to the handle.
151 // |MOJO_HANDLE_SIGNAL_PEER_CLOSED| - The peer handle is closed. 151 // |MOJO_HANDLE_SIGNAL_PEER_CLOSED| - The peer handle is closed.
152 // |MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE| - Can read data from a data pipe 152 // |MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE| - Can read data from a data pipe
153 // consumer handle (implying MOJO_HANDLE_SIGNAL_READABLE is also set), 153 // consumer handle (implying MOJO_HANDLE_SIGNAL_READABLE is also set),
154 // AND there is some nonzero quantity of new data available on the pipe 154 // AND there is some nonzero quantity of new data available on the pipe
155 // since the last |MojoReadData()| or |MojoBeginReadData()| call on the 155 // since the last |MojoReadData()| or |MojoBeginReadData()| call on the
156 // handle. 156 // handle.
157 157
158 typedef uint32_t MojoHandleSignals; 158 typedef uint32_t MojoHandleSignals;
159 159
160 #ifdef __cplusplus 160 #ifdef __cplusplus
161 const MojoHandleSignals MOJO_HANDLE_SIGNAL_NONE = 0; 161 const MojoHandleSignals MOJO_HANDLE_SIGNAL_NONE = 0;
162 const MojoHandleSignals MOJO_HANDLE_SIGNAL_READABLE = 1 << 0; 162 const MojoHandleSignals MOJO_HANDLE_SIGNAL_READABLE = 1 << 0;
163 const MojoHandleSignals MOJO_HANDLE_SIGNAL_WRITABLE = 1 << 1; 163 const MojoHandleSignals MOJO_HANDLE_SIGNAL_WRITABLE = 1 << 1;
164 const MojoHandleSignals MOJO_HANDLE_SIGNAL_PEER_CLOSED = 1 << 2; 164 const MojoHandleSignals MOJO_HANDLE_SIGNAL_PEER_CLOSED = 1 << 2;
165 const MojoHandleSignals MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE = 1 << 3; 165 const MojoHandleSignals MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE = 1 << 3;
166 #else 166 #else
167 #define MOJO_HANDLE_SIGNAL_NONE ((MojoHandleSignals)0) 167 #define MOJO_HANDLE_SIGNAL_NONE ((MojoHandleSignals)0)
168 #define MOJO_HANDLE_SIGNAL_READABLE ((MojoHandleSignals)1 << 0) 168 #define MOJO_HANDLE_SIGNAL_READABLE ((MojoHandleSignals)1 << 0)
169 #define MOJO_HANDLE_SIGNAL_WRITABLE ((MojoHandleSignals)1 << 1) 169 #define MOJO_HANDLE_SIGNAL_WRITABLE ((MojoHandleSignals)1 << 1)
170 #define MOJO_HANDLE_SIGNAL_PEER_CLOSED ((MojoHandleSignals)1 << 2) 170 #define MOJO_HANDLE_SIGNAL_PEER_CLOSED ((MojoHandleSignals)1 << 2)
171 #define MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE ((MojoHandleSignals)1 << 3); 171 #define MOJO_HANDLE_SIGNAL_NEW_DATA_READABLE ((MojoHandleSignals)1 << 3);
172 #endif 172 #endif
173 173
174 // |MojoHandleSignalsState|: Returned by wait functions to indicate the 174 // |MojoHandleSignalsState|: Returned by watch notification callbacks and
175 // signaling state of handles. Members are as follows: 175 // |MojoQueryHandleSignalsState| functions to indicate the signaling state of
176 // handles. Members are as follows:
176 // - |satisfied signals|: Bitmask of signals that were satisfied at some time 177 // - |satisfied signals|: Bitmask of signals that were satisfied at some time
177 // before the call returned. 178 // before the call returned.
178 // - |satisfiable signals|: These are the signals that are possible to 179 // - |satisfiable signals|: These are the signals that are possible to
179 // satisfy. For example, if the return value was 180 // satisfy. For example, if the return value was
180 // |MOJO_RESULT_FAILED_PRECONDITION|, you can use this field to 181 // |MOJO_RESULT_FAILED_PRECONDITION|, you can use this field to
181 // determine which, if any, of the signals can still be satisfied. 182 // determine which, if any, of the signals can still be satisfied.
182 // Note: This struct is not extensible (and only has 32-bit quantities), so it's 183 // Note: This struct is not extensible (and only has 32-bit quantities), so it's
183 // 32-bit-aligned. 184 // 32-bit-aligned.
184 MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int32_t) == 4, "int32_t has weird alignment"); 185 MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int32_t) == 4, "int32_t has weird alignment");
185 struct MOJO_ALIGNAS(4) MojoHandleSignalsState { 186 struct MOJO_ALIGNAS(4) MojoHandleSignalsState {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 // users should refrain from making sync calls. 219 // users should refrain from making sync calls.
219 typedef uint32_t MojoPropertyType; 220 typedef uint32_t MojoPropertyType;
220 221
221 #ifdef __cplusplus 222 #ifdef __cplusplus
222 const MojoPropertyType MOJO_PROPERTY_TYPE_SYNC_CALL_ALLOWED = 0; 223 const MojoPropertyType MOJO_PROPERTY_TYPE_SYNC_CALL_ALLOWED = 0;
223 #else 224 #else
224 #define MOJO_PROPERTY_TYPE_SYNC_CALL_ALLOWED ((MojoPropertyType)0) 225 #define MOJO_PROPERTY_TYPE_SYNC_CALL_ALLOWED ((MojoPropertyType)0)
225 #endif 226 #endif
226 227
227 #endif // MOJO_PUBLIC_C_SYSTEM_TYPES_H_ 228 #endif // MOJO_PUBLIC_C_SYSTEM_TYPES_H_
OLDNEW
« no previous file with comments | « mojo/public/c/system/thunks.cc ('k') | mojo/public/c/system/wait_set.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698