質問: WindowsやLinuxにおいて、ドライバ開発をする際にはCPU Cache操作が必要になることがあるとおもいますが、CPU CacheをWritebackしたり、Invalidateしたりする関数はるのでしょうか? x86の命令には、WBINVD命令(Write Back and Invalidate Cache)やINVD命令(Invalidate Internal Caches)があると思うので最終的にはこの命令を呼ぶとおもうのですが、これらをラップした関数が用意されているのか教えていただきたいです。
回答: メモリマップドI/Oとかでしょうか。 たとえばLinuxに含まれるfbdev(フレームバッファドライバ)の場合、wbinvdをインラインアセンブラで呼び出すインライン関数を定義しています。 ``` static inline void flush_cache(void) { asm volatile ("wbinvd":::"memory"); } ``` まあ、ラップしなくちゃならないほどのものでもないかと。