[Armadillo:03005] Re: Armadillo-500 ledctrlスクリプトについて

Yasushi SHOJI email@hidden
2008年 6月 17日 (火) 11:27:24 JST


At Tue, 17 Jun 2008 11:01:34 +0900,
g-kihara wrote:
> 
> /home/atmark/atmark-dist-20071018/vendors/AtmarkTechno/Armadillo-500/usr/bin
> 
> にある、ledctrlスクリプトですが、
> led_set_status()
>>  echo $2 > /sys/class/leds/$1/$3
> ですが、
> このとき、どのデバイスドライバのwrite関数が呼ばれるのでしょうか?

sysfsの writeが呼ばれます。fs/sysfs/file.c::sysfs_write_file()です。

> ledctrlスクリプトが操作しているデバイスドライバ
> は複数あるのですか?そのデバイスドライバ名を教えていただけませんか?

ないです。leds-armadillo5x0.cですよ。

ただし、char devが行なうような処理は、sysfsが処理してくれます。たとえ
ば、file_operations構造体を初期化するような処理が char devでは必要です
が、sysfsの場合は、sysfsが処理してくれます。前処理をしてから、a500用の
ドライバに制御が渡ると考えれば良いと思います。

write(2) -> sysfs store() -> led_set_brightness() -> armadillo5x0_led_set()

と流れていくはずです。

Documentation/filesystems/sysfs.txt が詳しいです。
-- 
         yashi



armadillo メーリングリストの案内