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

📄 segment.h

📁 T-kernel 的extension源代码
💻 H
字号:
/* *---------------------------------------------------------------------- *    T-Kernel / Standard Extension * *    Copyright (C) 2006 by Ken Sakamura. All rights reserved. *    T-Kernel / Standard Extension is distributed  *      under the T-License for T-Kernel / Standard Extension. *---------------------------------------------------------------------- * *    Version:   1.00.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2006/8/11. * *---------------------------------------------------------------------- *//* *	segment.h * *	Segment management */#ifndef __EXTENSION_SYS_SEGMENT_H__#define __EXTENSION_SYS_SEGMENT_H__#include <basic.h>#include <extension/typedef.h>#include <sys/segment.h>#ifdef __cplusplusextern "C" {#endif/* * Specify map */typedef struct {	unsigned int	resv:3;	unsigned int	rank:3;		/* Specify rank */	unsigned int	real:1;		/* Specify real/virtual IO */	unsigned int	clear:3;	/* Specify clear */	unsigned int	level:6;	/* Specify access level */	UW		space:16;	/* Specify map space */	VP		addr;		/* Specify map address */	VW		info;		/* Map information */} MapMode;/* Define map clear */typedef	enum {	MapNoClr	= 0x0,	/* Clear */	MapClr		= 0x1,	/* Not clear */	MapUnsettle	= 0x4,	/* Undefined */	MapNoClrTop	= 0x5,	/* Not clear first logical block */	MapNoClrEnd	= 0x6	/* Not clear last logical block */} MapModeClr;/* Define map rank */typedef	enum {	MapRankPROG	= 0,	/* For program execution*/	MapRankMM0	= 1,	/* For memory manager */	MapRankMM1	= 2,	/* For memory manager (not used) */	MapRankMM2	= 3,	/* For memory manager (not used) */	MapRankFM0	= 4,	/* For file manager (data) */	MapRankFM1	= 5,	/* For file manager (management information) */	MapRankFM2	= 6,	/* For file manager */	MapRankFM3	= 7	/* For file manager */} MapModeRank;/* * Error information */typedef struct {	ER	err;		/* Error code */	ID	diskid;		/* ID of disk where error occurred */	UW	blk;		/* Physical block number of disk where error occurred */	ID	taskid;		/* ID of mapped task */	MapMode	mode;		/* Mode of map where error occurred */} DiskErrInfo;/* * File system information */typedef struct {	UH	lbsz;		/* Logical block size (bytes) */	UH	btsz;		/* Boot block size (bytes) */} FsSpec;/* * Device open mode *	(*) Compliant with open mode for device management */#define	D_ATTACH	0x0004U	/* Connect to file system */#define	D_READ		0x0001U	/* Read-only open */#define	D_WRITE		0x0002U	/* Write-only open */#define	D_UPDATE	0x0003U	/* Open for update */#define	D_EXCL		0x0100U	/* Specify exclusive mode */#define	D_WEXCL		0x0200U	/* Specify exclusive write mode *//* * Flag of UnmapDisk() */#define	MD_RDONLY	0x0000U	/* Read only */#define	MD_WRITE	0x0001U	/* Read & write *//* * Definitions for automatic generation of interface library (mkiflib) *//*** DEFINE_IFLIB[INCLUDE FILE]<sys/segment.h>[PREFIX]SEG***//* [BEGIN SYSCALLS] */IMPORT ER	AttachFS(TC *devname, UW omode, PINFO *pinfo, DiskInfo *diskinfo);IMPORT ER	CheckFS(TC *devname, UW omode, PINFO *pinfo);IMPORT ER	DetachFS(ID diskid, PINFO *pinfo, BOOL eject);IMPORT ER	SyncFS(ID diskid, VW info);IMPORT ER	MapDisk(ID diskid, PhyBlk *block, MapMode *mode);IMPORT ER	UnmapDisk(ID mapid, UW flag);IMPORT ER	NotifyDiskErr(FP errhdr);IMPORT ER	InformFS(ID diskid, FsSpec *spec);/* ALIGN_NO 0x100 */#ifndef LockSpaceIMPORT ER	LockSpace( VP laddr, INT len );IMPORT ER	UnlockSpace( VP laddr, INT len );#endifIMPORT INT	CnvPhysicalAddr( VP laddr, INT len, VP *paddr );IMPORT ER	ChkSpace( VP laddr, INT len, UINT mode, UINT env );IMPORT INT	ChkSpaceTstr( TC *str, INT max, UINT mode, UINT env );IMPORT INT	ChkSpaceBstr( UB *str, INT max, UINT mode, UINT env );IMPORT INT	ChkSpaceLen( VP laddr, INT len, UINT mode, UINT env, INT lsid );IMPORT INT	ReadMemSpace( VP laddr, VP buf, INT len, INT lsid );IMPORT INT	WriteMemSpace( VP laddr, VP buf, INT len, INT lsid );IMPORT INT	SetMemSpaceB( VP laddr, INT len, UB data, INT lsid );/* ALIGN_NO 0x100 */IMPORT ER	MapMemory( VP paddr, INT len, UINT attr, VP *laddr );IMPORT ER	UnmapMemory( VP laddr );/* ALIGN_NO 0x1000 */IMPORT ER	MakeSpace( VP laddr, INT npage, INT lsid, UINT pte );IMPORT ER	UnmakeSpace( VP laddr, INT npage, INT lsid );IMPORT ER	ChangeSpace( VP laddr, INT npage, INT lsid, UINT pte );/* [END SYSCALLS] */#ifdef __cplusplus}#endif#endif /* __EXTENSION_SYS_SEGMENT_H__ */

⌨️ 快捷键说明

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