タグ

ブックマーク / jp.kernelnewbies.org (2)

  • InternalKernelDataTypes - Kernel Newbies Japan

    このページはWritingPortableDriversセクションの一部です。 カーネル内で使用されるデータ型 原文: InternalKernelDataTypes 移植性の高いコードを書くときに覚えておきたいもっとも基的なルールは、 変数の大きさをどのくらいにする必要があるかに気を付けるというものです。 データ型intとlongの変数のサイズは、プロセッサごとに異なります。 さらに変数には、符号付き、符号なしといった違いもあります。このため、変数の サイズを一定のビット数にする必要があり、符号付きか符号なしのどちらかに しなければならない場合、組み込みのデータ型を使用する必要があります。 次に示すtypedefされたデータ型はヘッダファイルlinux/types.hで定義されていて、 カーネルコードのどこででも使用することができます。 u8 unsigned byte (8 bits

  • DataAlignment - Kernel Newbies Japan

    このページはWritingPortableDriversセクションの一部です。 データアラインメント 原文: DataAlignment gccコンパイラは通常、実行速度を速くさせるために、構造体の個々のフィールドをバイト境界に合わせます。 例として、次のコードとその実行結果を見てください。 1 #include <stdio.h> 2 #include <stddef.h> 3 4 struct foo { 5 char a; 6 short b; 7 int c; 8 }; 9 10 #define OFFSET_A offsetof(struct foo, a) 11 #define OFFSET_B offsetof(struct foo, b) 12 #define OFFSET_C offsetof(struct foo, c) 13 14 int main () 15 { 1

  • 1