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 33
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 */
308kern_return_t task_wire
309(
310 vm_map_t target_task,
311 boolean_t must_wire
312);
313
314/* Routine mach_make_memory_entry */
315#ifdef mig_external
316mig_external
317#else
318extern
319#endif /* mig_external */
320kern_return_t mach_make_memory_entry
321(
322 vm_map_t target_task,
323 vm_size_t *size,
324 vm_offset_t offset,
325 vm_prot_t permission,
326 mem_entry_name_port_t *object_handle,
327 mem_entry_name_port_t parent_entry
328);
329
330/* Routine vm_map_page_query */
331#ifdef mig_external
332mig_external
333#else
334extern
335#endif /* mig_external */
336kern_return_t vm_map_page_query
337(
338 vm_map_read_t target_map,
339 vm_offset_t offset,
340 integer_t *disposition,
341 integer_t *ref_count
342);
343
344/* Routine mach_vm_region_info */
345#ifdef mig_external
346mig_external
347#else
348extern
349#endif /* mig_external */
350kern_return_t mach_vm_region_info
351(
352 vm_map_read_t task,
353 vm_address_t address,
354 vm_info_region_t *region,
355 vm_info_object_array_t *objects,
356 mach_msg_type_number_t *objectsCnt
357);
358
359/* Routine vm_mapped_pages_info */
360#ifdef mig_external
361mig_external
362#else
363extern
364#endif /* mig_external */
365kern_return_t vm_mapped_pages_info
366(
367 vm_map_read_t task,
368 page_address_array_t *pages,
369 mach_msg_type_number_t *pagesCnt
370);
371
372/* Routine vm_region_recurse */
373#ifdef mig_external
374mig_external
375#else
376extern
377#endif /* mig_external */
378kern_return_t vm_region_recurse
379(
380 vm_map_read_t target_task,
381 vm_address_t *address,
382 vm_size_t *size,
383 natural_t *nesting_depth,
384 vm_region_recurse_info_t info,
385 mach_msg_type_number_t *infoCnt
386);
387
388/* Routine vm_region_recurse_64 */
389#ifdef mig_external
390mig_external
391#else
392extern
393#endif /* mig_external */
394kern_return_t vm_region_recurse_64
395(
396 vm_map_read_t target_task,
397 vm_address_t *address,
398 vm_size_t *size,
399 natural_t *nesting_depth,
400 vm_region_recurse_info_t info,
401 mach_msg_type_number_t *infoCnt
402);
403
404/* Routine mach_vm_region_info_64 */
405#ifdef mig_external
406mig_external
407#else
408extern
409#endif /* mig_external */
410kern_return_t mach_vm_region_info_64
411(
412 vm_map_read_t task,
413 vm_address_t address,
414 vm_info_region_64_t *region,
415 vm_info_object_array_t *objects,
416 mach_msg_type_number_t *objectsCnt
417);
418
419/* Routine vm_region_64 */
420#ifdef mig_external
421mig_external
422#else
423extern
424#endif /* mig_external */
425kern_return_t vm_region_64
426(
427 vm_map_read_t target_task,
428 vm_address_t *address,
429 vm_size_t *size,
430 vm_region_flavor_t flavor,
431 vm_region_info_t info,
432 mach_msg_type_number_t *infoCnt,
433 mach_port_t *object_name
434);
435
436/* Routine mach_make_memory_entry_64 */
437#ifdef mig_external
438mig_external
439#else
440extern
441#endif /* mig_external */
442kern_return_t mach_make_memory_entry_64
443(
444 vm_map_t target_task,
445 memory_object_size_t *size,
446 memory_object_offset_t offset,
447 vm_prot_t permission,
448 mach_port_t *object_handle,
449 mem_entry_name_port_t parent_entry
450);
451
452/* Routine vm_map_64 */
453#ifdef mig_external
454mig_external
455#else
456extern
457#endif /* mig_external */
458kern_return_t vm_map_64
459(
460 vm_map_t target_task,
461 vm_address_t *address,
462 vm_size_t size,
463 vm_address_t mask,
464 int flags,
465 mem_entry_name_port_t object,
466 memory_object_offset_t offset,
467 boolean_t copy,
468 vm_prot_t cur_protection,
469 vm_prot_t max_protection,
470 vm_inherit_t inheritance
471);
472
473/* Routine vm_purgable_control */
474#ifdef mig_external
475mig_external
476#else
477extern
478#endif /* mig_external */
479kern_return_t vm_purgable_control
480(
481 vm_map_t target_task,
482 vm_address_t address,
483 vm_purgable_t control,
484 int *state
485);
486
487/* Routine vm_map_exec_lockdown */
488#ifdef mig_external
489mig_external
490#else
491extern
492#endif /* mig_external */
493kern_return_t vm_map_exec_lockdown
494(
495 vm_map_t target_task
496);
497
498/* Routine vm_remap_new */
499#ifdef mig_external
500mig_external
501#else
502extern
503#endif /* mig_external */
504kern_return_t vm_remap_new
505(
506 vm_map_t target_task,
507 vm_address_t *target_address,
508 vm_size_t size,
509 vm_address_t mask,
510 int flags,
511 vm_map_read_t src_task,
512 vm_address_t src_address,
513 boolean_t copy,
514 vm_prot_t *cur_protection,
515 vm_prot_t *max_protection,
516 vm_inherit_t inheritance
517);
518
519__END_DECLS
520
521/********************** Caution **************************/
522/* The following data types should be used to calculate */
523/* maximum message sizes only. The actual message may be */
524/* smaller, and the position of the arguments within the */
525/* message layout may vary from what is presented here. */
526/* For example, if any of the arguments are variable- */
527/* sized, and less than the maximum is sent, the data */
528/* will be packed tight in the actual message to reduce */
529/* the presence of holes. */
530/********************** Caution **************************/
531
532/* typedefs for all requests */
533
534#ifndef __Request__vm_map_subsystem__defined
535#define __Request__vm_map_subsystem__defined
536
537#ifdef __MigPackStructs
538#pragma pack(push, 4)
539#endif
540 typedef struct {
541 mach_msg_header_t Head;
542 NDR_record_t NDR;
543 vm_address_t address;
544 vm_region_flavor_t flavor;
545 mach_msg_type_number_t infoCnt;
546 } __Request__vm_region_t __attribute__((unused));
547#ifdef __MigPackStructs
548#pragma pack(pop)
549#endif
550
551#ifdef __MigPackStructs
552#pragma pack(push, 4)
553#endif
554 typedef struct {
555 mach_msg_header_t Head;
556 NDR_record_t NDR;
557 vm_address_t address;
558 vm_size_t size;
559 int flags;
560 } __Request__vm_allocate_t __attribute__((unused));
561#ifdef __MigPackStructs
562#pragma pack(pop)
563#endif
564
565#ifdef __MigPackStructs
566#pragma pack(push, 4)
567#endif
568 typedef struct {
569 mach_msg_header_t Head;
570 NDR_record_t NDR;
571 vm_address_t address;
572 vm_size_t size;
573 } __Request__vm_deallocate_t __attribute__((unused));
574#ifdef __MigPackStructs
575#pragma pack(pop)
576#endif
577
578#ifdef __MigPackStructs
579#pragma pack(push, 4)
580#endif
581 typedef struct {
582 mach_msg_header_t Head;
583 NDR_record_t NDR;
584 vm_address_t address;
585 vm_size_t size;
586 boolean_t set_maximum;
587 vm_prot_t new_protection;
588 } __Request__vm_protect_t __attribute__((unused));
589#ifdef __MigPackStructs
590#pragma pack(pop)
591#endif
592
593#ifdef __MigPackStructs
594#pragma pack(push, 4)
595#endif
596 typedef struct {
597 mach_msg_header_t Head;
598 NDR_record_t NDR;
599 vm_address_t address;
600 vm_size_t size;
601 vm_inherit_t new_inheritance;
602 } __Request__vm_inherit_t __attribute__((unused));
603#ifdef __MigPackStructs
604#pragma pack(pop)
605#endif
606
607#ifdef __MigPackStructs
608#pragma pack(push, 4)
609#endif
610 typedef struct {
611 mach_msg_header_t Head;
612 NDR_record_t NDR;
613 vm_address_t address;
614 vm_size_t size;
615 } __Request__vm_read_t __attribute__((unused));
616#ifdef __MigPackStructs
617#pragma pack(pop)
618#endif
619
620#ifdef __MigPackStructs
621#pragma pack(push, 4)
622#endif
623 typedef struct {
624 mach_msg_header_t Head;
625 NDR_record_t NDR;
626 vm_read_entry_t data_list;
627 natural_t count;
628 } __Request__vm_read_list_t __attribute__((unused));
629#ifdef __MigPackStructs
630#pragma pack(pop)
631#endif
632
633#ifdef __MigPackStructs
634#pragma pack(push, 4)
635#endif
636 typedef struct {
637 mach_msg_header_t Head;
638 /* start of the kernel processed data */
639 mach_msg_body_t msgh_body;
640 mach_msg_ool_descriptor_t data;
641 /* end of the kernel processed data */
642 NDR_record_t NDR;
643 vm_address_t address;
644 mach_msg_type_number_t dataCnt;
645 } __Request__vm_write_t __attribute__((unused));
646#ifdef __MigPackStructs
647#pragma pack(pop)
648#endif
649
650#ifdef __MigPackStructs
651#pragma pack(push, 4)
652#endif
653 typedef struct {
654 mach_msg_header_t Head;
655 NDR_record_t NDR;
656 vm_address_t source_address;
657 vm_size_t size;
658 vm_address_t dest_address;
659 } __Request__vm_copy_t __attribute__((unused));
660#ifdef __MigPackStructs
661#pragma pack(pop)
662#endif
663
664#ifdef __MigPackStructs
665#pragma pack(push, 4)
666#endif
667 typedef struct {
668 mach_msg_header_t Head;
669 NDR_record_t NDR;
670 vm_address_t address;
671 vm_size_t size;
672 vm_address_t data;
673 } __Request__vm_read_overwrite_t __attribute__((unused));
674#ifdef __MigPackStructs
675#pragma pack(pop)
676#endif
677
678#ifdef __MigPackStructs
679#pragma pack(push, 4)
680#endif
681 typedef struct {
682 mach_msg_header_t Head;
683 NDR_record_t NDR;
684 vm_address_t address;
685 vm_size_t size;
686 vm_sync_t sync_flags;
687 } __Request__vm_msync_t __attribute__((unused));
688#ifdef __MigPackStructs
689#pragma pack(pop)
690#endif
691
692#ifdef __MigPackStructs
693#pragma pack(push, 4)
694#endif
695 typedef struct {
696 mach_msg_header_t Head;
697 NDR_record_t NDR;
698 vm_address_t address;
699 vm_size_t size;
700 vm_behavior_t new_behavior;
701 } __Request__vm_behavior_set_t __attribute__((unused));
702#ifdef __MigPackStructs
703#pragma pack(pop)
704#endif
705
706#ifdef __MigPackStructs
707#pragma pack(push, 4)
708#endif
709 typedef struct {
710 mach_msg_header_t Head;
711 /* start of the kernel processed data */
712 mach_msg_body_t msgh_body;
713 mach_msg_port_descriptor_t object;
714 /* end of the kernel processed data */
715 NDR_record_t NDR;
716 vm_address_t address;
717 vm_size_t size;
718 vm_address_t mask;
719 int flags;
720 vm_offset_t offset;
721 boolean_t copy;
722 vm_prot_t cur_protection;
723 vm_prot_t max_protection;
724 vm_inherit_t inheritance;
725 } __Request__vm_map_t __attribute__((unused));
726#ifdef __MigPackStructs
727#pragma pack(pop)
728#endif
729
730#ifdef __MigPackStructs
731#pragma pack(push, 4)
732#endif
733 typedef struct {
734 mach_msg_header_t Head;
735 NDR_record_t NDR;
736 vm_address_t address;
737 vm_size_t size;
738 vm_machine_attribute_t attribute;
739 vm_machine_attribute_val_t value;
740 } __Request__vm_machine_attribute_t __attribute__((unused));
741#ifdef __MigPackStructs
742#pragma pack(pop)
743#endif
744
745#ifdef __MigPackStructs
746#pragma pack(push, 4)
747#endif
748 typedef struct {
749 mach_msg_header_t Head;
750 /* start of the kernel processed data */
751 mach_msg_body_t msgh_body;
752 mach_msg_port_descriptor_t src_task;
753 /* end of the kernel processed data */
754 NDR_record_t NDR;
755 vm_address_t target_address;
756 vm_size_t size;
757 vm_address_t mask;
758 int flags;
759 vm_address_t src_address;
760 boolean_t copy;
761 vm_inherit_t inheritance;
762 } __Request__vm_remap_t __attribute__((unused));
763#ifdef __MigPackStructs
764#pragma pack(pop)
765#endif
766
767#ifdef __MigPackStructs
768#pragma pack(push, 4)
769#endif
770 typedef struct {
771 mach_msg_header_t Head;
772 NDR_record_t NDR;
773 boolean_t must_wire;
774 } __Request__task_wire_t __attribute__((unused));
775#ifdef __MigPackStructs
776#pragma pack(pop)
777#endif
778
779#ifdef __MigPackStructs
780#pragma pack(push, 4)
781#endif
782 typedef struct {
783 mach_msg_header_t Head;
784 /* start of the kernel processed data */
785 mach_msg_body_t msgh_body;
786 mach_msg_port_descriptor_t parent_entry;
787 /* end of the kernel processed data */
788 NDR_record_t NDR;
789 vm_size_t size;
790 vm_offset_t offset;
791 vm_prot_t permission;
792 } __Request__mach_make_memory_entry_t __attribute__((unused));
793#ifdef __MigPackStructs
794#pragma pack(pop)
795#endif
796
797#ifdef __MigPackStructs
798#pragma pack(push, 4)
799#endif
800 typedef struct {
801 mach_msg_header_t Head;
802 NDR_record_t NDR;
803 vm_offset_t offset;
804 } __Request__vm_map_page_query_t __attribute__((unused));
805#ifdef __MigPackStructs
806#pragma pack(pop)
807#endif
808
809#ifdef __MigPackStructs
810#pragma pack(push, 4)
811#endif
812 typedef struct {
813 mach_msg_header_t Head;
814 NDR_record_t NDR;
815 vm_address_t address;
816 } __Request__mach_vm_region_info_t __attribute__((unused));
817#ifdef __MigPackStructs
818#pragma pack(pop)
819#endif
820
821#ifdef __MigPackStructs
822#pragma pack(push, 4)
823#endif
824 typedef struct {
825 mach_msg_header_t Head;
826 } __Request__vm_mapped_pages_info_t __attribute__((unused));
827#ifdef __MigPackStructs
828#pragma pack(pop)
829#endif
830
831#ifdef __MigPackStructs
832#pragma pack(push, 4)
833#endif
834 typedef struct {
835 mach_msg_header_t Head;
836 NDR_record_t NDR;
837 vm_address_t address;
838 natural_t nesting_depth;
839 mach_msg_type_number_t infoCnt;
840 } __Request__vm_region_recurse_t __attribute__((unused));
841#ifdef __MigPackStructs
842#pragma pack(pop)
843#endif
844
845#ifdef __MigPackStructs
846#pragma pack(push, 4)
847#endif
848 typedef struct {
849 mach_msg_header_t Head;
850 NDR_record_t NDR;
851 vm_address_t address;
852 natural_t nesting_depth;
853 mach_msg_type_number_t infoCnt;
854 } __Request__vm_region_recurse_64_t __attribute__((unused));
855#ifdef __MigPackStructs
856#pragma pack(pop)
857#endif
858
859#ifdef __MigPackStructs
860#pragma pack(push, 4)
861#endif
862 typedef struct {
863 mach_msg_header_t Head;
864 NDR_record_t NDR;
865 vm_address_t address;
866 } __Request__mach_vm_region_info_64_t __attribute__((unused));
867#ifdef __MigPackStructs
868#pragma pack(pop)
869#endif
870
871#ifdef __MigPackStructs
872#pragma pack(push, 4)
873#endif
874 typedef struct {
875 mach_msg_header_t Head;
876 NDR_record_t NDR;
877 vm_address_t address;
878 vm_region_flavor_t flavor;
879 mach_msg_type_number_t infoCnt;
880 } __Request__vm_region_64_t __attribute__((unused));
881#ifdef __MigPackStructs
882#pragma pack(pop)
883#endif
884
885#ifdef __MigPackStructs
886#pragma pack(push, 4)
887#endif
888 typedef struct {
889 mach_msg_header_t Head;
890 /* start of the kernel processed data */
891 mach_msg_body_t msgh_body;
892 mach_msg_port_descriptor_t parent_entry;
893 /* end of the kernel processed data */
894 NDR_record_t NDR;
895 memory_object_size_t size;
896 memory_object_offset_t offset;
897 vm_prot_t permission;
898 } __Request__mach_make_memory_entry_64_t __attribute__((unused));
899#ifdef __MigPackStructs
900#pragma pack(pop)
901#endif
902
903#ifdef __MigPackStructs
904#pragma pack(push, 4)
905#endif
906 typedef struct {
907 mach_msg_header_t Head;
908 /* start of the kernel processed data */
909 mach_msg_body_t msgh_body;
910 mach_msg_port_descriptor_t object;
911 /* end of the kernel processed data */
912 NDR_record_t NDR;
913 vm_address_t address;
914 vm_size_t size;
915 vm_address_t mask;
916 int flags;
917 memory_object_offset_t offset;
918 boolean_t copy;
919 vm_prot_t cur_protection;
920 vm_prot_t max_protection;
921 vm_inherit_t inheritance;
922 } __Request__vm_map_64_t __attribute__((unused));
923#ifdef __MigPackStructs
924#pragma pack(pop)
925#endif
926
927#ifdef __MigPackStructs
928#pragma pack(push, 4)
929#endif
930 typedef struct {
931 mach_msg_header_t Head;
932 NDR_record_t NDR;
933 vm_address_t address;
934 vm_purgable_t control;
935 int state;
936 } __Request__vm_purgable_control_t __attribute__((unused));
937#ifdef __MigPackStructs
938#pragma pack(pop)
939#endif
940
941#ifdef __MigPackStructs
942#pragma pack(push, 4)
943#endif
944 typedef struct {
945 mach_msg_header_t Head;
946 } __Request__vm_map_exec_lockdown_t __attribute__((unused));
947#ifdef __MigPackStructs
948#pragma pack(pop)
949#endif
950
951#ifdef __MigPackStructs
952#pragma pack(push, 4)
953#endif
954 typedef struct {
955 mach_msg_header_t Head;
956 /* start of the kernel processed data */
957 mach_msg_body_t msgh_body;
958 mach_msg_port_descriptor_t src_task;
959 /* end of the kernel processed data */
960 NDR_record_t NDR;
961 vm_address_t target_address;
962 vm_size_t size;
963 vm_address_t mask;
964 int flags;
965 vm_address_t src_address;
966 boolean_t copy;
967 vm_prot_t cur_protection;
968 vm_prot_t max_protection;
969 vm_inherit_t inheritance;
970 } __Request__vm_remap_new_t __attribute__((unused));
971#ifdef __MigPackStructs
972#pragma pack(pop)
973#endif
974#endif /* !__Request__vm_map_subsystem__defined */
975
976/* union of all requests */
977
978#ifndef __RequestUnion__vm_map_subsystem__defined
979#define __RequestUnion__vm_map_subsystem__defined
980union __RequestUnion__vm_map_subsystem {
981 __Request__vm_region_t Request_vm_region;
982 __Request__vm_allocate_t Request_vm_allocate;
983 __Request__vm_deallocate_t Request_vm_deallocate;
984 __Request__vm_protect_t Request_vm_protect;
985 __Request__vm_inherit_t Request_vm_inherit;
986 __Request__vm_read_t Request_vm_read;
987 __Request__vm_read_list_t Request_vm_read_list;
988 __Request__vm_write_t Request_vm_write;
989 __Request__vm_copy_t Request_vm_copy;
990 __Request__vm_read_overwrite_t Request_vm_read_overwrite;
991 __Request__vm_msync_t Request_vm_msync;
992 __Request__vm_behavior_set_t Request_vm_behavior_set;
993 __Request__vm_map_t Request_vm_map;
994 __Request__vm_machine_attribute_t Request_vm_machine_attribute;
995 __Request__vm_remap_t Request_vm_remap;
996 __Request__task_wire_t Request_task_wire;
997 __Request__mach_make_memory_entry_t Request_mach_make_memory_entry;
998 __Request__vm_map_page_query_t Request_vm_map_page_query;
999 __Request__mach_vm_region_info_t Request_mach_vm_region_info;
1000 __Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;
1001 __Request__vm_region_recurse_t Request_vm_region_recurse;
1002 __Request__vm_region_recurse_64_t Request_vm_region_recurse_64;
1003 __Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;
1004 __Request__vm_region_64_t Request_vm_region_64;
1005 __Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;
1006 __Request__vm_map_64_t Request_vm_map_64;
1007 __Request__vm_purgable_control_t Request_vm_purgable_control;
1008 __Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;
1009 __Request__vm_remap_new_t Request_vm_remap_new;
1010};
1011#endif /* !__RequestUnion__vm_map_subsystem__defined */
1012/* typedefs for all replies */
1013
1014#ifndef __Reply__vm_map_subsystem__defined
1015#define __Reply__vm_map_subsystem__defined
1016
1017#ifdef __MigPackStructs
1018#pragma pack(push, 4)
1019#endif
1020 typedef struct {
1021 mach_msg_header_t Head;
1022 /* start of the kernel processed data */
1023 mach_msg_body_t msgh_body;
1024 mach_msg_port_descriptor_t object_name;
1025 /* end of the kernel processed data */
1026 NDR_record_t NDR;
1027 vm_address_t address;
1028 vm_size_t size;
1029 mach_msg_type_number_t infoCnt;
1030 int info[10];
1031 } __Reply__vm_region_t __attribute__((unused));
1032#ifdef __MigPackStructs
1033#pragma pack(pop)
1034#endif
1035
1036#ifdef __MigPackStructs
1037#pragma pack(push, 4)
1038#endif
1039 typedef struct {
1040 mach_msg_header_t Head;
1041 NDR_record_t NDR;
1042 kern_return_t RetCode;
1043 vm_address_t address;
1044 } __Reply__vm_allocate_t __attribute__((unused));
1045#ifdef __MigPackStructs
1046#pragma pack(pop)
1047#endif
1048
1049#ifdef __MigPackStructs
1050#pragma pack(push, 4)
1051#endif
1052 typedef struct {
1053 mach_msg_header_t Head;
1054 NDR_record_t NDR;
1055 kern_return_t RetCode;
1056 } __Reply__vm_deallocate_t __attribute__((unused));
1057#ifdef __MigPackStructs
1058#pragma pack(pop)
1059#endif
1060
1061#ifdef __MigPackStructs
1062#pragma pack(push, 4)
1063#endif
1064 typedef struct {
1065 mach_msg_header_t Head;
1066 NDR_record_t NDR;
1067 kern_return_t RetCode;
1068 } __Reply__vm_protect_t __attribute__((unused));
1069#ifdef __MigPackStructs
1070#pragma pack(pop)
1071#endif
1072
1073#ifdef __MigPackStructs
1074#pragma pack(push, 4)
1075#endif
1076 typedef struct {
1077 mach_msg_header_t Head;
1078 NDR_record_t NDR;
1079 kern_return_t RetCode;
1080 } __Reply__vm_inherit_t __attribute__((unused));
1081#ifdef __MigPackStructs
1082#pragma pack(pop)
1083#endif
1084
1085#ifdef __MigPackStructs
1086#pragma pack(push, 4)
1087#endif
1088 typedef struct {
1089 mach_msg_header_t Head;
1090 /* start of the kernel processed data */
1091 mach_msg_body_t msgh_body;
1092 mach_msg_ool_descriptor_t data;
1093 /* end of the kernel processed data */
1094 NDR_record_t NDR;
1095 mach_msg_type_number_t dataCnt;
1096 } __Reply__vm_read_t __attribute__((unused));
1097#ifdef __MigPackStructs
1098#pragma pack(pop)
1099#endif
1100
1101#ifdef __MigPackStructs
1102#pragma pack(push, 4)
1103#endif
1104 typedef struct {
1105 mach_msg_header_t Head;
1106 NDR_record_t NDR;
1107 kern_return_t RetCode;
1108 vm_read_entry_t data_list;
1109 } __Reply__vm_read_list_t __attribute__((unused));
1110#ifdef __MigPackStructs
1111#pragma pack(pop)
1112#endif
1113
1114#ifdef __MigPackStructs
1115#pragma pack(push, 4)
1116#endif
1117 typedef struct {
1118 mach_msg_header_t Head;
1119 NDR_record_t NDR;
1120 kern_return_t RetCode;
1121 } __Reply__vm_write_t __attribute__((unused));
1122#ifdef __MigPackStructs
1123#pragma pack(pop)
1124#endif
1125
1126#ifdef __MigPackStructs
1127#pragma pack(push, 4)
1128#endif
1129 typedef struct {
1130 mach_msg_header_t Head;
1131 NDR_record_t NDR;
1132 kern_return_t RetCode;
1133 } __Reply__vm_copy_t __attribute__((unused));
1134#ifdef __MigPackStructs
1135#pragma pack(pop)
1136#endif
1137
1138#ifdef __MigPackStructs
1139#pragma pack(push, 4)
1140#endif
1141 typedef struct {
1142 mach_msg_header_t Head;
1143 NDR_record_t NDR;
1144 kern_return_t RetCode;
1145 vm_size_t outsize;
1146 } __Reply__vm_read_overwrite_t __attribute__((unused));
1147#ifdef __MigPackStructs
1148#pragma pack(pop)
1149#endif
1150
1151#ifdef __MigPackStructs
1152#pragma pack(push, 4)
1153#endif
1154 typedef struct {
1155 mach_msg_header_t Head;
1156 NDR_record_t NDR;
1157 kern_return_t RetCode;
1158 } __Reply__vm_msync_t __attribute__((unused));
1159#ifdef __MigPackStructs
1160#pragma pack(pop)
1161#endif
1162
1163#ifdef __MigPackStructs
1164#pragma pack(push, 4)
1165#endif
1166 typedef struct {
1167 mach_msg_header_t Head;
1168 NDR_record_t NDR;
1169 kern_return_t RetCode;
1170 } __Reply__vm_behavior_set_t __attribute__((unused));
1171#ifdef __MigPackStructs
1172#pragma pack(pop)
1173#endif
1174
1175#ifdef __MigPackStructs
1176#pragma pack(push, 4)
1177#endif
1178 typedef struct {
1179 mach_msg_header_t Head;
1180 NDR_record_t NDR;
1181 kern_return_t RetCode;
1182 vm_address_t address;
1183 } __Reply__vm_map_t __attribute__((unused));
1184#ifdef __MigPackStructs
1185#pragma pack(pop)
1186#endif
1187
1188#ifdef __MigPackStructs
1189#pragma pack(push, 4)
1190#endif
1191 typedef struct {
1192 mach_msg_header_t Head;
1193 NDR_record_t NDR;
1194 kern_return_t RetCode;
1195 vm_machine_attribute_val_t value;
1196 } __Reply__vm_machine_attribute_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 vm_address_t target_address;
1209 vm_prot_t cur_protection;
1210 vm_prot_t max_protection;
1211 } __Reply__vm_remap_t __attribute__((unused));
1212#ifdef __MigPackStructs
1213#pragma pack(pop)
1214#endif
1215
1216#ifdef __MigPackStructs
1217#pragma pack(push, 4)
1218#endif
1219 typedef struct {
1220 mach_msg_header_t Head;
1221 NDR_record_t NDR;
1222 kern_return_t RetCode;
1223 } __Reply__task_wire_t __attribute__((unused));
1224#ifdef __MigPackStructs
1225#pragma pack(pop)
1226#endif
1227
1228#ifdef __MigPackStructs
1229#pragma pack(push, 4)
1230#endif
1231 typedef struct {
1232 mach_msg_header_t Head;
1233 /* start of the kernel processed data */
1234 mach_msg_body_t msgh_body;
1235 mach_msg_port_descriptor_t object_handle;
1236 /* end of the kernel processed data */
1237 NDR_record_t NDR;
1238 vm_size_t size;
1239 } __Reply__mach_make_memory_entry_t __attribute__((unused));
1240#ifdef __MigPackStructs
1241#pragma pack(pop)
1242#endif
1243
1244#ifdef __MigPackStructs
1245#pragma pack(push, 4)
1246#endif
1247 typedef struct {
1248 mach_msg_header_t Head;
1249 NDR_record_t NDR;
1250 kern_return_t RetCode;
1251 integer_t disposition;
1252 integer_t ref_count;
1253 } __Reply__vm_map_page_query_t __attribute__((unused));
1254#ifdef __MigPackStructs
1255#pragma pack(pop)
1256#endif
1257
1258#ifdef __MigPackStructs
1259#pragma pack(push, 4)
1260#endif
1261 typedef struct {
1262 mach_msg_header_t Head;
1263 /* start of the kernel processed data */
1264 mach_msg_body_t msgh_body;
1265 mach_msg_ool_descriptor_t objects;
1266 /* end of the kernel processed data */
1267 NDR_record_t NDR;
1268 vm_info_region_t region;
1269 mach_msg_type_number_t objectsCnt;
1270 } __Reply__mach_vm_region_info_t __attribute__((unused));
1271#ifdef __MigPackStructs
1272#pragma pack(pop)
1273#endif
1274
1275#ifdef __MigPackStructs
1276#pragma pack(push, 4)
1277#endif
1278 typedef struct {
1279 mach_msg_header_t Head;
1280 /* start of the kernel processed data */
1281 mach_msg_body_t msgh_body;
1282 mach_msg_ool_descriptor_t pages;
1283 /* end of the kernel processed data */
1284 NDR_record_t NDR;
1285 mach_msg_type_number_t pagesCnt;
1286 } __Reply__vm_mapped_pages_info_t __attribute__((unused));
1287#ifdef __MigPackStructs
1288#pragma pack(pop)
1289#endif
1290
1291#ifdef __MigPackStructs
1292#pragma pack(push, 4)
1293#endif
1294 typedef struct {
1295 mach_msg_header_t Head;
1296 NDR_record_t NDR;
1297 kern_return_t RetCode;
1298 vm_address_t address;
1299 vm_size_t size;
1300 natural_t nesting_depth;
1301 mach_msg_type_number_t infoCnt;
1302 int info[19];
1303 } __Reply__vm_region_recurse_t __attribute__((unused));
1304#ifdef __MigPackStructs
1305#pragma pack(pop)
1306#endif
1307
1308#ifdef __MigPackStructs
1309#pragma pack(push, 4)
1310#endif
1311 typedef struct {
1312 mach_msg_header_t Head;
1313 NDR_record_t NDR;
1314 kern_return_t RetCode;
1315 vm_address_t address;
1316 vm_size_t size;
1317 natural_t nesting_depth;
1318 mach_msg_type_number_t infoCnt;
1319 int info[19];
1320 } __Reply__vm_region_recurse_64_t __attribute__((unused));
1321#ifdef __MigPackStructs
1322#pragma pack(pop)
1323#endif
1324
1325#ifdef __MigPackStructs
1326#pragma pack(push, 4)
1327#endif
1328 typedef struct {
1329 mach_msg_header_t Head;
1330 /* start of the kernel processed data */
1331 mach_msg_body_t msgh_body;
1332 mach_msg_ool_descriptor_t objects;
1333 /* end of the kernel processed data */
1334 NDR_record_t NDR;
1335 vm_info_region_64_t region;
1336 mach_msg_type_number_t objectsCnt;
1337 } __Reply__mach_vm_region_info_64_t __attribute__((unused));
1338#ifdef __MigPackStructs
1339#pragma pack(pop)
1340#endif
1341
1342#ifdef __MigPackStructs
1343#pragma pack(push, 4)
1344#endif
1345 typedef struct {
1346 mach_msg_header_t Head;
1347 /* start of the kernel processed data */
1348 mach_msg_body_t msgh_body;
1349 mach_msg_port_descriptor_t object_name;
1350 /* end of the kernel processed data */
1351 NDR_record_t NDR;
1352 vm_address_t address;
1353 vm_size_t size;
1354 mach_msg_type_number_t infoCnt;
1355 int info[10];
1356 } __Reply__vm_region_64_t __attribute__((unused));
1357#ifdef __MigPackStructs
1358#pragma pack(pop)
1359#endif
1360
1361#ifdef __MigPackStructs
1362#pragma pack(push, 4)
1363#endif
1364 typedef struct {
1365 mach_msg_header_t Head;
1366 /* start of the kernel processed data */
1367 mach_msg_body_t msgh_body;
1368 mach_msg_port_descriptor_t object_handle;
1369 /* end of the kernel processed data */
1370 NDR_record_t NDR;
1371 memory_object_size_t size;
1372 } __Reply__mach_make_memory_entry_64_t __attribute__((unused));
1373#ifdef __MigPackStructs
1374#pragma pack(pop)
1375#endif
1376
1377#ifdef __MigPackStructs
1378#pragma pack(push, 4)
1379#endif
1380 typedef struct {
1381 mach_msg_header_t Head;
1382 NDR_record_t NDR;
1383 kern_return_t RetCode;
1384 vm_address_t address;
1385 } __Reply__vm_map_64_t __attribute__((unused));
1386#ifdef __MigPackStructs
1387#pragma pack(pop)
1388#endif
1389
1390#ifdef __MigPackStructs
1391#pragma pack(push, 4)
1392#endif
1393 typedef struct {
1394 mach_msg_header_t Head;
1395 NDR_record_t NDR;
1396 kern_return_t RetCode;
1397 int state;
1398 } __Reply__vm_purgable_control_t __attribute__((unused));
1399#ifdef __MigPackStructs
1400#pragma pack(pop)
1401#endif
1402
1403#ifdef __MigPackStructs
1404#pragma pack(push, 4)
1405#endif
1406 typedef struct {
1407 mach_msg_header_t Head;
1408 NDR_record_t NDR;
1409 kern_return_t RetCode;
1410 } __Reply__vm_map_exec_lockdown_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 target_address;
1423 vm_prot_t cur_protection;
1424 vm_prot_t max_protection;
1425 } __Reply__vm_remap_new_t __attribute__((unused));
1426#ifdef __MigPackStructs
1427#pragma pack(pop)
1428#endif
1429#endif /* !__Reply__vm_map_subsystem__defined */
1430
1431/* union of all replies */
1432
1433#ifndef __ReplyUnion__vm_map_subsystem__defined
1434#define __ReplyUnion__vm_map_subsystem__defined
1435union __ReplyUnion__vm_map_subsystem {
1436 __Reply__vm_region_t Reply_vm_region;
1437 __Reply__vm_allocate_t Reply_vm_allocate;
1438 __Reply__vm_deallocate_t Reply_vm_deallocate;
1439 __Reply__vm_protect_t Reply_vm_protect;
1440 __Reply__vm_inherit_t Reply_vm_inherit;
1441 __Reply__vm_read_t Reply_vm_read;
1442 __Reply__vm_read_list_t Reply_vm_read_list;
1443 __Reply__vm_write_t Reply_vm_write;
1444 __Reply__vm_copy_t Reply_vm_copy;
1445 __Reply__vm_read_overwrite_t Reply_vm_read_overwrite;
1446 __Reply__vm_msync_t Reply_vm_msync;
1447 __Reply__vm_behavior_set_t Reply_vm_behavior_set;
1448 __Reply__vm_map_t Reply_vm_map;
1449 __Reply__vm_machine_attribute_t Reply_vm_machine_attribute;
1450 __Reply__vm_remap_t Reply_vm_remap;
1451 __Reply__task_wire_t Reply_task_wire;
1452 __Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;
1453 __Reply__vm_map_page_query_t Reply_vm_map_page_query;
1454 __Reply__mach_vm_region_info_t Reply_mach_vm_region_info;
1455 __Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;
1456 __Reply__vm_region_recurse_t Reply_vm_region_recurse;
1457 __Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;
1458 __Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;
1459 __Reply__vm_region_64_t Reply_vm_region_64;
1460 __Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;
1461 __Reply__vm_map_64_t Reply_vm_map_64;
1462 __Reply__vm_purgable_control_t Reply_vm_purgable_control;
1463 __Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;
1464 __Reply__vm_remap_new_t Reply_vm_remap_new;
1465};
1466#endif /* !__RequestUnion__vm_map_subsystem__defined */
1467
1468#ifndef subsystem_to_name_map_vm_map
1469#define subsystem_to_name_map_vm_map \
1470 { "vm_region", 3800 },\
1471 { "vm_allocate", 3801 },\
1472 { "vm_deallocate", 3802 },\
1473 { "vm_protect", 3803 },\
1474 { "vm_inherit", 3804 },\
1475 { "vm_read", 3805 },\
1476 { "vm_read_list", 3806 },\
1477 { "vm_write", 3807 },\
1478 { "vm_copy", 3808 },\
1479 { "vm_read_overwrite", 3809 },\
1480 { "vm_msync", 3810 },\
1481 { "vm_behavior_set", 3811 },\
1482 { "vm_map", 3812 },\
1483 { "vm_machine_attribute", 3813 },\
1484 { "vm_remap", 3814 },\
1485 { "task_wire", 3815 },\
1486 { "mach_make_memory_entry", 3816 },\
1487 { "vm_map_page_query", 3817 },\
1488 { "mach_vm_region_info", 3818 },\
1489 { "vm_mapped_pages_info", 3819 },\
1490 { "vm_region_recurse", 3821 },\
1491 { "vm_region_recurse_64", 3822 },\
1492 { "mach_vm_region_info_64", 3823 },\
1493 { "vm_region_64", 3824 },\
1494 { "mach_make_memory_entry_64", 3825 },\
1495 { "vm_map_64", 3826 },\
1496 { "vm_purgable_control", 3830 },\
1497 { "vm_map_exec_lockdown", 3831 },\
1498 { "vm_remap_new", 3832 }
1499#endif
1500
1501#ifdef __AfterMigUserHeader
1502__AfterMigUserHeader
1503#endif /* __AfterMigUserHeader */
1504
1505#endif /* _vm_map_user_ */
1506