|
|
@@ -113,7 +113,13 @@ struct page {
|
|
|
};
|
|
|
};
|
|
|
|
|
|
- union {
|
|
|
+ union { /* This union is 4 bytes in size. */
|
|
|
+ /*
|
|
|
+ * If the page can be mapped to userspace, encodes the number
|
|
|
+ * of times this page is referenced by a page table.
|
|
|
+ */
|
|
|
+ atomic_t _mapcount;
|
|
|
+
|
|
|
/*
|
|
|
* If the page is neither PageSlab nor mappable to userspace,
|
|
|
* the value stored here may help determine what this page
|
|
|
@@ -124,22 +130,11 @@ struct page {
|
|
|
|
|
|
unsigned int active; /* SLAB */
|
|
|
int units; /* SLOB */
|
|
|
-
|
|
|
- struct { /* Page cache */
|
|
|
- /*
|
|
|
- * Count of ptes mapped in mms, to show when
|
|
|
- * page is mapped & limit reverse map searches.
|
|
|
- */
|
|
|
- atomic_t _mapcount;
|
|
|
-
|
|
|
- /*
|
|
|
- * Usage count, *USE WRAPPER FUNCTION* when manual
|
|
|
- * accounting. See page_ref.h
|
|
|
- */
|
|
|
- atomic_t _refcount;
|
|
|
- };
|
|
|
};
|
|
|
|
|
|
+ /* Usage count. *DO NOT USE DIRECTLY*. See page_ref.h */
|
|
|
+ atomic_t _refcount;
|
|
|
+
|
|
|
/*
|
|
|
* WARNING: bit 0 of the first word encode PageTail(). That means
|
|
|
* the rest users of the storage space MUST NOT use the bit to
|