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_close(handle: zx_handle_t) -> zx_status_t;
262
263 pub fn zx_handle_close_many(handles: *const zx_handle_t, num_handles: usize) -> zx_status_t;
264
265 pub fn zx_handle_duplicate(
266 handle: zx_handle_t,
267 rights: zx_rights_t,
268 out: *mut zx_handle_t,
269 ) -> zx_status_t;
270
271 pub fn zx_handle_replace(
272 handle: zx_handle_t,
273 rights: zx_rights_t,
274 out: *mut zx_handle_t,
275 ) -> zx_status_t;
276
277 pub fn zx_interrupt_ack(handle: zx_handle_t) -> zx_status_t;
278
279 pub fn zx_interrupt_bind(
280 handle: zx_handle_t,
281 port_handle: zx_handle_t,
282 key: u64,
283 options: u32,
284 ) -> zx_status_t;
285
286 pub fn zx_interrupt_create(
287 src_obj: zx_handle_t,
288 src_num: u32,
289 options: u32,
290 out_handle: *mut zx_handle_t,
291 ) -> zx_status_t;
292
293 pub fn zx_interrupt_destroy(handle: zx_handle_t) -> zx_status_t;
294
295 pub fn zx_interrupt_trigger(
296 handle: zx_handle_t,
297 options: u32,
298 timestamp: zx_time_t,
299 ) -> zx_status_t;
300
301 pub fn zx_interrupt_wait(handle: zx_handle_t, out_timestamp: *mut zx_time_t) -> zx_status_t;
302
303 pub fn zx_iob_allocate_id(
304 handle: zx_handle_t,
305 options: zx_iob_allocate_id_options_t,
306 region_index: u32,
307 blob: *const u8,
308 blob_size: usize,
309 id: *mut u32,
310 ) -> zx_status_t;
311
312 pub fn zx_iob_create(
313 options: u64,
314 regions: *const u8,
315 num_regions: usize,
316 ep0_out: *mut zx_handle_t,
317 ep1_out: *mut zx_handle_t,
318 ) -> zx_status_t;
319
320 pub fn zx_iob_create_shared_region(
321 options: u64,
322 size: u64,
323 out: *mut zx_handle_t,
324 ) -> zx_status_t;
325
326 pub fn zx_iob_writev(
327 handle: zx_handle_t,
328 options: zx_iob_write_options_t,
329 region_index: u32,
330 vectors: *const zx_iovec_t,
331 num_vectors: usize,
332 ) -> zx_status_t;
333
334 pub fn zx_iommu_create(
335 resource: zx_handle_t,
336 r#type: u32,
337 desc: *const u8,
338 desc_size: usize,
339 out: *mut zx_handle_t,
340 ) -> zx_status_t;
341
342 pub fn zx_ioports_release(resource: zx_handle_t, io_addr: u16, len: u32) -> zx_status_t;
343
344 pub fn zx_ioports_request(resource: zx_handle_t, io_addr: u16, len: u32) -> zx_status_t;
345
346 pub fn zx_job_create(
347 parent_job: zx_handle_t,
348 options: u32,
349 out: *mut zx_handle_t,
350 ) -> zx_status_t;
351
352 pub fn zx_job_set_critical(job: zx_handle_t, options: u32, process: zx_handle_t)
353 -> zx_status_t;
354
355 pub fn zx_job_set_policy(
356 handle: zx_handle_t,
357 options: u32,
358 topic: u32,
359 policy: *const u8,
360 policy_size: u32,
361 ) -> zx_status_t;
362
363 pub fn zx_ktrace_control(
364 handle: zx_handle_t,
365 action: u32,
366 options: u32,
367 ptr: *mut u8,
368 ) -> zx_status_t;
369
370 pub fn zx_ktrace_read(
371 handle: zx_handle_t,
372 data: *mut u8,
373 offset: u32,
374 data_size: usize,
375 actual: *mut usize,
376 ) -> zx_status_t;
377
378 pub fn zx_msi_allocate(
379 handle: zx_handle_t,
380 count: u32,
381 out_allocation: *mut zx_handle_t,
382 ) -> zx_status_t;
383
384 pub fn zx_msi_create(
385 handle: zx_handle_t,
386 options: u32,
387 msi_id: u32,
388 vmo: zx_handle_t,
389 vmo_offset: usize,
390 out_interrupt: *mut zx_handle_t,
391 ) -> zx_status_t;
392
393 pub fn zx_mtrace_control(
394 handle: zx_handle_t,
395 kind: u32,
396 action: u32,
397 options: u32,
398 ptr: *mut u8,
399 ptr_size: usize,
400 ) -> zx_status_t;
401
402 pub fn zx_nanosleep(deadline: zx_instant_mono_t) -> zx_status_t;
403
404 pub fn zx_object_get_child(
405 handle: zx_handle_t,
406 koid: u64,
407 rights: zx_rights_t,
408 out: *mut zx_handle_t,
409 ) -> zx_status_t;
410
411 pub fn zx_object_get_info(
412 handle: zx_handle_t,
413 topic: u32,
414 buffer: *mut u8,
415 buffer_size: usize,
416 actual: *mut usize,
417 avail: *mut usize,
418 ) -> zx_status_t;
419
420 pub fn zx_object_get_property(
421 handle: zx_handle_t,
422 property: u32,
423 value: *mut u8,
424 value_size: usize,
425 ) -> zx_status_t;
426
427 pub fn zx_object_set_profile(
428 handle: zx_handle_t,
429 profile: zx_handle_t,
430 options: u32,
431 ) -> zx_status_t;
432
433 pub fn zx_object_set_property(
434 handle: zx_handle_t,
435 property: u32,
436 value: *const u8,
437 value_size: usize,
438 ) -> zx_status_t;
439
440 pub fn zx_object_signal(handle: zx_handle_t, clear_mask: u32, set_mask: u32) -> zx_status_t;
441
442 pub fn zx_object_signal_peer(
443 handle: zx_handle_t,
444 clear_mask: u32,
445 set_mask: u32,
446 ) -> zx_status_t;
447
448 pub fn zx_object_wait_async(
449 handle: zx_handle_t,
450 port: zx_handle_t,
451 key: u64,
452 signals: zx_signals_t,
453 options: u32,
454 ) -> zx_status_t;
455
456 pub fn zx_object_wait_many(
457 items: *mut zx_wait_item_t,
458 num_items: usize,
459 deadline: zx_instant_mono_t,
460 ) -> zx_status_t;
461
462 pub fn zx_object_wait_one(
463 handle: zx_handle_t,
464 signals: zx_signals_t,
465 deadline: zx_instant_mono_t,
466 observed: *mut zx_signals_t,
467 ) -> zx_status_t;
468
469 pub fn zx_pager_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
470
471 pub fn zx_pager_create_vmo(
472 pager: zx_handle_t,
473 options: u32,
474 port: zx_handle_t,
475 key: u64,
476 size: u64,
477 out: *mut zx_handle_t,
478 ) -> zx_status_t;
479
480 pub fn zx_pager_detach_vmo(pager: zx_handle_t, vmo: zx_handle_t) -> zx_status_t;
481
482 pub fn zx_pager_op_range(
483 pager: zx_handle_t,
484 op: u32,
485 pager_vmo: zx_handle_t,
486 offset: u64,
487 length: u64,
488 data: u64,
489 ) -> zx_status_t;
490
491 pub fn zx_pager_query_dirty_ranges(
492 pager: zx_handle_t,
493 pager_vmo: zx_handle_t,
494 offset: u64,
495 length: u64,
496 buffer: *mut u8,
497 buffer_size: usize,
498 actual: *mut usize,
499 avail: *mut usize,
500 ) -> zx_status_t;
501
502 pub fn zx_pager_query_vmo_stats(
503 pager: zx_handle_t,
504 pager_vmo: zx_handle_t,
505 options: u32,
506 buffer: *mut u8,
507 buffer_size: usize,
508 ) -> zx_status_t;
509
510 pub fn zx_pager_supply_pages(
511 pager: zx_handle_t,
512 pager_vmo: zx_handle_t,
513 offset: u64,
514 length: u64,
515 aux_vmo: zx_handle_t,
516 aux_offset: u64,
517 ) -> zx_status_t;
518
519 pub fn zx_pci_add_subtract_io_range(
520 handle: zx_handle_t,
521 mmio: u32,
522 base: u64,
523 len: u64,
524 add: u32,
525 ) -> zx_status_t;
526
527 pub fn zx_pci_cfg_pio_rw(
528 handle: zx_handle_t,
529 bus: u8,
530 dev: u8,
531 func: u8,
532 offset: u8,
533 val: *mut u32,
534 width: usize,
535 write: u32,
536 ) -> zx_status_t;
537
538 pub fn zx_pci_config_read(
539 handle: zx_handle_t,
540 offset: u16,
541 width: usize,
542 out_val: *mut u32,
543 ) -> zx_status_t;
544
545 pub fn zx_pci_config_write(
546 handle: zx_handle_t,
547 offset: u16,
548 width: usize,
549 val: u32,
550 ) -> zx_status_t;
551
552 pub fn zx_pci_enable_bus_master(handle: zx_handle_t, enable: u32) -> zx_status_t;
553
554 pub fn zx_pci_get_bar(
555 handle: zx_handle_t,
556 bar_num: u32,
557 out_bar: *mut zx_pci_bar_t,
558 out_handle: *mut zx_handle_t,
559 ) -> zx_status_t;
560
561 pub fn zx_pci_get_nth_device(
562 handle: zx_handle_t,
563 index: u32,
564 out_info: *mut zx_pcie_device_info_t,
565 out_handle: *mut zx_handle_t,
566 ) -> zx_status_t;
567
568 pub fn zx_pci_init(
569 handle: zx_handle_t,
570 init_buf: *const zx_pci_init_arg_t,
571 len: u32,
572 ) -> zx_status_t;
573
574 pub fn zx_pci_map_interrupt(
575 handle: zx_handle_t,
576 which_irq: i32,
577 out_handle: *mut zx_handle_t,
578 ) -> zx_status_t;
579
580 pub fn zx_pci_query_irq_mode(
581 handle: zx_handle_t,
582 mode: u32,
583 out_max_irqs: *mut u32,
584 ) -> zx_status_t;
585
586 pub fn zx_pci_reset_device(handle: zx_handle_t) -> zx_status_t;
587
588 pub fn zx_pci_set_irq_mode(
589 handle: zx_handle_t,
590 mode: u32,
591 requested_irq_count: u32,
592 ) -> zx_status_t;
593
594 pub fn zx_pmt_unpin(handle: zx_handle_t) -> zx_status_t;
595
596 pub fn zx_port_cancel(handle: zx_handle_t, source: zx_handle_t, key: u64) -> zx_status_t;
597
598 pub fn zx_port_cancel_key(handle: zx_handle_t, options: u32, key: u64) -> zx_status_t;
599
600 pub fn zx_port_create(options: u32, out: *mut zx_handle_t) -> zx_status_t;
601
602 pub fn zx_port_queue(handle: zx_handle_t, packet: *const zx_port_packet_t) -> zx_status_t;
603
604 pub fn zx_port_wait(
605 handle: zx_handle_t,
606 deadline: zx_instant_mono_t,
607 packet: *mut zx_port_packet_t,
608 ) -> zx_status_t;
609
610 pub fn zx_process_create(
611 job: zx_handle_t,
612 name: *const u8,
613 name_size: usize,
614 options: u32,
615 proc_handle: *mut zx_handle_t,
616 vmar_handle: *mut zx_handle_t,
617 ) -> zx_status_t;
618
619 pub fn zx_process_create_shared(
620 shared_proc: zx_handle_t,
621 options: u32,
622 name: *const u8,
623 name_size: usize,
624 proc_handle: *mut zx_handle_t,
625 restricted_vmar_handle: *mut zx_handle_t,
626 ) -> zx_status_t;
627
628 pub fn zx_process_exit(retcode: i64);
629
630 pub fn zx_process_read_memory(
631 handle: zx_handle_t,
632 vaddr: zx_vaddr_t,
633 buffer: *mut u8,
634 buffer_size: usize,
635 actual: *mut usize,
636 ) -> zx_status_t;
637
638 pub fn zx_process_start(
639 handle: zx_handle_t,
640 thread: zx_handle_t,
641 entry: zx_vaddr_t,
642 stack: zx_vaddr_t,
643 arg1: zx_handle_t,
644 arg2: usize,
645 ) -> zx_status_t;
646
647 pub fn zx_process_write_memory(
648 handle: zx_handle_t,
649 vaddr: zx_vaddr_t,
650 buffer: *const u8,
651 buffer_size: usize,
652 actual: *mut usize,
653 ) -> zx_status_t;
654
655 pub fn zx_profile_create(
656 profile_rsrc: zx_handle_t,
657 options: u32,
658 profile: *const zx_profile_info_t,
659 out: *mut zx_handle_t,
660 ) -> zx_status_t;
661
662 pub fn zx_resource_create(
663 parent_rsrc: zx_handle_t,
664 options: u32,
665 base: u64,
666 size: usize,
667 name: *const u8,
668 name_size: usize,
669 resource_out: *mut zx_handle_t,
670 ) -> zx_status_t;
671
672 pub fn zx_restricted_bind_state(options: u32, out: *mut zx_handle_t) -> zx_status_t;
673
674 pub fn zx_restricted_enter(
675 options: u32,
676 vector_table_ptr: usize,
677 context: usize,
678 ) -> zx_status_t;
679
680 pub fn zx_restricted_kick(thread: zx_handle_t, options: u32) -> zx_status_t;
681
682 pub fn zx_restricted_unbind_state(options: u32) -> zx_status_t;
683
684 pub fn zx_sampler_attach(iobuffer: zx_handle_t, thread: zx_handle_t) -> 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_start(iobuffer: zx_handle_t) -> zx_status_t;
694
695 pub fn zx_sampler_stop(iobuffer: zx_handle_t) -> zx_status_t;
696
697 pub fn zx_smc_call(
698 handle: zx_handle_t,
699 parameters: *const zx_smc_parameters_t,
700 out_smc_result: *mut zx_smc_result_t,
701 ) -> zx_status_t;
702
703 pub fn zx_socket_create(
704 options: u32,
705 out0: *mut zx_handle_t,
706 out1: *mut zx_handle_t,
707 ) -> zx_status_t;
708
709 pub fn zx_socket_read(
710 handle: zx_handle_t,
711 options: u32,
712 buffer: *mut u8,
713 buffer_size: usize,
714 actual: *mut usize,
715 ) -> zx_status_t;
716
717 pub fn zx_socket_set_disposition(
718 handle: zx_handle_t,
719 disposition: u32,
720 disposition_peer: u32,
721 ) -> zx_status_t;
722
723 pub fn zx_socket_write(
724 handle: zx_handle_t,
725 options: u32,
726 buffer: *const u8,
727 buffer_size: usize,
728 actual: *mut usize,
729 ) -> zx_status_t;
730
731 pub fn zx_stream_create(
732 options: u32,
733 vmo: zx_handle_t,
734 seek: zx_off_t,
735 out_stream: *mut zx_handle_t,
736 ) -> zx_status_t;
737
738 pub fn zx_stream_readv(
739 handle: zx_handle_t,
740 options: u32,
741 vectors: *mut zx_iovec_t,
742 num_vectors: usize,
743 actual: *mut usize,
744 ) -> zx_status_t;
745
746 pub fn zx_stream_readv_at(
747 handle: zx_handle_t,
748 options: u32,
749 offset: zx_off_t,
750 vectors: *mut zx_iovec_t,
751 num_vectors: usize,
752 actual: *mut usize,
753 ) -> zx_status_t;
754
755 pub fn zx_stream_seek(
756 handle: zx_handle_t,
757 whence: zx_stream_seek_origin_t,
758 offset: i64,
759 out_seek: *mut zx_off_t,
760 ) -> zx_status_t;
761
762 pub fn zx_stream_writev(
763 handle: zx_handle_t,
764 options: u32,
765 vectors: *const zx_iovec_t,
766 num_vectors: usize,
767 actual: *mut usize,
768 ) -> zx_status_t;
769
770 pub fn zx_stream_writev_at(
771 handle: zx_handle_t,
772 options: u32,
773 offset: zx_off_t,
774 vectors: *const zx_iovec_t,
775 num_vectors: usize,
776 actual: *mut usize,
777 ) -> zx_status_t;
778
779 pub fn zx_syscall_next_1(arg: i32) -> zx_status_t;
780
781 pub fn zx_syscall_test_handle_create(
782 return_value: zx_status_t,
783 out: *mut zx_handle_t,
784 ) -> zx_status_t;
785
786 pub fn zx_syscall_test_widening_signed_narrow(a: i64, b: i32, c: i16, d: i8) -> i64;
787
788 pub fn zx_syscall_test_widening_signed_wide(a: i64, b: i32, c: i16, d: i8) -> i64;
789
790 pub fn zx_syscall_test_widening_unsigned_narrow(a: u64, b: u32, c: u16, d: u8) -> u64;
791
792 pub fn zx_syscall_test_widening_unsigned_wide(a: u64, b: u32, c: u16, d: u8) -> u64;
793
794 pub fn zx_syscall_test_wrapper(a: i32, b: i32, c: i32) -> zx_status_t;
795
796 pub fn zx_syscall_test_0() -> zx_status_t;
797
798 pub fn zx_syscall_test_1(a: i32) -> zx_status_t;
799
800 pub fn zx_syscall_test_2(a: i32, b: i32) -> zx_status_t;
801
802 pub fn zx_syscall_test_3(a: i32, b: i32, c: i32) -> zx_status_t;
803
804 pub fn zx_syscall_test_4(a: i32, b: i32, c: i32, d: i32) -> zx_status_t;
805
806 pub fn zx_syscall_test_5(a: i32, b: i32, c: i32, d: i32, e: i32) -> zx_status_t;
807
808 pub fn zx_syscall_test_6(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) -> zx_status_t;
809
810 pub fn zx_syscall_test_7(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32, g: i32)
811 -> zx_status_t;
812
813 pub fn zx_syscall_test_8(
814 a: i32,
815 b: i32,
816 c: i32,
817 d: i32,
818 e: i32,
819 f: i32,
820 g: i32,
821 h: i32,
822 ) -> zx_status_t;
823
824 pub fn zx_system_get_dcache_line_size() -> u32;
825
826 pub fn zx_system_get_event(
827 root_job: zx_handle_t,
828 kind: u32,
829 event: *mut zx_handle_t,
830 ) -> zx_status_t;
831
832 pub fn zx_system_get_features(kind: u32, features: *mut u32) -> zx_status_t;
833
834 pub fn zx_system_get_num_cpus() -> u32;
835
836 pub fn zx_system_get_page_size() -> u32;
837
838 pub fn zx_system_get_performance_info(
839 resource: zx_handle_t,
840 topic: u32,
841 count: usize,
842 info: *mut u8,
843 output_count: *mut usize,
844 ) -> zx_status_t;
845
846 pub fn zx_system_get_physmem() -> u64;
847
848 pub fn zx_system_get_version_string() -> zx_string_view_t;
849
850 pub fn zx_system_mexec(
851 resource: zx_handle_t,
852 kernel_vmo: zx_handle_t,
853 bootimage_vmo: zx_handle_t,
854 ) -> zx_status_t;
855
856 pub fn zx_system_mexec_payload_get(
857 resource: zx_handle_t,
858 buffer: *mut u8,
859 buffer_size: usize,
860 ) -> zx_status_t;
861
862 pub fn zx_system_powerctl(
863 resource: zx_handle_t,
864 cmd: u32,
865 arg: *const zx_system_powerctl_arg_t,
866 ) -> zx_status_t;
867
868 pub fn zx_system_set_performance_info(
869 resource: zx_handle_t,
870 topic: u32,
871 info: *const u8,
872 count: usize,
873 ) -> zx_status_t;
874
875 pub fn zx_system_set_processor_power_domain(
876 resource: zx_handle_t,
877 options: u64,
878 domain: *const zx_processor_power_domain_t,
879 port: zx_handle_t,
880 power_levels: *const zx_processor_power_level_t,
881 num_power_levels: usize,
882 transitions: *const zx_processor_power_level_transition_t,
883 num_transitions: usize,
884 ) -> zx_status_t;
885
886 pub fn zx_system_set_processor_power_state(
887 port: zx_handle_t,
888 power_state: *const zx_processor_power_state_t,
889 ) -> zx_status_t;
890
891 pub fn zx_system_suspend_enter(
892 resource: zx_handle_t,
893 resume_deadline: zx_instant_boot_t,
894 ) -> zx_status_t;
895
896 pub fn zx_system_watch_memory_stall(
897 resource: zx_handle_t,
898 kind: u32,
899 threshold: zx_duration_t,
900 window: zx_duration_t,
901 event: *mut zx_handle_t,
902 ) -> zx_status_t;
903
904 pub fn zx_task_create_exception_channel(
905 handle: zx_handle_t,
906 options: u32,
907 out: *mut zx_handle_t,
908 ) -> zx_status_t;
909
910 pub fn zx_task_kill(handle: zx_handle_t) -> zx_status_t;
911
912 pub fn zx_task_suspend(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
913
914 pub fn zx_task_suspend_token(handle: zx_handle_t, token: *mut zx_handle_t) -> zx_status_t;
915
916 pub fn zx_thread_create(
917 process: zx_handle_t,
918 name: *const u8,
919 name_size: usize,
920 options: u32,
921 out: *mut zx_handle_t,
922 ) -> zx_status_t;
923
924 pub fn zx_thread_exit();
925
926 pub fn zx_thread_legacy_yield(options: u32) -> zx_status_t;
927
928 pub fn zx_thread_raise_exception(
929 options: u32,
930 r#type: u32,
931 context: *const zx_exception_context_t,
932 ) -> zx_status_t;
933
934 pub fn zx_thread_read_state(
935 handle: zx_handle_t,
936 kind: u32,
937 buffer: *mut u8,
938 buffer_size: usize,
939 ) -> zx_status_t;
940
941 pub fn zx_thread_start(
942 handle: zx_handle_t,
943 thread_entry: zx_vaddr_t,
944 stack: zx_vaddr_t,
945 arg1: usize,
946 arg2: usize,
947 ) -> zx_status_t;
948
949 pub fn zx_thread_write_state(
950 handle: zx_handle_t,
951 kind: u32,
952 buffer: *const u8,
953 buffer_size: usize,
954 ) -> zx_status_t;
955
956 pub fn zx_ticks_get() -> zx_instant_mono_ticks_t;
957
958 pub fn zx_ticks_get_boot() -> zx_instant_boot_ticks_t;
959
960 pub fn zx_ticks_per_second() -> zx_ticks_t;
961
962 pub fn zx_timer_cancel(handle: zx_handle_t) -> zx_status_t;
963
964 pub fn zx_timer_create(
965 options: u32,
966 clock_id: zx_clock_t,
967 out: *mut zx_handle_t,
968 ) -> zx_status_t;
969
970 pub fn zx_timer_set(
971 handle: zx_handle_t,
972 deadline: zx_time_t,
973 slack: zx_duration_t,
974 ) -> zx_status_t;
975
976 pub fn zx_vcpu_create(
977 guest: zx_handle_t,
978 options: u32,
979 entry: zx_vaddr_t,
980 out: *mut zx_handle_t,
981 ) -> zx_status_t;
982
983 pub fn zx_vcpu_enter(handle: zx_handle_t, packet: *mut zx_port_packet_t) -> zx_status_t;
984
985 pub fn zx_vcpu_interrupt(handle: zx_handle_t, vector: u32) -> zx_status_t;
986
987 pub fn zx_vcpu_kick(handle: zx_handle_t) -> zx_status_t;
988
989 pub fn zx_vcpu_read_state(
990 handle: zx_handle_t,
991 kind: u32,
992 buffer: *mut u8,
993 buffer_size: usize,
994 ) -> zx_status_t;
995
996 pub fn zx_vcpu_write_state(
997 handle: zx_handle_t,
998 kind: u32,
999 buffer: *const u8,
1000 buffer_size: usize,
1001 ) -> zx_status_t;
1002
1003 pub fn zx_vmar_allocate(
1004 parent_vmar: zx_handle_t,
1005 options: zx_vm_option_t,
1006 offset: usize,
1007 size: usize,
1008 child_vmar: *mut zx_handle_t,
1009 child_addr: *mut zx_vaddr_t,
1010 ) -> zx_status_t;
1011
1012 pub fn zx_vmar_destroy(handle: zx_handle_t) -> zx_status_t;
1013
1014 pub fn zx_vmar_map(
1015 handle: zx_handle_t,
1016 options: zx_vm_option_t,
1017 vmar_offset: usize,
1018 vmo: zx_handle_t,
1019 vmo_offset: u64,
1020 len: usize,
1021 mapped_addr: *mut zx_vaddr_t,
1022 ) -> zx_status_t;
1023
1024 pub fn zx_vmar_map_clock(
1025 handle: zx_handle_t,
1026 options: zx_vm_option_t,
1027 vmar_offset: usize,
1028 clock: zx_handle_t,
1029 len: usize,
1030 mapped_addr: *mut zx_vaddr_t,
1031 ) -> zx_status_t;
1032
1033 pub fn zx_vmar_map_iob(
1034 handle: zx_handle_t,
1035 options: zx_vm_option_t,
1036 vmar_offset: usize,
1037 ep: zx_handle_t,
1038 region_index: u32,
1039 region_offset: u64,
1040 region_length: usize,
1041 mapped_addr: *mut zx_vaddr_t,
1042 ) -> zx_status_t;
1043
1044 pub fn zx_vmar_op_range(
1045 handle: zx_handle_t,
1046 op: u32,
1047 address: zx_vaddr_t,
1048 size: usize,
1049 buffer: *mut u8,
1050 buffer_size: usize,
1051 ) -> zx_status_t;
1052
1053 pub fn zx_vmar_protect(
1054 handle: zx_handle_t,
1055 options: zx_vm_option_t,
1056 addr: zx_vaddr_t,
1057 len: usize,
1058 ) -> zx_status_t;
1059
1060 pub fn zx_vmar_unmap(handle: zx_handle_t, addr: zx_vaddr_t, len: usize) -> zx_status_t;
1061
1062 pub fn zx_vmar_unmap_handle_close_thread_exit(
1063 vmar_handle: zx_handle_t,
1064 addr: zx_vaddr_t,
1065 size: usize,
1066 close_handle: zx_handle_t,
1067 ) -> zx_status_t;
1068
1069 pub fn zx_vmo_create(size: u64, options: u32, out: *mut zx_handle_t) -> zx_status_t;
1070
1071 pub fn zx_vmo_create_child(
1072 handle: zx_handle_t,
1073 options: u32,
1074 offset: u64,
1075 size: u64,
1076 out: *mut zx_handle_t,
1077 ) -> zx_status_t;
1078
1079 pub fn zx_vmo_create_contiguous(
1080 bti: zx_handle_t,
1081 size: usize,
1082 alignment_log2: u32,
1083 out: *mut zx_handle_t,
1084 ) -> zx_status_t;
1085
1086 pub fn zx_vmo_create_physical(
1087 resource: zx_handle_t,
1088 paddr: zx_paddr_t,
1089 size: usize,
1090 out: *mut zx_handle_t,
1091 ) -> zx_status_t;
1092
1093 pub fn zx_vmo_get_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1094
1095 pub fn zx_vmo_get_stream_size(handle: zx_handle_t, size: *mut u64) -> zx_status_t;
1096
1097 pub fn zx_vmo_op_range(
1098 handle: zx_handle_t,
1099 op: u32,
1100 offset: u64,
1101 size: u64,
1102 buffer: *mut u8,
1103 buffer_size: usize,
1104 ) -> zx_status_t;
1105
1106 pub fn zx_vmo_read(
1107 handle: zx_handle_t,
1108 buffer: *mut u8,
1109 offset: u64,
1110 buffer_size: usize,
1111 ) -> zx_status_t;
1112
1113 pub fn zx_vmo_replace_as_executable(
1114 handle: zx_handle_t,
1115 vmex: zx_handle_t,
1116 out: *mut zx_handle_t,
1117 ) -> zx_status_t;
1118
1119 pub fn zx_vmo_set_cache_policy(handle: zx_handle_t, cache_policy: u32) -> zx_status_t;
1120
1121 pub fn zx_vmo_set_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1122
1123 pub fn zx_vmo_set_stream_size(handle: zx_handle_t, size: u64) -> zx_status_t;
1124
1125 pub fn zx_vmo_transfer_data(
1126 dst_vmo: zx_handle_t,
1127 options: u32,
1128 offset: u64,
1129 length: u64,
1130 src_vmo: zx_handle_t,
1131 src_offset: u64,
1132 ) -> zx_status_t;
1133
1134 pub fn zx_vmo_write(
1135 handle: zx_handle_t,
1136 buffer: *const u8,
1137 offset: u64,
1138 buffer_size: usize,
1139 ) -> zx_status_t;
1140
1141}