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