aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root>2007-09-08 16:49:37 +0000
committerroot <root>2007-09-08 16:49:37 +0000
commit44341d32524c1621357bac52ffca7d8e9270c3e4 (patch)
treef9920382c2c19f05d3d09f4f5ce07f2cb1312247
parent77f753281564930411f0a0a0965810fb80f22915 (diff)
downloadgpt-44341d32524c1621357bac52ffca7d8e9270c3e4.tar.gz
gpt-44341d32524c1621357bac52ffca7d8e9270c3e4.tar.bz2
gpt-44341d32524c1621357bac52ffca7d8e9270c3e4.zip
*** empty log message ***
-rw-r--r--AUTHORS16
-rw-r--r--COPYING13
-rw-r--r--ChangeLog15
-rw-r--r--INSTALL197
-rw-r--r--Makefile.am16
-rw-r--r--NEWS15
-rw-r--r--README15
-rwxr-xr-xbstrap18
-rw-r--r--configure.in65
-rwxr-xr-xmaintainer/bootstrap24
-rwxr-xr-xmaintainer/make_distn20
-rwxr-xr-xmaintainer/tag36
-rwxr-xr-xmaintainer/tidy33
-rw-r--r--src/Makefile.am60
-rw-r--r--src/gpt.c27
-rw-r--r--src/gpt.h102
-rw-r--r--src/project.h65
-rw-r--r--src/prototypes.h0
-rw-r--r--src/version.c25
-rw-r--r--version-files3
-rw-r--r--version-major1
-rw-r--r--version-md5sums0
-rw-r--r--version-micro1
-rw-r--r--version-minor1
24 files changed, 732 insertions, 36 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1b5e491
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,16 @@
+#
+#
+# AUTHORS:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: AUTHORS,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: AUTHORS,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+James McKenzie, <james@fishsoup.dhs.org>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..84a1672
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,13 @@
+#
+# COPYING:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: COPYING,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: COPYING,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..8b3686a
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,15 @@
+#
+#
+# ChangeLog:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: ChangeLog,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: ChangeLog,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..f8b967e
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,197 @@
+#
+#
+# INSTALL:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: INSTALL,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: INSTALL,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+ The file `configure.in' is used to create `configure' by a program
+called `autoconf'. You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. You can give `configure'
+initial values for variables by setting them in the environment. Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+ CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+ env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory. After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+ CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+ If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+ Use and save the results of the tests in FILE instead of
+ `./config.cache'. Set FILE to `/dev/null' to disable caching, for
+ debugging `configure'.
+
+`--help'
+ Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--version'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..c3e861a
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,16 @@
+#
+#
+# Makefile.am:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: Makefile.am,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: Makefile.am,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+SUBDIRS=src
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..a60b342
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,15 @@
+#
+#
+# NEWS:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: NEWS,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: NEWS,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
diff --git a/README b/README
new file mode 100644
index 0000000..4ddd057
--- /dev/null
+++ b/README
@@ -0,0 +1,15 @@
+#
+#
+# README:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: README,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: README,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
diff --git a/bstrap b/bstrap
new file mode 100755
index 0000000..66634f1
--- /dev/null
+++ b/bstrap
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# bstrap:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: bstrap,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: bstrap,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+maintainer/bootstrap
+./configure --prefix=/tmp
diff --git a/configure.in b/configure.in
new file mode 100644
index 0000000..bca91c2
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,65 @@
+dnl
+dnl
+dnl configure.in.head:
+dnl
+dnl Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+dnl All rights reserved.
+dnl
+dnl $Id: configure.in,v 1.1 2007/09/08 16:49:37 root Exp $
+dnl
+dnl $Log: configure.in,v $
+dnl Revision 1.1 2007/09/08 16:49:37 root
+dnl *** empty log message ***
+dnl
+dnl
+dnl
+dnl
+AC_PREREQ(2.13)
+AC_INIT(src/gpt.c)
+
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+AC_PROG_RANLIB
+AC_PROG_AWK
+AC_CHECK_PROG(MD5SUM,md5sum,md5sum)
+AC_CHECK_PROG(GREP,grep,grep)
+
+AC_SYS_LARGEFILE
+
+GPT_MAJOR_VERSION=`cat $srcdir/version-major`
+GPT_MINOR_VERSION=`cat $srcdir/version-minor`
+GPT_MICRO_VERSION=`cat $srcdir/version-micro`
+
+
+GPT_VERSION=$GPT_MAJOR_VERSION.$GPT_MINOR_VERSION.$GPT_MICRO_VERSION
+
+AC_SUBST(GPT_MAJOR_VERSION)
+AC_SUBST(GPT_MINOR_VERSION)
+AC_SUBST(GPT_MICRO_VERSION)
+AC_SUBST(GPT_VERSION)
+
+
+VERSION=$GPT_VERSION
+PACKAGE=gpt
+
+AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
+
+
+AM_CONFIG_HEADER(src/config.h)
+
+# Checks for header files.
+AC_CHECK_HEADERS([malloc.h])
+AC_HEADER_STDC
+AC_FUNC_MALLOC
+
+AC_C_INLINE
+AC_C_CONST
+
+
+AC_OUTPUT([Makefile
+ src/Makefile])
+
+
diff --git a/maintainer/bootstrap b/maintainer/bootstrap
new file mode 100755
index 0000000..664776c
--- /dev/null
+++ b/maintainer/bootstrap
@@ -0,0 +1,24 @@
+#!/bin/sh
+#
+# bootstrap:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: bootstrap,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: bootstrap,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+#
+#libtoolize -f -c --automake
+aclocal
+autoheader
+autoconf
+automake -a -c
+automake -a -c Makefile
+automake -a -c src/Makefile
diff --git a/maintainer/make_distn b/maintainer/make_distn
new file mode 100755
index 0000000..0d444f3
--- /dev/null
+++ b/maintainer/make_distn
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# make_distn:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: make_distn,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: make_distn,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+./maintainer/bootstrap
+./configure
+make dist
+make distclean
diff --git a/maintainer/tag b/maintainer/tag
new file mode 100755
index 0000000..7359975
--- /dev/null
+++ b/maintainer/tag
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# tag:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: tag,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: tag,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+cvs commit -m ""
+
+FILES=`cat version-files`
+CHK=`cat $FILES | md5sum | awk '{print $1}'`
+TG=`grep $CHK version-md5sums | awk '{print $2}'`
+if [ .$TG != . ]; then
+ echo This code already tagged as Version $TG
+ exit 0
+fi
+
+MAJOR=`cat version-major`
+MINOR=`cat version-minor`
+MICRO=$[ `cat version-micro` + 1 ]
+
+echo $MICRO > version-micro
+
+echo "$CHK ${MAJOR}.${MINOR}.${MICRO}" >> version-md5sums
+
+cvs commit -m ""
+cvs tag gpt-$MAJOR_$MINOR_$MICRO .
diff --git a/maintainer/tidy b/maintainer/tidy
new file mode 100755
index 0000000..d7065ef
--- /dev/null
+++ b/maintainer/tidy
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# tidy:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: tidy,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: tidy,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+if [ -f Makefile ]; then
+ make distclean
+fi
+
+for i in acconfig.h AUTHORS bstrap ChangeLog configure.in COPYING INSTALL mdist NEWS README tidy src/config.h.in `find . -name Makefile.am -print` `find . -name \*.[ch] -print` ; do
+ if [ -f $i ]; then
+ gimme $i
+ fi
+done
+
+find . -name \*.[ch] -print | xargs indent -i2 -ts0
+
+find . -name \*~ -print| xargs /bin/rm -f
+find . -name \*.BAK -print| xargs /bin/rm -f
+find . -name a.out -print| xargs /bin/rm -f
+find . -name core -print| xargs /bin/rm -f
+
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..6b4b5e4
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,60 @@
+#
+#
+# Makefile.am:
+#
+# Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+# All rights reserved.
+#
+# $Id: Makefile.am,v 1.1 2007/09/08 16:49:37 root Exp $
+#
+# $Log: Makefile.am,v $
+# Revision 1.1 2007/09/08 16:49:37 root
+# *** empty log message ***
+#
+#
+#
+#
+
+CPROTO=cproto
+INCLUDES =
+
+noinst_HEADERS=project.h prototypes.h
+
+bin_PROGRAMS = gpt
+
+SRCS=gpt.c version.c
+gpt_SOURCES = ${SRCS}
+gpt_LDADD =
+
+AM_CFLAGS=-g
+
+gpt_LDFLAGS =
+
+BUILT_SOURCES = version.h
+
+
+VFD=${srcdir}/..
+VF=${shell cat ${VFD}/version-files}
+VFS=${VF:%=${VFD}/%}
+VCHK=${shell cat ${VFS} | @MD5SUM@ | @AWK@ '{print $$1 }' }
+VNUM=${shell @GREP@ ${VCHK} ${VFD}/version-md5sums | @AWK@ '{ print $$2 }' }
+VDEF=${shell echo `cat ${VFD}/version-major`.`cat ${VFD}/version-minor`.`cat ${VFD}/version-micro` }
+
+protos:
+ echo > prototypes.h
+ ${CPROTO} -v ${INCLUDES} ${SRCS} > prototypes.tmp
+ mv -f prototypes.tmp prototypes.h
+
+
+
+version.h: $(VFD)/version-files $(VFD)/version-major \
+ $(VFD)/version-minor $(VFD)/version-micro \
+ $(VFD)/version-md5sums ${VFS} Makefile
+ if [ .${VNUM} = . ]; then \
+ echo "#define VERSION \"gpt Version ${VDEF} + Edits\"" > version.h; \
+ echo ${VDEF}-E > version-num; \
+ else \
+ echo "#define VERSION \"gpt Version ${VNUM}\"" > version.h; \
+ echo ${VNUM} > version-num; \
+ fi
+
diff --git a/src/gpt.c b/src/gpt.c
new file mode 100644
index 0000000..f392710
--- /dev/null
+++ b/src/gpt.c
@@ -0,0 +1,27 @@
+/*
+ * gpt.c:
+ *
+ * Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+ * All rights reserved.
+ *
+ */
+
+static char rcsid[] = "$Id: gpt.c,v 1.1 2007/09/08 16:49:37 root Exp $";
+
+/*
+ * $Log: gpt.c,v $
+ * Revision 1.1 2007/09/08 16:49:37 root
+ * *** empty log message ***
+ *
+ */
+
+
+
+#include "project.h"
+
+
+int
+main (int argc, char *argv[])
+{
+ return 0;
+}
diff --git a/src/gpt.h b/src/gpt.h
index 6ae7866..80742ea 100644
--- a/src/gpt.h
+++ b/src/gpt.h
@@ -1,43 +1,73 @@
-
-#define PACKED __attribute__ ( packed )
-
-#define GUID(a)
+#define PACKED __attribute__((packed))
#define TYPE_EMPTY "00000000-0000-0000-0000-000000000000"
#define TYPE_SYSTEM "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"
-typedef PACKED struct {
- uint8_t d[16];
-} guid;
-
-typedef PACKED struct {
- guid type;
- guid label;
- uint64_t start;
- uint64_t end;
- uint64_t flags;
-#define FLAG_SYSTEM 1
- uint8_t name[72];
+typedef PACKED struct
+{
+ uint8_t d[16];
+} GUID;
+
+#define GPT_ENTRY_FLAG_SYSTEM 1
+typedef PACKED struct
+{
+ GUID type;
+ GUID label;
+ uint64_t start;
+ uint64_t end;
+ uint64_t flags;
+ uint8_t name[72];
} GPT_entry;
-
-typedef PACKED struct {
-
-
-
-typedef PACKED struct {
-uint8_t boot_code[440];
-uint8_t uid[4];
-uint8_t reserved[2];
-MBR_entry entry[4];
-uint8_t signature[2];
-}
-
-
-
-
-
-
+#define GPT_HEADER_SIGNATURE "EFI PART"
+#define GPT_HEADER_REVISION_EFI10 0x00010000
+
+typedef PACKED struct
+{
+ uint8_t signature[8];
+ uint32_t revision;
+ uint32_t header_size;
+ uint32_t header_crc;
+ uint8_t reserved[20];
+ uint64_t my_lba;
+ uint64_t alternate_lba;
+ uint64_t first_usable_lba;
+ uint64_t last_usable_lba;
+ GUID disk_guid;
+ uint64_t partition_entry_lba;
+ uint32_t n_partition_entries;
+ uint32_t partition_entry_size;
+ uint32_t partition_entry_crc;
+} GPT_header;
+
+
+
+
+#define MBR_PARTITION_TYPE_EFI 0xee
+#define MBR_PARTITION_BOOTABLE 0x80
+
+typedef PACKED struct
+{
+ uint8_t head;
+ uint8_t sector;
+ uint8_t track;
+} CHS;
+
+typedef PACKED struct
+{
+ uint8_t bootable;
+ CHS chs_start;
+ uint8_t system;
+ CHS chs_end;
+ uint32_t start;
+ uint32_t size;
+} MBR_entry;
+
+typedef PACKED struct
+{
+ uint8_t boot_code[440];
+ uint8_t uid[4];
+ uint8_t reserved[2];
+ MBR_entry entry[4];
+ uint8_t signature[2];
} MBR;
-
-
diff --git a/src/project.h b/src/project.h
new file mode 100644
index 0000000..4a1063e
--- /dev/null
+++ b/src/project.h
@@ -0,0 +1,65 @@
+/*
+ * project.h:
+ *
+ * Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+ * All rights reserved.
+ *
+ */
+
+/*
+ * $Id: project.h,v 1.1 2007/09/08 16:49:37 root Exp $
+ */
+
+/*
+ * $Log: project.h,v $
+ * Revision 1.1 2007/09/08 16:49:37 root
+ * *** empty log message ***
+ *
+ */
+
+#ifndef __PROJECT_H__
+#define __PROJECT_H__
+
+
+#include "config.h"
+
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#ifdef TIME_WITH_SYS_TIME
+#include <time.h>
+#endif
+#else
+#ifdef TIME_WITH_SYS_TIME
+#include <sys/time.h>
+#endif
+#include <time.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if defined(HAVE_STDINT_H)
+#include <stdint.h>
+#elif defined(HAVE_SYS_INT_TYPES_H)
+#include <sys/int_types.h>
+#endif
+
+#include "prototypes.h"
+
+#endif /* __PROJECT_H__ */
diff --git a/src/prototypes.h b/src/prototypes.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/prototypes.h
diff --git a/src/version.c b/src/version.c
new file mode 100644
index 0000000..49ad791
--- /dev/null
+++ b/src/version.c
@@ -0,0 +1,25 @@
+/*
+ * version.c:
+ *
+ * Copyright (c) 2007 James McKenzie <james@fishsoup.dhs.org>,
+ * All rights reserved.
+ *
+ */
+
+static char rcsid[] = "$Id: version.c,v 1.1 2007/09/08 16:49:37 root Exp $";
+
+/*
+ * $Log: version.c,v $
+ * Revision 1.1 2007/09/08 16:49:37 root
+ * *** empty log message ***
+ *
+ */
+
+
+#include "version.h"
+
+static char *
+GetVersion(void)
+{
+ return VERSION;
+}
diff --git a/version-files b/version-files
new file mode 100644
index 0000000..8954ead
--- /dev/null
+++ b/version-files
@@ -0,0 +1,3 @@
+src/version.c
+src/project.h
+src/gpt.c
diff --git a/version-major b/version-major
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/version-major
@@ -0,0 +1 @@
+1
diff --git a/version-md5sums b/version-md5sums
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/version-md5sums
diff --git a/version-micro b/version-micro
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/version-micro
@@ -0,0 +1 @@
+0
diff --git a/version-minor b/version-minor
new file mode 100644
index 0000000..573541a
--- /dev/null
+++ b/version-minor
@@ -0,0 +1 @@
+0