patch-2.3.16 linux/include/linux/mm.h
Next file: linux/include/linux/msdos_fs_sb.h
Previous file: linux/include/linux/miscdevice.h
Back to the patch index
Back to the overall index
- Lines: 93
- Date:
Tue Aug 31 16:12:06 1999
- Orig file:
v2.3.15/linux/include/linux/mm.h
- Orig date:
Wed Aug 18 16:43:40 1999
diff -u --recursive --new-file v2.3.15/linux/include/linux/mm.h linux/include/linux/mm.h
@@ -6,6 +6,7 @@
#ifdef __KERNEL__
+#include <linux/config.h>
#include <linux/string.h>
extern unsigned long max_mapnr;
@@ -125,6 +126,7 @@
struct page *next_hash;
atomic_t count;
unsigned long flags; /* atomic flags, some possibly updated asynchronously */
+ struct list_head lru;
wait_queue_head_t wait;
struct page **pprev_hash;
struct buffer_head * buffers;
@@ -145,14 +147,13 @@
#define PG_error 1
#define PG_referenced 2
#define PG_uptodate 3
-#define PG_free_after 4
#define PG_decr_after 5
-#define PG_free_swap_after 6
#define PG_DMA 7
#define PG_Slab 8
#define PG_swap_cache 9
#define PG_skip 10
#define PG_swap_entry 11
+#define PG_BIGMEM 12
/* bits 21-30 unused */
#define PG_reserved 31
@@ -180,9 +181,7 @@
#define SetPageError(page) ({ int _ret = test_and_set_bit(PG_error, &(page)->flags); _ret; })
#define ClearPageError(page) do { if (!test_and_clear_bit(PG_error, &(page)->flags)) BUG(); } while (0)
#define PageReferenced(page) (test_bit(PG_referenced, &(page)->flags))
-#define PageFreeAfter(page) (test_bit(PG_free_after, &(page)->flags))
#define PageDecrAfter(page) (test_bit(PG_decr_after, &(page)->flags))
-#define PageSwapUnlockAfter(page) (test_bit(PG_free_swap_after, &(page)->flags))
#define PageDMA(page) (test_bit(PG_DMA, &(page)->flags))
#define PageSlab(page) (test_bit(PG_Slab, &(page)->flags))
#define PageSwapCache(page) (test_bit(PG_swap_cache, &(page)->flags))
@@ -199,6 +198,11 @@
#define PageTestandClearSwapCache(page) \
(test_and_clear_bit(PG_swap_cache, &(page)->flags))
+#ifdef CONFIG_BIGMEM
+#define PageBIGMEM(page) (test_bit(PG_BIGMEM, &(page)->flags))
+#else
+#define PageBIGMEM(page) 0 /* needed to optimize away at compile time */
+#endif
/*
* Various page->flags bits:
@@ -259,8 +263,6 @@
* PG_uptodate tells whether the page's contents is valid.
* When a read completes, the page becomes uptodate, unless a disk I/O
* error happened.
- * When a write completes, and PG_free_after is set, the page is
- * freed without any further delay.
*
* For choosing which pages to swap out, inode pages carry a
* PG_referenced bit, which is set any time the system accesses
@@ -357,11 +359,17 @@
#define __GFP_HIGH 0x08
#define __GFP_IO 0x10
#define __GFP_SWAP 0x20
+#ifdef CONFIG_BIGMEM
+#define __GFP_BIGMEM 0x40
+#else
+#define __GFP_BIGMEM 0x0 /* noop */
+#endif
#define __GFP_DMA 0x80
#define GFP_BUFFER (__GFP_LOW | __GFP_WAIT)
#define GFP_ATOMIC (__GFP_HIGH)
+#define GFP_BIGUSER (__GFP_LOW | __GFP_WAIT | __GFP_IO | __GFP_BIGMEM)
#define GFP_USER (__GFP_LOW | __GFP_WAIT | __GFP_IO)
#define GFP_KERNEL (__GFP_MED | __GFP_WAIT | __GFP_IO)
#define GFP_NFS (__GFP_HIGH | __GFP_WAIT | __GFP_IO)
@@ -371,6 +379,11 @@
platforms, used as appropriate on others */
#define GFP_DMA __GFP_DMA
+
+/* Flag - indicates that the buffer can be taken from big memory which is not
+ directly addressable by the kernel */
+
+#define GFP_BIGMEM __GFP_BIGMEM
/* vma is the first one with address < vma->vm_end,
* and even address < vma->vm_start. Have to extend vma. */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)