[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Additional patch for NetBSD/sandpoint(kurobox)
- Subject: Additional patch for NetBSD/sandpoint(kurobox)
- From: Eiji Kawauchi <kawauchi@pa.air.jp>
- To: port-powerpc-ja@jp.netbsd.org
- Date: Sat, 20 Aug 2005 11:55:59 +0900
- Organization: Personal
- Message-ID: <43069BBF.80106@pa.air.jp>
- Delivered-To: mailing list port-powerpc-ja@jp.netbsd.org
- Mailing-List: contact port-powerpc-ja-help@jp.netbsd.org; run by ezmlm-idx
- User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
かわうち@夏休みの宿題再提出、です。
こんにちは。
fictitious disklabel生成時に(やはり)バグがありました _o_
sys/arch/sandpoint/sandpoint/disksubr.cのreaddisklabel()の中でlp->d_partitions
[2].p_size, lp->d_partitions[2].p_offsetのエンディアンによる
入れ替えを忘れていました。
該当部分のみのdiff -uはこのようになります(正式なパッチ形式でなくてすみませ
ん)。
------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ------
cyl = MBR_PCYL(dp->mbrp_scyl, dp->mbrp_ssect);
/* update disklabel with details */
- lp->d_partitions[2].p_size =
- dp->mbrp_size;
- lp->d_partitions[2].p_offset =
- dp->mbrp_start;
+ if (f_endian) {
+ lp->d_partitions[2].p_size =
+ bswap32(dp->mbrp_size);
+ lp->d_partitions[2].p_offset =
+ bswap32(dp->mbrp_start);
+ }
+ else {
+ lp->d_partitions[2].p_size =
+ dp->mbrp_size;
+ lp->d_partitions[2].p_offset =
+ dp->mbrp_start;
+ }
#if 0
if (lp->d_ntracks != dp->mbrp_ehd + 1 ||
lp->d_nsectors != DPSECT(dp->mbrp_esect)) {
------- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ------
(余談)パーティションテーブルはDOS由来なのだからELに統一して欲しいのだけれど
玄箱でフォーマットしたディスクはEBなので仕方なく...
--
Eiji Kawauchi