linux-2.6.33/page
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#zd477076]
#backlinks
*説明 [#g61899df]
-パス: [[linux-2.6.33/include/linux/mm_types.h]]
-FIXME: これは何?
--説明
**参考 [#ja9be71d]
*実装 [#k2824ad6]
/*
* Each physical page in the system has a struct page as...
* it to keep track of whatever it is we are using the p...
* moment. Note that we have no way to track which tasks...
* a page, though if it is a pagecache page, rmap struct...
* who is mapping it.
*/
struct page {
unsigned long flags; /* Atomic flags, some possibly
* updated asynchronously */
atomic_t _count; /* Usage count, see below. */
-
--[[linux-2.6.33/atomic_t]]
union {
atomic_t _mapcount; /* Count of ptes mapped in mms,
* to show when page is mapped
* & limit reverse map searches.
*/
struct { /* SLUB */
u16 inuse;
u16 objects;
};
};
union {
struct {
unsigned long private; /* Mapping-private opaque data:
* usually used for buffer_heads
* if PagePrivate set; used for
* swp_entry_t if PageSwapCache;
* indicates order in the buddy
* system if PG_buddy is set.
*/
struct address_space *mapping; /* If low bit clear, po...
* inode address_space, or NULL.
* If page mapped as anonymous
* memory, low bit is set, and
* it points to anon_vma object:
* see PAGE_MAPPING_ANON below.
*/
-
--[[linux-2.6.33/address_space]]
};
#if USE_SPLIT_PTLOCKS
-
--[[linux-2.6.33/USE_SPLIT_PTLOCKS]]
spinlock_t ptl;
-
--[[linux-2.6.33/spinlock_t]]
#endif
struct kmem_cache *slab; /* SLUB: Pointer to slab */
-
--[[linux-2.6.33/kmem_cache]]
struct page *first_page; /* Compound tail pages */
-
--[[linux-2.6.33/page]]
};
union {
pgoff_t index; /* Our offset within mapping. */
void *freelist; /* SLUB: freelist req. slab lock */
};
-
--[[linux-2.6.33/pgoff_t]]
struct list_head lru; /* Pageout list, eg. active_list
* protected by zone->lru_lock !
*/
-
--[[linux-2.6.33/list_head]]
/*
* On machines where all RAM is mapped into kernel addr...
* we can simply calculate the virtual address. On mach...
* highmem some memory is mapped into kernel virtual me...
* dynamically, so we need a place to store that address.
* Note that this field could be 16 bits on x86 ... ;)
*
* Architectures with slow multiplication can define
* WANT_PAGE_VIRTUAL in asm/page.h
*/
#if defined(WANT_PAGE_VIRTUAL)
-
--[[linux-2.6.33/WANT_PAGE_VIRTUAL]]
void *virtual; /* Kernel virtual address (NULL if
not kmapped, ie. highmem) */
#endif /* WANT_PAGE_VIRTUAL */
#ifdef CONFIG_WANT_PAGE_DEBUG_FLAGS
-
--[[linux-2.6.33/CONFIG_WANT_PAGE_DEBUG_FLAGS]]
unsigned long debug_flags; /* Use atomic bitops on this...
#endif
#ifdef CONFIG_KMEMCHECK
-
--[[linux-2.6.33/CONFIG_KMEMCHECK]]
/*
* kmemcheck wants to track the status of each byte in ...
* is a pointer to such a status block. NULL if not tra...
*/
void *shadow;
#endif
};
*コメント [#sa12ecea]
終了行:
*参照元 [#zd477076]
#backlinks
*説明 [#g61899df]
-パス: [[linux-2.6.33/include/linux/mm_types.h]]
-FIXME: これは何?
--説明
**参考 [#ja9be71d]
*実装 [#k2824ad6]
/*
* Each physical page in the system has a struct page as...
* it to keep track of whatever it is we are using the p...
* moment. Note that we have no way to track which tasks...
* a page, though if it is a pagecache page, rmap struct...
* who is mapping it.
*/
struct page {
unsigned long flags; /* Atomic flags, some possibly
* updated asynchronously */
atomic_t _count; /* Usage count, see below. */
-
--[[linux-2.6.33/atomic_t]]
union {
atomic_t _mapcount; /* Count of ptes mapped in mms,
* to show when page is mapped
* & limit reverse map searches.
*/
struct { /* SLUB */
u16 inuse;
u16 objects;
};
};
union {
struct {
unsigned long private; /* Mapping-private opaque data:
* usually used for buffer_heads
* if PagePrivate set; used for
* swp_entry_t if PageSwapCache;
* indicates order in the buddy
* system if PG_buddy is set.
*/
struct address_space *mapping; /* If low bit clear, po...
* inode address_space, or NULL.
* If page mapped as anonymous
* memory, low bit is set, and
* it points to anon_vma object:
* see PAGE_MAPPING_ANON below.
*/
-
--[[linux-2.6.33/address_space]]
};
#if USE_SPLIT_PTLOCKS
-
--[[linux-2.6.33/USE_SPLIT_PTLOCKS]]
spinlock_t ptl;
-
--[[linux-2.6.33/spinlock_t]]
#endif
struct kmem_cache *slab; /* SLUB: Pointer to slab */
-
--[[linux-2.6.33/kmem_cache]]
struct page *first_page; /* Compound tail pages */
-
--[[linux-2.6.33/page]]
};
union {
pgoff_t index; /* Our offset within mapping. */
void *freelist; /* SLUB: freelist req. slab lock */
};
-
--[[linux-2.6.33/pgoff_t]]
struct list_head lru; /* Pageout list, eg. active_list
* protected by zone->lru_lock !
*/
-
--[[linux-2.6.33/list_head]]
/*
* On machines where all RAM is mapped into kernel addr...
* we can simply calculate the virtual address. On mach...
* highmem some memory is mapped into kernel virtual me...
* dynamically, so we need a place to store that address.
* Note that this field could be 16 bits on x86 ... ;)
*
* Architectures with slow multiplication can define
* WANT_PAGE_VIRTUAL in asm/page.h
*/
#if defined(WANT_PAGE_VIRTUAL)
-
--[[linux-2.6.33/WANT_PAGE_VIRTUAL]]
void *virtual; /* Kernel virtual address (NULL if
not kmapped, ie. highmem) */
#endif /* WANT_PAGE_VIRTUAL */
#ifdef CONFIG_WANT_PAGE_DEBUG_FLAGS
-
--[[linux-2.6.33/CONFIG_WANT_PAGE_DEBUG_FLAGS]]
unsigned long debug_flags; /* Use atomic bitops on this...
#endif
#ifdef CONFIG_KMEMCHECK
-
--[[linux-2.6.33/CONFIG_KMEMCHECK]]
/*
* kmemcheck wants to track the status of each byte in ...
* is a pointer to such a status block. NULL if not tra...
*/
void *shadow;
#endif
};
*コメント [#sa12ecea]
ページ名: