これは、私が仕事でたまたまやることになった、最初で(多分最後の?)Linux によるデバイス・ドライバ開発の経験から、学んだことを抜粋しています。これを読んだからといってすぐさまドライバが書けるようになるとは思わないでください。ただ、この手の文書はあまり見たことがなかったので、少しはインパクトあるかなあ、ぐらいの軽い気持ちで書きました。 実際のコードや関数仕様書などはお見せできませんが、雰囲気くらいは分かると思います。 カーネルのソースを読む際の参考になれば幸いです。 前提 SCSIについて 開発の必要条件 入門 デバイスドライバに関する一般的な考慮事項 UNIXでのアプリケーション開発に関する一般的な考慮事項 UNIXでのデバイスドライバ開発に関する一般的な考慮事項 ドライバとカーネルのインターフェース プロセス・スケジューリング関連サービス タイマー機能 メモリ操作関連 リソース関連
Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日本語で読む方が大変です。 基本ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く