mirror of
https://github.com/openharmony/third_party_gptfdisk.git
synced 2026-07-01 13:17:25 -04:00
Build successful,add BUILD.gn, modify 13 files.Add OAT related files,OAT.xml,README.OpenSource and README.md.
Signed-off-by: xlfeng <xulifeng7@huawei.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#Copyright (c) 2021 Huawei Device Co., Ltd.
|
||||
#Licensed under the Apache License, Version 2.0 (the "License");
|
||||
#you may not use this file except in compliance with the License.
|
||||
#You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
#Unless required by applicable law or agreed to in writing, software
|
||||
#distributed under the License is distributed on an "AS IS" BASIS,
|
||||
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
#See the License for the specific language governing permissions and
|
||||
#limitations under the License.
|
||||
|
||||
import("//build/ohos.gni")
|
||||
import("//build/ohos/ndk/ndk.gni")
|
||||
|
||||
config("gptdisk_config") {
|
||||
include_dirs = [
|
||||
".",
|
||||
"//third_party/e2fsprogs/lib/",
|
||||
"//third_party/popt/",
|
||||
]
|
||||
cflags_cc = [
|
||||
"-Wall",
|
||||
"-D_FILE_OFFSET_BITS=64",
|
||||
"-Wno-unused-parameter",
|
||||
"-Wno-pragma-pack",
|
||||
"-Wno-error=header-hygiene",
|
||||
"-Wno-register",
|
||||
]
|
||||
}
|
||||
ohos_executable("sgdisk") {
|
||||
install_enable = true
|
||||
sources = [
|
||||
"attributes.cc",
|
||||
"basicmbr.cc",
|
||||
"bsd.cc",
|
||||
"crc32.cc",
|
||||
"diskio-unix.cc",
|
||||
"diskio.cc",
|
||||
"gpt.cc",
|
||||
"gptcl.cc",
|
||||
"gptpart.cc",
|
||||
"guid.cc",
|
||||
"mbr.cc",
|
||||
"mbrpart.cc",
|
||||
# "ohos_popt.cc",
|
||||
"parttypes.cc",
|
||||
"sgdisk.cc",
|
||||
"support.cc",
|
||||
]
|
||||
public_configs = [ ":gptdisk_config" ]
|
||||
deps = [
|
||||
"//third_party/e2fsprogs/lib/uuid:libext2_uuid",
|
||||
"//third_party/popt:popt_static",
|
||||
]
|
||||
subsystem_name = "storage"
|
||||
part_name = "storage_standard"
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright (c) 2021 Huawei Device Co., Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
This is the configuration file template for OpenHarmony OSS Audit Tool, please copy it to your project root dir and modify it refer to OpenHarmony/tools_oat/README.
|
||||
All configurations in this file will be merged to OAT-Default.xml, if you have any questions or concerns, please create issue in OpenHarmony/tools_oat and @jalenchen or chenyaxun.
|
||||
|
||||
licensefile:
|
||||
1.If the project don't have "LICENSE" in root dir, please define all the license files in this project in , OAT will check license files according to this rule.
|
||||
|
||||
policylist:
|
||||
1. policy: If the OAT-Default.xml policies do not meet your requirements, please add policies here.
|
||||
2. policyitem: The fields type, name, path, desc is required, and the fields rule, group, filefilter is optional,the default value is:
|
||||
<policyitem type="" name="" path="" desc="" rule="may" group="defaultGroup" filefilter="defaultPolicyFilter"/>
|
||||
3. policyitem type:
|
||||
"compatibility" is used to check license compatibility in the specified path;
|
||||
"license" is used to check source license header in the specified path;
|
||||
"copyright" is used to check source copyright header in the specified path;
|
||||
"import" is used to check source dependency in the specified path, such as import ... ,include ...
|
||||
"filetype" is used to check file type in the specified path, supported file types: archive, binary
|
||||
"filename" is used to check whether the specified file exists in the specified path(projectroot means the root dir of the project), supported file names: LICENSE, README, README.OpenSource
|
||||
4. policyitem name: This field is used for define the license, copyright, "*" means match all, the "!" prefix means could not match this value. For example, "!GPL" means can not use GPL license.
|
||||
5. policyitem path: This field is used for define the source file scope to apply this policyitem, the "!" prefix means exclude the files. For example, "!.*/lib/.*" means files in lib dir will be exclude while process this policyitem.
|
||||
6. policyitem rule and group: These two fields are used together to merge policy results. "may" policyitems in the same group means any one in this group passed, the result will be passed.
|
||||
7. policyitem filefilter: Used to bind filefilter which define filter rules.
|
||||
7. policyitem desc: Used to describe the reason of this policy item, committers will check this while merging the code.
|
||||
8. filefilter: Filter rules, the type filename is used to filter file name, the type filepath is used to filter file path.
|
||||
|
||||
Note:If the text contains special characters, please escape them according to the following rules:
|
||||
" == "
|
||||
& == &
|
||||
' == '
|
||||
< == <
|
||||
> == >
|
||||
-->
|
||||
|
||||
<configuration>
|
||||
<oatconfig>
|
||||
<licensefile>./</licensefile>
|
||||
<policylist>
|
||||
<policy name="projectPolicy" desc="">
|
||||
<policyitem type="copyright" name="Roderick W. Smith" path=".*" rule="may" group="defaultGroup" filefilter="copyrightPolicyFilter" desc=""/>
|
||||
<policyitem type="copyright" name="Guillaume Delacour " path=".*" rule="may" group="defaultGroup" filefilter="copyrightPolicyFilter" desc=""/>
|
||||
<policyitem type="license" name="GPL-2.0+" path=".*" rule="may" group="defaultGroup" filefilter="GPL-2.0+" desc=""/>
|
||||
<policyitem type="license" name="GPL-2.0-or-later" path=".*" rule="may" group="defaultGroup" filefilter="gptcurses.h" desc=""/>
|
||||
<policyitem type="license" name="GPLStyleLicense" path=".*" rule="may" group="defaultGroup" filefilter="support.h" desc=""/>
|
||||
<policyitem type="license" name="InvalidLicense" path=".*" rule="may" group="defaultGroup" filefilter="GPL-2.0+" desc=""/>
|
||||
<policyitem type="copyright" name="NULL" path=".*" rule="may" group="defaultGroup" filefilter="copyrightPolicyFilter" desc=""/>
|
||||
</policy>
|
||||
</policylist>
|
||||
<filefilterlist>
|
||||
<filefilter name="defaultFilter" desc="Files not to check">
|
||||
<filteritem type="filename" name="README.OpenSource|README.Windows|README|Makefile.*|uninstall*" desc="NoLicenseHeader"/>
|
||||
</filefilter>
|
||||
<filefilter name="defaultPolicyFilter" desc="Filters for compatibility,license header policies">
|
||||
</filefilter>
|
||||
<filefilter name="copyrightPolicyFilter" desc="Filters for copyright header policies">
|
||||
<filteritem type="filename" name="diskio*.*|gptpart.*|guid.*" desc="InvalidCopyright"/>
|
||||
</filefilter>
|
||||
<filefilter name="licenseFileNamePolicyFilter" desc="Filters for LICENSE file policies">
|
||||
</filefilter>
|
||||
<filefilter name="readmeFileNamePolicyFilter" desc="Filters for README file policies">
|
||||
</filefilter>
|
||||
<filefilter name="readmeOpenSourcefileNamePolicyFilter" desc="Filters for README.OpenSource file policies">
|
||||
</filefilter>
|
||||
<filefilter name="binaryFileTypePolicyFilter" desc="Filters for binary file policies">
|
||||
</filefilter>
|
||||
</filefilterlist>
|
||||
<licensematcherlist>
|
||||
<licensematcher name="GPL-2.0+" desc="License for file">
|
||||
<licensetext name="
|
||||
/*
|
||||
* efone - Distributed internet phone system.
|
||||
*
|
||||
* (c) 1999,2000 Krzysztof Dabrowski
|
||||
* (c) 1999,2000 ElysiuM deeZine
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
" desc=""/>
|
||||
<licensetext name="
|
||||
//
|
||||
// C++ Interface: GUIDData
|
||||
//
|
||||
// Description: GUIDData class header
|
||||
// Implements the GUIDData data structure and support methods
|
||||
//
|
||||
//
|
||||
// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010-2011
|
||||
//
|
||||
// Copyright: See COPYING file that comes with this distribution
|
||||
//
|
||||
//
|
||||
" desc=""/>
|
||||
</licensematcher>
|
||||
</licensematcherlist>
|
||||
</oatconfig>
|
||||
</configuration>
|
||||
@@ -0,0 +1,11 @@
|
||||
[
|
||||
{
|
||||
"Name" : "gptfdisk",
|
||||
"License" : "GPL-2.0-or-later",
|
||||
"License File" : "COPYING",
|
||||
"Version Number" : "1.0.5",
|
||||
"Owner" : "Roderick W. Smith, rodsmith@rodsbooks.com",
|
||||
"Upstream URL" : "https://sourceforge.net/projects/gptfdisk/files/gptfdisk/1.0.5/gptfdisk-1.0.5.tar.gz/download",
|
||||
"Description" : "GPT fdisk is a disk partitioning tool loosely modeled on Linux fdisk, but used for modifying GUID Partition Table (GPT) disks. The related FixParts utility fixes some common problems on Master Boot Re"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,302 @@
|
||||
# third_party_gptfdisk
|
||||
GPT fdisk (aka gdisk, cgdisk, and sgdisk) and FixParts
|
||||
by Roderick W. Smith, rodsmith@rodsbooks.com
|
||||
|
||||
#### Introduction
|
||||
------------
|
||||
This package includes the source code for four related disk partitioning
|
||||
programs:
|
||||
- gdisk -- This program is modeled after Linux fdisk, but it operates on
|
||||
GUID Partition Table (GPT) disks rather than the Master Boot Record (MBR)
|
||||
disks that fdisk modifies. As such, gdisk is an interactive text-mode
|
||||
tool for manipulating partitions, but it does nothing to the contents of
|
||||
those partitions (usually filesystems, but sometimes swap space or other
|
||||
data).
|
||||
|
||||
- cgdisk -- This program is modeled after Linux cfdisk, but it operates on
|
||||
GPT disks rather than the MBR disks that cfdisk modifies. As such, cgdisk
|
||||
is a curses-based text-mode tool for manipulating partitions, which is to
|
||||
say that it uses an interface that relies on arrow keys and a dynamic
|
||||
display rather than the command letters and a scrolling display like
|
||||
gdisk uses.
|
||||
|
||||
- sgdisk -- This program is conceptually similar to the Linux sfdisk and
|
||||
FreeBSD gpt programs, but its operational details differ. It enables
|
||||
manipulation of GPT disks using command-line options, so it's suitable
|
||||
for use in scripts or by experts to perform specific tasks that might
|
||||
take several commands in gdisk to accomplish.
|
||||
|
||||
- fixparts -- This program, unlike the preceding three, operates on MBR
|
||||
disks. It's intended to fix certain problems that can be created by
|
||||
various utilities. Specifically, it can fix mis-sized extended partitions
|
||||
and primary partitions located in the middle of extended partitions. It
|
||||
also enables changing primary vs. logical partition status (within limits
|
||||
of what's legal in the MBR scheme) and making a few other minor changes.
|
||||
It does NOT support creating new partitions; for that, you should use
|
||||
fdisk, parted, or some other tool.
|
||||
|
||||
|
||||
#### More details about the abilities of these tools follows.
|
||||
|
||||
All four programs rely on the same set of underlying code base; they differ
|
||||
only in their control interfaces (defined in gdisk.cc, cgdisk.cc,
|
||||
sgdisk.cc, and fixparts.cc, respectively) and in which support code they
|
||||
use.
|
||||
|
||||
#### GPT fdisk (gdisk, cgdisk, and sgdisk) Details
|
||||
---------------------------------------------
|
||||
|
||||
The gdisk program is intended as a (somewhat) fdisk-workalike program for
|
||||
GPT-partitioned disks, cgdisk is similarly a workalike for fdisk, and
|
||||
sgdisk provides most of gdisk's functionality in a more script-friendly
|
||||
program. Although libparted and programs that use it (GNU Parted, gparted,
|
||||
etc.) provide the ability to handle GPT disks, they have certain
|
||||
limitations that gdisk overcomes. Specific advantages of gdisk, cgdisk, and
|
||||
sgdisk include:
|
||||
|
||||
* The ability to convert MBR-partitioned disks in-place to GPT format,
|
||||
without losing data
|
||||
|
||||
* The ability to convert BSD disklabels in-place to create GPT
|
||||
partitions, without losing data
|
||||
|
||||
* The ability to convert from GPT format to MBR format without data loss
|
||||
(gdisk and sgdisk only)
|
||||
|
||||
* More flexible specification of filesystem type code GUIDs, which
|
||||
GNU Parted tends to corrupt
|
||||
|
||||
* Clear identification of the number of unallocated sectors on a
|
||||
disk
|
||||
|
||||
* A user interface that's familiar to long-time users of Linux
|
||||
fdisk and cfdisk (gdisk and cgdisk only)
|
||||
|
||||
* The MBR boot loader code is left alone
|
||||
|
||||
* The ability to create a hybrid MBR, which permits GPT-unaware OSes to
|
||||
access up to three GPT partitions on the disk (gdisk and sgdisk only)
|
||||
|
||||
Of course, GPT fdisk isn't without its limitations. Most notably, it lacks
|
||||
the filesystem awareness and filesystem-related features of GParted. You
|
||||
can't resize a partition's filesystem or create a partition with a
|
||||
filesystem already in place with gdisk, for instance. There's no GUI
|
||||
version of gdisk.
|
||||
|
||||
The GPT fdisk package provides three program files: the interactive
|
||||
text-mode gdisk, the curses-based interactive cgdisk, and the
|
||||
command-line-driven sgdisk. The first two are intended for use in manually
|
||||
partitioning disks or changing partitioning details; sgdisk is intended for
|
||||
use in scripts to help automate tasks such as disk cloning or preparing
|
||||
multiple disks for Linux installation.
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### FixParts Details
|
||||
----------------
|
||||
|
||||
This program's creation was motivated by cries for help I've seen in online
|
||||
forums from users who have found their partition tables to be corrupted by
|
||||
various buggy partitioning tools. Although most OSes can handle the
|
||||
afflicted disks fine, libparted-based tools (GParted, parted, most Linux
|
||||
installers, etc.) tend to flake out when presented with these disks.
|
||||
Typically, the symptom is a disk that appears to hold no partitions;
|
||||
however, sometimes the libparted tool presents partitions other than those
|
||||
that the OS sees.
|
||||
|
||||
I've observed four causes of these symptoms, three of which FixParts can
|
||||
correct:
|
||||
|
||||
* Old GPT data -- If a disk is used as a GPT disk and then re-used as an
|
||||
MBR disk, the GPT data may be incompletely erased. This happens if the
|
||||
disk is repartitioned with fdisk or the Microsoft Windows installer, for
|
||||
instance. (Tools based on libparted correctly remove the old GPT data
|
||||
when converting from GPT to MBR format.) FixParts checks for this problem
|
||||
when it starts and offers to correct it. If you opt to erase the GPT
|
||||
data, this erasure occurs immediately, unlike other changes the program
|
||||
makes.
|
||||
|
||||
* Mis-sized extended partitions -- Some tools create an extended partition
|
||||
that's too large, typically ending after the last sector of the disk.
|
||||
FixParts automatically corrects this problem (if you use the 'w' option
|
||||
to save the partition table).
|
||||
|
||||
* Primary partitions inside an extended partition -- Some utilities create
|
||||
or move primary partitions to within the range covered by the extended
|
||||
partition. FixParts can usually correct this problem by turning the
|
||||
primary partition into a logical partition or by changing one or more
|
||||
other logical partitions into primaries. Such corrections aren't always
|
||||
possible, though, at least not without deleting or resizing other
|
||||
partitions.
|
||||
|
||||
* Leftover RAID data -- If a disk is used in a RAID array and then re-used
|
||||
as a non-RAID disk, some utilities can become confused and fail to see
|
||||
the disk. FixParts can NOT correct this problem. You must destroy the old
|
||||
RAID data, or possibly remove the dmraid package from the system, to fix
|
||||
this problem.
|
||||
|
||||
When run, FixParts presents an fdisk-like interface, enabling you to adjust
|
||||
partition types (primary, logical, or omitted), change type codes, change
|
||||
the bootable flag, and so on. Although you can delete a partition (by
|
||||
omitting it), you can't create new partitions with the program. If you're
|
||||
used to partitioning disks, particularly with Linux fdisk, two unusual
|
||||
features of FixParts require elaboration:
|
||||
|
||||
* No extended partitions -- Internally, FixParts reads the partition table
|
||||
and discards data on any extended partition(s) it finds. When you save
|
||||
the partition table, the program generates a new extended partition. This
|
||||
design means that the program automatically corrects many problems
|
||||
related to the extended partition. It also means that you'll see no
|
||||
evidence of extended partitions in the FixParts user interface, although
|
||||
it keeps track of the requirements and prevents you from creating illegal
|
||||
layouts, such as a primary between two logicals.
|
||||
|
||||
* Partition numbering -- In most Linux tools, partitions 1-4 are primaries
|
||||
and partitions 5 and up are logicals. Although a legal partition table
|
||||
loaded into FixParts will initially conform to this convention, some
|
||||
types of damaged table might not, and various changes you make can also
|
||||
cause deviations. When FixParts writes the partition table, its numbering
|
||||
will be altered to conform to the standard MBR conventions, but you
|
||||
should use the explicit labeling of partitions as primary or logical
|
||||
rather than the partition numbers to determine a partition's status.
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Installing
|
||||
----------
|
||||
|
||||
To compile GPT fdisk, you must have appropriate development tools
|
||||
installed, most notably the GNU Compiler Collection (GCC) and its g++
|
||||
compiler for C++. I've also tested compilation with Clang, which seems to
|
||||
work; however, I've not done extensive testing of the resulting binaries,
|
||||
beyond checking a few basics. Under Windows, Microsoft Visual C++ 2008 can
|
||||
be used instead. In addition, note these requirements:
|
||||
|
||||
* On Linux, FreeBSD, OS X, and Solaris, libuuid must be installed. This is
|
||||
the standard for Linux and OS X, although you may need to install a
|
||||
package called uuid-dev or something similar to get the headers. On
|
||||
FreeBSD, the e2fsprogs-libuuid port must be installed.
|
||||
|
||||
* The ICU library (http://site.icu-project.org), which provides support for
|
||||
Unicode partition names, is optional on all platforms except Windows, on
|
||||
which it's not supported. Using this library was required to get proper
|
||||
UTF-16 partition name support in GPT fdisk versions prior to 0.8.9, but
|
||||
as of that version it should not longer be required. Nonetheless, you can
|
||||
use it if you're having problems with the new UTF-16 support. This
|
||||
library is normally installed in Linux and OS X, but you may need to
|
||||
install the development headers (libicu-dev or something similar in
|
||||
Linux; or the libicu36-dev Fink package in OS X). To compile with ICU
|
||||
support, you must modify the Makefile: Look for commented-out lines that
|
||||
refer to USE_UTF16, -licuuc, -licudata, or -licucore. Uncomment them and
|
||||
comment out the equivalents that lack these lines.
|
||||
|
||||
* The cgdisk program requires the ncurses library and its development files
|
||||
(headers). Most Linux distributions install ncurses by default, but you
|
||||
may need to install a package called libncurses5-dev, ncurses-devel, or
|
||||
something similar to obtain the header files. These files were installed
|
||||
already on my Mac OS X development system; however, they may have been
|
||||
installed as dependencies of other programs I've installed. If you're
|
||||
having problems installing ncurses, you can compile gdisk and/or sgdisk
|
||||
without cgdisk by specifying only the targets you want to compile to
|
||||
make.
|
||||
|
||||
* The sgdisk program requires the popt library and its development files
|
||||
(headers). Most Linux distributions install popt by default, but you may
|
||||
need to install a package called popt-dev, popt-devel, or something
|
||||
similar to obtain the header files. Mac OS users can find a version of
|
||||
popt for Mac OS from Darwin Ports (http://popt.darwinports.com), MacPorts
|
||||
(https://trac.macports.org/browser/trunk/dports/devel/popt/Portfile), Fink
|
||||
(http://www.finkproject.org), or brew (http://macappstore.org/popt/);
|
||||
however, you'll first need to install the relevant environment
|
||||
(instructions exist on the relevant projects' pages). When I re-built my
|
||||
Mac build environment in February of 2020, I found that brew was, by far,
|
||||
the easiest of these to install. Some of the others seem to have been
|
||||
abandoned, but I didn't investigate thoroughly. I'm leaving the references
|
||||
in case they might be useful in the future. Instead of installing one of
|
||||
These ports, you can compile gdisk and/or cgdisk alone, without sgdisk;
|
||||
gdisk and cgdisk don't require popt.
|
||||
|
||||
When all the necessary development tools and libraries are installed, you
|
||||
can uncompress the package and type "make" at the command prompt in the
|
||||
resulting directory. (You may need to type "make -f Makefile.mac" on Mac OS
|
||||
X, "make -f Makefile.freebsd" on FreeBSD, "make -f Makefile.solaris" on
|
||||
Solaris, or "make -f Makefile.mingw" to compile using MinGW for Windows.)
|
||||
You may also need to add header (include) directories or library
|
||||
directories by setting the CXXFLAGS environment variable or by editing the
|
||||
Makefile. The result should be program files called gdisk, cgdisk, sgdisk,
|
||||
and fixparts. Typing "make gdisk", "make cgdisk", "make sgdisk", or "make
|
||||
fixparts" will compile only the requested programs. You can use these
|
||||
programs in place or copy the files to a suitable directory, such as
|
||||
/usr/local/sbin. You can copy the man pages (gdisk.8, cgdisk.8, sgdisk.8,
|
||||
and fixparts.8) to /usr/local/man/man8 to make them available.
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
#### Caveats
|
||||
-------
|
||||
|
||||
THIS SOFTWARE IS BETA SOFTWARE! IF IT WIPES OUT YOUR HARD DISK OR EATS YOUR
|
||||
CAT, DON'T BLAME ME! To date, I've tested the software on several USB flash
|
||||
drives, physical hard disks, and virtual disks in the QEMU and VirtualBox
|
||||
environments. Many others have now used the software on their computers, as
|
||||
well. I believe all data-corruption bugs to be squashed, but I know full well
|
||||
that the odds of my missing something are high. This is particularly true for
|
||||
large (over-2TiB) drives; my only direct testing with such disks is with
|
||||
virtual QEMU and VirtualBox disks. I've received user reports of success with
|
||||
RAID arrays over 2TiB in size, though.
|
||||
|
||||
My main development platform is a system running the 64-bit version of
|
||||
Ubuntu Linux. I've also tested on several other 32- and 64-bit Linux
|
||||
distributions, Intel-based Mac OS X 10.6 and several later versions, 64-bit
|
||||
FreeBSD 7.1, and Windows 7 and 10.
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
#### Redistribution
|
||||
--------------
|
||||
|
||||
This program is licensed under terms of the GNU GPL (see the file COPYING).
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
#### Acknowledgements
|
||||
----------------
|
||||
|
||||
This code is mostly my own; however, I've used three functions from two
|
||||
other GPLed programs:
|
||||
|
||||
- The code used to generate CRCs is taken from the efone program by
|
||||
Krzysztof Dabrowski and ElysiuM deeZine. (See the crc32.h and
|
||||
crc32.cc source code files.)
|
||||
|
||||
- A function to find the disk size is taken from Linux fdisk by A. V. Le
|
||||
Blanc. This code has subsequently been heavily modified.
|
||||
|
||||
Additional code contributors include:
|
||||
|
||||
- Yves Blusseau (1otnwmz02@sneakemail.com)
|
||||
|
||||
- David Hubbard (david.c.hubbard@gmail.com)
|
||||
|
||||
- Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
- Dwight Schauer (dschauer@ti.com)
|
||||
|
||||
- Florian Zumbiehl (florz@florz.de)
|
||||
|
||||
- Guillaume Delacour (contributed the gdisk_test.sh script)
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
@@ -7,7 +7,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
//#include <unistd.h>
|
||||
|
||||
@@ -13,7 +13,9 @@
|
||||
// under the terms of the GNU GPL version 2, as detailed in the COPYING file.
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -13,7 +13,9 @@
|
||||
// under the terms of the GNU GPL version 2, as detailed in the COPYING file.
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <windows.h>
|
||||
#include <winioctl.h>
|
||||
|
||||
@@ -13,7 +13,9 @@
|
||||
// under the terms of the GNU GPL version 2, as detailed in the COPYING file.
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -13,7 +13,9 @@
|
||||
// under the terms of the GNU GPL version 2, as detailed in the COPYING file.
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#ifdef USE_UTF16
|
||||
#include <unicode/ustdio.h>
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
//
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -18,7 +18,9 @@
|
||||
*/
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -7,8 +7,12 @@
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
#ifndef __STDC_CONSTANT_MACROS
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
#endif
|
||||
#ifndef __STDC_FORMAT_MACROS
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
|
||||
Reference in New Issue
Block a user