- natural_t zero_fill_count; /* # of zero fill pages */
- natural_t reactivations; /* # of pages reactivated */
- natural_t pageins; /* # of pageins */
- natural_t pageouts; /* # of pageouts */
- natural_t faults; /* # of faults */
- natural_t cow_faults; /* # of copy-on-writes */
- natural_t lookups; /* object cache lookups */
- natural_t hits; /* object cache hits */
-};
+ uint64_t zero_fill_count; /* # of zero fill pages */
+ uint64_t reactivations; /* # of pages reactivated */
+ uint64_t pageins; /* # of pageins */
+ uint64_t pageouts; /* # of pageouts */
+ uint64_t faults; /* # of faults */
+ uint64_t cow_faults; /* # of copy-on-writes */
+ uint64_t lookups; /* object cache lookups */
+ uint64_t hits; /* object cache hits */
+
+ /* added for rev1 */
+ uint64_t purges; /* # of pages purged */
+ natural_t purgeable_count; /* # of pages purgeable */
+
+ /* added for rev2 */
+ /*
+ * NB: speculative pages are already accounted for in "free_count",
+ * so "speculative_count" is the number of "free" pages that are
+ * used to hold data that was read speculatively from disk but
+ * haven't actually been used by anyone so far.
+ */
+ natural_t speculative_count; /* # of pages speculative */
+
+}
+;
+
+typedef struct vm_statistics64 *vm_statistics64_t;
+typedef struct vm_statistics64 vm_statistics64_data_t;
+
+/*
+ * VM_STATISTICS_TRUNCATE_TO_32_BIT
+ *
+ * This is used by host_statistics() to truncate and peg the 64-bit in-kernel values from
+ * vm_statistics64 to the 32-bit values of the older structure above (vm_statistics).
+ */
+#define VM_STATISTICS_TRUNCATE_TO_32_BIT(value) ((uint32_t)(((value) > UINT32_MAX ) ? UINT32_MAX : (value)))
+
+#endif /* !(defined(__ppc__)) */