![Tony Luck](/assets/img/avatar_default.png)
Linus pointed out that other people have spent large amounts of time and effort to optimize the layout of frequently used structures. Often these have embedded locks, and the assumption is that a lock takes 4 bytes. Linus also pointed out how to work with the limited options for atomic instructions on Itanium. Signed-off-by: Tony Luck <tony.luck@intel.com>
22 lines
432 B
C
22 lines
432 B
C
#ifndef _ASM_IA64_SPINLOCK_TYPES_H
|
|
#define _ASM_IA64_SPINLOCK_TYPES_H
|
|
|
|
#ifndef __LINUX_SPINLOCK_TYPES_H
|
|
# error "please don't include this file directly"
|
|
#endif
|
|
|
|
typedef struct {
|
|
volatile unsigned int lock;
|
|
} raw_spinlock_t;
|
|
|
|
#define __RAW_SPIN_LOCK_UNLOCKED { 0 }
|
|
|
|
typedef struct {
|
|
volatile unsigned int read_counter : 31;
|
|
volatile unsigned int write_lock : 1;
|
|
} raw_rwlock_t;
|
|
|
|
#define __RAW_RW_LOCK_UNLOCKED { 0, 0 }
|
|
|
|
#endif
|