From: <imel96@trustix.co.id>
To: <torvalds@transmeta.com>
Cc: <linux-kernel@vger.kernel.org>
Subject: [PATCH] plan9 partition support
Date: Sun, 7 Jan 2001 19:44:38 +0700 (JAVT) [thread overview]
Message-ID: <Pine.LNX.4.30.0101071943310.27014-200000@asmuni.trustix.co.id> (raw)
[-- Attachment #1: Type: TEXT/PLAIN, Size: 681 bytes --]
hi all,
this one patch i believe is harmless as it only
reads partition table, but who knows. the diff
is against 2.4.0.
the patch locates partitions inside the plan9
partition table.
as you may know, a plan9 partition table has three
type of partitions inside (9fat, fs, and swap).
9fat is fat16.
plan9 puts its boot loader in the 9fat partition.
with this patch i can locate the 9fat partition so
lilo could boot plan9.
with msdos file system, linux will mount 9fat partition,
so you could use the 9fat partition from linux and plan9.
i can't find anyone with plan9 to test, but it works for
me, so... i'm not on the list anymore, so please cc.
imel
[-- Attachment #2: Type: TEXT/PLAIN, Size: 4615 bytes --]
diff -ur linux~/Documentation/Configure.help linux/Documentation/Configure.help
--- linux~/Documentation/Configure.help Fri Jan 5 16:27:43 2001
+++ linux/Documentation/Configure.help Sun Jan 7 18:22:25 2001
@@ -11470,6 +11470,17 @@
Say Y here if you would like to use hard disks under Linux which
were partitioned on an x86 PC (not necessarily by DOS).
+Plan9 partition table support (EXPERIMENTAL)
+CONFIG_PLAN9_PARTITION
+ Plan9 uses its own hard disk partition scheme on your PC. It
+ requires only one entry in the primary partition table of your disk
+ and manages it similarly to DOS extended partitions. Plan9 has FAT16
+ filesystem as the first partition to put its boot loader. Saying Y
+ here allows you to read the existing partition, and mount the FAT
+ partition from within Linux (if you have also said Y to "MSDOS file
+ system support"), which gives you the ability to make LILO work with
+ Plan9. If you don't know what all this is about, say N.
+
BSD disklabel (FreeBSD partition tables) support
CONFIG_BSD_DISKLABEL
FreeBSD uses its own hard disk partition scheme on your PC. It
diff -ur linux~/fs/partitions/Config.in linux/fs/partitions/Config.in
--- linux~/fs/partitions/Config.in Mon Jul 10 12:21:41 2000
+++ linux/fs/partitions/Config.in Sun Jan 7 18:37:27 2001
@@ -23,6 +23,7 @@
bool ' BSD disklabel (FreeBSD partition tables) support' CONFIG_BSD_DISKLABEL
bool ' Solaris (x86) partition table support' CONFIG_SOLARIS_X86_PARTITION
bool ' Unixware slices support' CONFIG_UNIXWARE_DISKLABEL
+ dep_bool ' Plan9 partition support (EXPERIMENTAL)' CONFIG_PLAN9_PARTITION $CONFIG_EXPERIMENTAL
fi
bool ' SGI partition support' CONFIG_SGI_PARTITION
bool ' Ultrix partition table support' CONFIG_ULTRIX_PARTITION
diff -ur linux~/fs/partitions/msdos.c linux/fs/partitions/msdos.c
--- linux~/fs/partitions/msdos.c Fri Nov 17 17:18:46 2000
+++ linux/fs/partitions/msdos.c Sun Jan 7 18:46:34 2001
@@ -17,6 +17,8 @@
* Check partition table on IDE disks for common CHS translations
*
* Re-organised Feb 1998 Russell King
+ *
+ * plan9 partition hack 2001 Jan, imel96@trustix.com
*/
#include <linux/config.h>
@@ -228,6 +230,55 @@
}
#endif
+#ifdef CONFIG_PLAN9_PARTITION
+
+static void add_plan9_partition(struct gendisk *hd, struct plan9_partition
+ *plan9_p, int minor)
+{
+ add_gd_partition(hd, current_minor, plan9_p->p_offset, plan9_p->p_size);
+ current_minor++;
+}
+
+/*
+ * Create devices for plan9 partitions listed in a disklabel, under a
+ * dos-like partition. See bsd code for more information.
+ */
+static void plan9_disklabel_partition(struct gendisk *hd, int minor, int st_sec)
+{
+ struct buffer_head *bh;
+ struct plan9_partition p;
+ char * ptr;
+ char buf[40];
+
+ if (!(bh = get_partition_table_block(hd, minor, 0)))
+ return;
+
+ printk(" %s: <plan9:", disk_name(hd, minor, buf));
+ ptr = bh->b_data + 0x200;
+
+ while (!strncmp(ptr, "part", 4)) {
+
+ /* locate offset number (which is two spaces away) */
+ while (*ptr++ != ' ');
+ while (*ptr++ != ' ');
+ p.p_offset = simple_strtoul(ptr, NULL, 10);
+
+ /* find end sector number (next number) */
+ while (*ptr++ != ' ');
+ p.p_size = simple_strtoul(ptr, NULL, 10) - p.p_offset;
+ p.p_offset += st_sec;
+
+ add_plan9_partition(hd, &p, minor);
+
+ /* go on to next partition */
+ while (*ptr++ != '\n');
+ }
+ bforget(bh);
+ printk(" >\n");
+}
+
+#endif
+
#ifdef CONFIG_BSD_DISKLABEL
static void
check_and_add_bsd_partition(struct gendisk *hd,
@@ -499,6 +550,10 @@
SYS_IND(p) == NETBSD_PARTITION ||
SYS_IND(p) == OPENBSD_PARTITION)
bsd_disklabel_partition(hd, minor, SYS_IND(p));
+#endif
+#ifdef CONFIG_PLAN9_PARTITION
+ if (SYS_IND(p) == PLAN9_PARTITION)
+ plan9_disklabel_partition(hd, minor, START_SECT(p));
#endif
#ifdef CONFIG_UNIXWARE_DISKLABEL
if (SYS_IND(p) == UNIXWARE_PARTITION)
diff -ur linux~/include/linux/genhd.h linux/include/linux/genhd.h
--- linux~/include/linux/genhd.h Fri Nov 17 17:23:56 2000
+++ linux/include/linux/genhd.h Sun Jan 7 17:55:15 2001
@@ -103,6 +103,17 @@
#endif /* CONFIG_SOLARIS_X86_PARTITION */
+#ifdef CONFIG_PLAN9_PARTITION
+
+#define PLAN9_PARTITION 0x39
+
+struct plan9_partition { /* the partition table */
+ __u32 p_size; /* number of sectors in partition */
+ __u32 p_offset; /* starting sector */
+};
+
+#endif
+
#ifdef CONFIG_BSD_DISKLABEL
/*
* BSD disklabel support by Yossi Gottlieb <yogo@math.tau.ac.il>
next reply other threads:[~2001-01-07 12:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-07 12:44 imel96 [this message]
2001-01-13 9:50 [PATCH] plan9 partition support imel96
2001-01-14 1:26 Andries.Brouwer
2001-01-16 9:35 ` imel96
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.30.0101071943310.27014-200000@asmuni.trustix.co.id \
--to=imel96@trustix.co.id \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).