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

📄 fat.h

📁 i386的bootloader源码grub
💻 H
字号:
/* *  GRUB  --  GRand Unified Bootloader *  Copyright (C) 2001  Free Software Foundation, Inc. * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program 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 General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *//* *  Defines for the FAT BIOS Parameter Block (embedded in the first block *  of the partition. */typedef __signed__ char __s8;typedef unsigned char __u8;typedef __signed__ short __s16;typedef unsigned short __u16;typedef __signed__ int __s32;typedef unsigned int __u32;/* Note that some shorts are not aligned, and must therefore * be declared as array of two bytes. */struct fat_bpb {	__s8	ignored[3];	/* Boot strap short or near jump */	__s8	system_id[8];	/* Name - can be used to special case				   partition manager volumes */	__u8	bytes_per_sect[2];	/* bytes per logical sector */	__u8	sects_per_clust;/* sectors/cluster */	__u8	reserved_sects[2];	/* reserved sectors */	__u8	num_fats;	/* number of FATs */	__u8	dir_entries[2];	/* root directory entries */	__u8	short_sectors[2];	/* number of sectors */	__u8	media;		/* media code (unused) */	__u16	fat_length;	/* sectors/FAT */	__u16	secs_track;	/* sectors per track */	__u16	heads;		/* number of heads */	__u32	hidden;		/* hidden sectors (unused) */	__u32	long_sectors;	/* number of sectors (if short_sectors == 0) */	/* The following fields are only used by FAT32 */	__u32	fat32_length;	/* sectors/FAT */	__u16	flags;		/* bit 8: fat mirroring, low 4: active fat */	__u8	version[2];	/* major, minor filesystem version */	__u32	root_cluster;	/* first cluster in root directory */	__u16	info_sector;	/* filesystem info sector */	__u16	backup_boot;	/* backup boot sector */	__u16	reserved2[6];	/* Unused */};#define FAT_CVT_U16(bytarr) (* (__u16*)(bytarr))/* *  Defines how to differentiate a 12-bit and 16-bit FAT. */#define FAT_MAX_12BIT_CLUST       4087	/* 4085 + 2 *//* *  Defines for the file "attribute" byte */#define FAT_ATTRIB_OK_MASK        0x37#define FAT_ATTRIB_NOT_OK_MASK    0xC8#define FAT_ATTRIB_DIR            0x10#define FAT_ATTRIB_LONGNAME       0x0F/* *  Defines for FAT directory entries */#define FAT_DIRENTRY_LENGTH       32#define FAT_DIRENTRY_ATTRIB(entry) \  (*((unsigned char *) (entry+11)))#define FAT_DIRENTRY_VALID(entry) \  ( ((*((unsigned char *) entry)) != 0) \    && ((*((unsigned char *) entry)) != 0xE5) \    && !(FAT_DIRENTRY_ATTRIB(entry) & FAT_ATTRIB_NOT_OK_MASK) )#define FAT_DIRENTRY_FIRST_CLUSTER(entry) \  ((*((unsigned short *) (entry+26)))+(*((unsigned short *) (entry+20)) << 16))#define FAT_DIRENTRY_FILELENGTH(entry) \  (*((unsigned long *) (entry+28)))#define FAT_LONGDIR_ID(entry) \  (*((unsigned char *) (entry)))#define FAT_LONGDIR_ALIASCHECKSUM(entry) \  (*((unsigned char *) (entry+13)))

⌨️ 快捷键说明

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