[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: backlight control via openfirmware



	port-powerpcじゃなくなってきましたが、

>> 	他のマシンからひっぺがしてきたディスクをmountできるためには、
>個人的には、 disksubr.c は完全に MD であって
>別の port のマシンのディスクを持ってきてつないで読める
>というのは単なる偶然にすぎないと思ってます。

	僕はそうは思っていません。ディスクの中のdisklabelの置場は各diskの
	formatによって定まっていて、sys/arch/*/*/disksubr.cに似たコードの
	コピーがたくさんあるのはよくないと思っています。
	もし他のマシンからひっぺがしてmountできないのなら、FFS_EIとかの
	意味がないですよね?

>> 	MBRを使っているときだけはLABELOFFSET = 1にしてあげる必要があると
>> 	思います。もちろん0と1の両方サポートという選択もできるかとは
>> 	思いますが、0のみというのはないと思う。
>> 	ほんとは、sys/disklabel_mbr.hあたりでMBR_LABELOFFSETとかいう定数を
>> 	定義して、MBRを使うport全てでそれを使うべきかと思います。
>「MBR を使う port」の定義がよくわからないんですが、
>現状 LABELSECTOR が 1でない port は fdisk partition を
>使ってない port じゃないんでしょうか。 alpha もそうですし。

	そんな簡単なルールにはなってません。ばらばらです。

>「どの port でも fdisk partition なディスクは読めるようにする」
>ということならわからないでもないですが、その場合はそれなりの
>MI framework を定義するところから始めるべきで、
>MBR_LABELOFFSET とかもそこに含まれる話だと思います。

	その方向でいこうと思っています。(as mentioned in tech-kern)
	arch/hpc700/hpc700/disksubr.cが大変参考になります。

>> 	writeidsklabelは急ぎ確認します。とりあえずディスク壊さないように
>> 	readdisklabelの方を直しておきます。
>ofppc/disksubr.c の mbr_to_label() みたいなのがあればいいんでしょうか。
>(いまだにちゃんと見てません。すいません)

	(もちろんportによりますが)
	readdisklabel()のほうはLABELOFFSETからしばらくmagic #を探すような
	しかけが入っています。対して、writedisklabel()は多くの場合
	LABELSECTOR/LABELOFFSETを決め打ちしています。
	このため、LABELOFFSETでないところ disklabelがあった場合、もととは
	違う場所にdisklabelが書かれることになります。
	この問題についてはどう考えますか?

itojun



		MBRを使っている
		(or 他のarchから
		disksubr.cを借用)	LABELSECTOR		LABELOFFSET
		---			---			---
acorn26		arm			arm			arm
acorn32		arm			arm			arm
algor		-			0			64
alpha		-			0			64
amiga		-			0			64
amigappc	amiga			0			64
arc		o			1			0
arm		o			1			0
atari		-			0			516
bebox		o			1			0
cats		arm			arm			arm
cesfic		-			1024/DEV_BSIZE		0
cobalt		-			1			0
dreamcast	sh3			sh3			sh3
evbarm		arm			arm			arm
evbmips		-			0			64
evbsh3		sh3			sh3			sh3
hp300		-			1024/DEV_BSIZE		0
hp700		o			multiple		multiple
hpc		o			-			-
hpcarm		hpc			1			0
hpcmips		hpc			1			0
hpcsh		hpc			sh3			sh3
hppa		-			-			-
i386		o			1			0
luna68k		-			0			64
m68k		-			-			-
mac68k		-			0			64
macppc		o			0			64
mips		-			-			-
mipsco		-			1			0
mmeye		sh3			sh3			sh3
mvme68k		-			0			0
mvmeppc		o			1			0
netwinder	arm			arm			arm
news68k		-			0			64
newsmips	-			0			64
next68k		-			0			0
ofppc		o			1			0
pc532		-			0			64
playstation2	o			1			0
pmax		-			0			64
pmppc		o			1			0
powerpc		-			-			-
prep		-			1			0
sandpoint	o			1			0
sbmips		o			1			0
sgimips		-			1			0
sh3		o			1			0
shark		arm			arm			arm
sparc		-			0			128
sparc64		-			0			128
sun2		-			sun68k			sun68k
sun3		-			0			64
sun68k		-			0			64
vax		-			0			64
walnut		-			0			64
x68k		-			0			64
x86_64		o			1			0