]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/default_pager/default_pager_internal.h
xnu-792.25.20.tar.gz
[apple/xnu.git] / osfmk / default_pager / default_pager_internal.h
index 631c5b681070fb6f47ba8aea648fb91e911f0eb6..b01a94cae8abf1fcb0397c02927ee0766e405236 100644 (file)
@@ -537,7 +537,7 @@ struct clmap {
        (clm)->cl_alloc.clb_map >>= (VSCLSIZE(vs) - (clm)->cl_numpages)
 
 typedef struct vstruct_alias {
-       int *name;
+       memory_object_pager_ops_t name;
        struct vstruct *vs;
 } vstruct_alias_t;
 
@@ -574,9 +574,11 @@ typedef struct vstruct_alias {
  * VM Object Structure:  This is the structure used to manage
  * default pager object associations with their control counter-
  * parts (VM objects).
+ *
+ * The start of this structure MUST match a "struct memory_object".
  */
 typedef struct vstruct {
-       int                     *vs_mem_obj;    /* our memory obj - temp */
+       memory_object_pager_ops_t vs_pager_ops; /* == &default_pager_ops */
        int                     vs_mem_obj_ikot;/* JMM:fake ip_kotype() */
        memory_object_control_t vs_control;     /* our mem obj control ref */
        VS_LOCK_TYPE            vs_lock;        /* data for the lock */
@@ -727,9 +729,11 @@ __private_extern__ zone_t  vstruct_zone;
  */
 #ifdef MACH_KERNEL
 
-#define ISVS ((int *)123456)
+extern const struct memory_object_pager_ops default_pager_ops;
+
 #define mem_obj_is_vs(_mem_obj_)                                       \
-       (((_mem_obj_) != NULL) && ((_mem_obj_)->pager == ISVS))
+       (((_mem_obj_) != NULL) &&                                       \
+        ((_mem_obj_)->mo_pager_ops == &default_pager_ops))
 #define mem_obj_to_vs(_mem_obj_)                                       \
        ((vstruct_t)(_mem_obj_))
 #define vs_to_mem_obj(_vs_) ((memory_object_t)(_vs_))