1#ifndef _mach_vm_user_
2#define _mach_vm_user_
3
4/* Module mach_vm */
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 mach_vm_MSG_COUNT
55#define mach_vm_MSG_COUNT 26
56#endif /* mach_vm_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 mach_vm_allocate */
74#ifdef mig_external
75mig_external
76#else
77extern
78#endif /* mig_external */
79kern_return_t mach_vm_allocate
80(
81 vm_map_t target,
82 mach_vm_address_t *address,
83 mach_vm_size_t size,
84 int flags
85);
86
87/* Routine mach_vm_deallocate */
88#ifdef mig_external
89mig_external
90#else
91extern
92#endif /* mig_external */
93kern_return_t mach_vm_deallocate
94(
95 vm_map_t target,
96 mach_vm_address_t address,
97 mach_vm_size_t size
98);
99
100/* Routine mach_vm_protect */
101#ifdef mig_external
102mig_external
103#else
104extern
105#endif /* mig_external */
106kern_return_t mach_vm_protect
107(
108 vm_map_t target_task,
109 mach_vm_address_t address,
110 mach_vm_size_t size,
111 boolean_t set_maximum,
112 vm_prot_t new_protection
113);
114
115/* Routine mach_vm_inherit */
116#ifdef mig_external
117mig_external
118#else
119extern
120#endif /* mig_external */
121kern_return_t mach_vm_inherit
122(
123 vm_map_t target_task,
124 mach_vm_address_t address,
125 mach_vm_size_t size,
126 vm_inherit_t new_inheritance
127);
128
129/* Routine mach_vm_read */
130#ifdef mig_external
131mig_external
132#else
133extern
134#endif /* mig_external */
135kern_return_t mach_vm_read
136(
137 vm_map_read_t target_task,
138 mach_vm_address_t address,
139 mach_vm_size_t size,
140 vm_offset_t *data,
141 mach_msg_type_number_t *dataCnt
142);
143
144/* Routine mach_vm_read_list */
145#ifdef mig_external
146mig_external
147#else
148extern
149#endif /* mig_external */
150kern_return_t mach_vm_read_list
151(
152 vm_map_read_t target_task,
153 mach_vm_read_entry_t data_list,
154 natural_t count
155);
156
157/* Routine mach_vm_write */
158#ifdef mig_external
159mig_external
160#else
161extern
162#endif /* mig_external */
163kern_return_t mach_vm_write
164(
165 vm_map_t target_task,
166 mach_vm_address_t address,
167 vm_offset_t data,
168 mach_msg_type_number_t dataCnt
169);
170
171/* Routine mach_vm_copy */
172#ifdef mig_external
173mig_external
174#else
175extern
176#endif /* mig_external */
177kern_return_t mach_vm_copy
178(
179 vm_map_t target_task,
180 mach_vm_address_t source_address,
181 mach_vm_size_t size,
182 mach_vm_address_t dest_address
183);
184
185/* Routine mach_vm_read_overwrite */
186#ifdef mig_external
187mig_external
188#else
189extern
190#endif /* mig_external */
191kern_return_t mach_vm_read_overwrite
192(
193 vm_map_read_t target_task,
194 mach_vm_address_t address,
195 mach_vm_size_t size,
196 mach_vm_address_t data,
197 mach_vm_size_t *outsize
198);
199
200/* Routine mach_vm_msync */
201#ifdef mig_external
202mig_external
203#else
204extern
205#endif /* mig_external */
206kern_return_t mach_vm_msync
207(
208 vm_map_t target_task,
209 mach_vm_address_t address,
210 mach_vm_size_t size,
211 vm_sync_t sync_flags
212);
213
214/* Routine mach_vm_behavior_set */
215#ifdef mig_external
216mig_external
217#else
218extern
219#endif /* mig_external */
220kern_return_t mach_vm_behavior_set
221(
222 vm_map_t target_task,
223 mach_vm_address_t address,
224 mach_vm_size_t size,
225 vm_behavior_t new_behavior
226);
227
228/* Routine mach_vm_map */
229#ifdef mig_external
230mig_external
231#else
232extern
233#endif /* mig_external */
234kern_return_t mach_vm_map
235(
236 vm_map_t target_task,
237 mach_vm_address_t *address,
238 mach_vm_size_t size,
239 mach_vm_offset_t mask,
240 int flags,
241 mem_entry_name_port_t object,
242 memory_object_offset_t offset,
243 boolean_t copy,
244 vm_prot_t cur_protection,
245 vm_prot_t max_protection,
246 vm_inherit_t inheritance
247);
248
249/* Routine mach_vm_machine_attribute */
250#ifdef mig_external
251mig_external
252#else
253extern
254#endif /* mig_external */
255kern_return_t mach_vm_machine_attribute
256(
257 vm_map_t target_task,
258 mach_vm_address_t address,
259 mach_vm_size_t size,
260 vm_machine_attribute_t attribute,
261 vm_machine_attribute_val_t *value
262);
263
264/* Routine mach_vm_remap */
265#ifdef mig_external
266mig_external
267#else
268extern
269#endif /* mig_external */
270kern_return_t mach_vm_remap
271(
272 vm_map_t target_task,
273 mach_vm_address_t *target_address,
274 mach_vm_size_t size,
275 mach_vm_offset_t mask,
276 int flags,
277 vm_map_t src_task,
278 mach_vm_address_t src_address,
279 boolean_t copy,
280 vm_prot_t *cur_protection,
281 vm_prot_t *max_protection,
282 vm_inherit_t inheritance
283);
284
285/* Routine mach_vm_page_query */
286#ifdef mig_external
287mig_external
288#else
289extern
290#endif /* mig_external */
291kern_return_t mach_vm_page_query
292(
293 vm_map_read_t target_map,
294 mach_vm_offset_t offset,
295 integer_t *disposition,
296 integer_t *ref_count
297);
298
299/* Routine mach_vm_region_recurse */
300#ifdef mig_external
301mig_external
302#else
303extern
304#endif /* mig_external */
305kern_return_t mach_vm_region_recurse
306(
307 vm_map_read_t target_task,
308 mach_vm_address_t *address,
309 mach_vm_size_t *size,
310 natural_t *nesting_depth,
311 vm_region_recurse_info_t info,
312 mach_msg_type_number_t *infoCnt
313);
314
315/* Routine mach_vm_region */
316#ifdef mig_external
317mig_external
318#else
319extern
320#endif /* mig_external */
321kern_return_t mach_vm_region
322(
323 vm_map_read_t target_task,
324 mach_vm_address_t *address,
325 mach_vm_size_t *size,
326 vm_region_flavor_t flavor,
327 vm_region_info_t info,
328 mach_msg_type_number_t *infoCnt,
329 mach_port_t *object_name
330);
331
332/* Routine _mach_make_memory_entry */
333#ifdef mig_external
334mig_external
335#else
336extern
337#endif /* mig_external */
338kern_return_t _mach_make_memory_entry
339(
340 vm_map_t target_task,
341 memory_object_size_t *size,
342 memory_object_offset_t offset,
343 vm_prot_t permission,
344 mem_entry_name_port_t *object_handle,
345 mem_entry_name_port_t parent_handle
346);
347
348/* Routine mach_vm_purgable_control */
349#ifdef mig_external
350mig_external
351#else
352extern
353#endif /* mig_external */
354kern_return_t mach_vm_purgable_control
355(
356 vm_map_t target_task,
357 mach_vm_address_t address,
358 vm_purgable_t control,
359 int *state
360);
361
362/* Routine mach_vm_page_info */
363#ifdef mig_external
364mig_external
365#else
366extern
367#endif /* mig_external */
368kern_return_t mach_vm_page_info
369(
370 vm_map_read_t target_task,
371 mach_vm_address_t address,
372 vm_page_info_flavor_t flavor,
373 vm_page_info_t info,
374 mach_msg_type_number_t *infoCnt
375);
376
377/* Routine mach_vm_page_range_query */
378#ifdef mig_external
379mig_external
380#else
381extern
382#endif /* mig_external */
383kern_return_t mach_vm_page_range_query
384(
385 vm_map_read_t target_map,
386 mach_vm_offset_t address,
387 mach_vm_size_t size,
388 mach_vm_address_t dispositions,
389 mach_vm_size_t *dispositions_count
390);
391
392/* Routine mach_vm_remap_new */
393#ifdef mig_external
394mig_external
395#else
396extern
397#endif /* mig_external */
398kern_return_t mach_vm_remap_new
399(
400 vm_map_t target_task,
401 mach_vm_address_t *target_address,
402 mach_vm_size_t size,
403 mach_vm_offset_t mask,
404 int flags,
405 vm_map_read_t src_task,
406 mach_vm_address_t src_address,
407 boolean_t copy,
408 vm_prot_t *cur_protection,
409 vm_prot_t *max_protection,
410 vm_inherit_t inheritance
411);
412
413/* Routine mach_vm_deferred_reclamation_buffer_init */
414#ifdef mig_external
415mig_external
416#else
417extern
418#endif /* mig_external */
419kern_return_t mach_vm_deferred_reclamation_buffer_init
420(
421 task_t target_task,
422 mach_vm_offset_t address,
423 mach_vm_size_t size
424);
425
426/* Routine mach_vm_deferred_reclamation_buffer_synchronize */
427#ifdef mig_external
428mig_external
429#else
430extern
431#endif /* mig_external */
432kern_return_t mach_vm_deferred_reclamation_buffer_synchronize
433(
434 task_t target_task,
435 mach_vm_size_t num_entries_to_reclaim
436);
437
438/* Routine mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes */
439#ifdef mig_external
440mig_external
441#else
442extern
443#endif /* mig_external */
444kern_return_t mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes
445(
446 task_t target_task,
447 mach_vm_size_t reclaimable_bytes
448);
449
450/* Routine mach_vm_range_create */
451#ifdef mig_external
452mig_external
453#else
454extern
455#endif /* mig_external */
456kern_return_t mach_vm_range_create
457(
458 vm_map_t target_task,
459 mach_vm_range_flavor_t flavor,
460 mach_vm_range_recipes_raw_t recipes,
461 mach_msg_type_number_t recipesCnt
462);
463
464__END_DECLS
465
466/********************** Caution **************************/
467/* The following data types should be used to calculate */
468/* maximum message sizes only. The actual message may be */
469/* smaller, and the position of the arguments within the */
470/* message layout may vary from what is presented here. */
471/* For example, if any of the arguments are variable- */
472/* sized, and less than the maximum is sent, the data */
473/* will be packed tight in the actual message to reduce */
474/* the presence of holes. */
475/********************** Caution **************************/
476
477/* typedefs for all requests */
478
479#ifndef __Request__mach_vm_subsystem__defined
480#define __Request__mach_vm_subsystem__defined
481
482#ifdef __MigPackStructs
483#pragma pack(push, 4)
484#endif
485 typedef struct {
486 mach_msg_header_t Head;
487 NDR_record_t NDR;
488 mach_vm_address_t address;
489 mach_vm_size_t size;
490 int flags;
491 } __Request__mach_vm_allocate_t __attribute__((unused));
492#ifdef __MigPackStructs
493#pragma pack(pop)
494#endif
495
496#ifdef __MigPackStructs
497#pragma pack(push, 4)
498#endif
499 typedef struct {
500 mach_msg_header_t Head;
501 NDR_record_t NDR;
502 mach_vm_address_t address;
503 mach_vm_size_t size;
504 } __Request__mach_vm_deallocate_t __attribute__((unused));
505#ifdef __MigPackStructs
506#pragma pack(pop)
507#endif
508
509#ifdef __MigPackStructs
510#pragma pack(push, 4)
511#endif
512 typedef struct {
513 mach_msg_header_t Head;
514 NDR_record_t NDR;
515 mach_vm_address_t address;
516 mach_vm_size_t size;
517 boolean_t set_maximum;
518 vm_prot_t new_protection;
519 } __Request__mach_vm_protect_t __attribute__((unused));
520#ifdef __MigPackStructs
521#pragma pack(pop)
522#endif
523
524#ifdef __MigPackStructs
525#pragma pack(push, 4)
526#endif
527 typedef struct {
528 mach_msg_header_t Head;
529 NDR_record_t NDR;
530 mach_vm_address_t address;
531 mach_vm_size_t size;
532 vm_inherit_t new_inheritance;
533 } __Request__mach_vm_inherit_t __attribute__((unused));
534#ifdef __MigPackStructs
535#pragma pack(pop)
536#endif
537
538#ifdef __MigPackStructs
539#pragma pack(push, 4)
540#endif
541 typedef struct {
542 mach_msg_header_t Head;
543 NDR_record_t NDR;
544 mach_vm_address_t address;
545 mach_vm_size_t size;
546 } __Request__mach_vm_read_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 mach_vm_read_entry_t data_list;
558 natural_t count;
559 } __Request__mach_vm_read_list_t __attribute__((unused));
560#ifdef __MigPackStructs
561#pragma pack(pop)
562#endif
563
564#ifdef __MigPackStructs
565#pragma pack(push, 4)
566#endif
567 typedef struct {
568 mach_msg_header_t Head;
569 /* start of the kernel processed data */
570 mach_msg_body_t msgh_body;
571 mach_msg_ool_descriptor_t data;
572 /* end of the kernel processed data */
573 NDR_record_t NDR;
574 mach_vm_address_t address;
575 mach_msg_type_number_t dataCnt;
576 } __Request__mach_vm_write_t __attribute__((unused));
577#ifdef __MigPackStructs
578#pragma pack(pop)
579#endif
580
581#ifdef __MigPackStructs
582#pragma pack(push, 4)
583#endif
584 typedef struct {
585 mach_msg_header_t Head;
586 NDR_record_t NDR;
587 mach_vm_address_t source_address;
588 mach_vm_size_t size;
589 mach_vm_address_t dest_address;
590 } __Request__mach_vm_copy_t __attribute__((unused));
591#ifdef __MigPackStructs
592#pragma pack(pop)
593#endif
594
595#ifdef __MigPackStructs
596#pragma pack(push, 4)
597#endif
598 typedef struct {
599 mach_msg_header_t Head;
600 NDR_record_t NDR;
601 mach_vm_address_t address;
602 mach_vm_size_t size;
603 mach_vm_address_t data;
604 } __Request__mach_vm_read_overwrite_t __attribute__((unused));
605#ifdef __MigPackStructs
606#pragma pack(pop)
607#endif
608
609#ifdef __MigPackStructs
610#pragma pack(push, 4)
611#endif
612 typedef struct {
613 mach_msg_header_t Head;
614 NDR_record_t NDR;
615 mach_vm_address_t address;
616 mach_vm_size_t size;
617 vm_sync_t sync_flags;
618 } __Request__mach_vm_msync_t __attribute__((unused));
619#ifdef __MigPackStructs
620#pragma pack(pop)
621#endif
622
623#ifdef __MigPackStructs
624#pragma pack(push, 4)
625#endif
626 typedef struct {
627 mach_msg_header_t Head;
628 NDR_record_t NDR;
629 mach_vm_address_t address;
630 mach_vm_size_t size;
631 vm_behavior_t new_behavior;
632 } __Request__mach_vm_behavior_set_t __attribute__((unused));
633#ifdef __MigPackStructs
634#pragma pack(pop)
635#endif
636
637#ifdef __MigPackStructs
638#pragma pack(push, 4)
639#endif
640 typedef struct {
641 mach_msg_header_t Head;
642 /* start of the kernel processed data */
643 mach_msg_body_t msgh_body;
644 mach_msg_port_descriptor_t object;
645 /* end of the kernel processed data */
646 NDR_record_t NDR;
647 mach_vm_address_t address;
648 mach_vm_size_t size;
649 mach_vm_offset_t mask;
650 int flags;
651 memory_object_offset_t offset;
652 boolean_t copy;
653 vm_prot_t cur_protection;
654 vm_prot_t max_protection;
655 vm_inherit_t inheritance;
656 } __Request__mach_vm_map_t __attribute__((unused));
657#ifdef __MigPackStructs
658#pragma pack(pop)
659#endif
660
661#ifdef __MigPackStructs
662#pragma pack(push, 4)
663#endif
664 typedef struct {
665 mach_msg_header_t Head;
666 NDR_record_t NDR;
667 mach_vm_address_t address;
668 mach_vm_size_t size;
669 vm_machine_attribute_t attribute;
670 vm_machine_attribute_val_t value;
671 } __Request__mach_vm_machine_attribute_t __attribute__((unused));
672#ifdef __MigPackStructs
673#pragma pack(pop)
674#endif
675
676#ifdef __MigPackStructs
677#pragma pack(push, 4)
678#endif
679 typedef struct {
680 mach_msg_header_t Head;
681 /* start of the kernel processed data */
682 mach_msg_body_t msgh_body;
683 mach_msg_port_descriptor_t src_task;
684 /* end of the kernel processed data */
685 NDR_record_t NDR;
686 mach_vm_address_t target_address;
687 mach_vm_size_t size;
688 mach_vm_offset_t mask;
689 int flags;
690 mach_vm_address_t src_address;
691 boolean_t copy;
692 vm_inherit_t inheritance;
693 } __Request__mach_vm_remap_t __attribute__((unused));
694#ifdef __MigPackStructs
695#pragma pack(pop)
696#endif
697
698#ifdef __MigPackStructs
699#pragma pack(push, 4)
700#endif
701 typedef struct {
702 mach_msg_header_t Head;
703 NDR_record_t NDR;
704 mach_vm_offset_t offset;
705 } __Request__mach_vm_page_query_t __attribute__((unused));
706#ifdef __MigPackStructs
707#pragma pack(pop)
708#endif
709
710#ifdef __MigPackStructs
711#pragma pack(push, 4)
712#endif
713 typedef struct {
714 mach_msg_header_t Head;
715 NDR_record_t NDR;
716 mach_vm_address_t address;
717 natural_t nesting_depth;
718 mach_msg_type_number_t infoCnt;
719 } __Request__mach_vm_region_recurse_t __attribute__((unused));
720#ifdef __MigPackStructs
721#pragma pack(pop)
722#endif
723
724#ifdef __MigPackStructs
725#pragma pack(push, 4)
726#endif
727 typedef struct {
728 mach_msg_header_t Head;
729 NDR_record_t NDR;
730 mach_vm_address_t address;
731 vm_region_flavor_t flavor;
732 mach_msg_type_number_t infoCnt;
733 } __Request__mach_vm_region_t __attribute__((unused));
734#ifdef __MigPackStructs
735#pragma pack(pop)
736#endif
737
738#ifdef __MigPackStructs
739#pragma pack(push, 4)
740#endif
741 typedef struct {
742 mach_msg_header_t Head;
743 /* start of the kernel processed data */
744 mach_msg_body_t msgh_body;
745 mach_msg_port_descriptor_t parent_handle;
746 /* end of the kernel processed data */
747 NDR_record_t NDR;
748 memory_object_size_t size;
749 memory_object_offset_t offset;
750 vm_prot_t permission;
751 } __Request___mach_make_memory_entry_t __attribute__((unused));
752#ifdef __MigPackStructs
753#pragma pack(pop)
754#endif
755
756#ifdef __MigPackStructs
757#pragma pack(push, 4)
758#endif
759 typedef struct {
760 mach_msg_header_t Head;
761 NDR_record_t NDR;
762 mach_vm_address_t address;
763 vm_purgable_t control;
764 int state;
765 } __Request__mach_vm_purgable_control_t __attribute__((unused));
766#ifdef __MigPackStructs
767#pragma pack(pop)
768#endif
769
770#ifdef __MigPackStructs
771#pragma pack(push, 4)
772#endif
773 typedef struct {
774 mach_msg_header_t Head;
775 NDR_record_t NDR;
776 mach_vm_address_t address;
777 vm_page_info_flavor_t flavor;
778 mach_msg_type_number_t infoCnt;
779 } __Request__mach_vm_page_info_t __attribute__((unused));
780#ifdef __MigPackStructs
781#pragma pack(pop)
782#endif
783
784#ifdef __MigPackStructs
785#pragma pack(push, 4)
786#endif
787 typedef struct {
788 mach_msg_header_t Head;
789 NDR_record_t NDR;
790 mach_vm_offset_t address;
791 mach_vm_size_t size;
792 mach_vm_address_t dispositions;
793 mach_vm_size_t dispositions_count;
794 } __Request__mach_vm_page_range_query_t __attribute__((unused));
795#ifdef __MigPackStructs
796#pragma pack(pop)
797#endif
798
799#ifdef __MigPackStructs
800#pragma pack(push, 4)
801#endif
802 typedef struct {
803 mach_msg_header_t Head;
804 /* start of the kernel processed data */
805 mach_msg_body_t msgh_body;
806 mach_msg_port_descriptor_t src_task;
807 /* end of the kernel processed data */
808 NDR_record_t NDR;
809 mach_vm_address_t target_address;
810 mach_vm_size_t size;
811 mach_vm_offset_t mask;
812 int flags;
813 mach_vm_address_t src_address;
814 boolean_t copy;
815 vm_prot_t cur_protection;
816 vm_prot_t max_protection;
817 vm_inherit_t inheritance;
818 } __Request__mach_vm_remap_new_t __attribute__((unused));
819#ifdef __MigPackStructs
820#pragma pack(pop)
821#endif
822
823#ifdef __MigPackStructs
824#pragma pack(push, 4)
825#endif
826 typedef struct {
827 mach_msg_header_t Head;
828 NDR_record_t NDR;
829 mach_vm_offset_t address;
830 mach_vm_size_t size;
831 } __Request__mach_vm_deferred_reclamation_buffer_init_t __attribute__((unused));
832#ifdef __MigPackStructs
833#pragma pack(pop)
834#endif
835
836#ifdef __MigPackStructs
837#pragma pack(push, 4)
838#endif
839 typedef struct {
840 mach_msg_header_t Head;
841 NDR_record_t NDR;
842 mach_vm_size_t num_entries_to_reclaim;
843 } __Request__mach_vm_deferred_reclamation_buffer_synchronize_t __attribute__((unused));
844#ifdef __MigPackStructs
845#pragma pack(pop)
846#endif
847
848#ifdef __MigPackStructs
849#pragma pack(push, 4)
850#endif
851 typedef struct {
852 mach_msg_header_t Head;
853 NDR_record_t NDR;
854 mach_vm_size_t reclaimable_bytes;
855 } __Request__mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes_t __attribute__((unused));
856#ifdef __MigPackStructs
857#pragma pack(pop)
858#endif
859
860#ifdef __MigPackStructs
861#pragma pack(push, 4)
862#endif
863 typedef struct {
864 mach_msg_header_t Head;
865 NDR_record_t NDR;
866 mach_vm_range_flavor_t flavor;
867 mach_msg_type_number_t recipesCnt;
868 uint8_t recipes[1024];
869 } __Request__mach_vm_range_create_t __attribute__((unused));
870#ifdef __MigPackStructs
871#pragma pack(pop)
872#endif
873#endif /* !__Request__mach_vm_subsystem__defined */
874
875/* union of all requests */
876
877#ifndef __RequestUnion__mach_vm_subsystem__defined
878#define __RequestUnion__mach_vm_subsystem__defined
879union __RequestUnion__mach_vm_subsystem {
880 __Request__mach_vm_allocate_t Request_mach_vm_allocate;
881 __Request__mach_vm_deallocate_t Request_mach_vm_deallocate;
882 __Request__mach_vm_protect_t Request_mach_vm_protect;
883 __Request__mach_vm_inherit_t Request_mach_vm_inherit;
884 __Request__mach_vm_read_t Request_mach_vm_read;
885 __Request__mach_vm_read_list_t Request_mach_vm_read_list;
886 __Request__mach_vm_write_t Request_mach_vm_write;
887 __Request__mach_vm_copy_t Request_mach_vm_copy;
888 __Request__mach_vm_read_overwrite_t Request_mach_vm_read_overwrite;
889 __Request__mach_vm_msync_t Request_mach_vm_msync;
890 __Request__mach_vm_behavior_set_t Request_mach_vm_behavior_set;
891 __Request__mach_vm_map_t Request_mach_vm_map;
892 __Request__mach_vm_machine_attribute_t Request_mach_vm_machine_attribute;
893 __Request__mach_vm_remap_t Request_mach_vm_remap;
894 __Request__mach_vm_page_query_t Request_mach_vm_page_query;
895 __Request__mach_vm_region_recurse_t Request_mach_vm_region_recurse;
896 __Request__mach_vm_region_t Request_mach_vm_region;
897 __Request___mach_make_memory_entry_t Request__mach_make_memory_entry;
898 __Request__mach_vm_purgable_control_t Request_mach_vm_purgable_control;
899 __Request__mach_vm_page_info_t Request_mach_vm_page_info;
900 __Request__mach_vm_page_range_query_t Request_mach_vm_page_range_query;
901 __Request__mach_vm_remap_new_t Request_mach_vm_remap_new;
902 __Request__mach_vm_deferred_reclamation_buffer_init_t Request_mach_vm_deferred_reclamation_buffer_init;
903 __Request__mach_vm_deferred_reclamation_buffer_synchronize_t Request_mach_vm_deferred_reclamation_buffer_synchronize;
904 __Request__mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes_t Request_mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes;
905 __Request__mach_vm_range_create_t Request_mach_vm_range_create;
906};
907#endif /* !__RequestUnion__mach_vm_subsystem__defined */
908/* typedefs for all replies */
909
910#ifndef __Reply__mach_vm_subsystem__defined
911#define __Reply__mach_vm_subsystem__defined
912
913#ifdef __MigPackStructs
914#pragma pack(push, 4)
915#endif
916 typedef struct {
917 mach_msg_header_t Head;
918 NDR_record_t NDR;
919 kern_return_t RetCode;
920 mach_vm_address_t address;
921 } __Reply__mach_vm_allocate_t __attribute__((unused));
922#ifdef __MigPackStructs
923#pragma pack(pop)
924#endif
925
926#ifdef __MigPackStructs
927#pragma pack(push, 4)
928#endif
929 typedef struct {
930 mach_msg_header_t Head;
931 NDR_record_t NDR;
932 kern_return_t RetCode;
933 } __Reply__mach_vm_deallocate_t __attribute__((unused));
934#ifdef __MigPackStructs
935#pragma pack(pop)
936#endif
937
938#ifdef __MigPackStructs
939#pragma pack(push, 4)
940#endif
941 typedef struct {
942 mach_msg_header_t Head;
943 NDR_record_t NDR;
944 kern_return_t RetCode;
945 } __Reply__mach_vm_protect_t __attribute__((unused));
946#ifdef __MigPackStructs
947#pragma pack(pop)
948#endif
949
950#ifdef __MigPackStructs
951#pragma pack(push, 4)
952#endif
953 typedef struct {
954 mach_msg_header_t Head;
955 NDR_record_t NDR;
956 kern_return_t RetCode;
957 } __Reply__mach_vm_inherit_t __attribute__((unused));
958#ifdef __MigPackStructs
959#pragma pack(pop)
960#endif
961
962#ifdef __MigPackStructs
963#pragma pack(push, 4)
964#endif
965 typedef struct {
966 mach_msg_header_t Head;
967 /* start of the kernel processed data */
968 mach_msg_body_t msgh_body;
969 mach_msg_ool_descriptor_t data;
970 /* end of the kernel processed data */
971 NDR_record_t NDR;
972 mach_msg_type_number_t dataCnt;
973 } __Reply__mach_vm_read_t __attribute__((unused));
974#ifdef __MigPackStructs
975#pragma pack(pop)
976#endif
977
978#ifdef __MigPackStructs
979#pragma pack(push, 4)
980#endif
981 typedef struct {
982 mach_msg_header_t Head;
983 NDR_record_t NDR;
984 kern_return_t RetCode;
985 mach_vm_read_entry_t data_list;
986 } __Reply__mach_vm_read_list_t __attribute__((unused));
987#ifdef __MigPackStructs
988#pragma pack(pop)
989#endif
990
991#ifdef __MigPackStructs
992#pragma pack(push, 4)
993#endif
994 typedef struct {
995 mach_msg_header_t Head;
996 NDR_record_t NDR;
997 kern_return_t RetCode;
998 } __Reply__mach_vm_write_t __attribute__((unused));
999#ifdef __MigPackStructs
1000#pragma pack(pop)
1001#endif
1002
1003#ifdef __MigPackStructs
1004#pragma pack(push, 4)
1005#endif
1006 typedef struct {
1007 mach_msg_header_t Head;
1008 NDR_record_t NDR;
1009 kern_return_t RetCode;
1010 } __Reply__mach_vm_copy_t __attribute__((unused));
1011#ifdef __MigPackStructs
1012#pragma pack(pop)
1013#endif
1014
1015#ifdef __MigPackStructs
1016#pragma pack(push, 4)
1017#endif
1018 typedef struct {
1019 mach_msg_header_t Head;
1020 NDR_record_t NDR;
1021 kern_return_t RetCode;
1022 mach_vm_size_t outsize;
1023 } __Reply__mach_vm_read_overwrite_t __attribute__((unused));
1024#ifdef __MigPackStructs
1025#pragma pack(pop)
1026#endif
1027
1028#ifdef __MigPackStructs
1029#pragma pack(push, 4)
1030#endif
1031 typedef struct {
1032 mach_msg_header_t Head;
1033 NDR_record_t NDR;
1034 kern_return_t RetCode;
1035 } __Reply__mach_vm_msync_t __attribute__((unused));
1036#ifdef __MigPackStructs
1037#pragma pack(pop)
1038#endif
1039
1040#ifdef __MigPackStructs
1041#pragma pack(push, 4)
1042#endif
1043 typedef struct {
1044 mach_msg_header_t Head;
1045 NDR_record_t NDR;
1046 kern_return_t RetCode;
1047 } __Reply__mach_vm_behavior_set_t __attribute__((unused));
1048#ifdef __MigPackStructs
1049#pragma pack(pop)
1050#endif
1051
1052#ifdef __MigPackStructs
1053#pragma pack(push, 4)
1054#endif
1055 typedef struct {
1056 mach_msg_header_t Head;
1057 NDR_record_t NDR;
1058 kern_return_t RetCode;
1059 mach_vm_address_t address;
1060 } __Reply__mach_vm_map_t __attribute__((unused));
1061#ifdef __MigPackStructs
1062#pragma pack(pop)
1063#endif
1064
1065#ifdef __MigPackStructs
1066#pragma pack(push, 4)
1067#endif
1068 typedef struct {
1069 mach_msg_header_t Head;
1070 NDR_record_t NDR;
1071 kern_return_t RetCode;
1072 vm_machine_attribute_val_t value;
1073 } __Reply__mach_vm_machine_attribute_t __attribute__((unused));
1074#ifdef __MigPackStructs
1075#pragma pack(pop)
1076#endif
1077
1078#ifdef __MigPackStructs
1079#pragma pack(push, 4)
1080#endif
1081 typedef struct {
1082 mach_msg_header_t Head;
1083 NDR_record_t NDR;
1084 kern_return_t RetCode;
1085 mach_vm_address_t target_address;
1086 vm_prot_t cur_protection;
1087 vm_prot_t max_protection;
1088 } __Reply__mach_vm_remap_t __attribute__((unused));
1089#ifdef __MigPackStructs
1090#pragma pack(pop)
1091#endif
1092
1093#ifdef __MigPackStructs
1094#pragma pack(push, 4)
1095#endif
1096 typedef struct {
1097 mach_msg_header_t Head;
1098 NDR_record_t NDR;
1099 kern_return_t RetCode;
1100 integer_t disposition;
1101 integer_t ref_count;
1102 } __Reply__mach_vm_page_query_t __attribute__((unused));
1103#ifdef __MigPackStructs
1104#pragma pack(pop)
1105#endif
1106
1107#ifdef __MigPackStructs
1108#pragma pack(push, 4)
1109#endif
1110 typedef struct {
1111 mach_msg_header_t Head;
1112 NDR_record_t NDR;
1113 kern_return_t RetCode;
1114 mach_vm_address_t address;
1115 mach_vm_size_t size;
1116 natural_t nesting_depth;
1117 mach_msg_type_number_t infoCnt;
1118 int info[19];
1119 } __Reply__mach_vm_region_recurse_t __attribute__((unused));
1120#ifdef __MigPackStructs
1121#pragma pack(pop)
1122#endif
1123
1124#ifdef __MigPackStructs
1125#pragma pack(push, 4)
1126#endif
1127 typedef struct {
1128 mach_msg_header_t Head;
1129 /* start of the kernel processed data */
1130 mach_msg_body_t msgh_body;
1131 mach_msg_port_descriptor_t object_name;
1132 /* end of the kernel processed data */
1133 NDR_record_t NDR;
1134 mach_vm_address_t address;
1135 mach_vm_size_t size;
1136 mach_msg_type_number_t infoCnt;
1137 int info[10];
1138 } __Reply__mach_vm_region_t __attribute__((unused));
1139#ifdef __MigPackStructs
1140#pragma pack(pop)
1141#endif
1142
1143#ifdef __MigPackStructs
1144#pragma pack(push, 4)
1145#endif
1146 typedef struct {
1147 mach_msg_header_t Head;
1148 /* start of the kernel processed data */
1149 mach_msg_body_t msgh_body;
1150 mach_msg_port_descriptor_t object_handle;
1151 /* end of the kernel processed data */
1152 NDR_record_t NDR;
1153 memory_object_size_t size;
1154 } __Reply___mach_make_memory_entry_t __attribute__((unused));
1155#ifdef __MigPackStructs
1156#pragma pack(pop)
1157#endif
1158
1159#ifdef __MigPackStructs
1160#pragma pack(push, 4)
1161#endif
1162 typedef struct {
1163 mach_msg_header_t Head;
1164 NDR_record_t NDR;
1165 kern_return_t RetCode;
1166 int state;
1167 } __Reply__mach_vm_purgable_control_t __attribute__((unused));
1168#ifdef __MigPackStructs
1169#pragma pack(pop)
1170#endif
1171
1172#ifdef __MigPackStructs
1173#pragma pack(push, 4)
1174#endif
1175 typedef struct {
1176 mach_msg_header_t Head;
1177 NDR_record_t NDR;
1178 kern_return_t RetCode;
1179 mach_msg_type_number_t infoCnt;
1180 int info[32];
1181 } __Reply__mach_vm_page_info_t __attribute__((unused));
1182#ifdef __MigPackStructs
1183#pragma pack(pop)
1184#endif
1185
1186#ifdef __MigPackStructs
1187#pragma pack(push, 4)
1188#endif
1189 typedef struct {
1190 mach_msg_header_t Head;
1191 NDR_record_t NDR;
1192 kern_return_t RetCode;
1193 mach_vm_size_t dispositions_count;
1194 } __Reply__mach_vm_page_range_query_t __attribute__((unused));
1195#ifdef __MigPackStructs
1196#pragma pack(pop)
1197#endif
1198
1199#ifdef __MigPackStructs
1200#pragma pack(push, 4)
1201#endif
1202 typedef struct {
1203 mach_msg_header_t Head;
1204 NDR_record_t NDR;
1205 kern_return_t RetCode;
1206 mach_vm_address_t target_address;
1207 vm_prot_t cur_protection;
1208 vm_prot_t max_protection;
1209 } __Reply__mach_vm_remap_new_t __attribute__((unused));
1210#ifdef __MigPackStructs
1211#pragma pack(pop)
1212#endif
1213
1214#ifdef __MigPackStructs
1215#pragma pack(push, 4)
1216#endif
1217 typedef struct {
1218 mach_msg_header_t Head;
1219 NDR_record_t NDR;
1220 kern_return_t RetCode;
1221 } __Reply__mach_vm_deferred_reclamation_buffer_init_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 } __Reply__mach_vm_deferred_reclamation_buffer_synchronize_t __attribute__((unused));
1234#ifdef __MigPackStructs
1235#pragma pack(pop)
1236#endif
1237
1238#ifdef __MigPackStructs
1239#pragma pack(push, 4)
1240#endif
1241 typedef struct {
1242 mach_msg_header_t Head;
1243 NDR_record_t NDR;
1244 kern_return_t RetCode;
1245 } __Reply__mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes_t __attribute__((unused));
1246#ifdef __MigPackStructs
1247#pragma pack(pop)
1248#endif
1249
1250#ifdef __MigPackStructs
1251#pragma pack(push, 4)
1252#endif
1253 typedef struct {
1254 mach_msg_header_t Head;
1255 NDR_record_t NDR;
1256 kern_return_t RetCode;
1257 } __Reply__mach_vm_range_create_t __attribute__((unused));
1258#ifdef __MigPackStructs
1259#pragma pack(pop)
1260#endif
1261#endif /* !__Reply__mach_vm_subsystem__defined */
1262
1263/* union of all replies */
1264
1265#ifndef __ReplyUnion__mach_vm_subsystem__defined
1266#define __ReplyUnion__mach_vm_subsystem__defined
1267union __ReplyUnion__mach_vm_subsystem {
1268 __Reply__mach_vm_allocate_t Reply_mach_vm_allocate;
1269 __Reply__mach_vm_deallocate_t Reply_mach_vm_deallocate;
1270 __Reply__mach_vm_protect_t Reply_mach_vm_protect;
1271 __Reply__mach_vm_inherit_t Reply_mach_vm_inherit;
1272 __Reply__mach_vm_read_t Reply_mach_vm_read;
1273 __Reply__mach_vm_read_list_t Reply_mach_vm_read_list;
1274 __Reply__mach_vm_write_t Reply_mach_vm_write;
1275 __Reply__mach_vm_copy_t Reply_mach_vm_copy;
1276 __Reply__mach_vm_read_overwrite_t Reply_mach_vm_read_overwrite;
1277 __Reply__mach_vm_msync_t Reply_mach_vm_msync;
1278 __Reply__mach_vm_behavior_set_t Reply_mach_vm_behavior_set;
1279 __Reply__mach_vm_map_t Reply_mach_vm_map;
1280 __Reply__mach_vm_machine_attribute_t Reply_mach_vm_machine_attribute;
1281 __Reply__mach_vm_remap_t Reply_mach_vm_remap;
1282 __Reply__mach_vm_page_query_t Reply_mach_vm_page_query;
1283 __Reply__mach_vm_region_recurse_t Reply_mach_vm_region_recurse;
1284 __Reply__mach_vm_region_t Reply_mach_vm_region;
1285 __Reply___mach_make_memory_entry_t Reply__mach_make_memory_entry;
1286 __Reply__mach_vm_purgable_control_t Reply_mach_vm_purgable_control;
1287 __Reply__mach_vm_page_info_t Reply_mach_vm_page_info;
1288 __Reply__mach_vm_page_range_query_t Reply_mach_vm_page_range_query;
1289 __Reply__mach_vm_remap_new_t Reply_mach_vm_remap_new;
1290 __Reply__mach_vm_deferred_reclamation_buffer_init_t Reply_mach_vm_deferred_reclamation_buffer_init;
1291 __Reply__mach_vm_deferred_reclamation_buffer_synchronize_t Reply_mach_vm_deferred_reclamation_buffer_synchronize;
1292 __Reply__mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes_t Reply_mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes;
1293 __Reply__mach_vm_range_create_t Reply_mach_vm_range_create;
1294};
1295#endif /* !__RequestUnion__mach_vm_subsystem__defined */
1296
1297#ifndef subsystem_to_name_map_mach_vm
1298#define subsystem_to_name_map_mach_vm \
1299 { "mach_vm_allocate", 4800 },\
1300 { "mach_vm_deallocate", 4801 },\
1301 { "mach_vm_protect", 4802 },\
1302 { "mach_vm_inherit", 4803 },\
1303 { "mach_vm_read", 4804 },\
1304 { "mach_vm_read_list", 4805 },\
1305 { "mach_vm_write", 4806 },\
1306 { "mach_vm_copy", 4807 },\
1307 { "mach_vm_read_overwrite", 4808 },\
1308 { "mach_vm_msync", 4809 },\
1309 { "mach_vm_behavior_set", 4810 },\
1310 { "mach_vm_map", 4811 },\
1311 { "mach_vm_machine_attribute", 4812 },\
1312 { "mach_vm_remap", 4813 },\
1313 { "mach_vm_page_query", 4814 },\
1314 { "mach_vm_region_recurse", 4815 },\
1315 { "mach_vm_region", 4816 },\
1316 { "_mach_make_memory_entry", 4817 },\
1317 { "mach_vm_purgable_control", 4818 },\
1318 { "mach_vm_page_info", 4819 },\
1319 { "mach_vm_page_range_query", 4820 },\
1320 { "mach_vm_remap_new", 4821 },\
1321 { "mach_vm_deferred_reclamation_buffer_init", 4822 },\
1322 { "mach_vm_deferred_reclamation_buffer_synchronize", 4823 },\
1323 { "mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes", 4824 },\
1324 { "mach_vm_range_create", 4825 }
1325#endif
1326
1327#ifdef __AfterMigUserHeader
1328__AfterMigUserHeader
1329#endif /* __AfterMigUserHeader */
1330
1331#endif /* _mach_vm_user_ */
1332