⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swap.c

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻 C
字号:
/* *  linux/mm/swap.c * *  Copyright (C) 1991, 1992, 1993, 1994  Linus Torvalds *//* * This file contains the default values for the opereation of the * Linux VM subsystem. Fine-tuning documentation can be found in * linux/Documentation/sysctl/vm.txt. * Started 18.12.91 * Swap aging added 23.2.95, Stephen Tweedie. * Buffermem limits added 12.3.98, Rik van Riel. */#include <linux/mm.h>#include <linux/kernel_stat.h>#include <linux/swap.h>#include <linux/swapctl.h>#include <linux/pagemap.h>#include <linux/init.h>#include <asm/dma.h>#include <asm/uaccess.h> /* for copy_to/from_user */#include <asm/pgtable.h>/* How many pages do we try to swap or page in/out together? */int page_cluster;pager_daemon_t pager_daemon = {	512,	/* base number for calculating the number of tries */	SWAP_CLUSTER_MAX,	/* minimum number of tries */	8,	/* do swap I/O in clusters of this size */};/* * Move an inactive page to the active list. */static inline void activate_page_nolock(struct page * page){	if (PageLRU(page) && !PageActive(page)) {		del_page_from_inactive_list(page);		add_page_to_active_list(page);	}}void activate_page(struct page * page){	spin_lock(&pagemap_lru_lock);	activate_page_nolock(page);	spin_unlock(&pagemap_lru_lock);}/** * lru_cache_add: add a page to the page lists * @page: the page to add */void lru_cache_add(struct page * page){	if (!TestSetPageLRU(page)) {		spin_lock(&pagemap_lru_lock);		add_page_to_inactive_list(page);		spin_unlock(&pagemap_lru_lock);	}}/** * __lru_cache_del: remove a page from the page lists * @page: the page to add * * This function is for when the caller already holds * the pagemap_lru_lock. */void __lru_cache_del(struct page * page){	if (TestClearPageLRU(page)) {		if (PageActive(page)) {			del_page_from_active_list(page);		} else {			del_page_from_inactive_list(page);		}	}}/** * lru_cache_del: remove a page from the page lists * @page: the page to remove */void lru_cache_del(struct page * page){	spin_lock(&pagemap_lru_lock);	__lru_cache_del(page);	spin_unlock(&pagemap_lru_lock);}/* * Perform any setup for the swap system */void __init swap_setup(void){	unsigned long megs = num_physpages >> (20 - PAGE_SHIFT);	/* Use a smaller cluster for small-memory machines */	if (megs < 16)		page_cluster = 2;	else		page_cluster = 3;	/*	 * Right now other parts of the system means that we	 * _really_ don't want to cluster much more	 */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -