disk.h

来自「一个简单的虚拟机和虚拟操作系统」· C头文件 代码 · 共 38 行

H
38
字号
#pragma once
#include "StdAfx.h"
#include "all.h"
#include<memory>
using namespace std;

class Disk
{
	friend class FS;
private:
	/*
	 * return a pointer points to the block of
	 * the given index
	 */
	char* getBlock(int index)const
	{
		if(index >= BLOCK_NUM||index < 0)
			throw OUT_OF_DISK;
		return (char*)data+index*BLOCK_SIZE;
	}
	bool readBlock(int index,char* buffer)const
	{
		if(index >= BLOCK_NUM||index < 0)
			return false;
		memcpy(buffer,data+index*BLOCK_SIZE,sizeof(char)*BLOCK_SIZE);
		return true;
	}
	bool writeBlock(int index,const char* buffer)
	{
		if(index >= BLOCK_NUM||index < 0)
			return false;
		memcpy(data+index*BLOCK_SIZE,buffer,sizeof(char)*BLOCK_SIZE);
		return true;
	}
private:
	//a space stored the disk data
	char data[DISK_SIZE];
};

⌨️ 快捷键说明

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