0
typedef struct spinlock {
union {
struct raw_spinlock rlock;
struct {
u8 __padding[];
struct lockdep_map dep_map;
};
};
} spinlock_t;
なぜ、 "dep_map" 変数 "[]を__paddingする" 内部に置く必要があり、以下のようなspinlock_tの定義名前を持たない構造体
ただし、以下のようなものではありませんか?
typedef struct spinlock {
union {
struct raw_spinlock rlock;
u8 __padding[];
struct lockdep_map dep_map;
};
} spinlock_t;
特別な意味はありますか?それは二つの構造の労働組合や他の構造は、デバッグ時に有効になっているので
はあなたに
'それだけではない以下のような' - ?あなたのコードのフィールド '__padding'と(同じアドレスに配置)' dep_map'です**組合** '編では、元のコードでそれらが単一に属しながら、構造は、**順次レイアウト**です。構造体のフィールド名がない場合は、 'lock-> field_name-> dep_map'ではなく' lock-> dep_map'という内部フィールドへの参照を簡略化します。 – Tsyvarev
HI Tsyvarev、あなたの説明は非常に明確です、非常にありがとう:) –