xsfsbase.h

来自「一个操作系统,用C语言实现开发的,我在一个浙江大学的操作系统实验网站找到.大家学」· C头文件 代码 · 共 43 行

H
43
字号
// XSFS Basic Definitions

#ifndef __XSFSBASE_H
#define __XSFSBASE_H

#include "vfsio.h"
#include "xsfs.h"

#ifdef _MSC_VER
#pragma pack(push, 1)
#endif

typedef struct _XSFS
{
	XSFSDESC desc;
	IOH handle;
	void *buffer;		// the size should not be smaller than one unit
} XSFS;
typedef XSFS* HXSFS;

typedef struct _XSSTREAM
{
	HXSFS xsfs;
	XSFSSTREAM stream;
	_u32 sector, offset;	// used for updating stream definition
} XSSTREAM;
typedef XSSTREAM* HXSSTREAM;

#ifdef _MSC_VER
#pragma pack(pop)
#endif

static inline _u32 i_xsfs_unit_size(HXSFS xsfs)
{ return xsfs->desc.n_scale*xsfs->desc.sector_size; }

static inline _u32 i_xsfs_start_sector(HXSFS xsfs)
{ return xsfs->desc.n_reserved+xsfs->desc.n_ss_desc; }

static inline _u32 i_xsfs_sector_to_unit(HXSFS xsfs, _u32 sector)
{ return sector<i_xsfs_start_sector(xsfs) ? 0 : ((sector-i_xsfs_start_sector(xsfs))/xsfs->desc.n_scale); }

#endif

⌨️ 快捷键说明

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