I have the following structure on a 64-bit Linux machine.
struct __wait_queue_head {
spinlock_t lock;
struct list_head task_list;
};
where
typedef struct {
raw_spinlock_t raw_lock;
} spinlock_t;
and
struct list_head {
struct list_head *next, *prev;
};
raw_spinlock_t is defined as:
typedef struct {
volatile unsigned int slock;
} raw_spinlock_t;
Now I want to understand the alignment of the __wait_queue_head structure on a 64-bit Linux machine after the LP64 standard. From what I know, starting from the first field of this structure, i.e.
spinlock_t lock
- unsigned int, 4 64- , 4- . , , . 8- , 4- . , ? , . - , .