20bd5ac6e4
Add a code for creating and writing MBR partition layout. The code generates similar layout of EBRs (Exteneded Block Records) and logical volumes as Linux's fdisk utility. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2000
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
*/
|
|
|
|
#ifndef _DISK_PART_DOS_H
|
|
#define _DISK_PART_DOS_H
|
|
|
|
#define DOS_PART_DISKSIG_OFFSET 0x1b8
|
|
#define DOS_PART_TBL_OFFSET 0x1be
|
|
#define DOS_PART_MAGIC_OFFSET 0x1fe
|
|
#define DOS_PBR_FSTYPE_OFFSET 0x36
|
|
#define DOS_PBR32_FSTYPE_OFFSET 0x52
|
|
#define DOS_PBR_MEDIA_TYPE_OFFSET 0x15
|
|
#define DOS_MBR 0
|
|
#define DOS_PBR 1
|
|
#define DOS_PART_TYPE_EXTENDED 0x05
|
|
#define DOS_PART_TYPE_EXTENDED_LBA 0x0F
|
|
#define DOS_PART_TYPE_EXTENDED_LINUX 0x85
|
|
|
|
#define DOS_PART_DEFAULT_GAP 2048
|
|
|
|
typedef struct dos_partition {
|
|
unsigned char boot_ind; /* 0x80 - active */
|
|
unsigned char head; /* starting head */
|
|
unsigned char sector; /* starting sector */
|
|
unsigned char cyl; /* starting cylinder */
|
|
unsigned char sys_ind; /* What partition type */
|
|
unsigned char end_head; /* end head */
|
|
unsigned char end_sector; /* end sector */
|
|
unsigned char end_cyl; /* end cylinder */
|
|
unsigned char start4[4]; /* starting sector counting from 0 */
|
|
unsigned char size4[4]; /* nr of sectors in partition */
|
|
} dos_partition_t;
|
|
|
|
#endif /* _DISK_PART_DOS_H */
|