亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xfs_linux.h

?? 優龍2410linux2.6.8內核源代碼
?? H
字號:
/* * Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it would be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * Further, this software is distributed without any warranty that it is * free of the rightful claim of any third person regarding infringement * or the like.  Any license provided herein, whether implied or * otherwise, applies only to this software file.  Patent licenses, if * any, provided herein do not apply to combinations of this program with * other software, or any other product whatsoever. * * You should have received a copy of the GNU General Public License along * with this program; if not, write the Free Software Foundation, Inc., 59 * Temple Place - Suite 330, Boston MA 02111-1307, USA. * * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy, * Mountain View, CA  94043, or: * * http://www.sgi.com * * For further information regarding this notice, see: * * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/ */#ifndef __XFS_LINUX__#define __XFS_LINUX__#include <linux/types.h>#include <linux/config.h>/* * Some types are conditional depending on the target system. * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. * XFS_BIG_INUMS needs the VFS inode number to be 64 bits, as well * as requiring XFS_BIG_BLKNOS to be set. */#if defined(CONFIG_LBD) || (BITS_PER_LONG == 64)# define XFS_BIG_BLKNOS	1# if BITS_PER_LONG == 64#  define XFS_BIG_INUMS	1# else#  define XFS_BIG_INUMS	0# endif#else# define XFS_BIG_BLKNOS	0# define XFS_BIG_INUMS	0#endif#include <xfs_types.h>#include <xfs_arch.h>#include <kmem.h>#include <mrlock.h>#include <spin.h>#include <sv.h>#include <mutex.h>#include <sema.h>#include <time.h>#include <support/qsort.h>#include <support/ktrace.h>#include <support/debug.h>#include <support/move.h>#include <support/uuid.h>#include <linux/mm.h>#include <linux/kernel.h>#include <linux/blkdev.h>#include <linux/slab.h>#include <linux/module.h>#include <linux/file.h>#include <linux/swap.h>#include <linux/errno.h>#include <linux/sched.h>#include <linux/bitops.h>#include <linux/major.h>#include <linux/pagemap.h>#include <linux/vfs.h>#include <linux/seq_file.h>#include <linux/init.h>#include <linux/proc_fs.h>#include <linux/version.h>#include <asm/page.h>#include <asm/div64.h>#include <asm/param.h>#include <asm/uaccess.h>#include <asm/byteorder.h>#include <asm/unaligned.h>#include <xfs_behavior.h>#include <xfs_vfs.h>#include <xfs_cred.h>#include <xfs_vnode.h>#include <xfs_stats.h>#include <xfs_sysctl.h>#include <xfs_iops.h>#include <xfs_super.h>#include <xfs_globals.h>#include <xfs_fs_subr.h>#include <xfs_lrw.h>#include <xfs_buf.h>/* * Feature macros (disable/enable) */#undef  HAVE_REFCACHE	/* reference cache not needed for NFS in 2.6 */#define HAVE_SENDFILE	/* sendfile(2) exists in 2.6, but not in 2.4 *//* * State flag for unwritten extent buffers. * * We need to be able to distinguish between these and delayed * allocate buffers within XFS.  The generic IO path code does * not need to distinguish - we use the BH_Delay flag for both * delalloc and these ondisk-uninitialised buffers. */BUFFER_FNS(PrivateStart, unwritten);static inline void set_buffer_unwritten_io(struct buffer_head *bh){	bh->b_end_io = linvfs_unwritten_done;}#define restricted_chown	xfs_params.restrict_chown.val#define irix_sgid_inherit	xfs_params.sgid_inherit.val#define irix_symlink_mode	xfs_params.symlink_mode.val#define xfs_panic_mask		xfs_params.panic_mask.val#define xfs_error_level		xfs_params.error_level.val#define xfs_syncd_centisecs	xfs_params.syncd_timer.val#define xfs_stats_clear		xfs_params.stats_clear.val#define xfs_inherit_sync	xfs_params.inherit_sync.val#define xfs_inherit_nodump	xfs_params.inherit_nodump.val#define xfs_inherit_noatime	xfs_params.inherit_noatim.val#define xfs_buf_timer_centisecs	xfs_params.xfs_buf_timer.val#define xfs_buf_age_centisecs	xfs_params.xfs_buf_age.val#define current_cpu()		smp_processor_id()#define current_pid()		(current->pid)#define current_fsuid(cred)	(current->fsuid)#define current_fsgid(cred)	(current->fsgid)#define NBPP		PAGE_SIZE#define DPPSHFT		(PAGE_SHIFT - 9)#define NDPP		(1 << (PAGE_SHIFT - 9))#define dtop(DD)	(((DD) + NDPP - 1) >> DPPSHFT)#define dtopt(DD)	((DD) >> DPPSHFT)#define dpoff(DD)	((DD) & (NDPP-1))#define NBBY		8		/* number of bits per byte */#define	NBPC		PAGE_SIZE	/* Number of bytes per click */#define	BPCSHIFT	PAGE_SHIFT	/* LOG2(NBPC) if exact *//* * Size of block device i/o is parameterized here. * Currently the system supports page-sized i/o. */#define	BLKDEV_IOSHIFT		BPCSHIFT#define	BLKDEV_IOSIZE		(1<<BLKDEV_IOSHIFT)/* number of BB's per block device block */#define	BLKDEV_BB		BTOBB(BLKDEV_IOSIZE)/* bytes to clicks */#define	btoc(x)		(((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)#define	btoct(x)	((__psunsigned_t)(x)>>BPCSHIFT)#define	btoc64(x)	(((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)#define	btoct64(x)	((__uint64_t)(x)>>BPCSHIFT)#define	io_btoc(x)	(((__psunsigned_t)(x)+(IO_NBPC-1))>>IO_BPCSHIFT)#define	io_btoct(x)	((__psunsigned_t)(x)>>IO_BPCSHIFT)/* off_t bytes to clicks */#define offtoc(x)       (((__uint64_t)(x)+(NBPC-1))>>BPCSHIFT)#define offtoct(x)      ((xfs_off_t)(x)>>BPCSHIFT)/* clicks to off_t bytes */#define	ctooff(x)	((xfs_off_t)(x)<<BPCSHIFT)/* clicks to bytes */#define	ctob(x)		((__psunsigned_t)(x)<<BPCSHIFT)#define btoct(x)        ((__psunsigned_t)(x)>>BPCSHIFT)#define	ctob64(x)	((__uint64_t)(x)<<BPCSHIFT)#define	io_ctob(x)	((__psunsigned_t)(x)<<IO_BPCSHIFT)/* bytes to clicks */#define btoc(x)         (((__psunsigned_t)(x)+(NBPC-1))>>BPCSHIFT)#ifndef CELL_CAPABLE#define FSC_NOTIFY_NAME_CHANGED(vp)#endif#ifndef ENOATTR#define ENOATTR		ENODATA		/* Attribute not found */#endif/* Note: EWRONGFS never visible outside the kernel */#define	EWRONGFS	EINVAL		/* Mount with wrong filesystem type *//* * XXX EFSCORRUPTED needs a real value in errno.h. asm-i386/errno.h won't *     return codes out of its known range in errno. * XXX Also note: needs to be < 1000 and fairly unique on Linux (mustn't *     conflict with any code we use already or any code a driver may use) * XXX Some options (currently we do #2): *	1/ New error code ["Filesystem is corrupted", _after_ glibc updated] *	2/ 990 ["Unknown error 990"] *	3/ EUCLEAN ["Structure needs cleaning"] *	4/ Convert EFSCORRUPTED to EIO [just prior to return into userspace] */#define EFSCORRUPTED    990		/* Filesystem is corrupted */#define SYNCHRONIZE()	barrier()#define __return_address __builtin_return_address(0)/* * IRIX (BSD) quotactl makes use of separate commands for user/group, * whereas on Linux the syscall encodes this information into the cmd * field (see the QCMD macro in quota.h).  These macros help keep the * code portable - they are not visible from the syscall interface. */#define Q_XSETGQLIM	XQM_CMD(0x8)	/* set groups disk limits */#define Q_XGETGQUOTA	XQM_CMD(0x9)	/* get groups disk limits *//* IRIX uses a dynamic sizing algorithm (ndquot = 200 + numprocs*2) *//* we may well need to fine-tune this if it ever becomes an issue.  */#define DQUOT_MAX_HEURISTIC	1024	/* NR_DQUOTS */#define ndquot			DQUOT_MAX_HEURISTIC/* IRIX uses the current size of the name cache to guess a good value *//* - this isn't the same but is a good enough starting point for now. */#define DQUOT_HASH_HEURISTIC	files_stat.nr_files/* IRIX inodes maintain the project ID also, zero this field on Linux */#define DEFAULT_PROJID	0#define dfltprid	DEFAULT_PROJID#define MAXPATHLEN	1024#define MIN(a,b)	(min(a,b))#define MAX(a,b)	(max(a,b))#define howmany(x, y)	(((x)+((y)-1))/(y))#define roundup(x, y)	((((x)+((y)-1))/(y))*(y))#define xfs_stack_trace()	dump_stack()#define xfs_itruncate_data(ip, off)	\	(-vmtruncate(LINVFS_GET_IP(XFS_ITOV(ip)), (off)))/* Move the kernel do_div definition off to one side */#if defined __i386__/* For ia32 we need to pull some tricks to get past various versions * of the compiler which do not like us using do_div in the middle * of large functions. */static inline __u32 xfs_do_div(void *a, __u32 b, int n){	__u32	mod;	switch (n) {		case 4:			mod = *(__u32 *)a % b;			*(__u32 *)a = *(__u32 *)a / b;			return mod;		case 8:			{			unsigned long __upper, __low, __high, __mod;			__u64	c = *(__u64 *)a;			__upper = __high = c >> 32;			__low = c;			if (__high) {				__upper = __high % (b);				__high = __high / (b);			}			asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper));			asm("":"=A" (c):"a" (__low),"d" (__high));			*(__u64 *)a = c;			return __mod;			}	}	/* NOTREACHED */	return 0;}/* Side effect free 64 bit mod operation */static inline __u32 xfs_do_mod(void *a, __u32 b, int n){	switch (n) {		case 4:			return *(__u32 *)a % b;		case 8:			{			unsigned long __upper, __low, __high, __mod;			__u64	c = *(__u64 *)a;			__upper = __high = c >> 32;			__low = c;			if (__high) {				__upper = __high % (b);				__high = __high / (b);			}			asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper));			asm("":"=A" (c):"a" (__low),"d" (__high));			return __mod;			}	}	/* NOTREACHED */	return 0;}#elsestatic inline __u32 xfs_do_div(void *a, __u32 b, int n){	__u32	mod;	switch (n) {		case 4:			mod = *(__u32 *)a % b;			*(__u32 *)a = *(__u32 *)a / b;			return mod;		case 8:			mod = do_div(*(__u64 *)a, b);			return mod;	}	/* NOTREACHED */	return 0;}/* Side effect free 64 bit mod operation */static inline __u32 xfs_do_mod(void *a, __u32 b, int n){	switch (n) {		case 4:			return *(__u32 *)a % b;		case 8:			{			__u64	c = *(__u64 *)a;			return do_div(c, b);			}	}	/* NOTREACHED */	return 0;}#endif#undef do_div#define do_div(a, b)	xfs_do_div(&(a), (b), sizeof(a))#define do_mod(a, b)	xfs_do_mod(&(a), (b), sizeof(a))static inline __uint64_t roundup_64(__uint64_t x, __uint32_t y){	x += y - 1;	do_div(x, y);	return(x * y);}#endif /* __XFS_LINUX__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线观看动漫| 夜夜嗨av一区二区三区| 中文字幕综合网| 久久一留热品黄| 91精品国产色综合久久ai换脸| 一本在线高清不卡dvd| 国产盗摄一区二区| 国产在线国偷精品免费看| 免费观看在线色综合| 日本在线播放一区二区三区| 天堂影院一区二区| 亚洲国产精品欧美一二99| 一个色综合av| 成人动漫在线一区| 成人高清在线视频| 精品久久久久香蕉网| 久久久久久久精| 中文字幕一区二区5566日韩| 依依成人综合视频| 麻豆精品视频在线| 国产精品一二三区在线| 一本色道久久综合狠狠躁的推荐 | 日韩精彩视频在线观看| 成人国产在线观看| 日本一区二区免费在线观看视频| 国产午夜精品一区二区三区四区| 国产精品三级av在线播放| 亚洲免费观看视频| 午夜精品影院在线观看| 精品在线观看视频| 99久久伊人久久99| 国产999精品久久| 欧洲日韩一区二区三区| 制服丝袜中文字幕一区| 久久精子c满五个校花| 久久精品久久综合| 在线免费观看视频一区| 亚洲日本va午夜在线影院| 国产乱人伦精品一区二区在线观看| 精品少妇一区二区三区视频免付费| 奇米亚洲午夜久久精品| 精品久久久久99| 精品亚洲porn| 欧美国产日本视频| 日韩和欧美一区二区| 欧美一区日本一区韩国一区| 秋霞成人午夜伦在线观看| 日韩美女一区二区三区四区| 亚洲毛片av在线| 欧美色偷偷大香| 秋霞成人午夜伦在线观看| 日韩一区二区不卡| 伊人一区二区三区| 制服丝袜亚洲色图| 国产伦精品一区二区三区视频青涩 | 精品视频一区三区九区| 日韩福利电影在线| 国产欧美日韩精品在线| 日本丶国产丶欧美色综合| 久久色.com| 99久久伊人精品| 三级影片在线观看欧美日韩一区二区 | 精品国产欧美一区二区| 亚洲国产美国国产综合一区二区| 在线成人免费视频| 一级日本不卡的影视| 日韩一区二区三区视频| av成人免费在线观看| 亚洲大型综合色站| 91久久精品一区二区| 日韩电影在线观看电影| 欧美国产视频在线| 欧美三日本三级三级在线播放| 黄色小说综合网站| 久久综合色8888| 色屁屁一区二区| 狠狠色丁香久久婷婷综合丁香| 亚洲欧美视频一区| 26uuu国产日韩综合| 色8久久精品久久久久久蜜| 麻豆91免费看| 亚洲第一综合色| 国产精品久久久久久久久搜平片| 国产成人免费在线视频| 午夜激情综合网| 亚洲欧美在线高清| 久久久www成人免费毛片麻豆| 欧美日本在线视频| 狠狠色综合播放一区二区| 亚洲视频一区二区在线观看| 精品久久久久久久久久久久久久久久久 | 欧美日韩一级视频| 国产成人a级片| 精品一二线国产| 首页欧美精品中文字幕| 亚洲精品视频自拍| 成人免费视频在线观看| wwwwxxxxx欧美| 欧美一区二区不卡视频| 91国产免费看| 91小视频在线免费看| 午夜视频一区在线观看| 亚洲色图视频网站| 国产精品久久久久久亚洲伦| 久久人人97超碰com| 日韩欧美一卡二卡| 欧美一级久久久| 日韩一区二区精品| 日韩欧美资源站| 欧美一区二区三区在线| 欧美日韩国产在线观看| 在线视频综合导航| 欧美性视频一区二区三区| 精品一区二区免费视频| 久久国产综合精品| 蓝色福利精品导航| 久久精工是国产品牌吗| 激情综合网激情| 激情国产一区二区| 国产精品一二三四区| 国产成人综合在线播放| 不卡视频一二三| 在线视频国产一区| 91精品蜜臀在线一区尤物| 欧美精品久久99| 久久久久久久久久久久电影| 久久在线观看免费| 欧美国产一区二区| 一区二区在线观看免费视频播放| 一区二区三区欧美视频| 午夜精品福利久久久| 免费在线观看精品| 国产91丝袜在线观看| 91女厕偷拍女厕偷拍高清| 欧美亚洲国产一区二区三区va| 欧美日韩大陆一区二区| 欧美成人aa大片| 中文字幕精品在线不卡| 亚洲免费av高清| 日本亚洲三级在线| 成人免费高清在线观看| 麻豆成人久久精品二区三区红| 国产在线视频一区二区| 97久久精品人人做人人爽| 欧美美女激情18p| 久久九九国产精品| 亚洲高清免费视频| 国产一区不卡精品| 精品视频1区2区3区| 久久亚区不卡日本| 一区二区三区 在线观看视频| 日本少妇一区二区| 成人一级片在线观看| 欧美三区在线视频| 国产精品欧美久久久久无广告 | 国产精品一二三四五| 91国偷自产一区二区开放时间| 日韩欧美亚洲另类制服综合在线| 欧美国产一区视频在线观看| 亚洲va在线va天堂| 成人爱爱电影网址| 日韩欧美国产wwwww| 亚洲黄网站在线观看| 国产福利不卡视频| 欧美一区欧美二区| 亚洲午夜精品久久久久久久久| 精品亚洲国内自在自线福利| 在线观看91精品国产入口| 国产欧美日韩另类一区| 日韩国产高清影视| 一本高清dvd不卡在线观看| 久久亚洲免费视频| 日本欧美加勒比视频| 色综合久久88色综合天天6| 国产亚洲精品超碰| 久久爱www久久做| 欧美伦理电影网| 亚洲免费观看高清| 成人午夜私人影院| 久久精品人人爽人人爽| 男女男精品网站| 欧美日韩一级大片网址| 日韩理论片中文av| 成人av网站大全| 国产精品无人区| 成人国产精品免费| 中文字幕av一区二区三区| 国产一区二区不卡| 久久综合九色综合欧美亚洲| 免费人成精品欧美精品| 欧美日韩一本到| 夜夜亚洲天天久久| 在线观看www91| 亚洲一区二区在线播放相泽 | 日韩视频免费观看高清在线视频| 亚洲在线观看免费| 欧美亚洲丝袜传媒另类| 亚洲精品中文字幕乱码三区 | 亚洲h在线观看| 欧美日韩一区二区三区四区|