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

📄 disk.h

📁 上一个上传的有问题,这个是好的。visopsys包括系统内核和GUI的全部SOURCE code ,还包括一些基本的docs文档。里面src子目录对应所有SOURCE code.对于想研究操作系统的朋
💻 H
字号:
// //  Visopsys//  Copyright (C) 1998-2007 J. Andrew McLaughlin//  //  This library is free software; you can redistribute it and/or modify it//  under the terms of the GNU Lesser General Public License as published by//  the Free Software Foundation; either version 2.1 of the License, or (at//  your option) any later version.////  This library is distributed in the hope that it will be useful, but//  WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser//  General Public License for more details.////  You should have received a copy of the GNU Lesser General Public License//  along with this library; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.////  disk.h//// This file contains definitions and structures for using and manipulating// disk in Visopsys.#if !defined(_DISK_H)#include <sys/file.h>#define DISK_MAXDEVICES               32#define DISK_MAX_NAMELENGTH           16#define DISK_MAX_PARTITIONS           16#define DISK_MAX_PRIMARY_PARTITIONS   4#define DISK_MAX_CACHE                1048576 // 1 Meg#define FSTYPE_MAX_NAMELENGTH         32// Extended partition types#define PARTITION_TYPEID_EXTD         0x05#define PARTITION_TYPEID_EXTD_LBA     0x0F#define PARTITION_TYPEID_EXTD_LINUX   0x85#define PARTITION_TYPEID_IS_EXTD(x)    \  ((x == PARTITION_TYPEID_EXTD)     || \   (x == PARTITION_TYPEID_EXTD_LBA) || \   (x == PARTITION_TYPEID_EXTD_LINUX))#define PARTITION_TYPEID_IS_HIDDEN(x)                          \  ((x == 0x11) || (x == 0x14) || (x == 0x16) || (x == 0x17) || \   (x == 0x1B) || (x == 0x1C) || (x == 0x1E) || (x == 0x93))#define PARTITION_TYPEID_IS_HIDEABLE(x)                        \  ((x == 0x01) || (x == 0x04) || (x == 0x06) || (x == 0x07) || \   (x == 0x0B) || (x == 0x0C) || (x == 0x0E) || (x == 0x83))// Flags for supported filesystem operations on a partition#define FS_OP_FORMAT                  0x01#define FS_OP_CLOBBER                 0x02#define FS_OP_CHECK                   0x04#define FS_OP_DEFRAG                  0x08#define FS_OP_STAT                    0x10#define FS_OP_RESIZECONST             0x20#define FS_OP_RESIZE                  0x40// Flags to describe what type of disk is described by a disk structure#define DISKTYPE_LOGICAL              0x20000000#define DISKTYPE_PHYSICAL             0x10000000#define DISKTYPE_PRIMARY              0x01000000#define DISKTYPE_LOGICALPHYSICAL      (DISKTYPE_PHYSICAL | DISKTYPE_LOGICAL)#define DISKTYPE_FIXED                0x00200000#define DISKTYPE_REMOVABLE            0x00100000#define DISKTYPE_FIXEDREMOVABLE       (DISKTYPE_FIXED | DISKTYPE_REMOVABLE)#define DISKTYPE_FLOPPY               0x00000100#define DISKTYPE_SCSICDROM            0x00000020#define DISKTYPE_IDECDROM             0x00000010#define DISKTYPE_CDROM                (DISKTYPE_SCSICDROM | DISKTYPE_IDECDROM)#define DISKTYPE_FLASHDISK            0x00000004#define DISKTYPE_SCSIDISK             0x00000002#define DISKTYPE_IDEDISK              0x00000001#define DISKTYPE_HARDDISK             (DISKTYPE_FLASHDISK | \                                       DISKTYPE_SCSIDISK | DISKTYPE_IDEDISK)// Flags to describe the current state of the disk#define DISKFLAG_NOCACHE              0x10#define DISKFLAG_READONLY             0x08#define DISKFLAG_MOTORON              0x04#define DISKFLAG_DOORLOCKED           0x02#define DISKFLAG_DOOROPEN             0x01#define DISKFLAG_USERSETTABLE         (DISKFLAG_NOCACHE | DISKFLAG_READONLY)// This structure is used to describe a known partition typetypedef struct {  unsigned char code;  const char description[FSTYPE_MAX_NAMELENGTH];} partitionType;   typedef struct {  char name[DISK_MAX_NAMELENGTH];  int deviceNumber;  unsigned type;  unsigned flags;  partitionType partType;  char fsType[FSTYPE_MAX_NAMELENGTH];  unsigned opFlags;  unsigned heads;  unsigned cylinders;  unsigned sectorsPerCylinder;  unsigned sectorSize;  unsigned startSector;  unsigned numSectors;  // Filesystem related  unsigned blockSize;  unsigned freeBytes;  unsigned minSectors;  // for  unsigned maxSectors;  // resize  int mounted;  char mountPoint[MAX_PATH_LENGTH];  int readOnly;} disk;typedef struct {  // Throughput measurement.  unsigned readTime;  unsigned readKbytes;  unsigned writeTime;  unsigned writeKbytes;} diskStats;#define CYLSECTS(d) (d->heads * d->sectorsPerCylinder)#define _DISK_H#endif

⌨️ 快捷键说明

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