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(
675 options: u32,
676 out: *mut zx_handle_t,
677 out_exception: *mut zx_exception_report_t,
678 ) -> zx_status_t;
679
680 pub fn zx_restricted_enter(
681 options: u32,
682 vector_table_ptr: usize,
683 context: usize,
684 ) -> zx_status_t;
685
686 pub fn zx_restricted_kick(thread: zx_handle_t, options: u32) -> zx_status_t;
687
688 pub fn zx_restricted_unbind_state(options: u32) -> zx_status_t;
689
690 pub fn zx_sampler_create(
691 rsrc: zx_handle_t,
692 options: u64,
693 config: *const zx_sampler_config_t,
694 per_cpu_buffers: *mut zx_handle_t,
695 ) -> zx_status_t;
696
697 pub fn zx_sampler_read(
698 iobuffer: zx_handle_t,
699 data: *mut u8,
700 data_size: usize,
701 actual: *mut usize,
702 ) -> zx_status_t;
703
704 pub fn zx_sampler_start(iobuffer: zx_handle_t) -> zx_status_t;
705
706 pub fn zx_sampler_stop(iobuffer: zx_handle_t) -> zx_status_t;
707
708 pub fn zx_smc_call(
709 handle: zx_handle_t,
710 parameters: *const zx_smc_parameters_t,
711 out_smc_result: *mut zx_smc_result_t,
712 ) -> zx_status_t;
713
714 pub fn zx_socket_create(
715 options: u32,
716 out0: *mut zx_handle_t,
717 out1: *mut zx_handle_t,
718 ) -> zx_status_t;
719
720 pub fn zx_socket_read(
721 handle: zx_handle_t,
722 options: u32,
723 buffer: *mut u8,
724 buffer_size: usize,
725 actual: *mut usize,
726 ) -> zx_status_t;
727
728 pub fn zx_socket_set_disposition(
729 handle: zx_handle_t,
730 disposition: u32,
731 disposition_peer: u32,
732 ) -> zx_status_t;
733
734 pub fn zx_socket_write(
735 handle: zx_handle_t,
736 options: u32,
737 buffer: *const u8,
738 buffer_size: usize,
739 actual: *mut usize,
740 ) -> zx_status_t;
741
742 pub fn zx_stream_create(
743 options: u32,
744 vmo: zx_handle_t,
745 seek: zx_off_t,
746 out_stream: *mut zx_handle_t,
747 ) -> zx_status_t;
748
749 pub fn zx_stream_readv(
750 handle: zx_handle_t,
751 options: u32,
752 vectors: *mut zx_iovec_t,
753 num_vectors: usize,
754 actual: *mut usize,
755 ) -> zx_status_t;
756
757 pub fn zx_stream_readv_at(
758 handle: zx_handle_t,
759 options: u32,
760 offset: zx_off_t,
761 vectors: *mut zx_iovec_t,
762 num_vectors: usize,
763 actual: *mut usize,
764 ) -> zx_status_t;
765
766 pub fn zx_stream_seek(
767 handle: zx_handle_t,
768 whence: zx_stream_seek_origin_t,
769 offset: i64,
770 out_seek: *mut zx_off_t,
771 ) -> zx_status_t;
772
773 pub fn zx_stream_writev(
774 handle: zx_handle_t,
775 options: u32,
776 vectors: *const zx_iovec_t,
777 num_vectors: usize,
778 actual: *mut usize,
779 ) -> zx_status_t;
780
781 pub fn zx_stream_writev_at(
782 handle: zx_handle_t,
783 options: u32,
784 offset: zx_off_t,
785 vectors: *const zx_iovec_t,
786 num_vectors: usize,
787 actual: *mut usize,
788 ) -> zx_status_t;
789
790 pub fn zx_syscall_next_1(arg: i32) -> zx_status_t;
791
792 pub fn zx_syscall_test_handle_create(
793 return_value: zx_status_t,
794 out: *mut zx_handle_t,
795 ) -> zx_status_t;
796
797 pub fn zx_syscall_test_widening_signed_narrow(a: i64, b: i32, c: i16, d: i8) -> i64;
798
799 pub fn zx_syscall_test_widening_signed_wide(a: i64, b: i32, c: i16, d: i8) -> i64;
800
801 pub fn zx_syscall_test_widening_unsigned_narrow(a: u64, b: u32, c: u16, d: u8) -> u64;
802
803 pub fn zx_syscall_test_widening_unsigned_wide(a: u64, b: u32, c: u16, d: u8) -> u64;
804
805 pub fn zx_syscall_test_wrapper(a: i32, b: i32, c: i32) -> zx_status_t;
806
807 pub fn zx_syscall_test_0() -> zx_status_t;
808
809 pub fn zx_syscall_test_1(a: i32) -> zx_status_t;
810
811 pub fn zx_syscall_test_2(a: i32, b: i32) -> zx_status_t;
812
813 pub fn zx_syscall_test_3(a: i32, b: i32, c: i32) -> zx_status_t;
814
815 pub fn zx_syscall_test_4(a: i32, b: i32, c: i32, d: i32) -> zx_status_t;
816
817 pub fn zx_syscall_test_5(a: i32, b: i32, c: i32, d: i32, e: i32) -> zx_status_t;
818
819 pub fn zx_syscall_test_6(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) -> zx_status_t;
820
821 pub fn zx_syscall_test_7(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32, g: i32)
822 -> zx_status_t;
823
824 pub fn zx_syscall_test_8(
825 a: i32,
826 b: i32,
827 c: i32,
828 d: i32,
829 e: i32,
830 f: i32,
831 g: i32,
832 h: i32,
833 ) -> zx_status_t;
834
835 pub fn zx_system_barrier(options: u32) -> zx_status_t;
836
837 pub fn zx_system_get_dcache_line_size() -> u32;
838
839 pub fn zx_system_get_event(
840 root_job: zx_handle_t,
841 kind: u32,
842 event: *mut zx_handle_t,
843 ) -> zx_status_t;
844
845 pub fn zx_system_get_features(kind: u32, features: *mut u32) -> zx_status_t;
846
847 pub fn zx_system_get_num_cpus() -> u32;
848
849 pub fn zx_system_get_page_size() -> u32;
850
851 pub fn zx_system_get_performance_info(
852 resource: zx_handle_t,
853 topic: u32,
854 count: usize,
855 info: *mut u8,
856 output_count: *mut usize,
857 ) -> zx_status_t;
858
859 pub fn zx_system_get_physmem() -> u64;
860
861 pub fn zx_system_get_version_string() -> zx_string_view_t;
862
863 pub fn zx_system_mexec(
864 resource: zx_handle_t,
865 kernel_vmo: zx_handle_t,
866 bootimage_vmo: zx_handle_t,
867 ) -> zx_status_t;
868
869 pub fn zx_system_mexec_payload_get(
870 resource: zx_handle_t,
871 buffer: *mut u8,
872 buffer_size: usize,
873 ) -> zx_status_t;
874
875 pub fn zx_system_powerctl(
876 resource: zx_handle_t,
877 cmd: u32,
878 arg: *const zx_system_powerctl_arg_t,
879 ) -> zx_status_t;
880
881 pub fn zx_system_set_performance_info(
882 resource: zx_handle_t,
883 topic: u32,
884 info: *const u8,
885 count: usize,
886 ) -> zx_status_t;
887
888 pub fn zx_system_set_processor_power_domain(
889 resource: zx_handle_t,
890 options: u64,
891 domain: *const zx_processor_power_domain_t,
892 port: zx_handle_t,
893 power_levels: *const zx_processor_power_level_t,
894 num_power_levels: usize,
895 transitions: *const zx_processor_power_level_transition_t,
896 num_transitions: usize,
897 ) -> zx_status_t;
898
899 pub fn zx_system_set_processor_power_state(
900 port: zx_handle_t,
901 power_state: *const zx_processor_power_state_t,
902 ) -> zx_status_t;
903
904 pub fn zx_system_suspend_enter(
905 resource: zx_handle_t,
906 resume_deadline: zx_instant_boot_t,
907 options: zx_system_suspend_option_t,
908 header: *mut zx_wake_source_report_header_t,
909 entries: *mut zx_wake_source_report_entry_t,
910 num_entries: u32,
911 actual_entries: *mut u32,
912 ) -> zx_status_t;
913
914 pub fn zx_system_watch_memory_stall(
915 resource: zx_handle_t,
916 kind: u32,
917 threshold: zx_duration_t,
918 window: zx_duration_t,
919 event: *mut zx_handle_t,
920 ) -> zx_status_t;
921
922 pub fn zx_task_create_exception_channel(
923 handle: zx_handle_t,
924 options: u32,
925 out: *mut zx_handle_t,
926 ) -> zx_status_t;
927
928 pub fn zx_task_kill(handle: zx_handle_t) -> zx_status_t;
929
930 pub fn zx_task_suspend(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
931
932 pub fn zx_task_suspend_token(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
933
934 pub fn zx_thread_create(
935 process: zx_handle_t,
936 name: *const u8,
937 name_size: usize,
938 options: u32,
939 out: *mut zx_handle_t,
940 ) -> zx_status_t;
941
942 pub fn zx_thread_exit();
943
944 pub fn zx_thread_legacy_yield(options: u32) -> zx_status_t;
945
946 pub fn zx_thread_raise_exception(
947 options: u32,
948 r#type: u32,
949 context: *const zx_exception_context_t,
950 ) -> zx_status_t;
951
952 pub fn zx_thread_read_state(
953 handle: zx_handle_t,
954 kind: u32,
955 buffer: *mut u8,
956 buffer_size: usize,
957 ) -> zx_status_t;
958
959 pub fn zx_thread_set_rseq(vmo: zx_handle_t, offset: u64, size: u64) -> zx_status_t;
960
961 pub fn zx_thread_start(
962 handle: zx_handle_t,
963 thread_entry: zx_vaddr_t,
964 stack: zx_vaddr_t,
965 arg1: usize,
966 arg2: usize,
967 ) -> zx_status_t;
968
969 pub fn zx_thread_start_regs(
970 handle: zx_handle_t,
971 pc: u64,
972 sp: u64,
973 arg1: u64,
974 arg2: u64,
975 tp: u64,
976 abi_reg: u64,
977 ) -> zx_status_t;
978
979 pub fn zx_thread_write_state(
980 handle: zx_handle_t,
981 kind: u32,
982 buffer: *const u8,
983 buffer_size: usize,
984 ) -> zx_status_t;
985
986 pub fn zx_ticks_get() -> zx_instant_mono_ticks_t;
987
988 pub fn zx_ticks_get_boot() -> zx_instant_boot_ticks_t;
989
990 pub fn zx_ticks_per_second() -> zx_ticks_t;
991
992 pub fn zx_timer_cancel(handle: zx_handle_t) -> zx_status_t;
993
994 pub fn zx_timer_create(
995 options: u32,
996 clock_id: zx_clock_t,
997 out: *mut zx_handle_t,
998 ) -> zx_status_t;
999
1000 pub fn zx_timer_set(
1001 handle: zx_handle_t,
1002 deadline: zx_time_t,
1003 slack: zx_duration_t,
1004 ) -> zx_status_t;
1005
1006 pub fn zx_vcpu_create(
1007 guest: zx_handle_t,
1008 options: u32,
1009 entry: zx_vaddr_t,
1010 out: *mut zx_handle_t,
1011 ) -> zx_status_t;
1012
1013 pub fn zx_vcpu_enter(handle: zx_handle_t, packet: *mut zx_port_packet_t) -> zx_status_t;
1014
1015 pub fn zx_vcpu_interrupt(handle: zx_handle_t, vector: u32) -> zx_status_t;
1016
1017 pub fn zx_vcpu_kick(handle: zx_handle_t) -> zx_status_t;
1018
1019 pub fn zx_vcpu_read_state(
1020 handle: zx_handle_t,
1021 kind: u32,
1022 buffer: *mut u8,
1023 buffer_size: usize,
1024 ) -> zx_status_t;
1025
1026 pub fn zx_vcpu_write_state(
1027 handle: zx_handle_t,
1028 kind: u32,
1029 buffer: *const u8,
1030 buffer_size: usize,
1031 ) -> zx_status_t;
1032
1033 pub fn zx_vmar_allocate(
1034 parent_vmar: zx_handle_t,
1035 options: zx_vm_option_t,
1036 offset: usize,
1037 size: usize,
1038 child_vmar: *mut zx_handle_t,
1039 child_addr: *mut zx_vaddr_t,
1040 ) -> zx_status_t;
1041
1042 pub fn zx_vmar_destroy(handle: zx_handle_t) -> zx_status_t;
1043
1044 pub fn zx_vmar_map(
1045 handle: zx_handle_t,
1046 options: zx_vm_option_t,
1047 vmar_offset: usize,
1048 vmo: zx_handle_t,
1049 vmo_offset: u64,
1050 len: usize,
1051 mapped_addr: *mut zx_vaddr_t,
1052 ) -> zx_status_t;
1053
1054 pub fn zx_vmar_map_clock(
1055 handle: zx_handle_t,
1056 options: zx_vm_option_t,
1057 vmar_offset: usize,
1058 clock: zx_handle_t,
1059 len: usize,
1060 mapped_addr: *mut zx_vaddr_t,
1061 ) -> zx_status_t;
1062
1063 pub fn zx_vmar_map_iob(
1064 handle: zx_handle_t,
1065 options: zx_vm_option_t,
1066 vmar_offset: usize,
1067 ep: zx_handle_t,
1068 region_index: u32,
1069 region_offset: u64,
1070 region_length: usize,
1071 mapped_addr: *mut zx_vaddr_t,
1072 ) -> zx_status_t;
1073
1074 pub fn zx_vmar_op_range(
1075 handle: zx_handle_t,
1076 op: u32,
1077 address: zx_vaddr_t,
1078 size: usize,
1079 buffer: *mut u8,
1080 buffer_size: usize,
1081 ) -> zx_status_t;
1082
1083 pub fn zx_vmar_protect(
1084 handle: zx_handle_t,
1085 options: zx_vm_option_t,
1086 addr: zx_vaddr_t,
1087 len: usize,
1088 ) -> zx_status_t;
1089
1090 pub fn zx_vmar_unmap(handle: zx_handle_t, addr: zx_vaddr_t, len: usize) -> zx_status_t;
1091
1092 pub fn zx_vmar_unmap_handle_close_thread_exit(
1093 vmar_handle: zx_handle_t,
1094 addr: zx_vaddr_t,
1095 size: usize,
1096 close_handle: zx_handle_t,
1097 ) -> zx_status_t;
1098
1099 pub fn zx_vmo_create(size: u64, options: u32, out: *mut zx_handle_t) -> zx_status_t;
1100
1101 pub fn zx_vmo_create_child(
1102 handle: zx_handle_t,
1103 options: u32,
1104 offset: u64,
1105 size: u64,
1106 out: *mut zx_handle_t,
1107 ) -> zx_status_t;
1108
1109 pub fn zx_vmo_create_contiguous(
1110 bti: zx_handle_t,
1111 size: usize,
1112 alignment_log2: u32,
1113 out: *mut zx_handle_t,
1114 ) -> zx_status_t;
1115
1116 pub fn zx_vmo_create_physical(
1117 resource: zx_handle_t,
1118 paddr: zx_paddr_t,
1119 size: usize,
1120 out: *mut zx_handle_t,
1121 ) -> zx_status_t;
1122
1123 pub fn zx_vmo_get_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1124
1125 pub fn zx_vmo_get_stream_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1126
1127 pub fn zx_vmo_op_range(
1128 handle: zx_handle_t,
1129 op: u32,
1130 offset: u64,
1131 size: u64,
1132 buffer: *mut u8,
1133 buffer_size: usize,
1134 ) -> zx_status_t;
1135
1136 pub fn zx_vmo_read(
1137 handle: zx_handle_t,
1138 buffer: *mut u8,
1139 offset: u64,
1140 buffer_size: usize,
1141 ) -> zx_status_t;
1142
1143 pub fn zx_vmo_replace_as_executable(
1144 handle: zx_handle_t,
1145 vmex: zx_handle_t,
1146 out: *mut zx_handle_t,
1147 ) -> zx_status_t;
1148
1149 pub fn zx_vmo_set_cache_policy(handle: zx_handle_t, cache_policy: u32) -> zx_status_t;
1150
1151 pub fn zx_vmo_set_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1152
1153 pub fn zx_vmo_set_stream_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1154
1155 pub fn zx_vmo_transfer_data(
1156 dst_vmo: zx_handle_t,
1157 options: u32,
1158 offset: u64,
1159 length: u64,
1160 src_vmo: zx_handle_t,
1161 src_offset: u64,
1162 ) -> zx_status_t;
1163
1164 pub fn zx_vmo_write(
1165 handle: zx_handle_t,
1166 buffer: *const u8,
1167 offset: u64,
1168 buffer_size: usize,
1169 ) -> zx_status_t;
1170
1171}