1pub use zx_types::*;
10
11#[cfg(target_os = "fuchsia")]
13#[link(name = "zircon")]
14extern "C" {
15
16 pub fn zx_bti_create(
17 iommu: zx_handle_t,
18 options: u32,
19 bti_id: u64,
20 out: *mut zx_handle_t,
21 ) -> zx_status_t;
22
23 pub fn zx_bti_pin(
24 handle: zx_handle_t,
25 options: u32,
26 vmo: zx_handle_t,
27 offset: u64,
28 size: u64,
29 addrs: *mut zx_paddr_t,
30 num_addrs: usize,
31 pmt: *mut zx_handle_t,
32 ) -> zx_status_t;
33
34 pub fn zx_bti_release_quarantine(handle: zx_handle_t) -> zx_status_t;
35
36 pub fn zx_cache_flush(addr: *const u8, size: usize, options: u32) -> zx_status_t;
37
38 pub fn zx_channel_call(
39 handle: zx_handle_t,
40 options: u32,
41 deadline: zx_instant_mono_t,
42 args: *const zx_channel_call_args_t,
43 actual_bytes: *mut u32,
44 actual_handles: *mut u32,
45 ) -> zx_status_t;
46
47 pub fn zx_channel_call_etc(
48 handle: zx_handle_t,
49 options: u32,
50 deadline: zx_instant_mono_t,
51 args: *mut zx_channel_call_etc_args_t,
52 actual_bytes: *mut u32,
53 actual_handles: *mut u32,
54 ) -> zx_status_t;
55
56 pub fn zx_channel_create(
57 options: u32,
58 out0: *mut zx_handle_t,
59 out1: *mut zx_handle_t,
60 ) -> zx_status_t;
61
62 pub fn zx_channel_read(
63 handle: zx_handle_t,
64 options: u32,
65 bytes: *mut u8,
66 handles: *mut zx_handle_t,
67 num_bytes: u32,
68 num_handles: u32,
69 actual_bytes: *mut u32,
70 actual_handles: *mut u32,
71 ) -> zx_status_t;
72
73 pub fn zx_channel_read_etc(
74 handle: zx_handle_t,
75 options: u32,
76 bytes: *mut u8,
77 handles: *mut zx_handle_info_t,
78 num_bytes: u32,
79 num_handles: u32,
80 actual_bytes: *mut u32,
81 actual_handles: *mut u32,
82 ) -> zx_status_t;
83
84 pub fn zx_channel_write(
85 handle: zx_handle_t,
86 options: u32,
87 bytes: *const u8,
88 num_bytes: u32,
89 handles: *const zx_handle_t,
90 num_handles: u32,
91 ) -> zx_status_t;
92
93 pub fn zx_channel_write_etc(
94 handle: zx_handle_t,
95 options: u32,
96 bytes: *const u8,
97 num_bytes: u32,
98 handles: *mut zx_handle_disposition_t,
99 num_handles: u32,
100 ) -> zx_status_t;
101
102 pub fn zx_clock_create(options: u64, args: *const u8, out: *mut zx_handle_t) -> zx_status_t;
103
104 pub fn zx_clock_get_boot() -> zx_instant_boot_t;
105
106 pub fn zx_clock_get_details(handle: zx_handle_t, options: u64, details: *mut u8)
107 -> zx_status_t;
108
109 pub fn zx_clock_get_details_mapped(
110 clock_addr: *const u8,
111 options: u64,
112 details: *mut u8,
113 ) -> zx_status_t;
114
115 pub fn zx_clock_get_monotonic() -> zx_instant_mono_t;
116
117 pub fn zx_clock_read(handle: zx_handle_t, now: *mut zx_time_t) -> zx_status_t;
118
119 pub fn zx_clock_read_mapped(clock_addr: *const u8, now: *mut zx_time_t) -> zx_status_t;
120
121 pub fn zx_clock_update(handle: zx_handle_t, options: u64, args: *const u8) -> zx_status_t;
122
123 pub fn zx_counter_add(handle: zx_handle_t, value: i64) -> zx_status_t;
124
125 pub fn zx_counter_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
126
127 pub fn zx_counter_read(handle: zx_handle_t, value: *mut i64) -> zx_status_t;
128
129 pub fn zx_counter_write(handle: zx_handle_t, value: i64) -> zx_status_t;
130
131 pub fn zx_cprng_add_entropy(buffer: *const u8, buffer_size: usize) -> zx_status_t;
132
133 pub fn zx_cprng_draw(buffer: *mut u8, buffer_size: usize);
134
135 pub fn zx_deadline_after(nanoseconds: zx_duration_mono_t) -> zx_instant_mono_t;
136
137 pub fn zx_debug_read(
138 handle: zx_handle_t,
139 buffer: *mut u8,
140 buffer_size: usize,
141 actual: *mut usize,
142 ) -> zx_status_t;
143
144 pub fn zx_debug_send_command(
145 resource: zx_handle_t,
146 buffer: *const u8,
147 buffer_size: usize,
148 ) -> zx_status_t;
149
150 pub fn zx_debug_write(buffer: *const u8, buffer_size: usize) -> zx_status_t;
151
152 pub fn zx_debuglog_create(
153 resource: zx_handle_t,
154 options: u32,
155 out: *mut zx_handle_t,
156 ) -> zx_status_t;
157
158 pub fn zx_debuglog_read(
159 handle: zx_handle_t,
160 options: u32,
161 buffer: *mut u8,
162 buffer_size: usize,
163 ) -> zx_status_t;
164
165 pub fn zx_debuglog_write(
166 handle: zx_handle_t,
167 options: u32,
168 buffer: *const u8,
169 buffer_size: usize,
170 ) -> zx_status_t;
171
172 pub fn zx_event_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
173
174 pub fn zx_eventpair_create(
175 options: u32,
176 out0: *mut zx_handle_t,
177 out1: *mut zx_handle_t,
178 ) -> zx_status_t;
179
180 pub fn zx_exception_get_process(handle: zx_handle_t, out: *mut zx_handle_t) -> zx_status_t;
181
182 pub fn zx_exception_get_thread(handle: zx_handle_t, out: *mut zx_handle_t) -> zx_status_t;
183
184 pub fn zx_fifo_create(
185 elem_count: usize,
186 elem_size: usize,
187 options: u32,
188 out0: *mut zx_handle_t,
189 out1: *mut zx_handle_t,
190 ) -> zx_status_t;
191
192 pub fn zx_fifo_read(
193 handle: zx_handle_t,
194 elem_size: usize,
195 data: *mut u8,
196 data_size: usize,
197 actual_count: *mut usize,
198 ) -> zx_status_t;
199
200 pub fn zx_fifo_write(
201 handle: zx_handle_t,
202 elem_size: usize,
203 data: *const u8,
204 count: usize,
205 actual_count: *mut usize,
206 ) -> zx_status_t;
207
208 pub fn zx_futex_get_owner(value_ptr: *const zx_futex_t, koid: *mut zx_koid_t) -> zx_status_t;
209
210 pub fn zx_futex_requeue(
211 value_ptr: *const zx_futex_t,
212 wake_count: u32,
213 current_value: i32,
214 requeue_ptr: *const zx_futex_t,
215 requeue_count: u32,
216 new_requeue_owner: zx_handle_t,
217 ) -> zx_status_t;
218
219 pub fn zx_futex_requeue_single_owner(
220 value_ptr: *const zx_futex_t,
221 current_value: i32,
222 requeue_ptr: *const zx_futex_t,
223 requeue_count: u32,
224 new_requeue_owner: zx_handle_t,
225 ) -> zx_status_t;
226
227 pub fn zx_futex_wait(
228 value_ptr: *const zx_futex_t,
229 current_value: i32,
230 new_futex_owner: zx_handle_t,
231 deadline: zx_instant_mono_t,
232 ) -> zx_status_t;
233
234 pub fn zx_futex_wake(value_ptr: *const zx_futex_t, wake_count: u32) -> zx_status_t;
235
236 pub fn zx_futex_wake_handle_close_thread_exit(
237 value_ptr: *const zx_futex_t,
238 wake_count: u32,
239 new_value: i32,
240 close_handle: zx_handle_t,
241 );
242
243 pub fn zx_futex_wake_single_owner(value_ptr: *const zx_futex_t) -> zx_status_t;
244
245 pub fn zx_guest_create(
246 resource: zx_handle_t,
247 options: u32,
248 guest_handle: *mut zx_handle_t,
249 vmar_handle: *mut zx_handle_t,
250 ) -> zx_status_t;
251
252 pub fn zx_guest_set_trap(
253 handle: zx_handle_t,
254 kind: u32,
255 addr: zx_vaddr_t,
256 size: usize,
257 port_handle: zx_handle_t,
258 key: u64,
259 ) -> zx_status_t;
260
261 pub fn zx_handle_check_valid(handle: zx_handle_t) -> zx_status_t;
262
263 pub fn zx_handle_close(handle: zx_handle_t) -> zx_status_t;
264
265 pub fn zx_handle_close_many(handles: *const zx_handle_t, num_handles: usize) -> zx_status_t;
266
267 pub fn zx_handle_duplicate(
268 handle: zx_handle_t,
269 rights: zx_rights_t,
270 out: *mut zx_handle_t,
271 ) -> zx_status_t;
272
273 pub fn zx_handle_replace(
274 handle: zx_handle_t,
275 rights: zx_rights_t,
276 out: *mut zx_handle_t,
277 ) -> zx_status_t;
278
279 pub fn zx_interrupt_ack(handle: zx_handle_t) -> zx_status_t;
280
281 pub fn zx_interrupt_bind(
282 handle: zx_handle_t,
283 port_handle: zx_handle_t,
284 key: u64,
285 options: u32,
286 ) -> zx_status_t;
287
288 pub fn zx_interrupt_create(
289 src_obj: zx_handle_t,
290 src_num: u32,
291 options: u32,
292 out_handle: *mut zx_handle_t,
293 ) -> zx_status_t;
294
295 pub fn zx_interrupt_destroy(handle: zx_handle_t) -> zx_status_t;
296
297 pub fn zx_interrupt_trigger(
298 handle: zx_handle_t,
299 options: u32,
300 timestamp: zx_time_t,
301 ) -> zx_status_t;
302
303 pub fn zx_interrupt_wait(handle: zx_handle_t, out_timestamp: *mut zx_time_t) -> zx_status_t;
304
305 pub fn zx_iob_allocate_id(
306 handle: zx_handle_t,
307 options: zx_iob_allocate_id_options_t,
308 region_index: u32,
309 blob: *const u8,
310 blob_size: usize,
311 id: *mut u32,
312 ) -> zx_status_t;
313
314 pub fn zx_iob_create(
315 options: u64,
316 regions: *const u8,
317 num_regions: usize,
318 ep0_out: *mut zx_handle_t,
319 ep1_out: *mut zx_handle_t,
320 ) -> zx_status_t;
321
322 pub fn zx_iob_create_shared_region(
323 options: u64,
324 size: u64,
325 out: *mut zx_handle_t,
326 ) -> zx_status_t;
327
328 pub fn zx_iob_writev(
329 handle: zx_handle_t,
330 options: zx_iob_write_options_t,
331 region_index: u32,
332 vectors: *const zx_iovec_t,
333 num_vectors: usize,
334 ) -> zx_status_t;
335
336 pub fn zx_iommu_create(
337 resource: zx_handle_t,
338 r#type: u32,
339 desc: *const u8,
340 desc_size: usize,
341 out: *mut zx_handle_t,
342 ) -> zx_status_t;
343
344 pub fn zx_ioports_release(resource: zx_handle_t, io_addr: u16, len: u32) -> zx_status_t;
345
346 pub fn zx_ioports_request(resource: zx_handle_t, io_addr: u16, len: u32) -> zx_status_t;
347
348 pub fn zx_job_create(
349 parent_job: zx_handle_t,
350 options: u32,
351 out: *mut zx_handle_t,
352 ) -> zx_status_t;
353
354 pub fn zx_job_set_critical(job: zx_handle_t, options: u32, process: zx_handle_t)
355 -> zx_status_t;
356
357 pub fn zx_job_set_policy(
358 handle: zx_handle_t,
359 options: u32,
360 topic: u32,
361 policy: *const u8,
362 policy_size: u32,
363 ) -> zx_status_t;
364
365 pub fn zx_ktrace_control(
366 handle: zx_handle_t,
367 action: u32,
368 options: u32,
369 ptr: *mut u8,
370 ) -> zx_status_t;
371
372 pub fn zx_ktrace_read(
373 handle: zx_handle_t,
374 data: *mut u8,
375 offset: u32,
376 data_size: usize,
377 actual: *mut usize,
378 ) -> zx_status_t;
379
380 pub fn zx_msi_allocate(
381 handle: zx_handle_t,
382 count: u32,
383 out_allocation: *mut zx_handle_t,
384 ) -> zx_status_t;
385
386 pub fn zx_msi_create(
387 handle: zx_handle_t,
388 options: u32,
389 msi_id: u32,
390 vmo: zx_handle_t,
391 vmo_offset: usize,
392 out_interrupt: *mut zx_handle_t,
393 ) -> zx_status_t;
394
395 pub fn zx_mtrace_control(
396 handle: zx_handle_t,
397 kind: u32,
398 action: u32,
399 options: u32,
400 ptr: *mut u8,
401 ptr_size: usize,
402 ) -> zx_status_t;
403
404 pub fn zx_nanosleep(deadline: zx_instant_mono_t) -> zx_status_t;
405
406 pub fn zx_object_get_child(
407 handle: zx_handle_t,
408 koid: u64,
409 rights: zx_rights_t,
410 out: *mut zx_handle_t,
411 ) -> zx_status_t;
412
413 pub fn zx_object_get_info(
414 handle: zx_handle_t,
415 topic: u32,
416 buffer: *mut u8,
417 buffer_size: usize,
418 actual: *mut usize,
419 avail: *mut usize,
420 ) -> zx_status_t;
421
422 pub fn zx_object_get_property(
423 handle: zx_handle_t,
424 property: u32,
425 value: *mut u8,
426 value_size: usize,
427 ) -> zx_status_t;
428
429 pub fn zx_object_set_profile(
430 handle: zx_handle_t,
431 profile: zx_handle_t,
432 options: u32,
433 ) -> zx_status_t;
434
435 pub fn zx_object_set_property(
436 handle: zx_handle_t,
437 property: u32,
438 value: *const u8,
439 value_size: usize,
440 ) -> zx_status_t;
441
442 pub fn zx_object_signal(handle: zx_handle_t, clear_mask: u32, set_mask: u32) -> zx_status_t;
443
444 pub fn zx_object_signal_peer(
445 handle: zx_handle_t,
446 clear_mask: u32,
447 set_mask: u32,
448 ) -> zx_status_t;
449
450 pub fn zx_object_wait_async(
451 handle: zx_handle_t,
452 port: zx_handle_t,
453 key: u64,
454 signals: zx_signals_t,
455 options: u32,
456 ) -> zx_status_t;
457
458 pub fn zx_object_wait_many(
459 items: *mut zx_wait_item_t,
460 num_items: usize,
461 deadline: zx_instant_mono_t,
462 ) -> zx_status_t;
463
464 pub fn zx_object_wait_one(
465 handle: zx_handle_t,
466 signals: zx_signals_t,
467 deadline: zx_instant_mono_t,
468 observed: *mut zx_signals_t,
469 ) -> zx_status_t;
470
471 pub fn zx_pager_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
472
473 pub fn zx_pager_create_vmo(
474 pager: zx_handle_t,
475 options: u32,
476 port: zx_handle_t,
477 key: u64,
478 size: u64,
479 out: *mut zx_handle_t,
480 ) -> zx_status_t;
481
482 pub fn zx_pager_detach_vmo(pager: zx_handle_t, vmo: zx_handle_t) -> zx_status_t;
483
484 pub fn zx_pager_op_range(
485 pager: zx_handle_t,
486 op: u32,
487 pager_vmo: zx_handle_t,
488 offset: u64,
489 length: u64,
490 data: u64,
491 ) -> zx_status_t;
492
493 pub fn zx_pager_query_dirty_ranges(
494 pager: zx_handle_t,
495 pager_vmo: zx_handle_t,
496 offset: u64,
497 length: u64,
498 buffer: *mut u8,
499 buffer_size: usize,
500 actual: *mut usize,
501 avail: *mut usize,
502 ) -> zx_status_t;
503
504 pub fn zx_pager_query_vmo_stats(
505 pager: zx_handle_t,
506 pager_vmo: zx_handle_t,
507 options: u32,
508 buffer: *mut u8,
509 buffer_size: usize,
510 ) -> zx_status_t;
511
512 pub fn zx_pager_supply_pages(
513 pager: zx_handle_t,
514 pager_vmo: zx_handle_t,
515 offset: u64,
516 length: u64,
517 aux_vmo: zx_handle_t,
518 aux_offset: u64,
519 ) -> zx_status_t;
520
521 pub fn zx_pci_add_subtract_io_range(
522 handle: zx_handle_t,
523 mmio: u32,
524 base: u64,
525 len: u64,
526 add: u32,
527 ) -> zx_status_t;
528
529 pub fn zx_pci_cfg_pio_rw(
530 handle: zx_handle_t,
531 bus: u8,
532 dev: u8,
533 func: u8,
534 offset: u8,
535 val: *mut u32,
536 width: usize,
537 write: u32,
538 ) -> zx_status_t;
539
540 pub fn zx_pci_config_read(
541 handle: zx_handle_t,
542 offset: u16,
543 width: usize,
544 out_val: *mut u32,
545 ) -> zx_status_t;
546
547 pub fn zx_pci_config_write(
548 handle: zx_handle_t,
549 offset: u16,
550 width: usize,
551 val: u32,
552 ) -> zx_status_t;
553
554 pub fn zx_pci_enable_bus_master(handle: zx_handle_t, enable: u32) -> zx_status_t;
555
556 pub fn zx_pci_get_bar(
557 handle: zx_handle_t,
558 bar_num: u32,
559 out_bar: *mut zx_pci_bar_t,
560 out_handle: *mut zx_handle_t,
561 ) -> zx_status_t;
562
563 pub fn zx_pci_get_nth_device(
564 handle: zx_handle_t,
565 index: u32,
566 out_info: *mut zx_pcie_device_info_t,
567 out_handle: *mut zx_handle_t,
568 ) -> zx_status_t;
569
570 pub fn zx_pci_init(
571 handle: zx_handle_t,
572 init_buf: *const zx_pci_init_arg_t,
573 len: u32,
574 ) -> zx_status_t;
575
576 pub fn zx_pci_map_interrupt(
577 handle: zx_handle_t,
578 which_irq: i32,
579 out_handle: *mut zx_handle_t,
580 ) -> zx_status_t;
581
582 pub fn zx_pci_query_irq_mode(
583 handle: zx_handle_t,
584 mode: u32,
585 out_max_irqs: *mut u32,
586 ) -> zx_status_t;
587
588 pub fn zx_pci_reset_device(handle: zx_handle_t) -> zx_status_t;
589
590 pub fn zx_pci_set_irq_mode(
591 handle: zx_handle_t,
592 mode: u32,
593 requested_irq_count: u32,
594 ) -> zx_status_t;
595
596 pub fn zx_pmt_unpin(handle: zx_handle_t) -> zx_status_t;
597
598 pub fn zx_port_cancel(handle: zx_handle_t, source: zx_handle_t, key: u64) -> zx_status_t;
599
600 pub fn zx_port_cancel_key(handle: zx_handle_t, options: u32, key: u64) -> zx_status_t;
601
602 pub fn zx_port_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
603
604 pub fn zx_port_queue(handle: zx_handle_t, packet: *const zx_port_packet_t) -> zx_status_t;
605
606 pub fn zx_port_wait(
607 handle: zx_handle_t,
608 deadline: zx_instant_mono_t,
609 packet: *mut zx_port_packet_t,
610 ) -> zx_status_t;
611
612 pub fn zx_process_create(
613 job: zx_handle_t,
614 name: *const u8,
615 name_size: usize,
616 options: u32,
617 proc_handle: *mut zx_handle_t,
618 vmar_handle: *mut zx_handle_t,
619 ) -> zx_status_t;
620
621 pub fn zx_process_create_shared(
622 shared_proc: zx_handle_t,
623 options: u32,
624 name: *const u8,
625 name_size: usize,
626 proc_handle: *mut zx_handle_t,
627 restricted_vmar_handle: *mut zx_handle_t,
628 ) -> zx_status_t;
629
630 pub fn zx_process_exit(retcode: i64);
631
632 pub fn zx_process_read_memory(
633 handle: zx_handle_t,
634 vaddr: zx_vaddr_t,
635 buffer: *mut u8,
636 buffer_size: usize,
637 actual: *mut usize,
638 ) -> zx_status_t;
639
640 pub fn zx_process_start(
641 handle: zx_handle_t,
642 thread: zx_handle_t,
643 entry: zx_vaddr_t,
644 stack: zx_vaddr_t,
645 arg1: zx_handle_t,
646 arg2: usize,
647 ) -> zx_status_t;
648
649 pub fn zx_process_write_memory(
650 handle: zx_handle_t,
651 vaddr: zx_vaddr_t,
652 buffer: *const u8,
653 buffer_size: usize,
654 actual: *mut usize,
655 ) -> zx_status_t;
656
657 pub fn zx_profile_create(
658 profile_rsrc: zx_handle_t,
659 options: u32,
660 profile: *const zx_profile_info_t,
661 out: *mut zx_handle_t,
662 ) -> zx_status_t;
663
664 pub fn zx_resource_create(
665 parent_rsrc: zx_handle_t,
666 options: u32,
667 base: u64,
668 size: usize,
669 name: *const u8,
670 name_size: usize,
671 resource_out: *mut zx_handle_t,
672 ) -> zx_status_t;
673
674 pub fn zx_restricted_bind_state(options: u32, out: *mut zx_handle_t) -> zx_status_t;
675
676 pub fn zx_restricted_enter(
677 options: u32,
678 vector_table_ptr: usize,
679 context: usize,
680 ) -> zx_status_t;
681
682 pub fn zx_restricted_kick(thread: zx_handle_t, options: u32) -> zx_status_t;
683
684 pub fn zx_restricted_unbind_state(options: u32) -> zx_status_t;
685
686 pub fn zx_sampler_create(
687 rsrc: zx_handle_t,
688 options: u64,
689 config: *const zx_sampler_config_t,
690 per_cpu_buffers: *mut zx_handle_t,
691 ) -> zx_status_t;
692
693 pub fn zx_sampler_read(
694 iobuffer: zx_handle_t,
695 data: *mut u8,
696 data_size: usize,
697 actual: *mut usize,
698 ) -> zx_status_t;
699
700 pub fn zx_sampler_start(iobuffer: zx_handle_t) -> zx_status_t;
701
702 pub fn zx_sampler_stop(iobuffer: zx_handle_t) -> zx_status_t;
703
704 pub fn zx_smc_call(
705 handle: zx_handle_t,
706 parameters: *const zx_smc_parameters_t,
707 out_smc_result: *mut zx_smc_result_t,
708 ) -> zx_status_t;
709
710 pub fn zx_socket_create(
711 options: u32,
712 out0: *mut zx_handle_t,
713 out1: *mut zx_handle_t,
714 ) -> zx_status_t;
715
716 pub fn zx_socket_read(
717 handle: zx_handle_t,
718 options: u32,
719 buffer: *mut u8,
720 buffer_size: usize,
721 actual: *mut usize,
722 ) -> zx_status_t;
723
724 pub fn zx_socket_set_disposition(
725 handle: zx_handle_t,
726 disposition: u32,
727 disposition_peer: u32,
728 ) -> zx_status_t;
729
730 pub fn zx_socket_write(
731 handle: zx_handle_t,
732 options: u32,
733 buffer: *const u8,
734 buffer_size: usize,
735 actual: *mut usize,
736 ) -> zx_status_t;
737
738 pub fn zx_stream_create(
739 options: u32,
740 vmo: zx_handle_t,
741 seek: zx_off_t,
742 out_stream: *mut zx_handle_t,
743 ) -> zx_status_t;
744
745 pub fn zx_stream_readv(
746 handle: zx_handle_t,
747 options: u32,
748 vectors: *mut zx_iovec_t,
749 num_vectors: usize,
750 actual: *mut usize,
751 ) -> zx_status_t;
752
753 pub fn zx_stream_readv_at(
754 handle: zx_handle_t,
755 options: u32,
756 offset: zx_off_t,
757 vectors: *mut zx_iovec_t,
758 num_vectors: usize,
759 actual: *mut usize,
760 ) -> zx_status_t;
761
762 pub fn zx_stream_seek(
763 handle: zx_handle_t,
764 whence: zx_stream_seek_origin_t,
765 offset: i64,
766 out_seek: *mut zx_off_t,
767 ) -> zx_status_t;
768
769 pub fn zx_stream_writev(
770 handle: zx_handle_t,
771 options: u32,
772 vectors: *const zx_iovec_t,
773 num_vectors: usize,
774 actual: *mut usize,
775 ) -> zx_status_t;
776
777 pub fn zx_stream_writev_at(
778 handle: zx_handle_t,
779 options: u32,
780 offset: zx_off_t,
781 vectors: *const zx_iovec_t,
782 num_vectors: usize,
783 actual: *mut usize,
784 ) -> zx_status_t;
785
786 pub fn zx_syscall_next_1(arg: i32) -> zx_status_t;
787
788 pub fn zx_syscall_test_handle_create(
789 return_value: zx_status_t,
790 out: *mut zx_handle_t,
791 ) -> zx_status_t;
792
793 pub fn zx_syscall_test_widening_signed_narrow(a: i64, b: i32, c: i16, d: i8) -> i64;
794
795 pub fn zx_syscall_test_widening_signed_wide(a: i64, b: i32, c: i16, d: i8) -> i64;
796
797 pub fn zx_syscall_test_widening_unsigned_narrow(a: u64, b: u32, c: u16, d: u8) -> u64;
798
799 pub fn zx_syscall_test_widening_unsigned_wide(a: u64, b: u32, c: u16, d: u8) -> u64;
800
801 pub fn zx_syscall_test_wrapper(a: i32, b: i32, c: i32) -> zx_status_t;
802
803 pub fn zx_syscall_test_0() -> zx_status_t;
804
805 pub fn zx_syscall_test_1(a: i32) -> zx_status_t;
806
807 pub fn zx_syscall_test_2(a: i32, b: i32) -> zx_status_t;
808
809 pub fn zx_syscall_test_3(a: i32, b: i32, c: i32) -> zx_status_t;
810
811 pub fn zx_syscall_test_4(a: i32, b: i32, c: i32, d: i32) -> zx_status_t;
812
813 pub fn zx_syscall_test_5(a: i32, b: i32, c: i32, d: i32, e: i32) -> zx_status_t;
814
815 pub fn zx_syscall_test_6(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) -> zx_status_t;
816
817 pub fn zx_syscall_test_7(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32, g: i32)
818 -> zx_status_t;
819
820 pub fn zx_syscall_test_8(
821 a: i32,
822 b: i32,
823 c: i32,
824 d: i32,
825 e: i32,
826 f: i32,
827 g: i32,
828 h: i32,
829 ) -> zx_status_t;
830
831 pub fn zx_system_barrier(options: u32) -> zx_status_t;
832
833 pub fn zx_system_get_dcache_line_size() -> u32;
834
835 pub fn zx_system_get_event(
836 root_job: zx_handle_t,
837 kind: u32,
838 event: *mut zx_handle_t,
839 ) -> zx_status_t;
840
841 pub fn zx_system_get_features(kind: u32, features: *mut u32) -> zx_status_t;
842
843 pub fn zx_system_get_num_cpus() -> u32;
844
845 pub fn zx_system_get_page_size() -> u32;
846
847 pub fn zx_system_get_performance_info(
848 resource: zx_handle_t,
849 topic: u32,
850 count: usize,
851 info: *mut u8,
852 output_count: *mut usize,
853 ) -> zx_status_t;
854
855 pub fn zx_system_get_physmem() -> u64;
856
857 pub fn zx_system_get_version_string() -> zx_string_view_t;
858
859 pub fn zx_system_mexec(
860 resource: zx_handle_t,
861 kernel_vmo: zx_handle_t,
862 bootimage_vmo: zx_handle_t,
863 ) -> zx_status_t;
864
865 pub fn zx_system_mexec_payload_get(
866 resource: zx_handle_t,
867 buffer: *mut u8,
868 buffer_size: usize,
869 ) -> zx_status_t;
870
871 pub fn zx_system_powerctl(
872 resource: zx_handle_t,
873 cmd: u32,
874 arg: *const zx_system_powerctl_arg_t,
875 ) -> zx_status_t;
876
877 pub fn zx_system_set_performance_info(
878 resource: zx_handle_t,
879 topic: u32,
880 info: *const u8,
881 count: usize,
882 ) -> zx_status_t;
883
884 pub fn zx_system_set_processor_power_domain(
885 resource: zx_handle_t,
886 options: u64,
887 domain: *const zx_processor_power_domain_t,
888 port: zx_handle_t,
889 power_levels: *const zx_processor_power_level_t,
890 num_power_levels: usize,
891 transitions: *const zx_processor_power_level_transition_t,
892 num_transitions: usize,
893 ) -> zx_status_t;
894
895 pub fn zx_system_set_processor_power_state(
896 port: zx_handle_t,
897 power_state: *const zx_processor_power_state_t,
898 ) -> zx_status_t;
899
900 pub fn zx_system_suspend_enter(
901 resource: zx_handle_t,
902 resume_deadline: zx_instant_boot_t,
903 options: zx_system_suspend_option_t,
904 header: *mut zx_wake_source_report_header_t,
905 entries: *mut zx_wake_source_report_entry_t,
906 num_entries: u32,
907 actual_entries: *mut u32,
908 ) -> zx_status_t;
909
910 pub fn zx_system_watch_memory_stall(
911 resource: zx_handle_t,
912 kind: u32,
913 threshold: zx_duration_t,
914 window: zx_duration_t,
915 event: *mut zx_handle_t,
916 ) -> zx_status_t;
917
918 pub fn zx_task_create_exception_channel(
919 handle: zx_handle_t,
920 options: u32,
921 out: *mut zx_handle_t,
922 ) -> zx_status_t;
923
924 pub fn zx_task_kill(handle: zx_handle_t) -> zx_status_t;
925
926 pub fn zx_task_suspend(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
927
928 pub fn zx_task_suspend_token(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
929
930 pub fn zx_thread_create(
931 process: zx_handle_t,
932 name: *const u8,
933 name_size: usize,
934 options: u32,
935 out: *mut zx_handle_t,
936 ) -> zx_status_t;
937
938 pub fn zx_thread_exit();
939
940 pub fn zx_thread_legacy_yield(options: u32) -> zx_status_t;
941
942 pub fn zx_thread_raise_exception(
943 options: u32,
944 r#type: u32,
945 context: *const zx_exception_context_t,
946 ) -> zx_status_t;
947
948 pub fn zx_thread_read_state(
949 handle: zx_handle_t,
950 kind: u32,
951 buffer: *mut u8,
952 buffer_size: usize,
953 ) -> zx_status_t;
954
955 pub fn zx_thread_set_rseq(vmo: zx_handle_t, offset: u64, size: u64) -> zx_status_t;
956
957 pub fn zx_thread_start(
958 handle: zx_handle_t,
959 thread_entry: zx_vaddr_t,
960 stack: zx_vaddr_t,
961 arg1: usize,
962 arg2: usize,
963 ) -> zx_status_t;
964
965 pub fn zx_thread_start_regs(
966 handle: zx_handle_t,
967 pc: u64,
968 sp: u64,
969 arg1: u64,
970 arg2: u64,
971 tp: u64,
972 abi_reg: u64,
973 ) -> zx_status_t;
974
975 pub fn zx_thread_write_state(
976 handle: zx_handle_t,
977 kind: u32,
978 buffer: *const u8,
979 buffer_size: usize,
980 ) -> zx_status_t;
981
982 pub fn zx_ticks_get() -> zx_instant_mono_ticks_t;
983
984 pub fn zx_ticks_get_boot() -> zx_instant_boot_ticks_t;
985
986 pub fn zx_ticks_per_second() -> zx_ticks_t;
987
988 pub fn zx_timer_cancel(handle: zx_handle_t) -> zx_status_t;
989
990 pub fn zx_timer_create(
991 options: u32,
992 clock_id: zx_clock_t,
993 out: *mut zx_handle_t,
994 ) -> zx_status_t;
995
996 pub fn zx_timer_set(
997 handle: zx_handle_t,
998 deadline: zx_time_t,
999 slack: zx_duration_t,
1000 ) -> zx_status_t;
1001
1002 pub fn zx_vcpu_create(
1003 guest: zx_handle_t,
1004 options: u32,
1005 entry: zx_vaddr_t,
1006 out: *mut zx_handle_t,
1007 ) -> zx_status_t;
1008
1009 pub fn zx_vcpu_enter(handle: zx_handle_t, packet: *mut zx_port_packet_t) -> zx_status_t;
1010
1011 pub fn zx_vcpu_interrupt(handle: zx_handle_t, vector: u32) -> zx_status_t;
1012
1013 pub fn zx_vcpu_kick(handle: zx_handle_t) -> zx_status_t;
1014
1015 pub fn zx_vcpu_read_state(
1016 handle: zx_handle_t,
1017 kind: u32,
1018 buffer: *mut u8,
1019 buffer_size: usize,
1020 ) -> zx_status_t;
1021
1022 pub fn zx_vcpu_write_state(
1023 handle: zx_handle_t,
1024 kind: u32,
1025 buffer: *const u8,
1026 buffer_size: usize,
1027 ) -> zx_status_t;
1028
1029 pub fn zx_vmar_allocate(
1030 parent_vmar: zx_handle_t,
1031 options: zx_vm_option_t,
1032 offset: usize,
1033 size: usize,
1034 child_vmar: *mut zx_handle_t,
1035 child_addr: *mut zx_vaddr_t,
1036 ) -> zx_status_t;
1037
1038 pub fn zx_vmar_destroy(handle: zx_handle_t) -> zx_status_t;
1039
1040 pub fn zx_vmar_map(
1041 handle: zx_handle_t,
1042 options: zx_vm_option_t,
1043 vmar_offset: usize,
1044 vmo: zx_handle_t,
1045 vmo_offset: u64,
1046 len: usize,
1047 mapped_addr: *mut zx_vaddr_t,
1048 ) -> zx_status_t;
1049
1050 pub fn zx_vmar_map_clock(
1051 handle: zx_handle_t,
1052 options: zx_vm_option_t,
1053 vmar_offset: usize,
1054 clock: zx_handle_t,
1055 len: usize,
1056 mapped_addr: *mut zx_vaddr_t,
1057 ) -> zx_status_t;
1058
1059 pub fn zx_vmar_map_iob(
1060 handle: zx_handle_t,
1061 options: zx_vm_option_t,
1062 vmar_offset: usize,
1063 ep: zx_handle_t,
1064 region_index: u32,
1065 region_offset: u64,
1066 region_length: usize,
1067 mapped_addr: *mut zx_vaddr_t,
1068 ) -> zx_status_t;
1069
1070 pub fn zx_vmar_op_range(
1071 handle: zx_handle_t,
1072 op: u32,
1073 address: zx_vaddr_t,
1074 size: usize,
1075 buffer: *mut u8,
1076 buffer_size: usize,
1077 ) -> zx_status_t;
1078
1079 pub fn zx_vmar_protect(
1080 handle: zx_handle_t,
1081 options: zx_vm_option_t,
1082 addr: zx_vaddr_t,
1083 len: usize,
1084 ) -> zx_status_t;
1085
1086 pub fn zx_vmar_unmap(handle: zx_handle_t, addr: zx_vaddr_t, len: usize) -> zx_status_t;
1087
1088 pub fn zx_vmar_unmap_handle_close_thread_exit(
1089 vmar_handle: zx_handle_t,
1090 addr: zx_vaddr_t,
1091 size: usize,
1092 close_handle: zx_handle_t,
1093 ) -> zx_status_t;
1094
1095 pub fn zx_vmo_create(size: u64, options: u32, out: *mut zx_handle_t) -> zx_status_t;
1096
1097 pub fn zx_vmo_create_child(
1098 handle: zx_handle_t,
1099 options: u32,
1100 offset: u64,
1101 size: u64,
1102 out: *mut zx_handle_t,
1103 ) -> zx_status_t;
1104
1105 pub fn zx_vmo_create_contiguous(
1106 bti: zx_handle_t,
1107 size: usize,
1108 alignment_log2: u32,
1109 out: *mut zx_handle_t,
1110 ) -> zx_status_t;
1111
1112 pub fn zx_vmo_create_physical(
1113 resource: zx_handle_t,
1114 paddr: zx_paddr_t,
1115 size: usize,
1116 out: *mut zx_handle_t,
1117 ) -> zx_status_t;
1118
1119 pub fn zx_vmo_get_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1120
1121 pub fn zx_vmo_get_stream_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1122
1123 pub fn zx_vmo_op_range(
1124 handle: zx_handle_t,
1125 op: u32,
1126 offset: u64,
1127 size: u64,
1128 buffer: *mut u8,
1129 buffer_size: usize,
1130 ) -> zx_status_t;
1131
1132 pub fn zx_vmo_read(
1133 handle: zx_handle_t,
1134 buffer: *mut u8,
1135 offset: u64,
1136 buffer_size: usize,
1137 ) -> zx_status_t;
1138
1139 pub fn zx_vmo_replace_as_executable(
1140 handle: zx_handle_t,
1141 vmex: zx_handle_t,
1142 out: *mut zx_handle_t,
1143 ) -> zx_status_t;
1144
1145 pub fn zx_vmo_set_cache_policy(handle: zx_handle_t, cache_policy: u32) -> zx_status_t;
1146
1147 pub fn zx_vmo_set_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1148
1149 pub fn zx_vmo_set_stream_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1150
1151 pub fn zx_vmo_transfer_data(
1152 dst_vmo: zx_handle_t,
1153 options: u32,
1154 offset: u64,
1155 length: u64,
1156 src_vmo: zx_handle_t,
1157 src_offset: u64,
1158 ) -> zx_status_t;
1159
1160 pub fn zx_vmo_write(
1161 handle: zx_handle_t,
1162 buffer: *const u8,
1163 offset: u64,
1164 buffer_size: usize,
1165 ) -> zx_status_t;
1166
1167}