[Armadillo:04835] Re: ht2020.cのht_outb ht_inbに関して
船戸 理生
email@hidden
2009年 12月 19日 (土) 17:26:59 JST
アイ電子 船戸です。
溝渕様、
ご回答ありがとうございます。
明示するための記述だったということですね。
下記の質問では、単に2重定義になっているようでしたので、
何か意図があったのかな、と思っただけだったのですが、
正直なところ、#defineマクロ関連はまだ不勉強で、
grepしながらソースも見ているのですが、
>> #define ht_outb(buf, addr) __raw_writeb(buf, __io(addr))
> #define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; })
から先の動作が、実際どういった動作と解釈するべきか、
完全には理解できておらず、特に
({ __u8 __v = __raw_readb(__io(p)); __v; })
がどう動作するのかが分かりません。
include/asm/io.hでは、
#define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; })
なのに、ht_inbでは、
#define ht_inb(addr) __raw_readb(__io(addr))
となっていたので、困惑しております。
Armadilloの問題とは離れるような気もするので、恐縮なのですが、
({ __u8 __v = __raw_readb(__io(p)); __v; })
はどう解釈したら良いのかご教授願えますでしょうか。
> 溝渕です。
>
> 船戸 理生 wrote:
>> そのht2020.cにて、
>> #include<asm/io.h>
>> して、さらに
>> #define ht_outb(buf, addr) __raw_writeb(buf, __io(addr))
>> としてoutbを再定義しているのは、何か理由があるのでしょうか。
>
> include/asm/io.hでは以下のように定義されていますね。
> #define outb(v,p) __raw_writeb(v,__io(p))
>
> ht_outbを使用してもoutbを使用しても問題無いと思います。
>
> 当時のasm/io.hの定義が今と違っていたか、ht2020としてのI/O空間への書き込
> みということを明確にするためにこうなっていると思います。
>
>>
>> また、あえて
>> #define ht_inb(addr) __raw_readb(__io(addr))
>> としてinbを再定義(改変?)されておりますが、
>> その理由はどういった事でしょうか。
>>
>> よろしくお願い致します。
>
> こちらも上記と同様ですね。
>
> include/asm/io.h
> #define inb(p) ({ __u8 __v = __raw_readb(__io(p)); __v; })
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
--
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
アイ電子株式会社 第一技術部
船戸 理生
〒215-0033 神奈川県川崎市麻生区栗木2-6-5
TEL:044-981-3866
FAX:044-981-3868
Email:email@hidden
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
armadillo メーリングリストの案内