AlphaConsoleCallback

2004-03-17 23:54:31 +0900 (1720d); rev 4

Alpha のコンソールプログラムは コンソール自身や端末などに対するインターフェイスを提供している。 それがコンソールコールバック (Console Callback Routine) である。

OS がコンソールコールバックを使うのは主にブート中だが、 通常稼働時にも一部のコールバックは呼ぶ可能性がある。

コールバックの種類

AlphaArchitectureReferenceManual よりコールバックを抜粋する。 必ずしも全てのコールバックが存在するわけではないと書いてあるが、 我々が普通に使う Alpha マシンならば全部存在すると予想される。

OPEN だの READ だの、UNIX のシステムコールにしか見えない。 どんなデバイスが OPEN できるのかは調査中。 ハードディスクなんかも OPEN できるんだろうか。

なお、ここにある OPEN とか READ は ブートとシャットダウンの時に使うだけで、 OS が完全に起動した後は使わなくなる。 これは AlphaArchitectureReferenceManual の III 2.3.5 Console Generic I/O Device Routines に はっきりと記述がある。

ブートした後にどうやって I/O を行うかについては AlphaHardwareIo を参照のこと。

コールバックの呼びかた

上記のリストの「その他」にある DISPATCH が 他のコールバックを呼ぶためのコールバックである。 DISPATCH のエントリポイントは HWRPB にあるので、 そこからポインタを持ってきて Alpha の規約に従って呼び出せばよい。 → AlphaHwrpb

NetBSD/Alpha で言うと、 src/sys/arch/alpha/stand/common/prom_dispatch.S あたりが DISPATCH 呼び出しにあたる。


system revision 1.162