/*
- * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
#include <sys/cdefs.h>
-#if __DARWIN_ALIGN_POWER
-#pragma options align=power
-#endif
+#pragma pack(4)
+
+// LP64todo: all the current tools are 32bit, obviously never worked for 64b
+// so probably should be a real 32b ID vs. ptr.
+// Current users just check for equality
+typedef uint32_t vm32_object_id_t;
/*
* Types defined:
unsigned char share_mode; /* see enumeration */
boolean_t is_submap; /* submap vs obj */
vm_behavior_t behavior; /* access behavior hint */
- vm_offset_t object_id; /* obj/map name, not a handle */
+ vm32_object_id_t object_id; /* obj/map name, not a handle */
unsigned short user_wired_count;
};
unsigned char share_mode; /* see enumeration */
boolean_t is_submap; /* submap vs obj */
vm_behavior_t behavior; /* access behavior hint */
- vm_offset_t object_id; /* obj/map name, not a handle */
+ vm32_object_id_t object_id; /* obj/map name, not a handle */
unsigned short user_wired_count;
};
#define VM_REGION_SUBMAP_INFO_COUNT_64 ((mach_msg_type_number_t) \
(sizeof(vm_region_submap_info_data_64_t)/sizeof(int)))
+struct vm_region_submap_short_info_64 {
+ vm_prot_t protection; /* present access protection */
+ vm_prot_t max_protection; /* max avail through vm_prot */
+ vm_inherit_t inheritance;/* behavior of map/obj on fork */
+ memory_object_offset_t offset; /* offset into object/map */
+ unsigned int user_tag; /* user tag on map entry */
+ unsigned int ref_count; /* obj/map mappers, etc */
+ unsigned short shadow_depth; /* only for obj */
+ unsigned char external_pager; /* only for obj */
+ unsigned char share_mode; /* see enumeration */
+ boolean_t is_submap; /* submap vs obj */
+ vm_behavior_t behavior; /* access behavior hint */
+ vm32_object_id_t object_id; /* obj/map name, not a handle */
+ unsigned short user_wired_count;
+};
+
+typedef struct vm_region_submap_short_info_64 *vm_region_submap_short_info_64_t;
+typedef struct vm_region_submap_short_info_64 vm_region_submap_short_info_data_64_t;
+
+#define VM_REGION_SUBMAP_SHORT_INFO_COUNT_64 ((mach_msg_type_number_t) \
+ (sizeof(vm_region_submap_short_info_data_64_t)/sizeof(int)))
+
+
struct mach_vm_read_entry {
mach_vm_address_t address;
mach_vm_size_t size;
vm_size_t size;
};
+#if VM32_SUPPORT
+struct vm32_read_entry {
+ vm32_address_t address;
+ vm32_size_t size;
+};
+#endif
+
+
#define VM_MAP_ENTRY_MAX (256)
typedef struct mach_vm_read_entry mach_vm_read_entry_t[VM_MAP_ENTRY_MAX];
typedef struct vm_read_entry vm_read_entry_t[VM_MAP_ENTRY_MAX];
-
-#if __DARWIN_ALIGN_POWER
-#pragma options align=reset
+#if VM32_SUPPORT
+typedef struct vm32_read_entry vm32_read_entry_t[VM_MAP_ENTRY_MAX];
#endif
+#pragma pack()
+
+
+#define VM_PAGE_INFO_MAX
+typedef int *vm_page_info_t;
+typedef int vm_page_info_data_t[VM_PAGE_INFO_MAX];
+typedef int vm_page_info_flavor_t;
+
+#define VM_PAGE_INFO_BASIC 1
+struct vm_page_info_basic {
+ int disposition;
+ int ref_count;
+ vm_object_id_t object_id;
+ memory_object_offset_t offset;
+ int depth;
+};
+typedef struct vm_page_info_basic *vm_page_info_basic_t;
+typedef struct vm_page_info_basic vm_page_info_basic_data_t;
+
+#define VM_PAGE_INFO_BASIC_COUNT ((mach_msg_type_number_t) \
+ (sizeof(vm_page_info_basic_data_t)/sizeof(int)))
+
+
#endif /*_MACH_VM_REGION_H_*/