Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
spinlock_types.h
Go to the documentation of this file.
1 #ifndef _ASM_SPINLOCK_TYPES_H
2 #define _ASM_SPINLOCK_TYPES_H
3 
4 #ifndef __LINUX_SPINLOCK_TYPES_H
5 # error "please don't include this file directly"
6 #endif
7 
8 #include <linux/types.h>
9 
10 #include <asm/byteorder.h>
11 
12 typedef union {
13  /*
14  * bits 0..15 : serving_now
15  * bits 16..31 : ticket
16  */
18  struct {
19 #ifdef __BIG_ENDIAN
20  u16 ticket;
21  u16 serving_now;
22 #else
25 #endif
26  } h;
28 
29 #define __ARCH_SPIN_LOCK_UNLOCKED { .lock = 0 }
30 
31 typedef struct {
32  volatile unsigned int lock;
34 
35 #define __ARCH_RW_LOCK_UNLOCKED { 0 }
36 
37 #endif