@@ -41,8 +41,6 @@ pub type mx_object_info_topic_t = u32;
41
41
42
42
pub const MX_INFO_PROCESS : mx_object_info_topic_t = 3 ;
43
43
44
- pub const MX_HND_TYPE_JOB : u32 = 6 ;
45
-
46
44
pub fn mx_cvt < T > ( t : T ) -> io:: Result < T > where T : TryInto < mx_status_t > +Copy {
47
45
if let Ok ( status) = TryInto :: try_into ( t) {
48
46
if status < 0 {
@@ -104,6 +102,8 @@ pub struct mx_info_process_t {
104
102
}
105
103
106
104
extern {
105
+ static __magenta_job_default: mx_handle_t ;
106
+
107
107
pub fn mx_task_kill ( handle : mx_handle_t ) -> mx_status_t ;
108
108
109
109
pub fn mx_handle_close ( handle : mx_handle_t ) -> mx_status_t ;
@@ -119,21 +119,14 @@ extern {
119
119
avail : * mut mx_size_t ) -> mx_status_t ;
120
120
}
121
121
122
- // Handle Info entries associate a type and optional
123
- // argument with each handle included in the process
124
- // arguments message.
125
- pub fn mx_hnd_info ( hnd_type : u32 , arg : u32 ) -> u32 {
126
- ( hnd_type & 0xFFFF ) | ( ( arg & 0xFFFF ) << 16 )
127
- }
128
-
129
- extern {
130
- pub fn mxio_get_startup_handle ( id : u32 ) -> mx_handle_t ;
122
+ pub fn mx_job_default ( ) -> mx_handle_t {
123
+ unsafe { return __magenta_job_default; }
131
124
}
132
125
133
126
// From `enum special_handles` in system/ulib/launchpad/launchpad.c
134
- # [ allow ( unused ) ] pub const HND_LOADER_SVC : usize = 0 ;
127
+ // HND_LOADER_SVC = 0
135
128
// HND_EXEC_VMO = 1
136
- # [ allow ( unused ) ] pub const HND_SPECIAL_COUNT : usize = 2 ;
129
+ pub const HND_SPECIAL_COUNT : usize = 2 ;
137
130
138
131
#[ repr( C ) ]
139
132
pub struct launchpad_t {
@@ -188,3 +181,124 @@ extern {
188
181
189
182
pub fn launchpad_vmo_from_file ( filename : * const c_char ) -> mx_handle_t ;
190
183
}
184
+
185
+ // Errors
186
+
187
+ #[ allow( unused) ] pub const ERR_INTERNAL : mx_status_t = -1 ;
188
+
189
+ // ERR_NOT_SUPPORTED: The operation is not implemented, supported,
190
+ // or enabled.
191
+ #[ allow( unused) ] pub const ERR_NOT_SUPPORTED : mx_status_t = -2 ;
192
+
193
+ // ERR_NO_RESOURCES: The system was not able to allocate some resource
194
+ // needed for the operation.
195
+ #[ allow( unused) ] pub const ERR_NO_RESOURCES : mx_status_t = -5 ;
196
+
197
+ // ERR_NO_MEMORY: The system was not able to allocate memory needed
198
+ // for the operation.
199
+ #[ allow( unused) ] pub const ERR_NO_MEMORY : mx_status_t = -4 ;
200
+
201
+ // ERR_CALL_FAILED: The second phase of mx_channel_call(; did not complete
202
+ // successfully.
203
+ #[ allow( unused) ] pub const ERR_CALL_FAILED : mx_status_t = -53 ;
204
+
205
+ // ======= Parameter errors =======
206
+ // ERR_INVALID_ARGS: an argument is invalid, ex. null pointer
207
+ #[ allow( unused) ] pub const ERR_INVALID_ARGS : mx_status_t = -10 ;
208
+
209
+ // ERR_WRONG_TYPE: The subject of the operation is the wrong type to
210
+ // perform the operation.
211
+ // Example: Attempting a message_read on a thread handle.
212
+ #[ allow( unused) ] pub const ERR_WRONG_TYPE : mx_status_t = -54 ;
213
+
214
+ // ERR_BAD_SYSCALL: The specified syscall number is invalid.
215
+ #[ allow( unused) ] pub const ERR_BAD_SYSCALL : mx_status_t = -11 ;
216
+
217
+ // ERR_BAD_HANDLE: A specified handle value does not refer to a handle.
218
+ #[ allow( unused) ] pub const ERR_BAD_HANDLE : mx_status_t = -12 ;
219
+
220
+ // ERR_OUT_OF_RANGE: An argument is outside the valid range for this
221
+ // operation.
222
+ #[ allow( unused) ] pub const ERR_OUT_OF_RANGE : mx_status_t = -13 ;
223
+
224
+ // ERR_BUFFER_TOO_SMALL: A caller provided buffer is too small for
225
+ // this operation.
226
+ #[ allow( unused) ] pub const ERR_BUFFER_TOO_SMALL : mx_status_t = -14 ;
227
+
228
+ // ======= Precondition or state errors =======
229
+ // ERR_BAD_STATE: operation failed because the current state of the
230
+ // object does not allow it, or a precondition of the operation is
231
+ // not satisfied
232
+ #[ allow( unused) ] pub const ERR_BAD_STATE : mx_status_t = -20 ;
233
+
234
+ // ERR_NOT_FOUND: The requested entity is not found.
235
+ #[ allow( unused) ] pub const ERR_NOT_FOUND : mx_status_t = -3 ;
236
+
237
+ // ERR_ALREADY_EXISTS: An object with the specified identifier
238
+ // already exists.
239
+ // Example: Attempting to create a file when a file already exists
240
+ // with that name.
241
+ #[ allow( unused) ] pub const ERR_ALREADY_EXISTS : mx_status_t = -15 ;
242
+
243
+ // ERR_ALREADY_BOUND: The operation failed because the named entity
244
+ // is already owned or controlled by another entity. The operation
245
+ // could succeed later if the current owner releases the entity.
246
+ #[ allow( unused) ] pub const ERR_ALREADY_BOUND : mx_status_t = -16 ;
247
+
248
+ // ERR_TIMED_OUT: The time limit for the operation elapsed before
249
+ // the operation completed.
250
+ #[ allow( unused) ] pub const ERR_TIMED_OUT : mx_status_t = -23 ;
251
+
252
+ // ERR_HANDLE_CLOSED: a handle being waited on was closed
253
+ #[ allow( unused) ] pub const ERR_HANDLE_CLOSED : mx_status_t = -24 ;
254
+
255
+ // ERR_REMOTE_CLOSED: The operation failed because the remote end
256
+ // of the subject of the operation was closed.
257
+ #[ allow( unused) ] pub const ERR_REMOTE_CLOSED : mx_status_t = -25 ;
258
+
259
+ // ERR_UNAVAILABLE: The subject of the operation is currently unable
260
+ // to perform the operation.
261
+ // Note: This is used when there's no direct way for the caller to
262
+ // observe when the subject will be able to perform the operation
263
+ // and should thus retry.
264
+ #[ allow( unused) ] pub const ERR_UNAVAILABLE : mx_status_t = -26 ;
265
+
266
+ // ERR_SHOULD_WAIT: The operation cannot be performed currently but
267
+ // potentially could succeed if the caller waits for a prerequisite
268
+ // to be satisfied, for example waiting for a handle to be readable
269
+ // or writable.
270
+ // Example: Attempting to read from a message pipe that has no
271
+ // messages waiting but has an open remote will return ERR_SHOULD_WAIT.
272
+ // Attempting to read from a message pipe that has no messages waiting
273
+ // and has a closed remote end will return ERR_REMOTE_CLOSED.
274
+ #[ allow( unused) ] pub const ERR_SHOULD_WAIT : mx_status_t = -27 ;
275
+
276
+ // ======= Permission check errors =======
277
+ // ERR_ACCESS_DENIED: The caller did not have permission to perform
278
+ // the specified operation.
279
+ #[ allow( unused) ] pub const ERR_ACCESS_DENIED : mx_status_t = -30 ;
280
+
281
+ // ======= Input-output errors =======
282
+ // ERR_IO: Otherwise unspecified error occurred during I/O.
283
+ #[ allow( unused) ] pub const ERR_IO : mx_status_t = -40 ;
284
+
285
+ // ERR_REFUSED: The entity the I/O operation is being performed on
286
+ // rejected the operation.
287
+ // Example: an I2C device NAK'ing a transaction or a disk controller
288
+ // rejecting an invalid command.
289
+ #[ allow( unused) ] pub const ERR_IO_REFUSED : mx_status_t = -41 ;
290
+
291
+ // ERR_IO_DATA_INTEGRITY: The data in the operation failed an integrity
292
+ // check and is possibly corrupted.
293
+ // Example: CRC or Parity error.
294
+ #[ allow( unused) ] pub const ERR_IO_DATA_INTEGRITY : mx_status_t = -42 ;
295
+
296
+ // ERR_IO_DATA_LOSS: The data in the operation is currently unavailable
297
+ // and may be permanently lost.
298
+ // Example: A disk block is irrecoverably damaged.
299
+ #[ allow( unused) ] pub const ERR_IO_DATA_LOSS : mx_status_t = -43 ;
300
+
301
+ // Filesystem specific errors
302
+ #[ allow( unused) ] pub const ERR_BAD_PATH : mx_status_t = -50 ;
303
+ #[ allow( unused) ] pub const ERR_NOT_DIR : mx_status_t = -51 ;
304
+ #[ allow( unused) ] pub const ERR_NOT_FILE : mx_status_t = -52 ;
0 commit comments