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

📄 filehdr.h

📁 nachos系统作业 实现线程系统 实现一个电梯模拟 附实验报告
💻 H
字号:
// filehdr.h //	Data structures for managing a disk file header.  ////	A file header describes where on disk to find the data in a file,//	along with other information about the file (for instance, its//	length, owner, etc.)//// Copyright (c) 1992-1993 The Regents of the University of California.// All rights reserved.  See copyright.h for copyright notice and limitation // of liability and disclaimer of warranty provisions.#include "copyright.h"#ifndef FILEHDR_H#define FILEHDR_H#include "disk.h"#include "bitmap.h"#define NumDirect 	((SectorSize - 2 * sizeof(int)) / sizeof(int))#define MaxFileSize 	(NumDirect * SectorSize)// The following class defines the Nachos "file header" (in UNIX terms,  // the "i-node"), describing where on disk to find all of the data in the file.// The file header is organized as a simple table of pointers to// data blocks. //// The file header data structure can be stored in memory or on disk.// When it is on disk, it is stored in a single sector -- this means// that we assume the size of this data structure to be the same// as one disk sector.  Without indirect addressing, this// limits the maximum file length to just under 4K bytes.//// There is no constructor; rather the file header can be initialized// by allocating blocks for the file (if it is a new file), or by// reading it from disk.class FileHeader {  public:    bool Allocate(BitMap *bitMap, int fileSize);// Initialize a file header, 						//  including allocating space 						//  on disk for the file data    void Deallocate(BitMap *bitMap);  		// De-allocate this file's 						//  data blocks    void FetchFrom(int sectorNumber); 	// Initialize file header from disk    void WriteBack(int sectorNumber); 	// Write modifications to file header					//  back to disk    int ByteToSector(int offset);	// Convert a byte offset into the file					// to the disk sector containing					// the byte    int FileLength();			// Return the length of the file 					// in bytes    void Print();			// Print the contents of the file.  private:    int numBytes;			// Number of bytes in the file    int numSectors;			// Number of data sectors in the file    int dataSectors[NumDirect];		// Disk sector numbers for each data 					// block in the file};#endif // FILEHDR_H

⌨️ 快捷键说明

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