[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