1#ifndef _vm_map_user_
2#define _vm_map_user_
3
4/* Module vm_map */
5
6#include <string.h>
7#include <mach/ndr.h>
8#include <mach/boolean.h>
9#include <mach/kern_return.h>
10#include <mach/notify.h>
11#include <mach/mach_types.h>
12#include <mach/message.h>
13#include <mach/mig_errors.h>
14#include <mach/port.h>
15
16/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
17
18#if defined(__has_include)
19#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
20#ifndef USING_MIG_STRNCPY_ZEROFILL
21#define USING_MIG_STRNCPY_ZEROFILL
22#endif
23#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
24#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
25#ifdef __cplusplus
26extern "C" {
27#endif
28#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_ATTR
29#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS_CSTRING_COUNTEDBY_ATTR(C) __unsafe_indexable
30#endif
31 extern int mig_strncpy_zerofill(char * dest, const char * src, int len) __attribute__((weak_import));
32#ifdef __cplusplus
33}
34#endif
35#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
36#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
37#endif /* __has_include */
38
39/* END MIG_STRNCPY_ZEROFILL CODE */
40
41
42#ifdef AUTOTEST
43#ifndef FUNCTION_PTR_T
44#define FUNCTION_PTR_T
45typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
46typedef struct {
47 char * name;
48 function_ptr_t function;
49} function_table_entry;
50typedef function_table_entry *function_table_t;
51#endif /* FUNCTION_PTR_T */
52#endif /* AUTOTEST */
53
54#ifndef vm_map_MSG_COUNT
55#define vm_map_MSG_COUNT 34
56#endif /* vm_map_MSG_COUNT */
57
58#include <Availability.h>
59#include <mach/std_types.h>
60#include <mach/mig.h>
61#include <mach/mig.h>
62#include <mach/mach_types.h>
63#include <mach_debug/mach_debug_types.h>
64
65#ifdef __BeforeMigUserHeader
66__BeforeMigUserHeader
67#endif /* __BeforeMigUserHeader */
68
69#include <sys/cdefs.h>
70__BEGIN_DECLS
71
72
73/* Routine vm_region */
74#ifdef mig_external
75mig_external
76#else
77extern
78#endif /* mig_external */
79kern_return_t vm_region
80(
81 vm_map_read_t target_task,
82 vm_address_t *address,
83 vm_size_t *size,
84 vm_region_flavor_t flavor,
85 vm_region_info_t info,
86 mach_msg_type_number_t *infoCnt,
87 mach_port_t *object_name
88);
89
90/* Routine vm_allocate */
91#ifdef mig_external
92mig_external
93#else
94extern
95#endif /* mig_external */
96kern_return_t vm_allocate
97(
98 vm_map_t target_task,
99 vm_address_t *address,
100 vm_size_t size,
101 int flags
102);
103
104/* Routine vm_deallocate */
105#ifdef mig_external
106mig_external
107#else
108extern
109#endif /* mig_external */
110kern_return_t vm_deallocate
111(
112 vm_map_t target_task,
113 vm_address_t address,
114 vm_size_t size
115);
116
117/* Routine vm_protect */
118#ifdef mig_external
119mig_external
120#else
121extern
122#endif /* mig_external */
123kern_return_t vm_protect
124(
125 vm_map_t target_task,
126 vm_address_t address,
127 vm_size_t size,
128 boolean_t set_maximum,
129 vm_prot_t new_protection
130);
131
132/* Routine vm_inherit */
133#ifdef mig_external
134mig_external
135#else
136extern
137#endif /* mig_external */
138kern_return_t vm_inherit
139(
140 vm_map_t target_task,
141 vm_address_t address,
142 vm_size_t size,
143 vm_inherit_t new_inheritance
144);
145
146/* Routine vm_read */
147#ifdef mig_external
148mig_external
149#else
150extern
151#endif /* mig_external */
152kern_return_t vm_read
153(
154 vm_map_read_t target_task,
155 vm_address_t address,
156 vm_size_t size,
157 vm_offset_t *data,
158 mach_msg_type_number_t *dataCnt
159);
160
161/* Routine vm_read_list */
162#ifdef mig_external
163mig_external
164#else
165extern
166#endif /* mig_external */
167kern_return_t vm_read_list
168(
169 vm_map_read_t target_task,
170 vm_read_entry_t data_list,
171 natural_t count
172);
173
174/* Routine vm_write */
175#ifdef mig_external
176mig_external
177#else
178extern
179#endif /* mig_external */
180kern_return_t vm_write
181(
182 vm_map_t target_task,
183 vm_address_t address,
184 vm_offset_t data,
185 mach_msg_type_number_t dataCnt
186);
187
188/* Routine vm_copy */
189#ifdef mig_external
190mig_external
191#else
192extern
193#endif /* mig_external */
194kern_return_t vm_copy
195(
196 vm_map_t target_task,
197 vm_address_t source_address,
198 vm_size_t size,
199 vm_address_t dest_address
200);
201
202/* Routine vm_read_overwrite */
203#ifdef mig_external
204mig_external
205#else
206extern
207#endif /* mig_external */
208kern_return_t vm_read_overwrite
209(
210 vm_map_read_t target_task,
211 vm_address_t address,
212 vm_size_t size,
213 vm_address_t data,
214 vm_size_t *outsize
215);
216
217/* Routine vm_msync */
218#ifdef mig_external
219mig_external
220#else
221extern
222#endif /* mig_external */
223kern_return_t vm_msync
224(
225 vm_map_t target_task,
226 vm_address_t address,
227 vm_size_t size,
228 vm_sync_t sync_flags
229);
230
231/* Routine vm_behavior_set */
232#ifdef mig_external
233mig_external
234#else
235extern
236#endif /* mig_external */
237kern_return_t vm_behavior_set
238(
239 vm_map_t target_task,
240 vm_address_t address,
241 vm_size_t size,
242 vm_behavior_t new_behavior
243);
244
245/* Routine vm_map */
246#ifdef mig_external
247mig_external
248#else
249extern
250#endif /* mig_external */
251kern_return_t vm_map
252(
253 vm_map_t target_task,
254 vm_address_t *address,
255 vm_size_t size,
256 vm_address_t mask,
257 int flags,
258 mem_entry_name_port_t object,
259 vm_offset_t offset,
260 boolean_t copy,
261 vm_prot_t cur_protection,
262 vm_prot_t max_protection,
263 vm_inherit_t inheritance
264);
265
266/* Routine vm_machine_attribute */
267#ifdef mig_external
268mig_external
269#else
270extern
271#endif /* mig_external */
272kern_return_t vm_machine_attribute
273(
274 vm_map_t target_task,
275 vm_address_t address,
276 vm_size_t size,
277 vm_machine_attribute_t attribute,
278 vm_machine_attribute_val_t *value
279);
280
281/* Routine vm_remap */
282#ifdef mig_external
283mig_external
284#else
285extern
286#endif /* mig_external */
287kern_return_t vm_remap
288(
289 vm_map_t target_task,
290 vm_address_t *target_address,
291 vm_size_t size,
292 vm_address_t mask,
293 int flags,
294 vm_map_t src_task,
295 vm_address_t src_address,
296 boolean_t copy,
297 vm_prot_t *cur_protection,
298 vm_prot_t *max_protection,
299 vm_inherit_t inheritance
300);
301
302/* Routine task_wire */
303#ifdef mig_external
304mig_external
305#else
306extern
307#endif /* mig_external */
308__TVOS_PROHIBITED __WATCHOS_PROHIBITED
309kern_return_t task_wire
310(
311 vm_map_t target_task,
312 boolean_t must_wire
313);
314
315/* Routine mach_make_memory_entry */
316#ifdef mig_external
317mig_external
318#else
319extern
320#endif /* mig_external */
321kern_return_t mach_make_memory_entry
322(
323 vm_map_t target_task,
324 vm_size_t *size,
325 vm_offset_t offset,
326 vm_prot_t permission,
327 mem_entry_name_port_t *object_handle,
328 mem_entry_name_port_t parent_entry
329);
330
331/* Routine vm_map_page_query */
332#ifdef mig_external
333mig_external
334#else
335extern
336#endif /* mig_external */
337kern_return_t vm_map_page_query
338(
339 vm_map_read_t target_map,
340 vm_offset_t offset,
341 integer_t *disposition,
342 integer_t *ref_count
343);
344
345/* Routine mach_vm_region_info */
346#ifdef mig_external
347mig_external
348#else
349extern
350#endif /* mig_external */
351kern_return_t mach_vm_region_info
352(
353 vm_map_read_t task,
354 vm_address_t address,
355 vm_info_region_t *region,
356 vm_info_object_array_t *objects,
357 mach_msg_type_number_t *objectsCnt
358);
359
360/* Routine vm_mapped_pages_info */
361#ifdef mig_external
362mig_external
363#else
364extern
365#endif /* mig_external */
366kern_return_t vm_mapped_pages_info
367(
368 vm_map_read_t task,
369 page_address_array_t *pages,
370 mach_msg_type_number_t *pagesCnt
371);
372
373/* Routine vm_region_recurse */
374#ifdef mig_external
375mig_external
376#else
377extern
378#endif /* mig_external */
379kern_return_t vm_region_recurse
380(
381 vm_map_read_t target_task,
382 vm_address_t *address,
383 vm_size_t *size,
384 natural_t *nesting_depth,
385 vm_region_recurse_info_t info,
386 mach_msg_type_number_t *infoCnt
387);
388
389/* Routine vm_region_recurse_64 */
390#ifdef mig_external
391mig_external
392#else
393extern
394#endif /* mig_external */
395kern_return_t vm_region_recurse_64
396(
397 vm_map_read_t target_task,
398 vm_address_t *address,
399 vm_size_t *size,
400 natural_t *nesting_depth,
401 vm_region_recurse_info_t info,
402 mach_msg_type_number_t *infoCnt
403);
404
405/* Routine mach_vm_region_info_64 */
406#ifdef mig_external
407mig_external
408#else
409extern
410#endif /* mig_external */
411kern_return_t mach_vm_region_info_64
412(
413 vm_map_read_t task,
414 vm_address_t address,
415 vm_info_region_64_t *region,
416 vm_info_object_array_t *objects,
417 mach_msg_type_number_t *objectsCnt
418);
419
420/* Routine vm_region_64 */
421#ifdef mig_external
422mig_external
423#else
424extern
425#endif /* mig_external */
426kern_return_t vm_region_64
427(
428 vm_map_read_t target_task,
429 vm_address_t *address,
430 vm_size_t *size,
431 vm_region_flavor_t flavor,
432 vm_region_info_t info,
433 mach_msg_type_number_t *infoCnt,
434 mach_port_t *object_name
435);
436
437/* Routine mach_make_memory_entry_64 */
438#ifdef mig_external
439mig_external
440#else
441extern
442#endif /* mig_external */
443kern_return_t mach_make_memory_entry_64
444(
445 vm_map_t target_task,
446 memory_object_size_t *size,
447 memory_object_offset_t offset,
448 vm_prot_t permission,
449 mach_port_t *object_handle,
450 mem_entry_name_port_t parent_entry
451);
452
453/* Routine vm_map_64 */
454#ifdef mig_external
455mig_external
456#else
457extern
458#endif /* mig_external */
459kern_return_t vm_map_64
460(
461 vm_map_t target_task,
462 vm_address_t *address,
463 vm_size_t size,
464 vm_address_t mask,
465 int flags,
466 mem_entry_name_port_t object,
467 memory_object_offset_t offset,
468 boolean_t copy,
469 vm_prot_t cur_protection,
470 vm_prot_t max_protection,
471 vm_inherit_t inheritance
472);
473
474/* Routine vm_purgable_control */
475#ifdef mig_external
476mig_external
477#else
478extern
479#endif /* mig_external */
480kern_return_t vm_purgable_control
481(
482 vm_map_t target_task,
483 vm_address_t address,
484 vm_purgable_t control,
485 int *state
486);
487
488/* Routine vm_map_exec_lockdown */
489#ifdef mig_external
490mig_external
491#else
492extern
493#endif /* mig_external */
494kern_return_t vm_map_exec_lockdown
495(
496 vm_map_t target_task
497);
498
499/* Routine vm_remap_new */
500#ifdef mig_external
501mig_external
502#else
503extern
504#endif /* mig_external */
505kern_return_t vm_remap_new
506(
507 vm_map_t target_task,
508 vm_address_t *target_address,
509 vm_size_t size,
510 vm_address_t mask,
511 int flags,
512 vm_map_read_t src_task,
513 vm_address_t src_address,
514 boolean_t copy,
515 vm_prot_t *cur_protection,
516 vm_prot_t *max_protection,
517 vm_inherit_t inheritance
518);
519
520/* Routine vm_reallocate */
521#ifdef mig_external
522mig_external
523#else
524extern
525#endif /* mig_external */
526kern_return_t vm_reallocate
527(
528 vm_map_t target_task,
529 vm_address_t src,
530 vm_size_t src_size,
531 vm_address_t *dst,
532 vm_size_t dst_size,
533 vm_offset_t align_mask,
534 int options,
535 int flags
536);
537
538__END_DECLS
539
540/********************** Caution **************************/
541/* The following data types should be used to calculate */
542/* maximum message sizes only. The actual message may be */
543/* smaller, and the position of the arguments within the */
544/* message layout may vary from what is presented here. */
545/* For example, if any of the arguments are variable- */
546/* sized, and less than the maximum is sent, the data */
547/* will be packed tight in the actual message to reduce */
548/* the presence of holes. */
549/********************** Caution **************************/
550
551/* typedefs for all requests */
552
553#ifndef __Request__vm_map_subsystem__defined
554#define __Request__vm_map_subsystem__defined
555
556#ifdef __MigPackStructs
557#pragma pack(push, 4)
558#endif
559 typedef struct {
560 mach_msg_header_t Head;
561 NDR_record_t NDR;
562 vm_address_t address;
563 vm_region_flavor_t flavor;
564 mach_msg_type_number_t infoCnt;
565 } __Request__vm_region_t __attribute__((unused));
566#ifdef __MigPackStructs
567#pragma pack(pop)
568#endif
569
570#ifdef __MigPackStructs
571#pragma pack(push, 4)
572#endif
573 typedef struct {
574 mach_msg_header_t Head;
575 NDR_record_t NDR;
576 vm_address_t address;
577 vm_size_t size;
578 int flags;
579 } __Request__vm_allocate_t __attribute__((unused));
580#ifdef __MigPackStructs
581#pragma pack(pop)
582#endif
583
584#ifdef __MigPackStructs
585#pragma pack(push, 4)
586#endif
587 typedef struct {
588 mach_msg_header_t Head;
589 NDR_record_t NDR;
590 vm_address_t address;
591 vm_size_t size;
592 } __Request__vm_deallocate_t __attribute__((unused));
593#ifdef __MigPackStructs
594#pragma pack(pop)
595#endif
596
597#ifdef __MigPackStructs
598#pragma pack(push, 4)
599#endif
600 typedef struct {
601 mach_msg_header_t Head;
602 NDR_record_t NDR;
603 vm_address_t address;
604 vm_size_t size;
605 boolean_t set_maximum;
606 vm_prot_t new_protection;
607 } __Request__vm_protect_t __attribute__((unused));
608#ifdef __MigPackStructs
609#pragma pack(pop)
610#endif
611
612#ifdef __MigPackStructs
613#pragma pack(push, 4)
614#endif
615 typedef struct {
616 mach_msg_header_t Head;
617 NDR_record_t NDR;
618 vm_address_t address;
619 vm_size_t size;
620 vm_inherit_t new_inheritance;
621 } __Request__vm_inherit_t __attribute__((unused));
622#ifdef __MigPackStructs
623#pragma pack(pop)
624#endif
625
626#ifdef __MigPackStructs
627#pragma pack(push, 4)
628#endif
629 typedef struct {
630 mach_msg_header_t Head;
631 NDR_record_t NDR;
632 vm_address_t address;
633 vm_size_t size;
634 } __Request__vm_read_t __attribute__((unused));
635#ifdef __MigPackStructs
636#pragma pack(pop)
637#endif
638
639#ifdef __MigPackStructs
640#pragma pack(push, 4)
641#endif
642 typedef struct {
643 mach_msg_header_t Head;
644 NDR_record_t NDR;
645 vm_read_entry_t data_list;
646 natural_t count;
647 } __Request__vm_read_list_t __attribute__((unused));
648#ifdef __MigPackStructs
649#pragma pack(pop)
650#endif
651
652#ifdef __MigPackStructs
653#pragma pack(push, 4)
654#endif
655 typedef struct {
656 mach_msg_header_t Head;
657 /* start of the kernel processed data */
658 mach_msg_body_t msgh_body;
659 mach_msg_ool_descriptor_t data;
660 /* end of the kernel processed data */
661 NDR_record_t NDR;
662 vm_address_t address;
663 mach_msg_type_number_t dataCnt;
664 } __Request__vm_write_t __attribute__((unused));
665#ifdef __MigPackStructs
666#pragma pack(pop)
667#endif
668
669#ifdef __MigPackStructs
670#pragma pack(push, 4)
671#endif
672 typedef struct {
673 mach_msg_header_t Head;
674 NDR_record_t NDR;
675 vm_address_t source_address;
676 vm_size_t size;
677 vm_address_t dest_address;
678 } __Request__vm_copy_t __attribute__((unused));
679#ifdef __MigPackStructs
680#pragma pack(pop)
681#endif
682
683#ifdef __MigPackStructs
684#pragma pack(push, 4)
685#endif
686 typedef struct {
687 mach_msg_header_t Head;
688 NDR_record_t NDR;
689 vm_address_t address;
690 vm_size_t size;
691 vm_address_t data;
692 } __Request__vm_read_overwrite_t __attribute__((unused));
693#ifdef __MigPackStructs
694#pragma pack(pop)
695#endif
696
697#ifdef __MigPackStructs
698#pragma pack(push, 4)
699#endif
700 typedef struct {
701 mach_msg_header_t Head;
702 NDR_record_t NDR;
703 vm_address_t address;
704 vm_size_t size;
705 vm_sync_t sync_flags;
706 } __Request__vm_msync_t __attribute__((unused));
707#ifdef __MigPackStructs
708#pragma pack(pop)
709#endif
710
711#ifdef __MigPackStructs
712#pragma pack(push, 4)
713#endif
714 typedef struct {
715 mach_msg_header_t Head;
716 NDR_record_t NDR;
717 vm_address_t address;
718 vm_size_t size;
719 vm_behavior_t new_behavior;
720 } __Request__vm_behavior_set_t __attribute__((unused));
721#ifdef __MigPackStructs
722#pragma pack(pop)
723#endif
724
725#ifdef __MigPackStructs
726#pragma pack(push, 4)
727#endif
728 typedef struct {
729 mach_msg_header_t Head;
730 /* start of the kernel processed data */
731 mach_msg_body_t msgh_body;
732 mach_msg_port_descriptor_t object;
733 /* end of the kernel processed data */
734 NDR_record_t NDR;
735 vm_address_t address;
736 vm_size_t size;
737 vm_address_t mask;
738 int flags;
739 vm_offset_t offset;
740 boolean_t copy;
741 vm_prot_t cur_protection;
742 vm_prot_t max_protection;
743 vm_inherit_t inheritance;
744 } __Request__vm_map_t __attribute__((unused));
745#ifdef __MigPackStructs
746#pragma pack(pop)
747#endif
748
749#ifdef __MigPackStructs
750#pragma pack(push, 4)
751#endif
752 typedef struct {
753 mach_msg_header_t Head;
754 NDR_record_t NDR;
755 vm_address_t address;
756 vm_size_t size;
757 vm_machine_attribute_t attribute;
758 vm_machine_attribute_val_t value;
759 } __Request__vm_machine_attribute_t __attribute__((unused));
760#ifdef __MigPackStructs
761#pragma pack(pop)
762#endif
763
764#ifdef __MigPackStructs
765#pragma pack(push, 4)
766#endif
767 typedef struct {
768 mach_msg_header_t Head;
769 /* start of the kernel processed data */
770 mach_msg_body_t msgh_body;
771 mach_msg_port_descriptor_t src_task;
772 /* end of the kernel processed data */
773 NDR_record_t NDR;
774 vm_address_t target_address;
775 vm_size_t size;
776 vm_address_t mask;
777 int flags;
778 vm_address_t src_address;
779 boolean_t copy;
780 vm_inherit_t inheritance;
781 } __Request__vm_remap_t __attribute__((unused));
782#ifdef __MigPackStructs
783#pragma pack(pop)
784#endif
785
786#ifdef __MigPackStructs
787#pragma pack(push, 4)
788#endif
789 typedef struct {
790 mach_msg_header_t Head;
791 NDR_record_t NDR;
792 boolean_t must_wire;
793 } __Request__task_wire_t __attribute__((unused));
794#ifdef __MigPackStructs
795#pragma pack(pop)
796#endif
797
798#ifdef __MigPackStructs
799#pragma pack(push, 4)
800#endif
801 typedef struct {
802 mach_msg_header_t Head;
803 /* start of the kernel processed data */
804 mach_msg_body_t msgh_body;
805 mach_msg_port_descriptor_t parent_entry;
806 /* end of the kernel processed data */
807 NDR_record_t NDR;
808 vm_size_t size;
809 vm_offset_t offset;
810 vm_prot_t permission;
811 } __Request__mach_make_memory_entry_t __attribute__((unused));
812#ifdef __MigPackStructs
813#pragma pack(pop)
814#endif
815
816#ifdef __MigPackStructs
817#pragma pack(push, 4)
818#endif
819 typedef struct {
820 mach_msg_header_t Head;
821 NDR_record_t NDR;
822 vm_offset_t offset;
823 } __Request__vm_map_page_query_t __attribute__((unused));
824#ifdef __MigPackStructs
825#pragma pack(pop)
826#endif
827
828#ifdef __MigPackStructs
829#pragma pack(push, 4)
830#endif
831 typedef struct {
832 mach_msg_header_t Head;
833 NDR_record_t NDR;
834 vm_address_t address;
835 } __Request__mach_vm_region_info_t __attribute__((unused));
836#ifdef __MigPackStructs
837#pragma pack(pop)
838#endif
839
840#ifdef __MigPackStructs
841#pragma pack(push, 4)
842#endif
843 typedef struct {
844 mach_msg_header_t Head;
845 } __Request__vm_mapped_pages_info_t __attribute__((unused));
846#ifdef __MigPackStructs
847#pragma pack(pop)
848#endif
849
850#ifdef __MigPackStructs
851#pragma pack(push, 4)
852#endif
853 typedef struct {
854 mach_msg_header_t Head;
855 NDR_record_t NDR;
856 vm_address_t address;
857 natural_t nesting_depth;
858 mach_msg_type_number_t infoCnt;
859 } __Request__vm_region_recurse_t __attribute__((unused));
860#ifdef __MigPackStructs
861#pragma pack(pop)
862#endif
863
864#ifdef __MigPackStructs
865#pragma pack(push, 4)
866#endif
867 typedef struct {
868 mach_msg_header_t Head;
869 NDR_record_t NDR;
870 vm_address_t address;
871 natural_t nesting_depth;
872 mach_msg_type_number_t infoCnt;
873 } __Request__vm_region_recurse_64_t __attribute__((unused));
874#ifdef __MigPackStructs
875#pragma pack(pop)
876#endif
877
878#ifdef __MigPackStructs
879#pragma pack(push, 4)
880#endif
881 typedef struct {
882 mach_msg_header_t Head;
883 NDR_record_t NDR;
884 vm_address_t address;
885 } __Request__mach_vm_region_info_64_t __attribute__((unused));
886#ifdef __MigPackStructs
887#pragma pack(pop)
888#endif
889
890#ifdef __MigPackStructs
891#pragma pack(push, 4)
892#endif
893 typedef struct {
894 mach_msg_header_t Head;
895 NDR_record_t NDR;
896 vm_address_t address;
897 vm_region_flavor_t flavor;
898 mach_msg_type_number_t infoCnt;
899 } __Request__vm_region_64_t __attribute__((unused));
900#ifdef __MigPackStructs
901#pragma pack(pop)
902#endif
903
904#ifdef __MigPackStructs
905#pragma pack(push, 4)
906#endif
907 typedef struct {
908 mach_msg_header_t Head;
909 /* start of the kernel processed data */
910 mach_msg_body_t msgh_body;
911 mach_msg_port_descriptor_t parent_entry;
912 /* end of the kernel processed data */
913 NDR_record_t NDR;
914 memory_object_size_t size;
915 memory_object_offset_t offset;
916 vm_prot_t permission;
917 } __Request__mach_make_memory_entry_64_t __attribute__((unused));
918#ifdef __MigPackStructs
919#pragma pack(pop)
920#endif
921
922#ifdef __MigPackStructs
923#pragma pack(push, 4)
924#endif
925 typedef struct {
926 mach_msg_header_t Head;
927 /* start of the kernel processed data */
928 mach_msg_body_t msgh_body;
929 mach_msg_port_descriptor_t object;
930 /* end of the kernel processed data */
931 NDR_record_t NDR;
932 vm_address_t address;
933 vm_size_t size;
934 vm_address_t mask;
935 int flags;
936 memory_object_offset_t offset;
937 boolean_t copy;
938 vm_prot_t cur_protection;
939 vm_prot_t max_protection;
940 vm_inherit_t inheritance;
941 } __Request__vm_map_64_t __attribute__((unused));
942#ifdef __MigPackStructs
943#pragma pack(pop)
944#endif
945
946#ifdef __MigPackStructs
947#pragma pack(push, 4)
948#endif
949 typedef struct {
950 mach_msg_header_t Head;
951 NDR_record_t NDR;
952 vm_address_t address;
953 vm_purgable_t control;
954 int state;
955 } __Request__vm_purgable_control_t __attribute__((unused));
956#ifdef __MigPackStructs
957#pragma pack(pop)
958#endif
959
960#ifdef __MigPackStructs
961#pragma pack(push, 4)
962#endif
963 typedef struct {
964 mach_msg_header_t Head;
965 } __Request__vm_map_exec_lockdown_t __attribute__((unused));
966#ifdef __MigPackStructs
967#pragma pack(pop)
968#endif
969
970#ifdef __MigPackStructs
971#pragma pack(push, 4)
972#endif
973 typedef struct {
974 mach_msg_header_t Head;
975 /* start of the kernel processed data */
976 mach_msg_body_t msgh_body;
977 mach_msg_port_descriptor_t src_task;
978 /* end of the kernel processed data */
979 NDR_record_t NDR;
980 vm_address_t target_address;
981 vm_size_t size;
982 vm_address_t mask;
983 int flags;
984 vm_address_t src_address;
985 boolean_t copy;
986 vm_prot_t cur_protection;
987 vm_prot_t max_protection;
988 vm_inherit_t inheritance;
989 } __Request__vm_remap_new_t __attribute__((unused));
990#ifdef __MigPackStructs
991#pragma pack(pop)
992#endif
993
994#ifdef __MigPackStructs
995#pragma pack(push, 4)
996#endif
997 typedef struct {
998 mach_msg_header_t Head;
999 NDR_record_t NDR;
1000 vm_address_t src;
1001 vm_size_t src_size;
1002 vm_address_t dst;
1003 vm_size_t dst_size;
1004 vm_offset_t align_mask;
1005 int options;
1006 int flags;
1007 } __Request__vm_reallocate_t __attribute__((unused));
1008#ifdef __MigPackStructs
1009#pragma pack(pop)
1010#endif
1011#endif /* !__Request__vm_map_subsystem__defined */
1012
1013/* union of all requests */
1014
1015#ifndef __RequestUnion__vm_map_subsystem__defined
1016#define __RequestUnion__vm_map_subsystem__defined
1017union __RequestUnion__vm_map_subsystem {
1018 __Request__vm_region_t Request_vm_region;
1019 __Request__vm_allocate_t Request_vm_allocate;
1020 __Request__vm_deallocate_t Request_vm_deallocate;
1021 __Request__vm_protect_t Request_vm_protect;
1022 __Request__vm_inherit_t Request_vm_inherit;
1023 __Request__vm_read_t Request_vm_read;
1024 __Request__vm_read_list_t Request_vm_read_list;
1025 __Request__vm_write_t Request_vm_write;
1026 __Request__vm_copy_t Request_vm_copy;
1027 __Request__vm_read_overwrite_t Request_vm_read_overwrite;
1028 __Request__vm_msync_t Request_vm_msync;
1029 __Request__vm_behavior_set_t Request_vm_behavior_set;
1030 __Request__vm_map_t Request_vm_map;
1031 __Request__vm_machine_attribute_t Request_vm_machine_attribute;
1032 __Request__vm_remap_t Request_vm_remap;
1033 __Request__task_wire_t Request_task_wire;
1034 __Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
1035 __Request__vm_map_page_query_t Request_vm_map_page_query;
1036 __Request__mach_vm_region_info_t Request_mach_vm_region_info;
1037 __Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
1038 __Request__vm_region_recurse_t Request_vm_region_recurse;
1039 __Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
1040 __Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
1041 __Request__vm_region_64_t Request_vm_region_64;
1042 __Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
1043 __Request__vm_map_64_t Request_vm_map_64;
1044 __Request__vm_purgable_control_t Request_vm_purgable_control;
1045 __Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
1046 __Request__vm_remap_new_t Request_vm_remap_new;
1047 __Request__vm_reallocate_t Request_vm_reallocate;
1048};
1049#endif /* !__RequestUnion__vm_map_subsystem__defined */
1050/* typedefs for all replies */
1051
1052#ifndef __Reply__vm_map_subsystem__defined
1053#define __Reply__vm_map_subsystem__defined
1054
1055#ifdef __MigPackStructs
1056#pragma pack(push, 4)
1057#endif
1058 typedef struct {
1059 mach_msg_header_t Head;
1060 /* start of the kernel processed data */
1061 mach_msg_body_t msgh_body;
1062 mach_msg_port_descriptor_t object_name;
1063 /* end of the kernel processed data */
1064 NDR_record_t NDR;
1065 vm_address_t address;
1066 vm_size_t size;
1067 mach_msg_type_number_t infoCnt;
1068 int info[10];
1069 } __Reply__vm_region_t __attribute__((unused));
1070#ifdef __MigPackStructs
1071#pragma pack(pop)
1072#endif
1073
1074#ifdef __MigPackStructs
1075#pragma pack(push, 4)
1076#endif
1077 typedef struct {
1078 mach_msg_header_t Head;
1079 NDR_record_t NDR;
1080 kern_return_t RetCode;
1081 vm_address_t address;
1082 } __Reply__vm_allocate_t __attribute__((unused));
1083#ifdef __MigPackStructs
1084#pragma pack(pop)
1085#endif
1086
1087#ifdef __MigPackStructs
1088#pragma pack(push, 4)
1089#endif
1090 typedef struct {
1091 mach_msg_header_t Head;
1092 NDR_record_t NDR;
1093 kern_return_t RetCode;
1094 } __Reply__vm_deallocate_t __attribute__((unused));
1095#ifdef __MigPackStructs
1096#pragma pack(pop)
1097#endif
1098
1099#ifdef __MigPackStructs
1100#pragma pack(push, 4)
1101#endif
1102 typedef struct {
1103 mach_msg_header_t Head;
1104 NDR_record_t NDR;
1105 kern_return_t RetCode;
1106 } __Reply__vm_protect_t __attribute__((unused));
1107#ifdef __MigPackStructs
1108#pragma pack(pop)
1109#endif
1110
1111#ifdef __MigPackStructs
1112#pragma pack(push, 4)
1113#endif
1114 typedef struct {
1115 mach_msg_header_t Head;
1116 NDR_record_t NDR;
1117 kern_return_t RetCode;
1118 } __Reply__vm_inherit_t __attribute__((unused));
1119#ifdef __MigPackStructs
1120#pragma pack(pop)
1121#endif
1122
1123#ifdef __MigPackStructs
1124#pragma pack(push, 4)
1125#endif
1126 typedef struct {
1127 mach_msg_header_t Head;
1128 /* start of the kernel processed data */
1129 mach_msg_body_t msgh_body;
1130 mach_msg_ool_descriptor_t data;
1131 /* end of the kernel processed data */
1132 NDR_record_t NDR;
1133 mach_msg_type_number_t dataCnt;
1134 } __Reply__vm_read_t __attribute__((unused));
1135#ifdef __MigPackStructs
1136#pragma pack(pop)
1137#endif
1138
1139#ifdef __MigPackStructs
1140#pragma pack(push, 4)
1141#endif
1142 typedef struct {
1143 mach_msg_header_t Head;
1144 NDR_record_t NDR;
1145 kern_return_t RetCode;
1146 vm_read_entry_t data_list;
1147 } __Reply__vm_read_list_t __attribute__((unused));
1148#ifdef __MigPackStructs
1149#pragma pack(pop)
1150#endif
1151
1152#ifdef __MigPackStructs
1153#pragma pack(push, 4)
1154#endif
1155 typedef struct {
1156 mach_msg_header_t Head;
1157 NDR_record_t NDR;
1158 kern_return_t RetCode;
1159 } __Reply__vm_write_t __attribute__((unused));
1160#ifdef __MigPackStructs
1161#pragma pack(pop)
1162#endif
1163
1164#ifdef __MigPackStructs
1165#pragma pack(push, 4)
1166#endif
1167 typedef struct {
1168 mach_msg_header_t Head;
1169 NDR_record_t NDR;
1170 kern_return_t RetCode;
1171 } __Reply__vm_copy_t __attribute__((unused));
1172#ifdef __MigPackStructs
1173#pragma pack(pop)
1174#endif
1175
1176#ifdef __MigPackStructs
1177#pragma pack(push, 4)
1178#endif
1179 typedef struct {
1180 mach_msg_header_t Head;
1181 NDR_record_t NDR;
1182 kern_return_t RetCode;
1183 vm_size_t outsize;
1184 } __Reply__vm_read_overwrite_t __attribute__((unused));
1185#ifdef __MigPackStructs
1186#pragma pack(pop)
1187#endif
1188
1189#ifdef __MigPackStructs
1190#pragma pack(push, 4)
1191#endif
1192 typedef struct {
1193 mach_msg_header_t Head;
1194 NDR_record_t NDR;
1195 kern_return_t RetCode;
1196 } __Reply__vm_msync_t __attribute__((unused));
1197#ifdef __MigPackStructs
1198#pragma pack(pop)
1199#endif
1200
1201#ifdef __MigPackStructs
1202#pragma pack(push, 4)
1203#endif
1204 typedef struct {
1205 mach_msg_header_t Head;
1206 NDR_record_t NDR;
1207 kern_return_t RetCode;
1208 } __Reply__vm_behavior_set_t __attribute__((unused));
1209#ifdef __MigPackStructs
1210#pragma pack(pop)
1211#endif
1212
1213#ifdef __MigPackStructs
1214#pragma pack(push, 4)
1215#endif
1216 typedef struct {
1217 mach_msg_header_t Head;
1218 NDR_record_t NDR;
1219 kern_return_t RetCode;
1220 vm_address_t address;
1221 } __Reply__vm_map_t __attribute__((unused));
1222#ifdef __MigPackStructs
1223#pragma pack(pop)
1224#endif
1225
1226#ifdef __MigPackStructs
1227#pragma pack(push, 4)
1228#endif
1229 typedef struct {
1230 mach_msg_header_t Head;
1231 NDR_record_t NDR;
1232 kern_return_t RetCode;
1233 vm_machine_attribute_val_t value;
1234 } __Reply__vm_machine_attribute_t __attribute__((unused));
1235#ifdef __MigPackStructs
1236#pragma pack(pop)
1237#endif
1238
1239#ifdef __MigPackStructs
1240#pragma pack(push, 4)
1241#endif
1242 typedef struct {
1243 mach_msg_header_t Head;
1244 NDR_record_t NDR;
1245 kern_return_t RetCode;
1246 vm_address_t target_address;
1247 vm_prot_t cur_protection;
1248 vm_prot_t max_protection;
1249 } __Reply__vm_remap_t __attribute__((unused));
1250#ifdef __MigPackStructs
1251#pragma pack(pop)
1252#endif
1253
1254#ifdef __MigPackStructs
1255#pragma pack(push, 4)
1256#endif
1257 typedef struct {
1258 mach_msg_header_t Head;
1259 NDR_record_t NDR;
1260 kern_return_t RetCode;
1261 } __Reply__task_wire_t __attribute__((unused));
1262#ifdef __MigPackStructs
1263#pragma pack(pop)
1264#endif
1265
1266#ifdef __MigPackStructs
1267#pragma pack(push, 4)
1268#endif
1269 typedef struct {
1270 mach_msg_header_t Head;
1271 /* start of the kernel processed data */
1272 mach_msg_body_t msgh_body;
1273 mach_msg_port_descriptor_t object_handle;
1274 /* end of the kernel processed data */
1275 NDR_record_t NDR;
1276 vm_size_t size;
1277 } __Reply__mach_make_memory_entry_t __attribute__((unused));
1278#ifdef __MigPackStructs
1279#pragma pack(pop)
1280#endif
1281
1282#ifdef __MigPackStructs
1283#pragma pack(push, 4)
1284#endif
1285 typedef struct {
1286 mach_msg_header_t Head;
1287 NDR_record_t NDR;
1288 kern_return_t RetCode;
1289 integer_t disposition;
1290 integer_t ref_count;
1291 } __Reply__vm_map_page_query_t __attribute__((unused));
1292#ifdef __MigPackStructs
1293#pragma pack(pop)
1294#endif
1295
1296#ifdef __MigPackStructs
1297#pragma pack(push, 4)
1298#endif
1299 typedef struct {
1300 mach_msg_header_t Head;
1301 /* start of the kernel processed data */
1302 mach_msg_body_t msgh_body;
1303 mach_msg_ool_descriptor_t objects;
1304 /* end of the kernel processed data */
1305 NDR_record_t NDR;
1306 vm_info_region_t region;
1307 mach_msg_type_number_t objectsCnt;
1308 } __Reply__mach_vm_region_info_t __attribute__((unused));
1309#ifdef __MigPackStructs
1310#pragma pack(pop)
1311#endif
1312
1313#ifdef __MigPackStructs
1314#pragma pack(push, 4)
1315#endif
1316 typedef struct {
1317 mach_msg_header_t Head;
1318 /* start of the kernel processed data */
1319 mach_msg_body_t msgh_body;
1320 mach_msg_ool_descriptor_t pages;
1321 /* end of the kernel processed data */
1322 NDR_record_t NDR;
1323 mach_msg_type_number_t pagesCnt;
1324 } __Reply__vm_mapped_pages_info_t __attribute__((unused));
1325#ifdef __MigPackStructs
1326#pragma pack(pop)
1327#endif
1328
1329#ifdef __MigPackStructs
1330#pragma pack(push, 4)
1331#endif
1332 typedef struct {
1333 mach_msg_header_t Head;
1334 NDR_record_t NDR;
1335 kern_return_t RetCode;
1336 vm_address_t address;
1337 vm_size_t size;
1338 natural_t nesting_depth;
1339 mach_msg_type_number_t infoCnt;
1340 int info[19];
1341 } __Reply__vm_region_recurse_t __attribute__((unused));
1342#ifdef __MigPackStructs
1343#pragma pack(pop)
1344#endif
1345
1346#ifdef __MigPackStructs
1347#pragma pack(push, 4)
1348#endif
1349 typedef struct {
1350 mach_msg_header_t Head;
1351 NDR_record_t NDR;
1352 kern_return_t RetCode;
1353 vm_address_t address;
1354 vm_size_t size;
1355 natural_t nesting_depth;
1356 mach_msg_type_number_t infoCnt;
1357 int info[19];
1358 } __Reply__vm_region_recurse_64_t __attribute__((unused));
1359#ifdef __MigPackStructs
1360#pragma pack(pop)
1361#endif
1362
1363#ifdef __MigPackStructs
1364#pragma pack(push, 4)
1365#endif
1366 typedef struct {
1367 mach_msg_header_t Head;
1368 /* start of the kernel processed data */
1369 mach_msg_body_t msgh_body;
1370 mach_msg_ool_descriptor_t objects;
1371 /* end of the kernel processed data */
1372 NDR_record_t NDR;
1373 vm_info_region_64_t region;
1374 mach_msg_type_number_t objectsCnt;
1375 } __Reply__mach_vm_region_info_64_t __attribute__((unused));
1376#ifdef __MigPackStructs
1377#pragma pack(pop)
1378#endif
1379
1380#ifdef __MigPackStructs
1381#pragma pack(push, 4)
1382#endif
1383 typedef struct {
1384 mach_msg_header_t Head;
1385 /* start of the kernel processed data */
1386 mach_msg_body_t msgh_body;
1387 mach_msg_port_descriptor_t object_name;
1388 /* end of the kernel processed data */
1389 NDR_record_t NDR;
1390 vm_address_t address;
1391 vm_size_t size;
1392 mach_msg_type_number_t infoCnt;
1393 int info[10];
1394 } __Reply__vm_region_64_t __attribute__((unused));
1395#ifdef __MigPackStructs
1396#pragma pack(pop)
1397#endif
1398
1399#ifdef __MigPackStructs
1400#pragma pack(push, 4)
1401#endif
1402 typedef struct {
1403 mach_msg_header_t Head;
1404 /* start of the kernel processed data */
1405 mach_msg_body_t msgh_body;
1406 mach_msg_port_descriptor_t object_handle;
1407 /* end of the kernel processed data */
1408 NDR_record_t NDR;
1409 memory_object_size_t size;
1410 } __Reply__mach_make_memory_entry_64_t __attribute__((unused));
1411#ifdef __MigPackStructs
1412#pragma pack(pop)
1413#endif
1414
1415#ifdef __MigPackStructs
1416#pragma pack(push, 4)
1417#endif
1418 typedef struct {
1419 mach_msg_header_t Head;
1420 NDR_record_t NDR;
1421 kern_return_t RetCode;
1422 vm_address_t address;
1423 } __Reply__vm_map_64_t __attribute__((unused));
1424#ifdef __MigPackStructs
1425#pragma pack(pop)
1426#endif
1427
1428#ifdef __MigPackStructs
1429#pragma pack(push, 4)
1430#endif
1431 typedef struct {
1432 mach_msg_header_t Head;
1433 NDR_record_t NDR;
1434 kern_return_t RetCode;
1435 int state;
1436 } __Reply__vm_purgable_control_t __attribute__((unused));
1437#ifdef __MigPackStructs
1438#pragma pack(pop)
1439#endif
1440
1441#ifdef __MigPackStructs
1442#pragma pack(push, 4)
1443#endif
1444 typedef struct {
1445 mach_msg_header_t Head;
1446 NDR_record_t NDR;
1447 kern_return_t RetCode;
1448 } __Reply__vm_map_exec_lockdown_t __attribute__((unused));
1449#ifdef __MigPackStructs
1450#pragma pack(pop)
1451#endif
1452
1453#ifdef __MigPackStructs
1454#pragma pack(push, 4)
1455#endif
1456 typedef struct {
1457 mach_msg_header_t Head;
1458 NDR_record_t NDR;
1459 kern_return_t RetCode;
1460 vm_address_t target_address;
1461 vm_prot_t cur_protection;
1462 vm_prot_t max_protection;
1463 } __Reply__vm_remap_new_t __attribute__((unused));
1464#ifdef __MigPackStructs
1465#pragma pack(pop)
1466#endif
1467
1468#ifdef __MigPackStructs
1469#pragma pack(push, 4)
1470#endif
1471 typedef struct {
1472 mach_msg_header_t Head;
1473 NDR_record_t NDR;
1474 kern_return_t RetCode;
1475 vm_address_t dst;
1476 } __Reply__vm_reallocate_t __attribute__((unused));
1477#ifdef __MigPackStructs
1478#pragma pack(pop)
1479#endif
1480#endif /* !__Reply__vm_map_subsystem__defined */
1481
1482/* union of all replies */
1483
1484#ifndef __ReplyUnion__vm_map_subsystem__defined
1485#define __ReplyUnion__vm_map_subsystem__defined
1486union __ReplyUnion__vm_map_subsystem {
1487 __Reply__vm_region_t Reply_vm_region;
1488 __Reply__vm_allocate_t Reply_vm_allocate;
1489 __Reply__vm_deallocate_t Reply_vm_deallocate;
1490 __Reply__vm_protect_t Reply_vm_protect;
1491 __Reply__vm_inherit_t Reply_vm_inherit;
1492 __Reply__vm_read_t Reply_vm_read;
1493 __Reply__vm_read_list_t Reply_vm_read_list;
1494 __Reply__vm_write_t Reply_vm_write;
1495 __Reply__vm_copy_t Reply_vm_copy;
1496 __Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
1497 __Reply__vm_msync_t Reply_vm_msync;
1498 __Reply__vm_behavior_set_t Reply_vm_behavior_set;
1499 __Reply__vm_map_t Reply_vm_map;
1500 __Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
1501 __Reply__vm_remap_t Reply_vm_remap;
1502 __Reply__task_wire_t Reply_task_wire;
1503 __Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
1504 __Reply__vm_map_page_query_t Reply_vm_map_page_query;
1505 __Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
1506 __Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
1507 __Reply__vm_region_recurse_t Reply_vm_region_recurse;
1508 __Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
1509 __Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
1510 __Reply__vm_region_64_t Reply_vm_region_64;
1511 __Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
1512 __Reply__vm_map_64_t Reply_vm_map_64;
1513 __Reply__vm_purgable_control_t Reply_vm_purgable_control;
1514 __Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
1515 __Reply__vm_remap_new_t Reply_vm_remap_new;
1516 __Reply__vm_reallocate_t Reply_vm_reallocate;
1517};
1518#endif /* !__RequestUnion__vm_map_subsystem__defined */
1519
1520#ifndef subsystem_to_name_map_vm_map
1521#define subsystem_to_name_map_vm_map \
1522 { "vm_region", 3800 },\
1523 { "vm_allocate", 3801 },\
1524 { "vm_deallocate", 3802 },\
1525 { "vm_protect", 3803 },\
1526 { "vm_inherit", 3804 },\
1527 { "vm_read", 3805 },\
1528 { "vm_read_list", 3806 },\
1529 { "vm_write", 3807 },\
1530 { "vm_copy", 3808 },\
1531 { "vm_read_overwrite", 3809 },\
1532 { "vm_msync", 3810 },\
1533 { "vm_behavior_set", 3811 },\
1534 { "vm_map", 3812 },\
1535 { "vm_machine_attribute", 3813 },\
1536 { "vm_remap", 3814 },\
1537 { "task_wire", 3815 },\
1538 { "mach_make_memory_entry", 3816 },\
1539 { "vm_map_page_query", 3817 },\
1540 { "mach_vm_region_info", 3818 },\
1541 { "vm_mapped_pages_info", 3819 },\
1542 { "vm_region_recurse", 3821 },\
1543 { "vm_region_recurse_64", 3822 },\
1544 { "mach_vm_region_info_64", 3823 },\
1545 { "vm_region_64", 3824 },\
1546 { "mach_make_memory_entry_64", 3825 },\
1547 { "vm_map_64", 3826 },\
1548 { "vm_purgable_control", 3830 },\
1549 { "vm_map_exec_lockdown", 3831 },\
1550 { "vm_remap_new", 3832 },\
1551 { "vm_reallocate", 3833 }
1552#endif
1553
1554#ifdef __AfterMigUserHeader
1555__AfterMigUserHeader
1556#endif /* __AfterMigUserHeader */
1557
1558#endif /* _vm_map_user_ */