disklabel_mbr.h
来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 87 行
H
87 行
/* $NetBSD: disklabel_mbr.h,v 1.5 1999/09/23 15:21:12 ws Exp $ *//* * Copyright (c) 1994, 1998 Christopher G. Demetriou * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Christopher G. Demetriou. * 4. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */#ifndef _SYS_DISKLABEL_MBR_H_#define _SYS_DISKLABEL_MBR_H_/* * From i386 disklabel.h rev 1.6, with cleanups and modifications to * make it easier to use as MI code. * * Note, all fields (including magic number) are little-endian! *//* MBR ("Master Boot Record"; DOS) partition table -- located in boot block */#define MBR_BBSECTOR 0 /* MBR relative sector # */#define MBR_PARTOFF 446 /* offset of MBR partition table */#define MBR_MAGICOFF 510 /* offset of magic number */#define MBR_MAGIC 0xaa55 /* MBR magic number */#define NMBRPART 4#ifndef __ASSEMBLER__struct mbr_partition { u_int8_t mbrp_flag; /* bootstrap flags */ u_int8_t mbrp_shd; /* starting head */ u_int8_t mbrp_ssect; /* starting sector */ u_int8_t mbrp_scyl; /* starting cylinder */ u_int8_t mbrp_typ; /* partition type (see below) */ u_int8_t mbrp_ehd; /* end head */ u_int8_t mbrp_esect; /* end sector */ u_int8_t mbrp_ecyl; /* end cylinder */ u_int32_t mbrp_start; /* absolute starting sector number */ u_int32_t mbrp_size; /* partition size in sectors */};#endif/* Known MBR partition types: */#define MBR_PTYPE_NETBSD 0xa9 /* NetBSD partition type */#define MBR_PTYPE_386BSD 0xa5 /* 386BSD partition type */#define MBR_PTYPE_FAT12 0x01 /* 12-bit FAT */#define MBR_PTYPE_FAT16S 0x04 /* 16-bit FAT, less than 32M */#define MBR_PTYPE_EXT 0x05 /* extended partition */#define MBR_PTYPE_FAT16B 0x06 /* 16-bit FAT, more than 32M */#define MBR_PTYPE_NTFS 0x07 /* OS/2 HPFS, NTFS, QNX2, Adv. UNIX */#define MBR_PTYPE_FAT32 0x0b /* 32-bit FAT */#define MBR_PTYPE_FAT32L 0x0c /* 32-bit FAT, LBA-mapped */#define MBR_PTYPE_FAT16L 0x0e /* 16-bit FAT, LBA-mapped */#define MBR_PTYPE_EXT_LBA 0x0f /* extended partition, LBA-mapped */#define MBR_PTYPE_LNXSWAP 0x82 /* Linux swap or Solaris */#define MBR_PTYPE_LNXEXT2 0x83 /* Linux native */#define MBR_PTYPE_EXT_LNX 0x85 /* Linux extended partition */#define MBR_PTYPE_NTFSVOL 0x87 /* NTFS volume set or HPFS mirrored *//* Isolate the relevant bits to get sector and cylinder. */#define MBR_PSECT(s) ((s) & 0x3f)#define MBR_PCYL(c, s) ((c) + (((s) & 0xc0) << 2))#endif /* _SYS_DISKLABEL_MBR_H_ */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?